From: Larry Johnson <lrj@arlinx.com>
To: u-boot@lists.denx.de
Subject: [U-Boot-Users] A simple howto boot sequoia (ARCH=powerpc) using flattened device tree (FDT)
Date: Thu, 22 May 2008 12:58:57 -0400 [thread overview]
Message-ID: <4835A651.5030703@arlinx.com> (raw)
In-Reply-To: <200805142254.16731.niklaus.giger@member.fsf.org>
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 @@
nor_flash at 0,0 {
compatible = "amd,s29gl256n", "cfi-flash";
bank-width = <2>;
- reg = <0 000000 4000000>;
+ reg = <0 0000000 4000000>;
#address-cells = <1>;
#size-cells = <1>;
- partition at 0 {
+ partition at 0000000 {
label = "Kernel";
- reg = <0 180000>;
+ reg = <0000000 0200000>;
};
- partition at 180000 {
+ partition at 0200000 {
+ label = "kozio";
+ reg = <0200000 0200000>;
+ };
+ partition at 0400000 {
label = "ramdisk";
- reg = <180000 200000>;
+ reg = <0400000 1400000>;
};
- partition at 380000 {
+ partition at 1800000 {
label = "file system";
- reg = <380000 3aa0000>;
+ reg = <1800000 0400000>;
};
- partition at 3e20000 {
- label = "kozio";
- reg = <3e20000 140000>;
+ partition at 1c00000 {
+ label = "unused";
+ reg = <1c00000 2360000>;
};
partition at 3f60000 {
label = "env";
- reg = <3f60000 40000>;
+ reg = <3f60000 0040000>;
};
partition at 3fa0000 {
label = "u-boot";
- reg = <3fa0000 60000>;
+ reg = <3fa0000 0060000>;
};
};
@@ -359,6 +363,6 @@
chosen {
linux,stdout-path = "/plb/opb/serial at ef600300";
- bootargs = "console=ttyS0,115200";
+/* bootargs = "console=ttyS0,115200"; */
};
};
Best regards,
Larry
next prev parent reply other threads:[~2008-05-22 16:58 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-05-14 20:54 [U-Boot-Users] A simple howto boot sequoia (ARCH=powerpc) using flattened device tree (FDT) Niklaus Giger
2008-05-22 16:58 ` Larry Johnson [this message]
2008-05-23 8:04 ` Stefan Roese
2008-05-23 12:12 ` Jerry Van Baren
2008-05-23 12:29 ` Stefan Roese
2008-05-23 12:57 ` Jerry Van Baren
2008-05-23 13:36 ` Stefan Roese
2008-05-23 15:10 ` Wolfgang Denk
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4835A651.5030703@arlinx.com \
--to=lrj@arlinx.com \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox