Welcome! Log In Create A New Profile

Advanced

U-Boot 2015.10 for Iomega HMNHDCE

Posted by mari8b 
Re: U-Boot 2015.10 for Iomega HMNHDCE
July 22, 2019 09:52AM
Hi bodhi!

I did all what you instructed. my ls -larth /mnt/boot output is:

total 8.3M
-rwxr-xr-x  1 root root  16K Dec 31  1969 u-boot.env
drwxr-xr-x  2 root root 4.0K Aug  3  2014 dts
-rwxr-xr-x  1 root root  32K Aug  3  2014 u-boot-spl.bin
-rw-r--r--  1 root root 514K Aug  3  2014 u-boot.img
-rw-r--r--  1 root root 2.2M Aug  3  2014 uImage_2.6.31.14_OX820_1.2_shv.Pro
-rw-r--r--  1 root root 3.6M Aug  3  2014 uImage
-rw-r--r--  1 root root 2.1M Aug  3  2014 uInitrd
drwxr-xr-x  3 root root 4.0K Aug  3  2014 .
drwxr-xr-x 23 root root 4.0K Jul 22 10:17 ..

and my boot is:

U-Boot SPL 2013.10-g3a0f380-dirty (Jul 26 2014 - 14:31:34)
  Boot device: SATA
Attempting to set PLLA to 850 MHz ...
  plla_ctrl0 : 0000020a
  plla_ctrl1 : 00330000
  plla_ctrl2 : 0065008b
  plla_ctrl3 : 000000f1

PLLA Set
Bus 0: OK
  Device 0:
** File not found /boot/bootargs.bin **


U-Boot 2013.10-g3a0f380-dirty (Jul 26 2014 - 10:18:57) for OXNAS

DRAM:  128 MiB
IDE:   Bus 0: OK
  Device 0: Model: WDC WD800JD-75MSA3 Firm: 10.01E04 Ser#:  WD-WMAM9AR84678
            Type: Hard Disk
            Supports 48-bit addressing
            Capacity: 76293.9 MB = 74.5 GB (156250000 x 512)
NAND:  16 MiB
In:    serial
Out:   serial
Err:   serial
Net:
Led:    GREEN
mii0
Main Loop
Hit any key to stop autoboot:  3 ^H^H^H 0
OX820 # setenv uinitrd_addr '0x60e00000'
OX820 # setenv uimage_addr '0x60500000'
OX820 # setenv dtb_addr '0x62c00000'
OX820 # setenv ide_set_bootargs 'setenv bootargs console=ttyS0,115200 root=/dev/sda1 rootdelay=10'
OX820 # setenv dt_bootm 'bootm $uimage_addr $uinitrd_addr $dtb_addr'
OX820 # setenv dt_load_dtb 'ext2load ide 0:1 $dtb_addr /boot/dts/ox820-pogoplug-pro.dtb'
OX820 # setenv dt_load_initrd 'ext2load ide 0:1 $uinitrd_addr /boot/uInitrd'
OX820 # setenv dt_load_uimage 'ext2load ide 0:1 $uimage_addr /boot/uImage'
OX820 # setenv dt_ide_boot 'run dt_load_uimage; run dt_load_initrd; run dt_load_dtb; run dt_bootm'
OX820 # setenv dt_ide_bootcmd 'run ide_set_bootargs; run dt_ide_boot'
OX820 # setenv dt_bootcmd_ide 'ide reset; run dt_ide_bootcmd; reset'
OX820 # setenv bootcmd 'run dt_bootcmd_ide'
OX820 # boot

Reset IDE: Bus 0: OK
  Device 0: Model: WDC WD800JD-75MSA3 Firm: 10.01E04 Ser#:  WD-WMAM9AR84678
            Type: Hard Disk
            Supports 48-bit addressing
            Capacity: 76293.9 MB = 74.5 GB (156250000 x 512)
3676848 bytes read in 830 ms (4.2 MiB/s)
2103272 bytes read in 463 ms (4.3 MiB/s)
7029 bytes read in 28 ms (245.1 KiB/s)
## Booting kernel from Legacy Image at 60500000 ...
   Image Name:   Linux-3.12.13-oxnas-tld-5
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    3676784 Bytes = 3.5 MiB
   Load Address: 60008000
   Entry Point:  60008000
   Verifying Checksum ... Bad Data CRC

Led:    ORANGE (Failed)

and this output without seting environment:

U-Boot SPL 2013.10-g3a0f380-dirty (Jul 26 2014 - 14:31:34)
  Boot device: SATA
Attempting to set PLLA to 850 MHz ...
  plla_ctrl0 : 0000020a
  plla_ctrl1 : 00330000
  plla_ctrl2 : 0065008b
  plla_ctrl3 : 000000f1

PLLA Set
Bus 0: OK
  Device 0:
** File not found /boot/bootargs.bin **


U-Boot 2013.10-g3a0f380-dirty (Jul 26 2014 - 10:18:57) for OXNAS

DRAM:  128 MiB   
IDE:   Bus 0: OK 
  Device 0: Model: WDC WD800JD-75MSA3 Firm: 10.01E04 Ser#:  WD-WMAM9AR84678
            Type: Hard Disk
            Supports 48-bit addressing
            Capacity: 76293.9 MB = 74.5 GB (156250000 x 512)
NAND:  16 MiB
In:    serial
Out:   serial
Err:   serial
Net:
Led:    GREEN
mii0
Main Loop
Hit any key to stop autoboot:  0
ide - IDE sub-system

