Add README.nios2 about how to add nios2 boards to u-boot. Signed-off-by: Thomas Chou <thomas@wytron.com.tw> Acked-by: Marek Vasut <marex@denx.de>master
parent
6168dc6a7a
commit
485e2d8edd
@ -0,0 +1,95 @@ |
||||
Nios II is a 32-bit embedded-processor architecture designed |
||||
specifically for the Altera family of FPGAs. |
||||
|
||||
Please refer to the link for more information on Nios II, |
||||
https://www.altera.com/products/processors/overview.html |
||||
|
||||
Please refer to the link for Linux port and toolchains, |
||||
http://rocketboards.org/foswiki/view/Documentation/NiosIILinuxUserManual |
||||
|
||||
The Nios II port of u-boot is controlled by device tree. Please check |
||||
out doc/README.fdt-control. |
||||
|
||||
To add a new board/configuration (eg, mysystem) to u-boot, you will need |
||||
three files. |
||||
|
||||
1. The device tree source which describes the hardware, dts file. |
||||
arch/nios2/dts/mysystem.dts |
||||
|
||||
2. Default configuration of Kconfig, defconfig file. |
||||
configs/mysystem_defconfig |
||||
|
||||
3. The legacy board header file. |
||||
include/configs/mysystem.h |
||||
|
||||
The device tree source must be generated from your qsys/sopc design |
||||
using the sopc2dts tool. Then modified to fit your configuration. Please |
||||
find the sopc2dts download and usage at the wiki, |
||||
http://www.alterawiki.com/wiki/Sopc2dts |
||||
|
||||
$ java -jar sopc2dts.jar --force-altr -i mysystem.sopcinfo -o mysystem.dts |
||||
|
||||
You will need to add additional properties to the dts. Please find an |
||||
example at, arch/nios2/dts/3c120_devboard.dts. |
||||
|
||||
1. Add "stdout-path=..." property with your serial path to the chosen |
||||
node, like this, |
||||
chosen { |
||||
stdout-path = &jtag_uart; |
||||
}; |
||||
|
||||
2. If you use SPI/EPCS or I2C, you will need to add aliases to number |
||||
the sequence of these devices, like this, |
||||
aliases { |
||||
spi0 = &epcs_controller; |
||||
}; |
||||
|
||||
Next, you will need a default config file. You may start with |
||||
nios2-generic_defconfig, modify the options and save it. |
||||
|
||||
$ make nios2-generic_defconfig |
||||
$ make menuconfig |
||||
$ make savedefconfig |
||||
$ cp defconfig configs/mysystem_defconfig |
||||
|
||||
You will need to change the names of board header file and device tree, |
||||
and select the drivers with menuconfig. |
||||
|
||||
Nios II architecture ---> |
||||
(mysystem) Board header file |
||||
Device Tree Control ---> |
||||
(mysystem) Default Device Tree for DT control |
||||
|
||||
There is a selection of "Provider of DTB for DT control" in the Device |
||||
Tree Control menu. |
||||
|
||||
( ) Separate DTB for DT control, will cat the dtb to end of u-boot |
||||
binary, output u-boot-dtb.bin. This should be used for production. |
||||
If you use boot copier, like EPCS boot copier, make sure the copier |
||||
copies all the u-boot-dtb.bin, not just u-boot.bin. |
||||
|
||||
( ) Embedded DTB for DT control, will include the dtb inside the u-boot |
||||
binary. This is handy for development, eg, using gdb or nios2-download. |
||||
|
||||
The last thing, legacy board header file describes those config options |
||||
not covered in Kconfig yet. You may copy it from nios2-generic.h. |
||||
|
||||
$ cp include/configs/nios2-generic.h include/configs/mysystem.h |
||||
|
||||
Please change the SDRAM base and size to match your board. The base |
||||
should be cached virtual address, for Nios II with MMU it is 0xCxxx_xxxx |
||||
to 0xDxxx_xxxx. |
||||
|
||||
#define CONFIG_SYS_SDRAM_BASE 0xD0000000 |
||||
#define CONFIG_SYS_SDRAM_SIZE 0x08000000 |
||||
|
||||
You will need to change the environment variables location and setting, |
||||
too. You may change other configs to fit your board. |
||||
|
||||
After all these changes, you may build and test. |
||||
|
||||
$ export CROSS_COMPILE=nios2-elf- (or nios2-linux-gnu-) |
||||
$ make mysystem_defconfig |
||||
$ make |
||||
|
||||
Enjoy! |
Loading…
Reference in new issue