Hi Niklaus, Stefan, and all, Niklaus Giger wrote: > Hi > > It took me a evening to put everything together. Therefore I send this mail > hoping it may help somebody else. Hopefully some of the content will find > its way into the DULG/FAQ, may as point 14.3.30. "Booting using flattened > device tree (FDT)"
Niklaus, thank you for putting together this howto. It did help me. I also have a couple of comments and questions. > First one needs a recent U-boot with FDT support compiled into, e.g > 1.3.2-rc3-g772003e4-dirty (Apr 11 2008 - 15:56:0 for the sequoia board. > > Secone one needs a recent Linux kernel made using "ARCH=powerpc", e.g. from > 2.6.25-00002-ga9bf9f0 from git://www.denx.de/git/linux-2.6-denx.git. > > Third one needs a recent dtc (Device Tree Compiler). The following commands > $ git clone http://www.jdl.com/software/dtc.git > $ cd dtc && make && sudo cp dtc /usr/local/bin > should do the job. > > Now you are ready to compile the device tree blob. I used the commands given > in > http://www.denx.de/wiki/view/DULG/LinuxFDTBlob > dtc -b 0 -V 17 -R 4 -S 0x3000 -I dts -O dtb -f > arch/powerpc/boot/dts/sequoia.dts \ >> /tftpboot/sequoia/sequoia.dtb BTW, because the ">" before "/tftpboot/sequoia/sequoia.dtb" is the first character on the line, Thunderbird displays it as a quote. > Now power up your sequoia board and execute the following commands to start a > Linux kernel on a NFS root device. The following commands did the job for me: > >> Hit any key to stop autoboot: 0 >> => tftp 200000 /tftpboot/sequoia/uImage >> Waiting for PHY auto negotiation to complete.. done >> ENET Speed is 100 Mbps - FULL duplex connection (EMAC0) >> Using ppc_4xx_eth0 device >> TFTP from server 172.25.1.3; our IP address is 172.25.1.88 >> Filename '/tftpboot/sequoia/uImage'. >> Load address: 0x200000 >> Loading: ################################################################# >> ###################### >> done >> Bytes transferred = 1277067 (137c8b hex) >> => tftp 1000000 /tftpboot/sequoia/sequoia.dtb >> ENET Speed is 100 Mbps - FULL duplex connection (EMAC0) >> Using ppc_4xx_eth0 device >> TFTP from server 172.25.1.3; our IP address is 172.25.1.88 >> Filename '/tftpboot/sequoia/sequoia.dtb'. >> Load address: 0x1000000 >> Loading: # >> done >> Bytes transferred = 12288 (3000 hex) >> => run nfsargs addip addtty >> => printenv bootargs >> bootargs=root=/dev/nfs rw nfsroot=172.25.1.3:/opt/eldk/ppc_4xxFP >> ip=172.25.1.88:172.25.1.3:::sequoia:eth0:off panic=1 console=ttyS0,115200 The "sequoia.dts" file in linux-2.6-denx contains a line specifying "bootargs", and this apparently overrides the environment variable, as can be seen by typing "cat /proc/cmdline" under Linux. >> => fdt addr 1000000 >> => fdt chosen >> => fdt list > <...> >> => fdt print > <...> >> => bootm 200000 - 1000000 >> ## Booting image at 00200000 ... When I run this using U-Boot 1.3.3, it tells me that it's booting a "Legacy Image". Is this correct? >> Image Name: Linux-2.6.25-00002-ga9bf9f0 >> Image Type: PowerPC Linux Kernel Image (gzip compressed) >> Data Size: 1277003 Bytes = 1.2 MB >> Load Address: 00000000 >> Entry Point: 00000000 >> Verifying Checksum ... OK >> Uncompressing Kernel Image ... OK >> Booting using the fdt at 0x1000000 >> Loading Device Tree to 007fc000, end 007fefff ... OK >> Using Sequoia machine description > <...> > > Thats it. Now you should boot into your shiny new Linux kernel. Attached is > a gzipped output of my startup (for the curious). > > Once my kernel started I used the following commands to update my u-boot > environment: >> setenv ftd_get 'tftp 200000 ${bootfile};tftp 1000000 sequoia/sequoia.dtb;fdt >> addr 1000000;' >> setenv net_nfs 'run ftd_get nfsargs addip addtty; fdt chosen;bootm 200000 - >> 1000000' >> saveenv > > Best regards > > Niklaus I normally test Linux by booting Sequoia from the flash images distributed by AMCC. The flash partition information in "sequoia.dts" is for an early distribution (Rev. 2, I think). The latest distribution I have is Rev. 6. (Is there anything later?) The following patch updates the partition information for Rev 6. It also comments out the "bootargs" definition, so I can specify it from U-Boot. diff --git a/arch/powerpc/boot/dts/sequoia.dts b/arch/powerpc/boot/dts/sequoia.dts index 96dbe49..181b796 100644 --- a/arch/powerpc/boot/dts/sequoia.dts +++ b/arch/powerpc/boot/dts/sequoia.dts @@ -168,32 +168,36 @@ [EMAIL PROTECTED],0 { compatible = "amd,s29gl256n", "cfi-flash"; bank-width = <2>; - reg = <0 000000 4000000>; + reg = <0 0000000 4000000>; #address-cells = <1>; #size-cells = <1>; - [EMAIL PROTECTED] { + [EMAIL PROTECTED] { label = "Kernel"; - reg = <0 180000>; + reg = <0000000 0200000>; }; - [EMAIL PROTECTED] { + [EMAIL PROTECTED] { + label = "kozio"; + reg = <0200000 0200000>; + }; + [EMAIL PROTECTED] { label = "ramdisk"; - reg = <180000 200000>; + reg = <0400000 1400000>; }; - [EMAIL PROTECTED] { + [EMAIL PROTECTED] { label = "file system"; - reg = <380000 3aa0000>; + reg = <1800000 0400000>; }; - [EMAIL PROTECTED] { - label = "kozio"; - reg = <3e20000 140000>; + [EMAIL PROTECTED] { + label = "unused"; + reg = <1c00000 2360000>; }; [EMAIL PROTECTED] { label = "env"; - reg = <3f60000 40000>; + reg = <3f60000 0040000>; }; [EMAIL PROTECTED] { label = "u-boot"; - reg = <3fa0000 60000>; + reg = <3fa0000 0060000>; }; }; @@ -359,6 +363,6 @@ chosen { linux,stdout-path = "/plb/opb/[EMAIL PROTECTED]"; - bootargs = "console=ttyS0,115200"; +/* bootargs = "console=ttyS0,115200"; */ }; }; Best regards, Larry ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ U-Boot-Users mailing list U-Boot-Users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/u-boot-users