Skip to contentSkip to conversation

Upgrading U-Boot stops Linux booting.

U-Boot Ben Hewson 2 participants 4 messages Apr 27, 2015 – Apr 30, 2015

lore
Share & tools
lore

Ben Hewson

author
#0 lore raw

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

#1 lore raw

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: 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 ...

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 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.

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 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

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: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 ...

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

author
#2 lore raw

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: 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 ...

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 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.

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 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

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: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 ...

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

#3 lore raw

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_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.

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]