Hello I'm hoping someone can help point out the way to make U-Boot work with Flattened Device Tree on the SheevaPlug.
I have the same Linux 3.15.1 kernel binary running on the OpenRD client, but the OpenRD client has support baked into the kernel (presumably because the OpenRD client has no newer version of U-Boot that can support FDT). On the SheevaPlug I upgraded from the original Marvell u-boot to the version here: http://www.cyrius.com/debian/kirkwood/sheevaplug/uboot-upgrade/ I don't believe that the sheevaplug is actually an eSATA version - it doesn't have an eSATA port -- maybe there's just support on board. U-Boot 2011.12 (Mar 11 2012 - 18:59:46) Marvell-Sheevaplug - eSATA - SD/MMC SoC: Kirkwood 88F6281_A0 DRAM: 512 MiB WARNING: Caches not enabled NAND: 512 MiB In: serial Out: serial Err: serial Net: egiga0 88E1116 Initialized on egiga0 Hit any key to stop autoboot: 0 Marvell>> It has a standard setup from having re-flashed u-boot, apart from I added setenv machid=a76 Marvell>> print baudrate=115200 bootcmd=${x_bootcmd_kernel}; setenv bootargs ${x_bootargs} ${x_bootargs_root}; ${x_bootcmd_usb}; ${x_bootcmd_sata}; bootm 0x6400000; bootdelay=3 ethact=egiga0 ethaddr=00:50:43:cc:34:2b machid=a76 stderr=serial stdin=serial stdout=serial x_bootargs=console=ttyS0,115200 mtdparts=orion_nand:512k(uboot),4m@1m(kernel),507m@5m(rootfs) rw x_bootargs_root=ubi.mtd=2 root=ubi0:rootfs rootfstype=ubifs x_bootcmd_kernel=nand read 0x6400000 0x100000 0x400000 x_bootcmd_sata=ide reset; x_bootcmd_usb=usb start; Environment size: 545/131068 bytes Marvell>> dhcp;tftpboot 0x5880000 slackwarearm-current/dtb/kirkwood-sheevaplug.dtb BOOTP broadcast 1 *** Unhandled DHCP Option in OFFER/ACK: 28 *** Unhandled DHCP Option in OFFER/ACK: 43 *** Unhandled DHCP Option in OFFER/ACK: 28 *** Unhandled DHCP Option in OFFER/ACK: 43 DHCP client bound to address 192.168.1.19 Using egiga0 device TFTP from server 192.168.1.1; our IP address is 192.168.1.19 Filename 'pxelinux.0'. Load address: 0x800000 Loading: # done Bytes transferred = 11826 (2e32 hex) Using egiga0 device TFTP from server 192.168.1.1; our IP address is 192.168.1.19 Filename 'dtb/kirkwood-sheevaplug.dtb'. Load address: 0x5880000 Loading: # done Bytes transferred = 9779 (2633 hex) Marvell>> tftpboot 0x01100000 initrd-kirkwood.img Using egiga0 device TFTP from server 192.168.1.1; our IP address is 192.168.1.19 Filename 'slackwarearm-current/uinitrd-kirkwood.img'. Load address: 0x1100000 Loading: ################################################################# [ .. snip .. ] done Bytes transferred = 18873744 (11ffd90 hex) Marvell>> tftpboot 0x00800000 uImage-kirkwood Using egiga0 device TFTP from server 192.168.1.1; our IP address is 192.168.1.19 Filename 'slackwarearm-current/uImage-kirkwood'. Load address: 0x800000 Loading: ################################################################# [..snip..] done Bytes transferred = 2547312 (26de70 hex) Marvell>> Marvell>> setenv bootargs earlyprintk console=ttyS0,115200n8 kbd=uk nic=auto:eth0:dhcp root=/dev/ram rw Marvell>> bootm 0x00800000 0x01100000 0x5880000 ## Booting kernel from Legacy Image at 00800000 ... Image Name: Linux-3.15.1-kirkwood Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 2547248 Bytes = 2.4 MiB Load Address: 00008000 Entry Point: 00008000 Verifying Checksum ... OK ## Loading init Ramdisk from Legacy Image at 01100000 ... Image Name: Installer Image Type: ARM Linux RAMDisk Image (gzip compressed) Data Size: 18873680 Bytes = 18 MiB Load Address: 00000000 Entry Point: 00000000 Verifying Checksum ... OK Loading Kernel Image ... OK OK Using machid 0xa76 from environment Starting kernel ... Uncompressing Linux... done, booting the kernel. Error: unrecognized/unsupported machine ID (r1 = 0x00000a76). Available machine support: ID (hex) NAME 0000089b LaCie d2 Network v2 0000089e LaCie 5Big Network v2 0000089c LaCie 2Big Network v2 00000b44 Marvell OpenRD Ultimate Board 00000939 Marvell OpenRD Client Board 00000915 Marvell OpenRD Base Board 00000691 Marvell RD-88F6192-NAS Development Board 00000692 Marvell RD-88F6281 Reference Board 00000b1e HP t5325 Thin Client 0000085b QNAP TS-119/TS-219 000009c6 QNAP TS-41x ffffffff Marvell Kirkwood (Flattened Device Tree) Please check your kernel config and/or bootloader. ....So I changed machid to ffffffff and tried again with exactly the same boot parameters as above:- ..... Using machid 0xffffffff from environment Starting kernel ... Uncompressing Linux... done, booting the kernel. [ 0.000000] Booting Linux on physical CPU 0x0 [ 0.000000] Initializing cgroup subsys cpuacct [ 0.000000] Linux version 3.15.1-kirkwood (root@pepa) (gcc version 4.8.3 (GCC) ) #2 Thu Jun 19 21:11:50 BST 2014 [ 0.000000] CPU: Feroceon 88FR131 [56251311] revision 1 (ARMv5TE), cr=00053977 [ 0.000000] CPU: VIVT data cache, VIVT instruction cache [ 0.000000] Machine: Marvell Kirkwood (Flattened Device Tree) [ 0.000000] bootconsole [earlycon0] enabled [ 0.000000] Memory policy: Data cache writeback [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 130048 [ 0.000000] Kernel command line: earlyprintk console=ttyS0,115200n8 kbd=uk nic=auto:eth0:dhcp root=/dev/ram rw [ 0.000000] PID hash table entries: 2048 (order: 1, 8192 bytes) [ 0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes) [ 0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes) [ 0.000000] Memory: 495712K/524288K available (3431K kernel code, 250K rwdata, 1180K rodata, 188K init, 519K bss, 28576K reserved) [ 0.000000] Virtual kernel memory layout: [ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB) [ 0.000000] fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB) [ 0.000000] vmalloc : 0xe0800000 - 0xff000000 ( 488 MB) [ 0.000000] lowmem : 0xc0000000 - 0xe0000000 ( 512 MB) [ 0.000000] modules : 0xbf000000 - 0xc0000000 ( 16 MB) [ 0.000000] .text : 0xc0008000 - 0xc0488f14 (4612 kB) [ 0.000000] .init : 0xc0489000 - 0xc04b83c4 ( 189 kB) [ 0.000000] .data : 0xc04ba000 - 0xc04f8ba8 ( 251 kB) [ 0.000000] .bss : 0xc04f8ba8 - 0xc057ab8c ( 520 kB) [ 0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1 [ 0.000000] NR_IRQS:114 [ 0.000000] clocksource_of_init: no matching clocksources found [ 0.000000] sched_clock: 32 bits at 100 Hz, resolution 10000000ns, wraps every 21474836480000000ns [ 0.000000] Console: colour dummy device 80x30 And this is where it stops. The 'Machine:' line should indicate the model number (according to various posts I've found around FTD and U-Boot). The same kernel binary running on the OpenRD client has:- droot@wizbit:~# dmesg | less [ 0.000000] Booting Linux on physical CPU 0x0 [ 0.000000] Initializing cgroup subsys cpuacct [ 0.000000] Linux version 3.15.1-kirkwood (root@pepa) (gcc version 4.8.3 (GCC) ) #2 Thu Jun 19 21:11:50 BST 2014 [ 0.000000] CPU: Feroceon 88FR131 [56251311] revision 1 (ARMv5TE), cr=00053977 [ 0.000000] CPU: VIVT data cache, VIVT instruction cache [ 0.000000] Machine: Marvell OpenRD Client Board On the Sheeva I have tried both the eSATA FDT blob (the dtb file) and the regular SheevaPlug blob, both with the same result. My kernel has the support for appended DTBs so I also tried appending the FDT blob to the uImage - again for both eSATA and regular Sheevaplug: cat dtbfile.dtb >> uImage and then tried booting but this time only loading the initrd & kernel into RAM (rather than loading the DTB and specifying the address to the 'boot' command). The kernel config is http://www.polplex.co.uk/~mozes/d/config-kirkwood I believe that it's configured correctly. Does anybody have any idea why it doesn't work or how to make it work? I would prefer to load the FDT blob using u-boot rather than appending it to the Kernel blob since the version of u-boot on this Sheeva should support it. Thanks

