Setting up U-Boot: Difference between revisions
No edit summary |
No edit summary |
||
Line 80: | Line 80: | ||
Copy to Flash... done | Copy to Flash... done | ||
On the LX60 now move DIP switch 8 to the ON position, power cycle the LX60, and you should see U-boot in the LCD display and | On the LX60 now move DIP switch 8 to the ON position, power cycle the LX60, and you should see U-boot in the LCD display and the serial console should print something like the following: | ||
U-Boot 1.3.2 (Aug 27 2009 - 18:23:04) | U-Boot 1.3.2 (Aug 27 2009 - 18:23:04) |
Revision as of 03:42, 28 August 2009
U-Boot
U-Boot is another popular boot loader. A preliminary port to the Xtensa architecture is now available. See U-Boot Sources (GIT Summary). Or, to access this tree using git directly, use something like:
git clone git://git.linux-xtensa.org/git/u-boot/u-boot-xtensa.git u-boot
(Note: This path is subject to change.)
Before you can build U-Boot you must have built the toolchain for XTensa core. Set your PATH to point to the toolchain built using buildroot.
$ export PATH="<workdir>/buildroot/build_xtensa_<cname>/staging_dir/usr/bin:$PATH"
where <cname> is the name of the Xtensa core variant you wish to build for (e.g., dc232b).
To build U-Boot, first clone the tree as above, change to the top level of the tree, then configure it for your board and Xtensa core variant as follows:
make <cname>_<board>_config
This should only take a few seconds. For example, to build U-boot for the 'xtav60' board and 'dc232b' core:
make dc232b_xtav60_config
Only boards and core variants currently supported in the tree can be built out of the box. Headers for supported cores can be found in the tree under include/asm-xtensa/variant-<cname>. The core specific headers are described in the doc/README.xtensa file. To support a new core, these headers must be copied from the overlay in the same way as for the linux kernel.
After the configuration step, to actually build U-Boot, simply:
make all
This will take a few minutes.
Next, start xt-gdb and load u-boot from the top of the git repository:
cd u-boot-xtensa xt-gdb -n file u-boot target remote localhost:20000 0 reset load break panic continue
Hopefully u-boot will start and display on the LCD
U-Boot 50.00 Mhz
Next, set you environment variables to point the the DHCP and TFTP server:
setenv serverip 192.168.11.78 rtos-lab2 setenv ipaddr 192.168.11.95 I/P address of host running on the LX60 setenv bootfile u-boot.bin saveenv
Next, download 'u-boot.bin' from the tftp server:
tftpboot TFTP from server 192.168.11.78; our IP address is 192.168.11.95 Filename 'u-boot.bin'. Load address: 0xd2000000 Loading: T ######## done Bytes transferred = 107592 (1a448 hex)
Note that the image is a bit less than 2 sectors, so turn off protection on the 1st two sectors and erase the current contents:
protect off F8000000 F801FFFF ... done Un-Protected 2 sectors erase F8000000 F801FFFF erase F8000000 F801FFFF ... done Erased 2 sectors
Now copy the the image of u-boot.bin in memory to the flash:
cp.b d2000000 F8000000 20000 Copy to Flash... done
On the LX60 now move DIP switch 8 to the ON position, power cycle the LX60, and you should see U-boot in the LCD display and the serial console should print something like the following:
U-Boot 1.3.2 (Aug 27 2009 - 18:23:04) CPU: Xtensa dc232b at 50.00 MHz Board: XT-AV60: Avnet board + Xilinx LX60 FPGA + Tensilica bitstream SysRAM: 64 MB Flash: 4 MB In: serial Out: serial Err: serial MAC: U-Boot>
Further details on U-Boot in general are in the generic README at the top of the U-Boot tree. Details specific to the Xtensa architecture are in doc/README.xtensa. Details specific to a board are in board[/<family>]/<board>/README (for example board/avnet/xtav60/README).