Usage:
ide reset - reset IDE controller
ide info  - show available IDE devices
ide device [dev] - show or set current device
ide part [dev] - print partition table of one or all IDE devices
ide read  addr blk# cnt
ide write addr blk# cnt - read/write `cnt' blocks starting at block `blk#'
    to/from memory address `addr'
2212156 bytes read in 500 ms (4.2 MiB/s)
## Booting kernel from Legacy Image at 60500000 ...
   Image Name:   Linux-2.6.31.14_OX820_1.2_shv
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    2212092 Bytes = 2.1 MiB
   Load Address: 60008000
   Entry Point:  60008000
   Verifying Checksum ... OK
   Loading Kernel Image ... OK

Led:    GREEN

Starting kernel ...

Uncompressing Linux.......................................................................................................................................

crc error

 -- System halted
Do you think I should try spl fo pogoplug classic? If so could you please give me a link (I can't find it anywhere in the forum).
And can you please give me direction how I can compile 1st stage, 2nd stage and all uboot things myself. I see so many devices have very good uboot updates, but poor iomega HMNHDCE is a red headed cousin nobody wants to play with ;)) but I think iomega HMNHDCE is better than pogoplug (more ram, housing for 3.5 hdd, now nand under the hood (16Gb maby), and I've installed fan (fan speed control coming soon), wi-fi and bluetooth can be on usb, and more)

I found the way how to compile u-boot.env from *.txt. Could you please give example for simple environment settings to boot to sata/usb. From there I'll go for unbriking nand tutorial.

thank you!



Edited 3 time(s). Last edit at 07/22/2019 12:44PM by sobir.
Re: U-Boot 2015.10 for Iomega HMNHDCE
July 23, 2019 05:19AM
sobir,

> Do you think I should try spl fo pogoplug classic?

No, that's no the problem.

> If so could you please give me a link (I can't
> find it anywhere in the forum).
> And can you please give me direction how I can
> compile 1st stage, 2nd stage and all uboot things
> myself.

I don't have any written instruction for this.

Your file system seems to shows problem.

On disk it is 3.6M
-rw-r--r--  1 root root 3.6M Aug  3  2014 uImage

While it is loading it is 3.5M
## Booting kernel from Legacy Image at 60500000 ...
   Image Name:   Linux-3.12.13-oxnas-tld-5
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    3676784 Bytes = 3.5 MiB
   Load Address: 60008000

===

What I would suggest is:

- Create 2 partitions on you HDD.
- Format both as Ext3.
- Going through the same procedure for boot with SPL and u-boot on HDD using sda1.
- As root user, extract Debian-4.4.54-oxnas-tld-1-rootfs-bodhi.tar.bz2 from the release thread to sda2.

And then adjust the boot envs as followed:

OX820 # setenv uinitrd_addr '0x60e00000'
OX820 # setenv uimage_addr '0x60500000'
OX820 # setenv dtb_addr '0x62c00000'
OX820 # setenv ide_set_bootargs 'setenv bootargs console=ttyS0,115200 root=/dev/sda2 rootdelay=10'

OX820 # setenv dt_bootm 'bootm $uimage_addr $uinitrd_addr $dtb_addr'

OX820 # setenv dt_load_dtb 'ext2load ide 0:2 $dtb_addr /boot/dts/ox820-pogoplug-pro.dtb'
OX820 # setenv dt_load_initrd 'ext2load ide 0:2 $uinitrd_addr /boot/uInitrd'
OX820 # setenv dt_load_uimage 'ext2load ide 0:2 $uimage_addr /boot/uImage'

OX820 # setenv dt_ide_boot 'run dt_load_uimage; run dt_load_initrd; run dt_load_dtb; run dt_bootm'
OX820 # setenv dt_ide_bootcmd 'run ide_set_bootargs; run dt_ide_boot'
OX820 # setenv dt_bootcmd_ide 'ide reset; run dt_ide_bootcmd; reset'
OX820 # setenv bootcmd 'run dt_bootcmd_ide'

And then try booting with it. Once it can boot into the rootfs Debian-4.4.54-oxnas-tld-1-rootfs-bodhi.tar.bz2, we can further refine the envs to make it more robust.

-bodhi
===========================
Forum Wiki
bodhi's corner
Re: U-Boot 2015.10 for Iomega HMNHDCE
July 23, 2019 04:30PM
Hi bodhi!

here is the result:

U-Boot SPL 2013.10-g3a0f380-dirty (Jul 26 2014 - 14:31:34)
  Boot device: SATA
Attempting to set PLLA to 850 MHz ...
  plla_ctrl0 : 0000020a
  plla_ctrl1 : 00330000
  plla_ctrl2 : 0065008b
  plla_ctrl3 : 000000f1

PLLA Set
Bus 0: OK
  Device 0:
** File not found /boot/bootargs.bin **


U-Boot 2013.10-g3a0f380-dirty (Jul 26 2014 - 10:18:57) for OXNAS

DRAM:  128 MiB
IDE:   Bus 0: OK
  Device 0: Model: WDC WD800JD-75MSA3 Firm: 10.01E04 Ser#:  WD-WMAM9AR84678
            Type: Hard Disk
            Supports 48-bit addressing
            Capacity: 76293.9 MB = 74.5 GB (156250000 x 512)
NAND:  16 MiB
In:    serial
Out:   serial
Err:   serial
Net:
Led:    GREEN
mii0
Main Loop
Hit any key to stop autoboot:  0
OX820 # setenv uinitrd_addr '0x60e00000'
OX820 # setenv uimage_addr '0x60500000'
OX820 # setenv dtb_addr '0x62c00000'
OX820 # setenv ide_set_bootargs 'setenv bootargs console=ttyS0,115200 root=/dev/sda2 rootdelay=10'
OX820 # setenv dt_bootm 'bootm $uimage_addr $uinitrd_addr $dtb_addr'
OX820 # setenv dt_load_dtb 'ext2load ide 0:2 $dtb_addr /boot/dts/ox820-pogoplug-pro.dtb'
OX820 # setenv dt_load_initrd 'ext2load ide 0:2 $uinitrd_addr /boot/uInitrd'
OX820 # setenv dt_load_uimage 'ext2load ide 0:2 $uimage_addr /boot/uImage'
OX820 # setenv dt_ide_boot 'run dt_load_uimage; run dt_load_initrd; run dt_load_dtb; run dt_bootm'
OX820 # setenv dt_ide_bootcmd 'run ide_set_bootargs; run dt_ide_boot'
OX820 # setenv dt_bootcmd_ide 'ide reset; run dt_ide_bootcmd; reset'
OX820 # setenv bootcmd 'run dt_bootcmd_ide'
OX820 # boot
Reset IDE: Bus 0: OK
  Device 0: Model: WDC WD800JD-75MSA3 Firm: 10.01E04 Ser#:  WD-WMAM9AR84678
            Type: Hard Disk
            Supports 48-bit addressing
            Capacity: 76293.9 MB = 74.5 GB (156250000 x 512)
4621824 bytes read in 1025 ms (4.3 MiB/s)
4594376 bytes read in 1025 ms (4.3 MiB/s)
7067 bytes read in 35 ms (196.3 KiB/s)
## Booting kernel from Legacy Image at 60500000 ...
   Image Name:   Linux-4.4.54-oxnas-tld-1
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    4621760 Bytes = 4.4 MiB
   Load Address: 60008000
   Entry Point:  60008000
   Verifying Checksum ... OK
## Loading init Ramdisk from Legacy Image at 60e00000 ...
   Image Name:   initramfs-4.4.54-oxnas-tld-1
   Image Type:   ARM Linux RAMDisk Image (gzip compressed)
   Data Size:    4594312 Bytes = 4.4 MiB
   Load Address: 60000000
   Entry Point:  60000000
   Verifying Checksum ... OK
## Flattened Device Tree blob at 62c00000
   Booting using the fdt blob at 0x62c00000
   Loading Kernel Image ... OK
   Loading Ramdisk to 679c6000, end 67e27a88 ... OK
   Loading Device Tree to 679c1000, end 679c5b9a ... OK

Led:    GREEN

Starting kernel ...

Uncompressing Linux... done, booting the kernel.

Error: unrecognized/unsupported processor variant (0x410fb025).

I also have one more question. I accidentally disconnected anothe hdd while dd zeroing was in process. Now gpt partition table is not recognized by iomega and no boot, although my linux PC have no problems recognizing evrything. How to unbrick hdd? I remade gpt label many times, no luck. Ironically oldzeus's uboot works fine on this hdd.

U-Boot SPL 2013.10-g3a0f380-dirty (Jul 26 2014 - 14:31:34)
  Boot device: SATA
Attempting to set PLLA to 850 MHz ...
  plla_ctrl0 : 0000020a
  plla_ctrl1 : 00330000
  plla_ctrl2 : 0065008b
  plla_ctrl3 : 000000f1

PLLA Set
Bus 0: OK 
  Device 0: 
GPT: last_usable_lba incorrect: 15D50A38E > 5D50A3B0
get_partition_info_efi: *** ERROR: Invalid GPT ***
** Partition 1 not valid on device 0 **
### ERROR ### Please RESET the board ###


Thank you!



Edited 2 time(s). Last edit at 07/23/2019 10:57PM by sobir.
Re: U-Boot 2015.10 for Iomega HMNHDCE
July 24, 2019 11:38PM
sobir,

Try booting with whatever DTB olderzeus used for this box.

https://github.com/olderzeus/Iomega-HMNHDCE

The Pogo Pro DTB might not be the correct one. So replace it with one you can find from olderzeus's GitHub.
OX820 # setenv dt_load_dtb 'ext2load ide 0:2 $dtb_addr /boot/dts/ox820-pogoplug-pro.dtb'

-bodhi
===========================
Forum Wiki
bodhi's corner
Re: U-Boot 2015.10 for Iomega HMNHDCE
July 24, 2019 11:40PM
Hi bodhi!
I found this
Quote
Openwrt
no PCIe on OX820/NAS7820, 1x PCIe on OX821/NAS7821, 2x PCIe on NAS7825
so conclusion is pogoplug pro has oxnas7821 cpu and iomega HMNHDCE, pogoplug v3 and ZyXEL NSA-212 / MitraStra STG-212 are oxnas7820 cpu. I have to try pogoplug-classic



Edited 4 time(s). Last edit at 07/25/2019 02:10AM by sobir.
Re: U-Boot 2015.10 for Iomega HMNHDCE
July 25, 2019 03:25AM
sobir,

> I have to try
> pogoplug-classic

That's correct.

-bodhi
===========================
Forum Wiki
bodhi's corner
Re: U-Boot 2015.10 for Iomega HMNHDCE
July 25, 2019 04:23AM
So to try, change this env:

setenv dt_load_dtb 'ext2load ide 0:2 $dtb_addr /boot/dts/ox820-pogoplug-classic.dtb'

-bodhi
===========================
Forum Wiki
bodhi's corner
Re: U-Boot 2015.10 for Iomega HMNHDCE
July 26, 2019 11:10AM
Hi bodhi!
I tried with ox820-pogoplug-classic.dtb no luck, same thing. I'll try with oldzeus's dtb which, I suspect, is file named u-boot.md.wrapped? If no luck there then I will contact openwrt and willing to donate them my board so they can compile all u-boot needed.

By the way I always have checksum verification failing with
setenv uinitrd_addr '0x60e00000'
setenv uimage_addr '0x60500000'
setenv dtb_addr '0x62c00000'
setenv ide_set_bootargs 'setenv bootargs console=ttyS0,115200 root=/dev/sda2 rootdelay=10'
setenv dt_bootm 'bootm $uimage_addr $uinitrd_addr $dtb_addr'
setenv dt_load_dtb 'ext2load ide 0:2 $dtb_addr /boot/dts/ox820-pogoplug-classic.dtb'
setenv dt_load_initrd 'ext2load ide 0:2 $uinitrd_addr /boot/uInitrd'
setenv dt_load_uimage 'ext2load ide 0:2 $uimage_addr /boot/uImage'
setenv dt_ide_boot 'run dt_load_uimage; run dt_load_initrd; run dt_load_dtb; run dt_bootm'
setenv dt_ide_bootcmd 'run ide_set_bootargs; run dt_ide_boot'
setenv dt_bootcmd_ide 'ide reset; run dt_ide_bootcmd; reset'
setenv bootcmd 'run dt_bootcmd_ide'

But if I skip addressation and just use this
setenv ide_set_bootargs 'setenv bootargs console=ttyS0,115200 root=/dev/sda2 rootdelay=10'
setenv dt_load_dtb 'ext2load ide 0:2 $dtb_addr /boot/dts/ox820-pogoplug-classic.dtb'
setenv dt_load_initrd 'ext2load ide 0:2 $uinitrd_addr /boot/uInitrd'
setenv dt_load_uimage 'ext2load ide 0:2 $uimage_addr /boot/uImage'
setenv dt_ide_boot 'run dt_load_uimage; run dt_load_initrd; run dt_load_dtb; run dt_bootm'
setenv dt_ide_bootcmd 'run ide_set_bootargs; run dt_ide_boot'
setenv dt_bootcmd_ide 'ide reset; run dt_ide_bootcmd; reset'
setenv bootcmd 'run dt_bootcmd_ide'
checksum verification is Ok. I think different memory chip configuration and different gpio connection on processor makes u-boot addressation confused. What makes me think that I definitely need spl from openwrt guys specific to iomega HMNHDCE board.
Anyway thank you bodhi for your support and help.
If you can give me hint how to and who to contact in openwrt so I could ship my device to.
Thank you again!



Edited 1 time(s). Last edit at 07/26/2019 11:11AM by sobir.
Re: U-Boot 2015.10 for Iomega HMNHDCE
July 26, 2019 11:50AM
sobir,

> If you can give me hint how to and who to contact
> in openwrt so I could ship my device to.

I don't have any OpenWrt contact. I guess you can try their website.

-bodhi
===========================
Forum Wiki
bodhi's corner
Re: U-Boot 2015.10 for Iomega HMNHDCE
April 06, 2021 05:23AM
bodhi Wrote:
-------------------------------------------------------
> mari8b Wrote:
> -------------------------------------------------------
> > I think, I'm starting to understand...
> >
> > There's no NAND flash on the Iomega Home Media
> CE
> > (HMNHDCE). Everything (including U-boot) is
> > written on the HDD. So if I understand it
> right,
> > there's no need for MTD partitions support...
> >
> > Description of the first 32MB of the HDD:
> >
> > start/sector		size		content
> > 0			512		Legacy MBR
> > 1			1536		GPT Partition table
> > 34			8736		Stage-1 Bootloader
> > 154			103552		U-Boot
> > 558			At least 608	U-Boot environment
> > 1290			2189216		uImage kernel
> > 16674			2787216		uImage initrd
> > 57080			5		0x69 0xD3 0xAB 0x52 0x31
> > 					unknown - not Serial number, not the MAC
> > address, same on all devices
> > 57088			4640		Stage-1 Bootloader (2nd copy)
> > 57208			103568		U-Boot (2nd copy)
> > 58344			2189216		uImage kernel (2nd copy)
> > 
> >
> >
> > Here is the code to write everything needed to
> the
> > first 32MB:
> >
> > 	dd if=bootrom.wrapped of=$1 bs=512
> > 	dd if=stage1.wrapped of=$1 seek=34
> > 	dd if=u-boot.sd.wrapped of=$1 seek=154
> > 	dd if=u-boot.sd.env of=$1 seek=558
> > 	dd if=uImage.wrapped of=$1 seek=1290
> > 	dd if=initrd.wrapped of=$1 seek=16674
> > 	dd if=serial.warpped of=$1 seek=57080
> > 	dd if=stage1.wrapped of=$1 seek=57088
> > 	dd if=u-boot.sd.wrapped of=$1 seek=57208
> > 	dd if=uImage.wrapped of=$1 seek=58344
> >
> >
> > So how did DaveP do it with the new U-boot?
>
>
> 34			8736		Stage-1 Bootloader
> 154			103552		U-Boot
> 558			At least 608	U-Boot environment
>
>
> My guess is DaveP flashed (using dd):
>
> - SPL image to Stage-1 Bootloader
> - new u-boot image to U-Boot
> - new u-boot env image to U-Boot environment
>
> But that is only an educated guess. That's what I
> would do if I have serial console and not afraid
> of bricking the box, and have cloned the HDD to
> another HDD as backup.


Hi bohdi, I resume this old but very interesting discussion you had with mari8b about the Iomega Home Media device.
I flashed the olderzeus u-boot and kernel into the first 32MB of HDD and it works well but unfortunately it's a very old kernel (2.6) with an old squeeze debian.
I'd like to use a newer kernel with a more updated rootfs but as you realized, newer kernels seems to not be flashable in such a little space.

My question - as a beginner with u-boot related matters - is: could it be a possibility to chainload your newer u-boot (installed in a /dev/sda1 partition) from olderzeus's 1.1.2 u-boot? If possible maybe I can boot from there with your latest oxnas kernel and rootfs.

I also tried to compile myself a bit newer kernel version to boot with olderzeus's u-boot (taken from here https://github.com/kref/linux-oxnas) but serial console stucks at "Starting kernel..." without going further...

Thank you for your help
Re: U-Boot 2015.10 for Iomega HMNHDCE
April 06, 2021 09:11PM
Miclaud,

> My question - as a beginner with u-boot related
> matters - is: could it be a possibility to
> chainload your newer u-boot (installed in a
> /dev/sda1 partition) from olderzeus's 1.1.2
> u-boot? If possible maybe I can boot from there
> with your latest oxnas kernel and rootfs.

Not likely to work. That u-boot is too old. Chainload is tricky and won't work going from old version of u-boot to new version (the software architecture is too different).


> I also tried to compile myself a bit newer kernel
> version to boot with olderzeus's u-boot (taken
> from here https://github.com/kref/linux-oxnas) but
> serial console stucks at "Starting kernel..."
> without going further...
>

You could try booting my kernel and rootfs Debian-4.14.180-oxnas-tld-1-rootfs-bodhi.tar.bz2 from old u-boot like olderzeus's.

The version 1.1.2 sounds like stock u-boot. So you will need to append the DTB to uImage. The problem is we don't have a DTB for Iomega Home Media, so you would have to use the Pogo Classic V3 DTB to see if it will work.

Post back if you're not sure about this step.

-bodhi
===========================
Forum Wiki
bodhi's corner
Re: U-Boot 2015.10 for Iomega HMNHDCE
April 10, 2021 05:31AM
> You could try booting my kernel and rootfs
> Debian-4.14.180-oxnas-tld-1-rootfs-bodhi.tar.bz2
> from old u-boot like olderzeus's.
>
> The version 1.1.2 sounds like stock u-boot. So you
> will need to append the DTB to uImage. The problem
> is we don't have a DTB for Iomega Home Media, so
> you would have to use the Pogo Classic V3 DTB to
> see if it will work.
>

Thank you bodhi

yes, I'd like to try this way. Even olderzeus suggests to use your kernel and rootfs in this issue from his github repo: https://github.com/olderzeus/Iomega-HMNHDCE/issues/3


Anyway I'm not understanding a thing: why in your opinion does he suggests to create an uImage in /media/sdb1/boot if stock u-boot continues to load uImage from an HDD area placed in his first 32MB?

As mari8b correctly said, Iomega looks at first HDD's 32MB in this way:

start/sector		size		content
0			512		Legacy MBR
1			1536		GPT Partition table
34			8736		Stage-1 Bootloader
154			103552		U-Boot
558			At least 608	U-Boot environment
1290			2189216		uImage kernel
16674			2787216		uImage initrd
57080			5		0x69 0xD3 0xAB 0x52 0x31	unknown - not Serial number, not the MAC address, same on all devices
57088			4640		Stage-1 Bootloader (2nd copy)
57208			103568		U-Boot (2nd copy)
58344			2189216		uImage kernel (2nd copy)


I'm afraid that stock u-boot will be booting again he uImage in sector 1290, ignoring your updated kernel first HDD partition (but I could be wrong). Is there a way to configure stock u-boot to look for first HDD partition instead of sector 1290 for uImage kernel?

Another possibility could be to flash you uImage in sector 1290, but it's too big (we have about 2MB of free space there) and it will surely overwrite initrd location and many other... or maybe that should not be a problem?

Sorry about being so newbie, I'm trying to study u-boot behavior as much as I can :)


Thank you for your help.
Re: U-Boot 2015.10 for Iomega HMNHDCE
April 10, 2021 12:37PM
Meanwhile, I've tried to flash a newer kernel taken from here: https://forum.doozan.com/read.php?2,16044

Because of this warning, I tried this version: linux-3.18.5-oxnas-tld-1.bodhi
Quote
bodhi
Warning: This kernel has grown too big, so it will not work for stock u-boot or its Arch u-boot variant. Stock u-boot has a limitation of 4M uImage, so it will not boot. Please stay with kernel 3.18.5 if you're still booting with stock u-boot. The new u-boot works without limitation.

But while booting I receive this error:

PLX>>run select0 load1 load_rd boot

IDE device 0: Model: Hitachi HDT721032SLA380  Firm: ST2OA39D Ser#: STA207MC2K012B
            Type: Hard Disk
            Capacity: 131071.9 MB = 127.9 GB (268435455 x 512)
... is now current device

IDE read: device 0 block # 1290, count 5700 ... 5700 blocks read: OK

IDE read: device 0 block # 16674, count 5700 ... 5700 blocks read: OK
## Booting image at 60500000 ...
   Image Name:   Linux-3.18
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    4177029 Bytes =  4 MB
   Load Address: 60500000
   Entry Point:  60500000
   Verifying Checksum ... Bad Data CRC

Looking for some info I think that the problem is with uboot env variable: load1=ide read 0x60500000 50a 1644
Is 1644 referred to kernel size to load in memory? I've tried bigger values but with no luck.

My u-boot printenv is:
bootcmd=run select0 load1 load_rd boot || run lightled select0 load2 load_rd extinguishled boot || lightled
bootdelay=3
baudrate=115200
ethaddr=00:30:e0:00:00:01
ipaddr=172.31.0.128
serverip=172.31.0.100
autoload=n
netmask=255.255.0.0
bootfile="uImage"
select0=ide dev 0
load1=ide read 0x60500000 50a 1644
load2=ide read 0x60500000 e3e8 1644
load_rd=ide read 0x60800000 4122 1644
lightled=ledfail 1
extinguishled=ledfail 0
boot=bootm 60500000 60800000
stdin=serial
stdout=serial
stderr=serial
bootargs=root=/dev/sda1 console=ttyS0,115200 elevator=cfq mem=256M poweroutage=yes mac_adr=0x00,0xd0,0xb8,0x19,0x81,0x0e

Environment size: 614/8188 bytes
Re: U-Boot 2015.10 for Iomega HMNHDCE
April 10, 2021 03:45PM
Miclaud,

Quote

I'm afraid that stock u-boot will be booting again he uImage in sector 1290, ignoring your updated kernel first HDD partition (but I could be wrong). Is there a way to configure stock u-boot to look for first HDD partition instead of sector 1290 for uImage kernel?


Let me recap what I understood about this box from scanning mai8b, sobir, and your posts again.

1. This box has no NAND flash. This is the reason everything is on the HDD. olderzeus has the files in the HDD 32M layout that boot the old kernel perfectly fine.
start/sector		size		content
0			512		Legacy MBR
1			1536		GPT Partition table
34			8736		Stage-1 Bootloader
154			103552		U-Boot
558			At least 608	U-Boot environment
1290			2189216		uImage kernel
16674			2787216		uImage initrd
57080			5		0x69 0xD3 0xAB 0x52 0x31	unknown - not Serial number, not the MAC address, same on all devices
57088			4640		Stage-1 Bootloader (2nd copy)
57208			103568		U-Boot (2nd copy)
58344			2189216		uImage kernel (2nd copy)

2. The SATA booting approach is identical to the Pogo V3 OXNAS. This SoC BootROM always look for u-boot image on the SATA drive if one is attched. Even on the Pogoplug, with u-boot in NAND, the BootROM will find u-boot in the HDD drive first, if not found then find it in NAND.

3. My Pogoplug OXNAS u-boot (https://forum.doozan.com/read.php?3,16017) does not work for this box, since it was not built for SATA boot, only for NAND. So stock u-boot and SPL must be used and stored in the HDD. This stock u-boot has a 4GB limitation for uImage.

4. The latest kernel uImage and uInitrd are too big for stock u-boot because of 4GB limitation.

5. Now here is how this dilemma can be resolved. Possible alternatives are:

a. Build a new scaled down kernel using my latest release (https://forum.doozan.com/read.php?2,16044). The kernel config needs to be trimmed down until it will produce a uImage that is smaller than 4GB. The uInitrd can also be trimmed down at the same time with the new kernel config.

b. Rebuild my u-boot version to support SATA booting. Clone my GitHub and build it as is. And after it is successful, turn on SATA.

c. Look at what shv has done. I think there were some really good info. Unfortunately I Iost the link (I want to include it in the Wiki thread). I will PM shv.

PS.

This post has shv u-boot build: https://forum.doozan.com/read.php?3,28162,28313#msg-28313

-bodhi
===========================
Forum Wiki
bodhi's corner



Edited 1 time(s). Last edit at 04/10/2021 03:48PM by bodhi.
Re: U-Boot 2015.10 for Iomega HMNHDCE
April 11, 2021 12:14PM
> Possible alternatives are:
>
> a. Build a new scaled down kernel using my latest
> release
> (https://forum.doozan.com/read.php?2,16044). The
> kernel config needs to be trimmed down until it
> will produce a uImage that is smaller than 4GB.
> The uInitrd can also be trimmed down at the same
> time with the new kernel config.
>
> b. Rebuild my u-boot version to support SATA
> booting. Clone my GitHub and build it as is. And
> after it is successful, turn on SATA.
>
> c. Look at what shv has done. I think there were
> some really good info. Unfortunately I Iost the
> link (I want to include it in the Wiki thread). I
> will PM shv.
>
> PS.
>
> This post has shv u-boot build:
> https://forum.doozan.com/read.php?3,28162,28313#msg-28313


Thank you very much for recap and suggestions. I'll try all the alternatives.

For now, I'm trying to use your Linux-3.18.5-oxnas-tld-1 kernel because it should already be of the right size. Unfortunately it stucks too at "Bad CRC" error. I tried attaching both pogoplug-pro and pogoplug-classic but with no luck...

Do you have any idea of why do I get this "Bad CRC" error? Meanwhile, I'd make a try with a newer u-boot, thanks!


IDE device 0: Model: Hitachi HDT721032SLA380  Firm: ST2OA39D Ser#: STA207MC2K012B
            Type: Hard Disk
            Capacity: 131071.9 MB = 127.9 GB (268435455 x 512)
... is now current device

IDE read: device 0 block # 1290, count 8159 ... 8159 blocks read: OK

IDE read: device 0 block # 16674, count 5700 ... 5700 blocks read: OK
## Booting image at 60500000 ...
   Image Name:   Linux-3.18.5-oxnas-tld-1
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    4177029 Bytes =  4 MB
   Load Address: 60008000
   Entry Point:  60008000
   Verifying Checksum ... Bad Data CRC
Re: U-Boot 2015.10 for Iomega HMNHDCE
April 11, 2021 05:24PM
Miclaud,

As always, I need to see the complete picture of what's going on.

Interrupt serial console at count down
printenv
and then

boot
Please post the entire serial boot log, from the u-boot banner.

-bodhi
===========================
Forum Wiki
bodhi's corner
Re: U-Boot 2015.10 for Iomega HMNHDCE
April 12, 2021 07:52AM
> Interrupt serial console at count down
>
> printenv
>
> and then
>
>
> boot
>
> Please post the entire serial boot log, from the
> u-boot banner.


Hi bodhi,

meanwhile, I got so close!
I succeded in installing a newer u-boot (2013.10) by compiling this one: https://github.com/kref/u-boot-oxnas/tree/oxnas following these compilation instructions: https://github.com/kref/u-boot-oxnas/wiki/uboot-for-sata

(I tried with your repo's u-boot but I have to solve some compilation problems before trying again with that)

So I made these steps:
1 - compiling kref's u-boot.img and SPL
2 - flashed SPL at sector 34 (as olderzeus used to do)
3 - created a FAT partition at /dev/sda1 and copied the u-boot.img there
4 - copied an u-boot.env file from shv files. I haven't find the right way to generate one from scratch from myself because (I tried with mkenvimage command) because I always get CRC error.
Shv's one is correctly loaded but of course I need to stop the serial console at countdown to customize the env
5 - created an ext3 partition with your Debian-4.14.180 rootfs (including kernel as is in /boot folder)

The whole process seems to be almost ok, but I got an "uncompression error" with your uImage.

Printenv:

OX820 # printenv
dt_bootm=bootm $uimage_addr $uinitrd_addr $dtb_addr
autoload=no
baudrate=115200
bootargs=console=ttyS0,115200n8
bootcmd=run dt_bootcmd_ide
bootdelay=3
console=console=ttyS0,115200n8
dt_bootcmd_ide=ide start; run dt_ide_bootcmd; ide stop; reset
dt_bootcmd_usb=usb start; run dt_usb_bootcmd; usb stop; reset
dt_bootm=bootm $uimage_addr $uinitrd_addr $dtb_addr
dt_ide_boot=run dt_ide_load_uimage; run dt_ide_load_initrd; run dt_ide_load_dtb; run dt_bootm
dt_ide_bootcmd=run ide_set_bootargs; run dt_sata_boot
dt_ide_load_dtb=ext2load ide 0:1 $dtb_addr /boot/dts/ox820-pogoplug-pro.dtb
dt_ide_load_initrd=ext2load ide 0:1 $uinitrd_addr /boot/uInitrd
dt_ide_load_uimage=ext2load ide 0:1 $uimage_addr /boot/uImage
dt_load_dtb=ext2load usb 0:1 $dtb_addr /boot/dts/ox820-pogoplug-pro.dtb
dt_load_initrd=ext2load usb 0:1 $uinitrd_addr /boot/uInitrd
dt_load_uimage=ext2load usb 0:1 $uimage_addr /boot/uImage
dt_sata_boot=ext2load ide 0:1 $uimage_addr /boot/uImage_2.6.31.14_OX820_1.2_shv.Pro; bootm $uimage_addr
dt_usb_boot=run dt_load_uimage; run dt_load_initrd; run dt_load_dtb; run dt_bootm
dt_usb_bootcmd=run usb_set_bootargs; run dt_usb_boot
dtb_addr=0x62c00000
ethact=mii0
ethaddr=00:25:31:01:C6:76
ide_set_bootargs=setenv bootargs root=/dev/sda2 rootfstype=ext3 console=ttyS0,115200 mem=128M
if_netconsole=ping $serverip
ipaddr=192.168.0.100
mtdids=nand0=41000000.nand
mtdparts=mtdparts=41000000.nand:14m(boot),-(data)
preboot_nc=run if_netconsole start_netconsole
sata_bootcmd=run usb_set_bootargs; run sata_boot
start_netconsole=setenv ncip $serverip; setenv bootdelay 10; setenv stdin nc; setenv stdout nc; setenv stderr nc; version
stderr=serial
stdin=serial
stdout=serial
uimage_addr=0x60500000
uinitrd_addr=0x60e00000
usb_device=0:1
usb_set_bootargs=setenv bootargs console=ttyS0,115200 root=/dev/sda1 rootdelay=10

Environment size: 1898/16380 bytes


Serial boot log (with customized commands in bold):

U-Boot SPL 2013.10-ga72eb8f (Apr 12 2021 - 03:23:10)
  Boot device: SATA
Attempting to set PLLA to 800 MHz ...
  plla_ctrl0 : 0000030a
  plla_ctrl1 : 00400000
  plla_ctrl2 : 007f0068
  plla_ctrl3 : 00000193

PLLA Set
Bus 0: OK 
  Device 0: 
reading bootargs.bin
reading u-boot.img
reading u-boot.img


U-Boot 2013.10-ga72eb8f (Apr 12 2021 - 03:23:10) for OXNAS

DRAM:  128 MiB
IDE:   Bus 0: OK 
  Device 0: Model: Hitachi HDT721032SLA380  Firm: ST2OA39D Ser#: STA207MC2K012B
            Type: Hard Disk
            Supports 48-bit addressing
            Capacity: 305245.3 MB = 298.0 GB (625142448 x 512)
NAND:  0 MiB
reading u-boot.env
In:    serial
Out:   serial
Err:   serial
Net:   mii0
Hit any key to stop autoboot:  0 


OX820 # setenv bootargs root=/dev/sda2 rootfstype=ext3 console=ttyS0,115200
OX820 # ext4load ide 0:2 $uimage_addr /boot/uImage
4600448 bytes read in 749 ms (5.9 MiB/s)
OX820 # ext4load ide 0:2 $uinitrd_addr /boot/uInitrd
6464907 bytes read in 985 ms (6.3 MiB/s)
OX820 # ext4load ide 0:2 $dtb_addr /boot/dts/ox820-pogoplug-classic.dtb
8892 bytes read in 5 ms (1.7 MiB/s)
OX820 # bootm $uimage_addr $uinitrd_addr $dtb_addr


## Booting kernel from Legacy Image at 60500000 ...
   Image Name:   Linux-4.14.180-oxnas-tld-1
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    4600384 Bytes = 4.4 MiB
   Load Address: 60008000
   Entry Point:  60008000
   Verifying Checksum ... OK
## Loading init Ramdisk from Legacy Image at 60e00000 ...
   Image Name:   initramfs-4.14.180-oxnas-tld-1
   Image Type:   ARM Linux RAMDisk Image (gzip compressed)
   Data Size:    6464843 Bytes = 6.2 MiB
   Load Address: 60000000
   Entry Point:  60000000
   Verifying Checksum ... OK
## Flattened Device Tree blob at 62c00000
   Booting using the fdt blob at 0x62c00000
   Loading Kernel Image ... OK
   Loading Ramdisk to 677fe000, end 67e2854b ... OK
   Loading Device Tree to 677f8000, end 677fd2bb ... OK

Starting kernel ...

Uncompressing Linux...

uncompression error

 -- System halted




I also made another try with a oxnas820 kernel ( Linux-3.11.1+) I got from kref's github, compiled by myself, but it stucks at "Starting Kernel" in the same way it did with stock u-boot

## Booting kernel from Legacy Image at 60500000 ...
   Image Name:   Linux-3.11.1+
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    2293896 Bytes = 2.2 MiB
   Load Address: 60008000
   Entry Point:  60008000
   Verifying Checksum ... OK
## Loading init Ramdisk from Legacy Image at 60e00000 ...
   Image Name:   initramfs-4.14.180-oxnas-tld-1
   Image Type:   ARM Linux RAMDisk Image (gzip compressed)
   Data Size:    6464843 Bytes = 6.2 MiB
   Load Address: 60000000
   Entry Point:  60000000
   Verifying Checksum ... OK
## Flattened Device Tree blob at 62c00000
   Booting using the fdt blob at 0x62c00000
   Loading Kernel Image ... OK
   Loading Ramdisk to 677fe000, end 67e2854b ... OK
   Loading Device Tree to 677f8000, end 677fd347 ... OK

Starting kernel ...

Re: U-Boot 2015.10 for Iomega HMNHDCE
April 12, 2021 10:13AM
Ok bodhi, I've tried once again to compile u-boot from your repo and I succeded in creating u-boot.img file!
I had to give the following command before launching make:
make ox820_defconfig


Anyway, I still have problems while compiling SPL:
make[1]: *** No rule to make target `checkarmreloc', needed by `all'.  Stop.
make: *** [spl/u-boot-spl] Error 2
But I can still use kref's SPL for stage1 and then boot with your u-boot, so I think it's not a problem for now.


