Hi Stuart,
I'm sorry this is going to be a non-answer as I haven't tried device tree boot on my sheevaplug. Just wanted to answer this - "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." IIRC the original sheevaplugs have the bus present on the SoC but it's not connected to anything, so there's no harm in treating them the same in software, even though the ports aren't there. On Mon, Jun 23, 2014 at 10:36 AM, Stuart Winter <giantbees...@gmail.com> wrote: > 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 > >