diff options
Diffstat (limited to 'doc')
-rw-r--r-- | doc/arch/index.rst | 1 | ||||
-rw-r--r-- | doc/arch/nios2.rst (renamed from doc/README.nios2) | 86 |
2 files changed, 52 insertions, 35 deletions
diff --git a/doc/arch/index.rst b/doc/arch/index.rst index 7f10df08f36..000f5de6344 100644 --- a/doc/arch/index.rst +++ b/doc/arch/index.rst @@ -9,4 +9,5 @@ Architecture-specific doc arm64 mips nds32 + nios2 x86 diff --git a/doc/README.nios2 b/doc/arch/nios2.rst index 46c704e6284..35defb0af0b 100644 --- a/doc/README.nios2 +++ b/doc/arch/nios2.rst @@ -1,10 +1,15 @@ +.. SPDX-License-Identifier: GPL-2.0+ + +Nios II +======= + 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, +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, +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 @@ -13,33 +18,38 @@ 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 +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 +2. Default configuration of Kconfig, defconfig file: + configs/mysystem_defconfig -3. The legacy board header file. - include/configs/mysystem.h +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, +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 +.. code-block:: none + + $ 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/10m50_devboard.dts. 1. Add "stdout-path=..." property with your serial path to the chosen -node, like this, + node, like this:: + chosen { stdout-path = &uart_0; }; 2. If you use SPI/EPCS or I2C, you will need to add aliases to number -the sequence of these devices, like this, + the sequence of these devices, like this:: + aliases { spi0 = &epcs_controller; }; @@ -47,49 +57,55 @@ the sequence of these devices, like this, Next, you will need a default config file. You may start with 10m50_defconfig, modify the options and save it. -$ make 10m50_defconfig -$ make menuconfig -$ make savedefconfig -$ cp defconfig configs/mysystem_defconfig +.. code-block:: none + + $ make 10m50_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 +.. code-block:: none + + 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. + * 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. + * 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 10m50_devboard.h. +not covered in Kconfig yet. You may copy it from 10m50_devboard.h:: -$ cp include/configs/10m50_devboard.h include/configs/mysystem.h + $ cp include/configs/10m50_devboard.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 0xc8000000 -#define CONFIG_SYS_SDRAM_SIZE 0x08000000 +.. code-block:: c + + #define CONFIG_SYS_SDRAM_BASE 0xc8000000 + #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. +After all these changes, you may build and test:: -$ export CROSS_COMPILE=nios2-elf- (or nios2-linux-gnu-) -$ make mysystem_defconfig -$ make + $ export CROSS_COMPILE=nios2-elf- (or nios2-linux-gnu-) + $ make mysystem_defconfig + $ make Enjoy! |