User Tools

Site Tools


uboot_common

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
uboot_common [2011/07/15 16:54] simonuboot_common [2011/07/15 23:28] (current) – delete page simon
Line 1: Line 1:
-====== U-Boot ====== 
  
-This page group together all the common [[http://www.denx.de/wiki/U-Boot|U-Boot]] informations (ie: not related with a specific board) 
- 
-===== Repository ===== 
- 
-Sources are available in the [[http://git-scm.com|Git]] repository: [[http://git.lacie-nas.org/?p=u-boot-lacie.git;a=summary|u-boot-lacie.git]]. At least, the following branches should be availables: 
- 
-  * **stable** is used to build the images distributed via a [[ftp://lacie-nas.org/u-boot|FTP repository]]. 
-  * **master** is a development branch, holding the patches waiting to be merged mainline. 
- 
-Checkout command: 
- 
-  git clone http://git.lacie-nas.org/u-boot-lacie.git 
-or 
-  git clone git://lacie-nas.org/u-boot-lacie.git 
- 
-===== Build ===== 
- 
-To compile U-Boot images, you could use the following commands (toolchain path, cross-compiler and board names to be replaced): 
- 
-  PATH=/usr/local/x-tools/arm-2010q1/bin/:$PATH CROSS_COMPILE=arm-none-eabi- make netspace_v2_config 
-  PATH=/usr/local/x-tools/arm-2010q1/bin/:$PATH CROSS_COMPILE=arm-none-eabi- make u-boot.kwb 
-   
-===== Downloads ===== 
- 
-For the supported boards, some pre-compiled U-Boot images are availables in the [[ftp://lacie-nas.org/u-boot|FTP repository]]. 
- 
-===== Install from a LaCie stock U-Boot ===== 
- 
-==== Why ? ==== 
- 
-  * The LaCie stock U-Boot comes with a huge limitation. At reset, U-Boot reinitialize the boot environment variables (stored in Flash) with some built-in values. This includes the boot commands sequence. As a consequence, the LaCie system layout (or partition map) can't be changed. By default, U-Boot will load the Linux kernel from partition 10 (update) or from partition 6 as a fallback (default). 
- 
-  * Save flash size (a LaCie U-Boot image size is ~450KB against ~230KB for a mainline one). 
- 
-  * Boot reliably from USB. 
- 
-  * Some command line enhancements: history, completion, scripting ... 
- 
-  * Be able to add a new feature. 
- 
-==== Update step by step ==== 
- 
-This section present step by step how to update the stock U-Boot with a mainline version. A Network Space v2 board is used but the process should work with all the other LaCie boards supported by U-Boot mainline. 
- 
-=== Preparations === 
- 
-  * Create a work directory 
- 
-  $ mkdir /tmp/tools && cd /tmp/tools 
- 
-  * Get [[CLUNC|CLUNC]] 
- 
-  $ wget ftp://lacie-nas.org/tools/clunc-1.1.tar.gz 
-  $ tar xf clunc-1.1.tar.gz 
- 
-  * Get U-Boot **netconsole** utility 
- 
-  $ wget ftp://lacie-nas.org/tools/u-boot-netconsole.tar.gz 
-  $ tar xf u-boot-netconsole.tar.gz 
- 
-  * Setup and enable a TFTP server. The configuration really depends on your OS. For example, a Linux distribution could be use **inetd** (the configuration file is /etc/inetd.conf). 
- 
-  * Install the new u-boot image into the TFTP root directory (could be /var/tftpboot). 
- 
-  $ wget ftp://ftp.lacie-nas.org/u-boot/u-boot-netspace_v2.kwb -O /var/tftpboot/u-boot-netspace_v2.kwb 
-   
-=== Run CLUNC and connect to the LaCie U-Boot console === 
- 
-Both a serial or a network console can be used to connect to U-Boot. For this how-to, the netconsole way is preferred because it is cheaper. The user don't have to build/buy a serial cable. 
- 
-  $ cd /tmp/tools/clunc-1.1 
-  $ ./clunc -i <NAS_IP> 
-  Marvell>> version 
-  U-Boot 1.1.4 (Jan 17 2011 - 21:48:29) Marvell version: 3.4.16  LaCie 1.5.9 256MB 
-   
-=== Flash the new U-Boot image === 
- 
-  Marvell>> bubt u-boot-netspace_v2.kwb 
-  Using egiga0 device 
-  TFTP from server 192.168.0.13; our IP address is 192.168.0.15 
-  Filename 'u-boot-netspace_v2.kwb'. 
-  Load address: 0x2000000 
-  Loading: ########################################## 
-  done 
-  Bytes transferred = 214220 (344cc hex) 
-  Un-Protect Flash Monitor space 
-   
-  **Warning** 
-  If U-Boot Endiannes is going to change (LE->BE or BE->LE), Then Env parameters should be overriden.. 
-  Override Env parameters? (y/n) n 
-  Erase 0 - 125 sectors... 
-  ................................................................. 
-  ............................................................. 
-  Copy to Flash... done 
-  Protect Flash Monitor space 
-   
-=== Restart === 
- 
-  Marvell>> reset 
-   
-=== Retrieve the NAS IP address === 
- 
-U-Boot mainline don't provide a magic packet mechanism to configure the IP address. Instead DHCP is used. It means that [[CLUNC|CLUNC]] becomes useless from this point. Ensure that the NAS is connected to your local network and that a DHCP server is running. 
- 
-Some possible ways to retrieve the NAS IP address: 
- 
-  * Use an utility like **dhcpdump**. 
-  * Look in the DHCP server log. 
-  * Configure and run your own DHCP server. 
- 
-Example with **dhcpdump**: 
- 
-  $ sudo dhcpdump -i eth0 
-   
-  ... snip ... 
-   
-    TIME: 2011-07-15 16:31:50.686 
-      IP: 0.0.0.0 (2:50:43:7e:8d:94) > 255.255.255.255 (ff:ff:ff:ff:ff:ff) 
-      OP: 1 (BOOTPREQUEST) 
-   HTYPE: 1 (Ethernet) 
-    HLEN: 6 
-    HOPS: 0 
-     XID: 437e9de1 
-    SECS: 6 
-   FLAGS: 0 
-  CIADDR: 0.0.0.0 
-  YIADDR: 0.0.0.0 
-  SIADDR: 0.0.0.0 
-  GIADDR: 0.0.0.0 
-  CHADDR: 02:50:43:7e:8d:94:00:00:00:00:00:00:00:00:00:00 
-   SNAME: . 
-   FNAME: . 
-  OPTION:  53 (  1) DHCP message type         3 (DHCPREQUEST) 
-  OPTION:  57 (  2) Maximum DHCP message size 576 
-  OPTION:  54 (  4) Server identifier         192.168.0.254 
-  OPTION:  50 (  4) Request IP address        192.168.0.15 
-  --------------------------------------------------------------------------- 
- 
-The IP address is **192.168.0.15** 
- 
-=== Connect to U-Boot via netconsole === 
- 
-The netconsole configuration rely on some environment variables: **ipaddr**, **ncip**, **stdin**, **stdout** and **stderr** (for more information,  please refer to the file README.NetConsole included in U-Boot sources). After the update, this variables will be initialized with the default (or built-in) values and the netconsole is configured to broadcast UDP messages. 
- 
-<note important> 
-**netcat** don't handle the UDP broadcast messages. The dedicated U-Boot tools **netconsole** and **ncb** must be used.  
-</note> 
- 
-  * Run **netconsole** and interrupt boot process (Ctrl-C): 
- 
-  $ cd /tmp/tools/u-boot-netconsole 
-  $ ./netconsole 192.168.0.15 
-  ^C   
-  ns2> version 
-  arm-none-eabi-gcc (Sourcery G++ Lite 2010q1-188) 4.4.1 
-  GNU ld (Sourcery G++ Lite 2010q1-188) 2.19.51.20090709 
- 
-=== Default configuration === 
- 
-  * Here is a default environment sample: 
- 
-  ns2> print 
-  autoload=no 
-  baudrate=115200 
-  bootargs=console=ttyS0,115200 
-  bootcmd=dhcp && run netconsole; if run usbload || run diskload; then bootm; fi 
-  bootdelay=3 
-  bootfile=uImage 
-  diskload=ide reset && ext2load ide 0:1 $loadaddr /boot/$bootfile 
-  dnsip=212.27.40.240 
-  ethact=egiga0 
-  ethaddr=02:50:43:92:75:b8 
-  gatewayip=192.168.0.254 
-  ipaddr=192.168.0.15 
-  loadaddr=0x800000 
-  netconsole=set stdin $stdin,nc; set stdout $stdout,nc; set stderr $stderr,nc; 
-  netmask=255.255.255.0 
-  stderr=serial,nc 
-  stdin=serial,nc 
-  stdout=serial,nc 
-  usbload=us 
-  Environment size: 604/4092 bytes 
- 
-=== Configure U-Boot to suit your own needs === 
- 
-  * Modify the U-Boot environment. 
- 
-  * Use GPIO button. The **button** command allow to check the GPIO button status. 
- 
-  <<released>> 
-  ns2> button 
-  ns2> echo $? 
-  0 
- 
-  <<pressed>> 
-  ns2> button 
-  ns2> echo $? 
-  1 
- 
-===== Update U-Boot mainline ===== 
- 
-  ns2> tftpboot 0x800000 u-boot-netspace_v2.kwb 
-  Using egiga0 device 
-  TFTP from server 192.168.0.13; our IP address is 192.168.0.15 
-  Filename 'u-boot-netspace_v2.kwb'. 
-  Load address: 0x800000 
-  Loading: ########################################## 
-  done 
-  Bytes transferred = 214220 (344cc hex) 
-  ns2> sf probe 0 
-  SF: Detected MX25L4005 with page size 64 KiB, total 512 KiB 
-  ns2> sf erase 0 0x50000 
-  ns2> sf write 0x800000 0 0x50000 
-  ns2> reset 
-  resetting ... 
- 
-===== Links ===== 
- 
-  * [[http://www.denx.de/wiki/U-Boot|U-Boot project]] 
uboot_common.1310741647.txt.gz · Last modified: 2011/07/15 16:54 by simon