Upgrading U-Boot stops Linux booting.
Hi,
I am having some trouble and wondered if anyone has any suggestions.
I have a iMX6 (Quad core, 1Gb Ram) based board by Digi.com. It follows pretty closely the Sabrelite reference design.
I am trying to boot Android from SATA on this board. Booting from the SD card works fine, using the u-boot supplied with Android, however booting from SATA hangs.
I get the following boot output when booting from SD
U-Boot 2013.04 - dub-2.3.0.3-git (Mar 20 2015 - 19:01:46)
CPU: Freescale i.MX6Q rev1.5 at 792 MHz CPU: Temperature 22 C, calibration data: 0x57f4e869
reading uImage-ccimx6sbc.bin
4773736 bytes read in 233 ms (19.5 MiB/s) reading uImage-imx6q-ccimx6sbc.dtb
** Unable to read file uImage-imx6q-ccimx6sbc.dtb ** reading uramdisk.img
278888 bytes read in 30 ms (8.9 MiB/s)
## Booting kernel from Legacy Image at 12000000 ...
Image Name: Linux-3.0.35 Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 4773672 Bytes = 4.6 MiB
Load Address: 10008000
Entry Point: 10008000
Verifying Checksum ... OK
## Loading init Ramdisk from Legacy Image at 19000000 ...
Image Name: Android u-boot ramdisk Image Type: ARM Linux RAMDisk Image (gzip compressed) Data Size: 278824 Bytes = 272.3 KiB
Load Address: 00000000
Entry Point: 00000000
Verifying Checksum ... OK
Loading Kernel Image ... OK
OK
Starting kernel ...
Uncompressing Linux... done, booting the kernel.
Initializing cgroup subsys cpu
Linux version 3.0.35 (ben at FNR-BEN-PC) (gcc version 4.6.x-google 20120106 (prerelease) (GCC) ) #6 SMP PREEMPT Thu Apr 23 10:35:09 BST 2015
However this version of u-boot hangs when trying to boot from SATA. For the same board I am also booting a version of Linux, with a newer u-boot.
U-Boot 2014.10-00573-g11ada92-dirty (Apr 08 2015 - 09:20:20)
CPU: Freescale i.MX6Q rev1.5 at 792 MHz
Booting from mmc ...
reading uImage
4213792 bytes read in 249 ms (16.1 MiB/s) reading imx6q-ccimx6sbc.dtb
51277 bytes read in 21 ms (2.3 MiB/s)
## Booting kernel from Legacy Image at 12000000 ...
Image Name: Linux-3.10.54-dey+gb1b3828 Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 4213728 Bytes = 4 MiB
Load Address: 10008000
Entry Point: 10008000
Verifying Checksum ... OK
## Flattened Device Tree blob at 18000000
Booting using the fdt blob at 0x18000000 Loading Kernel Image ... OK
Using Device Tree in place at 18000000, end 1800f84c
Starting kernel ...
Booting Linux on physical CPU 0x0
Linux version 3.10.54-dey+gb1b3828 (ben at FNR-BEN-PC) (gcc version 4.8.3 (Buildroot 2014.11-rc2-00045-g3036252-dirty) ) #3 SMP Tue Jan 20 13:56:05 GMT 2015
Newer kernel and u-boot and everything boots.
Now if I try this newer version of u-boot with the Android kernel and do the following
U-Boot > sata device 0
SATA device 0: Model: ATP IG SlimSATA Firm: 20130702 Ser#:
99001140331004000001
Type: Hard Disk
Capacity: 3775.5 MB = 3.6 GB (7732368 x 512)
... is now current device
U-Boot > fatload sata 0:1 0x12000000 uimage-ccimx6sbc.bin reading uimage-ccimx6sbc.bin
4773736 bytes read in 91 ms (50 MiB/s)
U-Boot > fatload sata 0:1 0x19000000 uramdisk.img reading uramdisk.img
278888 bytes read in 13 ms (20.5 MiB/s)
U-Boot > bootm 0x12000000 0x19000000
## Booting kernel from Legacy Image at 12000000 ...
Image Name: Linux-3.0.35 Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 4773672 Bytes = 4.6 MiB
Load Address: 10008000
Entry Point: 10008000
Verifying Checksum ... OK
## Loading init Ramdisk from Legacy Image at 19000000 ...
Image Name: Android u-boot ramdisk Image Type: ARM Linux RAMDisk Image (gzip compressed) Data Size: 278824 Bytes = 272.3 KiB
Load Address: 00000000
Entry Point: 00000000
Verifying Checksum ... OK
Loading Kernel Image ... OK
Starting kernel ...
and then the kernel just seems to hang.
The entry points and load addresses are the same, so I am not sure what is happening.
Is there something obvious I am missing ?
I would rather use a newer u-boot than try to retro fit and SATA changes to the older version.
many thanks for any help
Ben
Hi Ben,
Quoted 6 lines · Ben Hewson
Hi,
I am having some trouble and wondered if anyone has any suggestions.
I have a iMX6 (Quad core, 1Gb Ram) based board by Digi.com. It follows
pretty
Quoted 3 lines
closely the Sabrelite reference design.
I am trying to boot Android from SATA on this board. Booting from the SD
card
Quoted 1 line
works fine, using the u-boot supplied with Android, however booting from
SATA
Quoted 35 lines
hangs.
I get the following boot output when booting from SD
U-Boot 2013.04 - dub-2.3.0.3-git (Mar 20 2015 - 19:01:46)
CPU: Freescale i.MX6Q rev1.5 at 792 MHz CPU: Temperature 22 C, calibration data: 0x57f4e869reading uImage-ccimx6sbc.bin
4773736 bytes read in 233 ms (19.5 MiB/s) reading uImage-imx6q-ccimx6sbc.dtb
** Unable to read file uImage-imx6q-ccimx6sbc.dtb ** reading uramdisk.img
278888 bytes read in 30 ms (8.9 MiB/s)
## Booting kernel from Legacy Image at 12000000 ...Image Name: Linux-3.0.35 Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 4773672 Bytes = 4.6 MiBLoad Address: 10008000
Entry Point: 10008000
Verifying Checksum ... OK
## Loading init Ramdisk from Legacy Image at 19000000 ...Image Name: Android u-boot ramdisk Image Type: ARM Linux RAMDisk Image (gzip compressed) Data Size: 278824 Bytes = 272.3 KiBLoad Address: 00000000
Entry Point: 00000000
Verifying Checksum ... OK
Loading Kernel Image ... OK
OKStarting kernel ...
Quoted 7 lines
Uncompressing Linux... done, booting the kernel.
Initializing cgroup subsys cpu
Linux version 3.0.35 (ben at FNR-BEN-PC) (gcc version 4.6.x-google 20120106 (prerelease) (GCC) ) #6 SMP PREEMPT Thu Apr 23 10:35:09 BST 2015However this version of u-boot hangs when trying to boot from SATA. For the same board I am also booting a version of Linux, with a newer
u-boot.
Quoted 24 lines
U-Boot 2014.10-00573-g11ada92-dirty (Apr 08 2015 - 09:20:20)
CPU: Freescale i.MX6Q rev1.5 at 792 MHz
Booting from mmc ...
reading uImage
4213792 bytes read in 249 ms (16.1 MiB/s) reading imx6q-ccimx6sbc.dtb
51277 bytes read in 21 ms (2.3 MiB/s)
## Booting kernel from Legacy Image at 12000000 ...Image Name: Linux-3.10.54-dey+gb1b3828 Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 4213728 Bytes = 4 MiBLoad Address: 10008000
Entry Point: 10008000
Verifying Checksum ... OK
## Flattened Device Tree blob at 18000000
Booting using the fdt blob at0x18000000Loading Kernel Image ... OK
Using Device Tree in place at 18000000, end1800f84c
Quoted 5 lines
Starting kernel ...
Booting Linux on physical CPU
0x0
Linux version 3.10.54-dey+gb1b3828 (ben at FNR-BEN-PC) (gcc version 4.8.3 (Buildroot 2014.11-rc2-00045-g3036252-dirty) ) #3 SMP Tue Jan 20 13:56:05
GMT
Quoted 6 lines
2015
Newer kernel and u-boot and everything boots.
Now if I try this newer version of u-boot with the Android kernel and do
the
Quoted 38 lines
following
U-Boot > sata device 0
SATA device 0: Model: ATP IG SlimSATA Firm: 20130702 Ser#:
99001140331004000001
Type: Hard Disk
Capacity: 3775.5 MB = 3.6 GB (7732368 x 512)
... is now current device
U-Boot > fatload sata 0:10x12000000uimage-ccimx6sbc.bin reading uimage-ccimx6sbc.bin
4773736 bytes read in 91 ms (50 MiB/s)
U-Boot > fatload sata 0:10x19000000uramdisk.img reading uramdisk.img
278888 bytes read in 13 ms (20.5 MiB/s)
U-Boot > bootm0x120000000x19000000## Booting kernel from Legacy Image at 12000000 ...
Image Name: Linux-3.0.35 Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 4773672 Bytes = 4.6 MiBLoad Address: 10008000
Entry Point: 10008000
Verifying Checksum ... OK
## Loading init Ramdisk from Legacy Image at 19000000 ...Image Name: Android u-boot ramdisk Image Type: ARM Linux RAMDisk Image (gzip compressed) Data Size: 278824 Bytes = 272.3 KiBLoad Address: 00000000
Entry Point: 00000000
Verifying Checksum ... OK
Loading Kernel Image ... OKStarting kernel ...
Quoted 8 lines
and then the kernel just seems to hang.
The entry points and load addresses are the same, so I am not sure what is happening.
Is there something obvious I am missing ?
I would rather use a newer u-boot than try to retro fit and SATA changes
to
Quoted 3 lines
the older version.
many thanks for any help
Missing device tree?
Regards,
Simon
Quoted 11 lines
Ben
_______________________________________________
U-Boot mailing list
U-Boot at lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot
Hi Simon,
Thanks for the suggestion.
I actually sorted it out late yesterday. A stupid error I suppose, but one that I completely over looked.
I turned on CONFIG_DEBUG_LL in the kernel, tried again and it complained about the machine id not matching.
I just needed to change CONFIG_MACH_TYPE to the correct number in U-Boot.
I didn't realise until after some googling that this was done. I just assumed U-Boot did a jump to the kernel start and that was it. Still live and learn !
The only issue I have now, is that if I enable CONFIG_ENV_IS_IN_FAT U-Boot tries to load the environment before the SATA is initialised and fails. If I do sata init at the U-Boot prompt, I can save the environment, but that is not much use if it isnt loaded at boot.
I can probably live without being able to save the environment, but would be nice to have the option. I did notice after having a quick look through the code that there appears to be a late load option for the environment. Can't remember exactly what it was.
many thanks
Ben
Quoted 163 lines · On Wednesday 29 Apr 2015 23:09:34 Simon Glass wrote:
Hi Ben,
Quoted 6 lines · Ben Hewson
Hi,
I am having some trouble and wondered if anyone has any suggestions.
I have a iMX6 (Quad core, 1Gb Ram) based board by Digi.com. It follows
pretty
Quoted 3 lines
closely the Sabrelite reference design.
I am trying to boot Android from SATA on this board. Booting from the SD
card
Quoted 1 line
works fine, using the u-boot supplied with Android, however booting from
SATA
Quoted 35 lines
hangs.
I get the following boot output when booting from SD
U-Boot 2013.04 - dub-2.3.0.3-git (Mar 20 2015 - 19:01:46)
CPU: Freescale i.MX6Q rev1.5 at 792 MHz CPU: Temperature 22 C, calibration data: 0x57f4e869reading uImage-ccimx6sbc.bin
4773736 bytes read in 233 ms (19.5 MiB/s) reading uImage-imx6q-ccimx6sbc.dtb
** Unable to read file uImage-imx6q-ccimx6sbc.dtb ** reading uramdisk.img
278888 bytes read in 30 ms (8.9 MiB/s)
## Booting kernel from Legacy Image at 12000000 ...Image Name: Linux-3.0.35 Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 4773672 Bytes = 4.6 MiBLoad Address: 10008000
Entry Point: 10008000
Verifying Checksum ... OK
## Loading init Ramdisk from Legacy Image at 19000000 ...Image Name: Android u-boot ramdisk Image Type: ARM Linux RAMDisk Image (gzip compressed) Data Size: 278824 Bytes = 272.3 KiBLoad Address: 00000000
Entry Point: 00000000
Verifying Checksum ... OK
Loading Kernel Image ... OK
OKStarting kernel ...
Quoted 7 lines
Uncompressing Linux... done, booting the kernel.
Initializing cgroup subsys cpu
Linux version 3.0.35 (ben at FNR-BEN-PC) (gcc version 4.6.x-google 20120106 (prerelease) (GCC) ) #6 SMP PREEMPT Thu Apr 23 10:35:09 BST 2015However this version of u-boot hangs when trying to boot from SATA. For the same board I am also booting a version of Linux, with a newer
u-boot.
Quoted 24 lines
U-Boot 2014.10-00573-g11ada92-dirty (Apr 08 2015 - 09:20:20)
CPU: Freescale i.MX6Q rev1.5 at 792 MHz
Booting from mmc ...
reading uImage
4213792 bytes read in 249 ms (16.1 MiB/s) reading imx6q-ccimx6sbc.dtb
51277 bytes read in 21 ms (2.3 MiB/s)
## Booting kernel from Legacy Image at 12000000 ...Image Name: Linux-3.10.54-dey+gb1b3828 Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 4213728 Bytes = 4 MiBLoad Address: 10008000
Entry Point: 10008000
Verifying Checksum ... OK
## Flattened Device Tree blob at 18000000
Booting using the fdt blob at0x18000000Loading Kernel Image ... OK
Using Device Tree in place at 18000000, end1800f84cQuoted 5 lines
Starting kernel ...
Booting Linux on physical CPU
0x0
Linux version 3.10.54-dey+gb1b3828 (ben at FNR-BEN-PC) (gcc version 4.8.3 (Buildroot 2014.11-rc2-00045-g3036252-dirty) ) #3 SMP Tue Jan 20 13:56:05GMT
Quoted 6 lines
2015
Newer kernel and u-boot and everything boots.
Now if I try this newer version of u-boot with the Android kernel and do
the
Quoted 38 lines
following
U-Boot > sata device 0
SATA device 0: Model: ATP IG SlimSATA Firm: 20130702 Ser#:
99001140331004000001
Type: Hard Disk
Capacity: 3775.5 MB = 3.6 GB (7732368 x 512)
... is now current device
U-Boot > fatload sata 0:10x12000000uimage-ccimx6sbc.bin reading uimage-ccimx6sbc.bin
4773736 bytes read in 91 ms (50 MiB/s)
U-Boot > fatload sata 0:10x19000000uramdisk.img reading uramdisk.img
278888 bytes read in 13 ms (20.5 MiB/s)
U-Boot > bootm0x120000000x19000000## Booting kernel from Legacy Image at 12000000 ...
Image Name: Linux-3.0.35 Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 4773672 Bytes = 4.6 MiBLoad Address: 10008000
Entry Point: 10008000
Verifying Checksum ... OK
## Loading init Ramdisk from Legacy Image at 19000000 ...Image Name: Android u-boot ramdisk Image Type: ARM Linux RAMDisk Image (gzip compressed) Data Size: 278824 Bytes = 272.3 KiBLoad Address: 00000000
Entry Point: 00000000
Verifying Checksum ... OK
Loading Kernel Image ... OKStarting kernel ...
Quoted 8 lines
and then the kernel just seems to hang.
The entry points and load addresses are the same, so I am not sure what is happening.
Is there something obvious I am missing ?
I would rather use a newer u-boot than try to retro fit and SATA changes
to
Quoted 3 lines
the older version.
many thanks for any help
Missing device tree?
Regards,
SimonQuoted 11 lines
Ben
_______________________________________________
U-Boot mailing list
U-Boot at lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot
Hi Ben,
Quoted 19 lines · Ben Hewson
Hi Simon,
Thanks for the suggestion.
I actually sorted it out late yesterday. A stupid error I suppose, but one that I completely over looked.I turned on
CONFIG_DEBUG_LLin the kernel, tried again and it complained about the machine id not matching.I just needed to change
CONFIG_MACH_TYPEto the correct number in U-Boot.I didn't realise until after some googling that this was done. I just assumed U-Boot did a jump to the kernel start and that was it. Still live and learn !
The only issue I have now, is that if I enable
CONFIG_ENV_IS_IN_FATU-Boot tries to load the environment before the SATA is initialised and fails. If I do sata init at the U-Boot prompt, I can save the environment, but that is not much use if it isnt loaded at boot.
Quoted 4 lines
I can probably live without being able to save the environment, but would be nice to have the option. I did notice after having a quick look through the code that there appears to be a late load option for the environment. Can't remember exactly what it was.
OK, I'm not sure about environment on SATA. It looks like initr_env() is called before initr_pci() and initr_scsi() so you might be out of luck for now.
Regards,
Simon
[snip]