This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
| uboot_common [2011/07/14 15:02] – Create a page to group together all the 'common' U-Boot informatio 82.234.233.9 | uboot_common [2011/07/15 23:28] (current) – delete page simon | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== Extending U-Boot support (common) | ||
| - | This page group together all the common U-Boot informations (ie: not related with a specific board) | ||
| - | |||
| - | ===== Repository ===== | ||
| - | |||
| - | Sources are available in the [[http:// | ||
| - | |||
| - | * **stable** is used to build the images distributed via a [[ftp:// | ||
| - | * **master** is a development branch, holding the patches waiting to be merged mainline. | ||
| - | |||
| - | Checkout command: | ||
| - | |||
| - | git clone http:// | ||
| - | or | ||
| - | git clone git:// | ||
| - | |||
| - | ===== Build ===== | ||
| - | |||
| - | To compile U-Boot images, you could use the following commands (toolchain path, cross-compiler and board names to be replaced): | ||
| - | |||
| - | PATH=/ | ||
| - | PATH=/ | ||
| - | | ||
| - | ===== Downloads ===== | ||
| - | |||
| - | For the supported boards, some pre-compiled U-Boot images are availables in the [[ftp:// | ||
| - | |||
| - | ===== 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, | ||
| - | |||
| - | * 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: | ||
| - | |||
| - | * 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. 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 the user don't have to build/buy a serial cable. | ||
| - | |||
| - | === Preparations === | ||
| - | |||
| - | * Get [[CLUNC|CLUNC]] | ||
| - | * Get U-Boot netconsole utility | ||
| - | * Enable a TFTP server | ||
| - | * Install the new u-boot image in the TFTP root directory (could be / | ||
| - | |||
| - | $ wget ftp:// | ||
| - | | ||
| - | === Run CLUNC and connect to the LaCie U-Boot console === | ||
| - | |||
| - | $ ./clunc -i < | ||
| - | Marvell>> | ||
| - | U-Boot 1.1.4 (Jan 17 2011 - 21:48:29) Marvell version: 3.4.16 | ||
| - | | ||
| - | === Flash the new U-Boot image === | ||
| - | |||
| - | Marvell>> | ||
| - | Using egiga0 device | ||
| - | TFTP from server 192.168.0.13; | ||
| - | Filename ' | ||
| - | 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>> | ||
| - | |||
| - | * Install the U-Boot **netconsole** tool. | ||
| - | |||
| - | Note that U-Boot mainline don't provide a magic packet mechanism to configure the IP address. It means that [[CLUNC|CLUNC]] becomes useless from this point. The netconsole configuration rely on some environment variables: **ipaddr**, **ncip**, **stdin**, **stdout** and **stderr** (for more information, | ||
| - | |||
| - | * Connect to U-Boot via netconsole and interrupt boot process (Ctrl-C). | ||
| - | |||
| - | $ ./ | ||
| - | | ||
| - | U-Boot 2010.12-00216-g5bbbf69 (Jan 24 2011 - 21:38:00) LaCie Network Space v2 | ||
| - | | ||
| - | SoC: | ||
| - | DRAM: 256 MiB | ||
| - | SF: Detected MX25L4005A with page size 256, total 512 KiB | ||
| - | SF: disable write protection | ||
| - | *** Warning - bad CRC, using default environment | ||
| - | | ||
| - | In: serial | ||
| - | Out: | ||
| - | Err: | ||
| - | Net: | ||
| - | 88E1116 Initialized on egiga0 | ||
| - | Hit any key to stop autoboot: | ||
| - | ns2> | ||
| - | |||
| - | ===== Some usage examples ===== | ||
| - | |||
| - | ==== Save environment on SPI flash ==== | ||
| - | |||
| - | Marvell>> | ||
| - | Marvell>> | ||
| - | Saving Environment to SPI Flash... | ||
| - | SF: Detected MX25L4005A with page size 256, total 512 KiB | ||
| - | Erasing SPI flash...Writing to SPI flash...done | ||
| - | |||
| - | ==== USB boot ==== | ||
| - | |||
| - | Marvell>> | ||
| - | Marvell>> | ||
| - | Device 0: Vendor: UFD Rev: 7.77 Prod: | ||
| - | Type: Hard Disk | ||
| - | Capacity: 125.0 MB = 0.1 GB (256000 x 512) | ||
| - | Marvell>> | ||
| - | boot/ | ||
| - | | ||
| - | 0 file(s), 1 dir(s) | ||
| - | | ||
| - | Marvell>> | ||
| - | ./ | ||
| - | ../ | ||
| - | 4902372 | ||
| - | | ||
| - | 1 file(s), 2 dir(s) | ||
| - | | ||
| - | Marvell>> | ||
| - | reading / | ||
| - | | ||
| - | 4902372 bytes read | ||
| - | Marvell>> | ||
| - | Marvell>> | ||
| - | ## Booting kernel from Legacy Image at 00800000 ... | ||
| - | Image Name: | ||
| - | Image Type: ARM Linux Kernel Image (uncompressed) | ||
| - | Data Size: 4902308 Bytes = 4.7 MiB | ||
| - | Load Address: 00008000 | ||
| - | Entry Point: | ||
| - | | ||
| - | | ||
| - | OK | ||
| - | | ||
| - | Starting kernel ... | ||
| - | |||
| - | ==== Disk boot ==== | ||
| - | |||
| - | SoC: | ||
| - | DRAM: 256 MiB | ||
| - | SF: Detected MX25L4005A with page size 256, total 512 KiB | ||
| - | *** Warning - bad CRC, using default environment | ||
| - | | ||
| - | In: serial | ||
| - | Out: | ||
| - | Err: | ||
| - | Net: | ||
| - | 88E1116 Initialized on egiga0 | ||
| - | Marvell>> | ||
| - | | ||
| - | Reset IDE: Bus 0: ........OK | ||
| - | Device 0: Model: SAMSUNG HD103SI | ||
| - | Type: Hard Disk | ||
| - | Supports 48-bit addressing | ||
| - | Capacity: 953869.7 MB = 931.5 GB (1953525168 x 512) | ||
| - | | ||
| - | Marvell>> | ||
| - | | ||
| - | Partition Map for IDE device 0 -- | ||
| - | | ||
| - | Partition | ||
| - | 1 | ||
| - | 2 195334335 | ||
| - | Marvell>> | ||
| - | Failed to mount ext2 filesystem... | ||
| - | < | ||
| - | < | ||
| - | | ||
| - | | ||
| - | Marvell>> | ||
| - | Loading file "/ | ||
| - | 4507632 bytes read | ||
| - | Marvell>> | ||
| - | ## Booting kernel from Legacy Image at 00800000 ... | ||
| - | Image Name: | ||
| - | Image Type: ARM Linux Kernel Image (uncompressed) | ||
| - | Data Size: 4507568 Bytes = 4.3 MiB | ||
| - | Load Address: 00008000 | ||
| - | Entry Point: | ||
| - | | ||
| - | | ||
| - | OK | ||
| - | | ||
| - | Starting kernel ... | ||
| - | |||
| - | ==== Update a mainline U-Boot version ==== | ||
| - | |||
| - | ns2> setenv ipaddr 192.168.0.17; | ||
| - | ns2> tftpboot 0x800000 u-boot-netspace_v2.kwb | ||
| - | Using egiga0 device | ||
| - | TFTP from server 192.168.0.13; | ||
| - | Filename ' | ||
| - | Load address: 0x800000 | ||
| - | Loading: ########################################## | ||
| - | done | ||
| - | Bytes transferred = 214220 (344cc hex) | ||
| - | ns2> fl probe 0:0 | ||
| - | SF: Detected MX25L4005A with page size 256, total 512 KiB | ||
| - | 512 KiB MX25L4005A at 0:0 is now current device | ||
| - | ns2> sf erase 0 0x40000 | ||
| - | Usage: sf erase offset len | ||
| - | ns2> sf erase 0 0x40000 | ||
| - | ns2> sf write 0x800000 0 0x40000 | ||
| - | ns2> reset | ||
| - | resetting ... | ||
| - | | ||
| - | | ||
| - | U-Boot 2010.12-00216-g5bbbf69 (Jan 24 2011 - 21:38:00) LaCie Network Space v2 | ||
| - | | ||
| - | SoC: | ||
| - | DRAM: 256 MiB | ||
| - | SF: Detected MX25L4005A with page size 256, total 512 KiB | ||
| - | *** Warning - bad CRC, using default environment | ||
| - | | ||
| - | In: serial | ||
| - | Out: | ||
| - | Err: | ||
| - | Net: | ||
| - | 88E1116 Initialized on egiga0 | ||
| - | Hit any key to stop autoboot: | ||
| - | ns2> | ||
| - | |||
| - | ===== Links ===== | ||
| - | |||
| - | * [[http:// | ||