On Sat, Jan 11, 2014 at 12:09:11AM +1000, Ben Peddell wrote: > On 10/01/14 21:28, Russell King - ARM Linux wrote: > > On Fri, Jan 10, 2014 at 11:01:06AM +1000, Ben Peddell wrote: > >> It appears the initrd address in the devicetree structure (which is > >> filled in from what is passed by the bootloader when > >> CONFIG_ARM_ATAG_DTB_COMPAT is set) is processed _after_ the address in > >> the initrd= kernel parameter is processed. > > > > That's wrong. Kernel parameters should always override what's passed by > > boot loaders etc. > > In that case, what I saw was a bug - note that this only occurs when > DeviceTree is enabled: > > > __ __ _ _ > | \/ | __ _ _ ____ _____| | | > | |\/| |/ _` | '__\ \ / / _ \ | | > | | | | (_| | | \ V / __/ | | > |_| |_|\__,_|_| \_/ \___|_|_| > _ _ ____ _ > | | | | | __ ) ___ ___ | |_ > | | | |___| _ \ / _ \ / _ \| __| > | |_| |___| |_) | (_) | (_) | |_ > \___/ |____/ \___/ \___/ \__| ** LOADER ** > ** MARVELL BOARD: Synology Disk Station LE > > U-Boot 1.1.4 (Jul 6 2010 - 19:26:08) Marvell version: 3.4.4 > > U-Boot code: 00600000 -> 0067FFF0 BSS: -> 0068B43C > > Soc: 88F6281 A1 (DDR2) > CPU running @ 1200Mhz L2 running @ 480Mhz > SysClock = 400Mhz , TClock = 200Mhz > > DRAM CAS Latency = 6 tRP = 6 tRAS = 18 tRCD=6 > DRAM CS[0] base 0x00000000 size 128MB > DRAM Total size 128MB 16bit width > [4096kB@f8000000] Flash: 4 MB > Addresses 8M - 0M are saved for the U-Boot usage. > Mem malloc Initialization (8M - 7M): Done > Using default environment > > > CPU : Marvell Feroceon (Rev 1) > > Streaming disabled > Write allocate disabled > > Module 1 is AUDIO > > USB 0: host mode > > Synology Model: DS211j > Fan Status: Good > > Net: egiga0 [PRIME] > Hit any key to stop autoboot: 0 > Marvell>> setenv ipaddr 192.168.200.62 > Marvell>> setenv serverip 192.168.200.16 > Marvell>> tftp 0x01000000 uImage-3.13-rc7-ds211j-git-fdt > Using egiga0 device > TFTP from server 192.168.200.16; our IP address is 192.168.200.62 > Filename 'uImage-3.13-rc7-ds211j-git-fdt'. > Load address: 0x1000000 > Loading: ################################################################# > ################################################################# > ################################################################# > ################################################################# > ################################################################# > ######################################################### > done So here you load the kernel into RAM at 0x0100 0000. > Bytes transferred = 1954736 (1dd3b0 hex) > Marvell>> setenv bootargs console=ttyS0,115200 ip=off initrd=0x00800040,0x0013FFC0 root=/dev/md0 rw syno_hw_version=DS211j ihd_num=2 netif_num=1 earlyprintk I don't see you loading the initrd into RAM at 0x0080 0000. > Marvell>> bootm 0x01000000 0xf8280000 And here you tell it the initrd is at 0xf8280000. > ## Booting image at 01000000 ... > Bad Magic Number > Marvell>> tftp 0x01000000 uImage-3.13-rc7-ds211j-git-fdt > Using egiga0 device > TFTP from server 192.168.200.16; our IP address is 192.168.200.62 > Filename 'uImage-3.13-rc7-ds211j-git-fdt'. > Load address: 0x1000000 > Loading: ################################################################# > ################################################################# > ################################################################# > ################################################################# > ################################################################# > ######################################################### > done > Bytes transferred = 1954800 (1dd3f0 hex) > Marvell>> bootm 0x01000000 0xf8280000 > ## Booting image at 01000000 ... > Image Name: linux-3.13-rc7-ds211j+ > Image Type: ARM Linux Kernel Image (uncompressed) > Data Size: 1954736 Bytes = 1.9 MB > Load Address: 00008000 > Entry Point: 00008000 > Verifying Checksum ... OK > OK > ## Loading Ramdisk Image at f8280000 ... > Image Name: altair-boot > Image Type: ARM Linux RAMDisk Image (unknown compression) > Data Size: 1022268 Bytes = 998.3 kB > Load Address: 00800000 > Entry Point: 00800000 > Verifying Checksum ... OK > > Starting kernel ... > > Uncompressing Linux... done, booting the kernel. > [ 0.000000] Booting Linux on physical CPU 0x0 > [ 0.000000] Linux version 3.13.0-rc7-ds211j+ (root@lurch) (gcc version 4.8.2 (Gentoo 4.8.2 p1.3, pie-0.5.8) ) #2 Thu Jan 9 08:52:24 EST 2014 > [ 0.000000] CPU: Feroceon 88FR131 [56251311] revision 1 (ARMv5TE), cr=00053977 > [ 0.000000] CPU: VIVT data cache, VIVT instruction cache > [ 0.000000] Machine model: Synology DS210 v10, v20, v30, DS211j > [ 0.000000] bootconsole [earlycon0] enabled > [ 0.000000] INITRD: 0xf8280040+0x000f993c is not a memory region - disabling initrd The kernel is correct. There is no RAM here. That is in the IOMEM space. Andrew -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html