Skip to contentSkip to conversation

Trying to boot Panda with DT

DISCUSSION Tomi Valkeinen 3 participants 6 messages Dec 13, 2011

lore
Share & tools
lore
#0 lore raw

Hi,

I'm trying to boot Pandaboard ES with DT, but failing. I've debugged the problem enough to see that the bootloader properly loads the DT blob, and passes it to the kernel, but the kernel sees only garbage at that address, and the devtree->magic check fails in setup_machine_fdt(). I presume something overwrites it.

I'm using Pandaboard ES (so omap 4460), Benoit's "for_3.3/1_omap_dt_i2c_twl_test" branch, u-boot from Linaro
(git://git.linaro.org/boot/u-boot-linaro-stable.git master). My u-boot boot-script is below.

Should the setup work? What setup do you have? Any ideas what could be wrong?

Tomi

u-boot boot script:
-------------------

set netmask 255.255.255.0
set ipaddr 192.168.1.15
set serverip 192.168.1.1

set kaddr 0x82000000
set dtbaddr 0x85000000

set bootcmd 'tftpboot ${kaddr} uImage; tftpboot ${dtbaddr} omap4-panda.dtb; fdt addr ${dtbaddr}; fdt resize; bootm ${kaddr} - ${dtbaddr}'

set bootargs 'console=ttyO2,115200n8 root=/dev/nfs nfsroot=192.168.1.1:/tftpboot/rootfs,tcp,nolock,rsize=1024,wsize=1024 ip=192.168.1.15:::::eth0: vram=36M rootdelay=1 no_console_suspend debug earlyprintk console loglevel=8'

usb start

boot

boot log (with added debug prints)
----------------------------------

## Booting kernel from Legacy Image at 82000000 ...

   Image Name:   Linux-3.2.0-rc1-00014-g4d66c8f-d
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    3664960 Bytes = 3.5 MiB

Load Address: 80008000
Entry Point: 80008000
Verifying Checksum ... OK
## Flattened Device Tree blob at 85000000
Booting using the fdt blob at 0x85000000 Loading Kernel Image ... OK
OK
reserving fdt memory region: addr=9d000000 size=3000000 reserving fdt memory region: addr=85000000 size=1000 Loading Device Tree to bfef3000, end bfef6fff ... OK

Starting kernel ...

Uncompressing Linux... done, booting the kernel.
DT phys bfef3000, virt ffef3000
illegal DT magic
Warning: Neither atags nor dtb found

#1 lore raw
Quoted 11 lines · Tomi Valkeinen

Hi,

I'm trying to boot Pandaboard ES with DT, but failing. I've debugged the problem enough to see that the bootloader properly loads the DT blob, and passes it to the kernel, but the kernel sees only garbage at that address, and the devtree->magic check fails in setup_machine_fdt(). I presume something overwrites it.

I'm using Pandaboard ES (so omap 4460), Benoit's "for_3.3/1_omap_dt_i2c_twl_test" branch, u-boot from Linaro
(git://git.linaro.org/boot/u-boot-linaro-stable.git master). My u-boot

I used the u-boot from here and it worked fine for me, not sure if its any different.
git://git.secretlab.ca/git/u-boot devicetree/linaro-stable

Quoted 51 lines

boot-script is below.

Should the setup work? What setup do you have? Any ideas what could be wrong?

Tomi

u-boot boot script:
-------------------

set netmask 255.255.255.0
set ipaddr 192.168.1.15
set serverip 192.168.1.1

set kaddr 0x82000000
set dtbaddr 0x85000000

set bootcmd 'tftpboot ${kaddr} uImage; tftpboot ${dtbaddr} omap4-panda.dtb; fdt addr ${dtbaddr}; fdt resize; bootm ${kaddr} - ${dtbaddr}'

set bootargs 'console=ttyO2,115200n8 root=/dev/nfs nfsroot=192.168.1.1:/tftpboot/rootfs,tcp,nolock,rsize=1024,wsize=1024 ip=192.168.1.15:::::eth0: vram=36M rootdelay=1 no_console_suspend debug earlyprintk console loglevel=8'

usb start

boot

boot log (with added debug prints)
----------------------------------

## Booting kernel from Legacy Image at 82000000 ...

    Image Name:   Linux-3.2.0-rc1-00014-g4d66c8f-d
    Image Type:   ARM Linux Kernel Image (uncompressed)
    Data Size:    3664960 Bytes = 3.5 MiB
    Load Address: 80008000
    Entry Point:  80008000
    Verifying Checksum ... OK

## Flattened Device Tree blob at 85000000
Booting using the fdt blob at 0x85000000
Loading Kernel Image ... OK
OK

    reserving fdt memory region: addr=9d000000 size=3000000
    reserving fdt memory region: addr=85000000 size=1000
    Loading Device Tree to bfef3000, end bfef6fff ... OK

Starting kernel ...

Uncompressing Linux... done, booting the kernel.
DT phys bfef3000, virt ffef3000
illegal DT magic
Warning: Neither atags nor dtb found

#2 lore raw
Quoted 9 lines · Rajendra Nayak
Quoted 8 lines · Tomi Valkeinen

Hi,

I'm trying to boot Pandaboard ES with DT, but failing. I've debugged the problem enough to see that the bootloader properly loads the DT blob, and passes it to the kernel, but the kernel sees only garbage at that address, and the devtree->magic check fails in setup_machine_fdt(). I presume something overwrites it.

Quoted 7 lines
Quoted 3 lines

I'm using Pandaboard ES (so omap 4460), Benoit's "for_3.3/1_omap_dt_i2c_twl_test" branch, u-boot from Linaro
(git://git.linaro.org/boot/u-boot-linaro-stable.git master). My u-boot

I used the u-boot from here and it worked fine for me, not sure if its any different.
git://git.secretlab.ca/git/u-boot devicetree/linaro-stable

That tree looks quite different than the linaro's one. But appending the DT blob to the uImage seems to work fine for me, so I'll take that to use.

Tomi

#3 lore raw
In reply to Tomi Valkeinen

Hi Tomi,

Quoted 8 lines · Tomi Valkeinen

Hi,

I'm trying to boot Pandaboard ES with DT, but failing. I've debugged the problem enough to see that the bootloader properly loads the DT blob, and passes it to the kernel, but the kernel sees only garbage at that address, and the devtree->magic check fails in setup_machine_fdt(). I presume something overwrites it.

Quoted 4 lines

I'm using Pandaboard ES (so omap 4460), Benoit's "for_3.3/1_omap_dt_i2c_twl_test" branch, u-boot from Linaro
(git://git.linaro.org/boot/u-boot-linaro-stable.git master). My u-boot boot-script is below.

I've just sent a patch to add the default DT config for OMAP. It will add these config into the OMAP2plus Kconfig.

+ select USE_OF
+ select ARM_APPENDED_DTB
+ select ARM_ATAG_DTB_COMPAT
+ select PROC_DEVICETREE

In theory ARM_APPENDED_DTB and ARM_ATAG_DTB_COMPAT should not be needed in your case but only for legacy u-boot. It should not messed up the DT in case of DT aware uboot, but it worst checking if this is the case.

Quoted 2 lines

Should the setup work? What setup do you have? Any ideas what could be wrong?

I'm still using a legacy u-boot with the appended option and it works fine with the previous config.

Rajendra should use the setting you are trying to use.

Regards,
Benoit

Quoted 47 lines

Tomi

u-boot boot script:
-------------------

set netmask 255.255.255.0
set ipaddr 192.168.1.15
set serverip 192.168.1.1

set kaddr 0x82000000
set dtbaddr 0x85000000

set bootcmd 'tftpboot ${kaddr} uImage; tftpboot ${dtbaddr} omap4-panda.dtb; fdt addr ${dtbaddr}; fdt resize; bootm ${kaddr} - ${dtbaddr}'

set bootargs 'console=ttyO2,115200n8 root=/dev/nfs nfsroot=192.168.1.1:/tftpboot/rootfs,tcp,nolock,rsize=1024,wsize=1024 ip=192.168.1.15:::::eth0: vram=36M rootdelay=1 no_console_suspend debug earlyprintk console loglevel=8'

usb start

boot

boot log (with added debug prints)
----------------------------------

## Booting kernel from Legacy Image at 82000000 ...

    Image Name:   Linux-3.2.0-rc1-00014-g4d66c8f-d
    Image Type:   ARM Linux Kernel Image (uncompressed)
    Data Size:    3664960 Bytes = 3.5 MiB
    Load Address: 80008000
    Entry Point:  80008000
    Verifying Checksum ... OK

## Flattened Device Tree blob at 85000000
Booting using the fdt blob at 0x85000000
Loading Kernel Image ... OK
OK

    reserving fdt memory region: addr=9d000000 size=3000000
    reserving fdt memory region: addr=85000000 size=1000
    Loading Device Tree to bfef3000, end bfef6fff ... OK

Starting kernel ...

Uncompressing Linux... done, booting the kernel.
DT phys bfef3000, virt ffef3000
illegal DT magic
Warning: Neither atags nor dtb found

#4 lore raw
Quoted 9 lines · Benoit

I've just sent a patch to add the default DT config for OMAP. It will add these config into the OMAP2plus Kconfig.

(quoted diff) +4 -0
+    select USE_OF
+    select ARM_APPENDED_DTB
+    select ARM_ATAG_DTB_COMPAT
+    select PROC_DEVICETREE
Quoted 4 lines

In theory ARM_APPENDED_DTB and ARM_ATAG_DTB_COMPAT should not be needed in your case but only for legacy u-boot.
It should not messed up the DT in case of DT aware uboot, but it worst checking if this is the case.

I don't think thats a problem as I have those options enabled and am able to boot with the DT aware uboot.

#5 lore raw
Quoted 10 lines · Rajendra Nayak
Quoted 9 lines · Benoit

I've just sent a patch to add the default DT config for OMAP. It will add these config into the OMAP2plus Kconfig.

+ select USE_OF
+ select ARM_APPENDED_DTB
+ select ARM_ATAG_DTB_COMPAT
+ select PROC_DEVICETREE

Quoted 7 lines
Quoted 4 lines

In theory ARM_APPENDED_DTB and ARM_ATAG_DTB_COMPAT should not be needed in your case but only for legacy u-boot.
It should not messed up the DT in case of DT aware uboot, but it worst checking if this is the case.

I don't think thats a problem as I have those options enabled and am able to boot with the DT aware uboot.

OK cool, I was not sure but that's much better... Let's assume that this is due to a broken u-boot then :-)

Thanks,
Benoit