All of lore.kernel.org
 help / color / mirror / Atom feed
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

  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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.