As you can see here it seems to boot regularly but it apparently stucks at "booting the kernel"

Maybe the kernel is booting but for some misconfiguration it doesn't print on serial console? I've configured my network interfaces for a specific ip but I cannot ping it.

U-Boot SPL 2013.10-ga72eb8f (Apr 12 2021 - 03:23:10)
  Boot device: SATA
Attempting to set PLLA to 800 MHz ...
  plla_ctrl0 : 0000030a
  plla_ctrl1 : 00400000
  plla_ctrl2 : 007f0068
  plla_ctrl3 : 00000193

PLLA Set
Bus 0: OK 
  Device 0: 
reading bootargs.bin
reading u-boot.img
reading u-boot.img


U-Boot 2015.10-g5d26bd2 (Apr 12 2021 - 22:17:38 +0800)
OXNAS OX820

DRAM:  128 MiB
NAND:  0 MiB
*** Warning - readenv() failed, using default environment

In:    serial
Out:   serial
Err:   serial
Net:   Phy 0 not found
PHY reset timed out
dwmac.40400000
Hit any key to stop autoboot:

starting USB...
USB0:   USB EHCI 1.00
scanning bus 0 for devices... EHCI timed out on TD - token=0x80008c80
unable to get device descriptor (error=-1)
5 USB Device(s) found
       scanning usb for storage devices... EHCI timed out on TD - token=0x80008c80
1 Storage Device(s) found

Reset IDE: Bus 0: OK 
  Device 0: Model: Hitachi HDT721032SLA380  Firm: ST2OA39D Ser#: STA207MC2K012B
            Type: Hard Disk
            Supports 48-bit addressing
            Capacity: 305245.3 MB = 298.0 GB (625142448 x 512)

Partition Map for USB device 0  --   Partition Type: DOS

Part	Start Sector	Num Sectors	UUID		Type
  1	2         	15155158  	3d18797c-01	83
loading envs from usb 0 ...
** File not found /boot/uEnv.txt **

Partition Map for IDE device 0  --   Partition Type: EFI

Part	Start LBA	End LBA		Name
	Attributes
	Type GUID
	Partition GUID
  1	0x00010000	0x0001ffff	"boot"
	attrs:	0x0000000000000000
	type:	ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
	guid:	8ced04b1-0d4b-4a89-83e5-69686b6ecb4e
  2	0x00020000	0x013a7fff	"rootfs"
	attrs:	0x0000000000000000
	type:	0fc63daf-8483-4772-8e79-3d69d8477de4
	guid:	6ea13106-b5b6-459e-b41c-fac88944652c
loading envs from ide 0 ...
reading /boot/uEnv.txt
** Unable to read file /boot/uEnv.txt **
4621824 bytes read in 335 ms (13.2 MiB/s)
4594376 bytes read in 318 ms (13.8 MiB/s)
7067 bytes read in 183 ms (37.1 KiB/s)
## Booting kernel from Legacy Image at 60500000 ...
   Image Name:   Linux-4.4.54-oxnas-tld-1
   Created:      2017-08-01   4:45:36 UTC
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    4621760 Bytes = 4.4 MiB
   Load Address: 60008000
   Entry Point:  60008000
   Verifying Checksum ... OK
## Loading init Ramdisk from Legacy Image at 60e00000 ...
   Image Name:   initramfs-4.4.54-oxnas-tld-1
   Created:      2017-08-01   7:51:04 UTC
   Image Type:   ARM Linux RAMDisk Image (gzip compressed)
   Data Size:    4594312 Bytes = 4.4 MiB
   Load Address: 60000000
   Entry Point:  60000000
   Verifying Checksum ... OK
## Flattened Device Tree blob at 62c00000
   Booting using the fdt blob at 0x62c00000
   Loading Kernel Image ... OK
   Loading Ramdisk to 679c4000, end 67e25a88 ... OK
   Loading Device Tree to 679bf000, end 679c3b9a ... OK

Starting kernel ...

Uncompressing Linux... done, booting the kernel.



My printenv here. At the moment I don't use any u-boot.env or uEnv.txt file, so I'm fallbacking to default env:

autoload=no
baudrate=115200
bootargs=console=ttyS0,115200n8
bootcmd=run bootcmd_uenv; run dt_bootcmd_usb; reset
bootcmd_uenv=run uenv_load; if test $uenv_loaded -eq 1; then run uenv_import; fi
bootdelay=10
console=console=ttyS0,115200n8
devices=usb ide
dt_bootcmd_usb=usb start; run dt_usb_bootcmd; usb stop; reset
dt_bootm=bootm $uimage_addr $uinitrd_addr $dtb_addr
dt_load_dtb=ext2load usb 0:1 $dtb_addr /boot/dts/ox820-pogoplug-pro.dtb
dt_load_initrd=ext2load usb 0:1 $uinitrd_addr /boot/uInitrd
dt_load_uimage=ext2load usb 0:1 $uimage_addr /boot/uImage
dt_usb_boot=run dt_load_uimage; run dt_load_initrd; run dt_load_dtb; run dt_bootm
dt_usb_bootcmd=run usb_set_bootargs; run dt_usb_boot
dtb_addr=0x62c00000
ethact=dwmac.40400000
ethaddr=5e:2b:15:71:ec:b6
if_netconsole=ping $serverip
ipaddr=192.168.0.222
mtdids=nand0=41000000.nand
mtdparts=mtdparts=41000000.nand:14m(boot),-(data)
preboot_nc=run if_netconsole start_netconsole
serverip=192.168.0.220
start_netconsole=setenv ncip $serverip; setenv bootdelay 10; setenv stdin nc; setenv stdout nc; setenv stderr nc; version
stderr=serial
stdin=serial
stdout=serial
uenv_import=echo importing envs ...; env import -t 0x60500000
uenv_init_devices=setenv init_usb "usb start";  setenv init_ide "ide reset";  setenv init_mmc "mmc rescan"; for devtype in $devices; do run init_$devtype; done;
uenv_load=run uenv_init_devices; setenv uenv_loaded 0; for devtype in $devices;  do for disknum in 0; do run uenv_read_disk; done; done;
uenv_read=echo loading envs from $devtype $disknum ...; if load $devtype $disknum:1 0x60500000 /boot/uEnv.txt; then setenv uenv_loaded 1; fi
uenv_read_disk=if test $devtype -eq mmc; then if $devtype part; then run uenv_read;  fi; else if $devtype part $disknum; then run uenv_read; fi;  fi
uimage_addr=0x60500000
uinitrd_addr=0x60e00000
usb_device=0:1
usb_set_bootargs=setenv bootargs console=ttyS0,115200 root=/dev/sda1 rootdelay=10

Environment size: 1988/33685500 bytes



Edited 4 time(s). Last edit at 04/12/2021 10:39AM by Miclaud.
Re: U-Boot 2015.10 for Iomega HMNHDCE
April 12, 2021 04:51PM
I saw you've update the post above. Let me take a look.

-bodhi
===========================
Forum Wiki
bodhi's corner



Edited 2 time(s). Last edit at 04/12/2021 04:52PM by bodhi.
Re: U-Boot 2015.10 for Iomega HMNHDCE
April 12, 2021 05:06PM
Miclaud,

The envs image from the HDD is not good (or non existent).
*** Warning - readenv() failed, using default environment

The default envs are set up to boot the USB rootfs.

Is that what you wanted to do? or are you trying to boot HDD rootfs? what is on the USB drive?

I guess you need to post info about this HDD. What files/partitions are in it?

The bottom line is you need to post more info when you encounter a problem.

-bodhi
===========================
Forum Wiki
bodhi's corner
Author:

Your Email:


Subject:


Spam prevention:
Please, enter the code that you see below in the input field. This is for blocking bots that try to post this form automatically. If the code is hard to read, then just try to guess it right. If you enter the wrong code, a new image is created and you get another chance to enter it right.
Message: