1
0
mirror of https://xff.cz/git/u-boot/ synced 2025-09-01 00:32:04 +02:00

doc: arch: Convert README.nios2 to reST

Convert plain text documentation to reStructuredText format and add
it to Sphinx TOC tree. No essential content change.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
This commit is contained in:
Bin Meng
2019-07-18 00:34:29 -07:00
committed by Tom Rini
parent 16b390a706
commit 862f9928aa
2 changed files with 52 additions and 35 deletions

View File

@@ -9,4 +9,5 @@ Architecture-specific doc
arm64 arm64
mips mips
nds32 nds32
nios2
x86 x86

View File

@@ -1,10 +1,15 @@
.. SPDX-License-Identifier: GPL-2.0+
Nios II
=======
Nios II is a 32-bit embedded-processor architecture designed Nios II is a 32-bit embedded-processor architecture designed
specifically for the Altera family of FPGAs. 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 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 http://rocketboards.org/foswiki/view/Documentation/NiosIILinuxUserManual
The Nios II port of u-boot is controlled by device tree. Please check 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 To add a new board/configuration (eg, mysystem) to u-boot, you will need
three files. three files.
1. The device tree source which describes the hardware, dts file. 1. The device tree source which describes the hardware, dts file:
arch/nios2/dts/mysystem.dts arch/nios2/dts/mysystem.dts
2. Default configuration of Kconfig, defconfig file. 2. Default configuration of Kconfig, defconfig file:
configs/mysystem_defconfig configs/mysystem_defconfig
3. The legacy board header file. 3. The legacy board header file:
include/configs/mysystem.h include/configs/mysystem.h
The device tree source must be generated from your qsys/sopc design The device tree source must be generated from your qsys/sopc design
using the sopc2dts tool. Then modified to fit your configuration. Please using the sopc2dts tool. Then modified to fit your configuration.
find the sopc2dts download and usage at the wiki,
Please find the sopc2dts download and usage at the wiki:
http://www.alterawiki.com/wiki/Sopc2dts 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 You will need to add additional properties to the dts. Please find an
example at, arch/nios2/dts/10m50_devboard.dts. example at, arch/nios2/dts/10m50_devboard.dts.
1. Add "stdout-path=..." property with your serial path to the chosen 1. Add "stdout-path=..." property with your serial path to the chosen
node, like this, node, like this::
chosen { chosen {
stdout-path = &uart_0; stdout-path = &uart_0;
}; };
2. If you use SPI/EPCS or I2C, you will need to add aliases to number 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 { aliases {
spi0 = &epcs_controller; 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 Next, you will need a default config file. You may start with
10m50_defconfig, modify the options and save it. 10m50_defconfig, modify the options and save it.
$ make 10m50_defconfig .. code-block:: none
$ make menuconfig
$ make savedefconfig $ make 10m50_defconfig
$ cp defconfig configs/mysystem_defconfig $ make menuconfig
$ make savedefconfig
$ cp defconfig configs/mysystem_defconfig
You will need to change the names of board header file and device tree, You will need to change the names of board header file and device tree,
and select the drivers with menuconfig. and select the drivers with menuconfig.
Nios II architecture ---> .. code-block:: none
(mysystem) Board header file
Device Tree Control ---> Nios II architecture --->
(mysystem) Default Device Tree for DT control (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 There is a selection of "Provider of DTB for DT control" in the Device
Tree Control menu. Tree Control menu.
( ) Separate DTB for DT control, will cat the dtb to end of u-boot * 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. 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 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. 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 * 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. binary. This is handy for development, eg, using gdb or nios2-download.
The last thing, legacy board header file describes those config options 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 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 should be cached virtual address, for Nios II with MMU it is 0xCxxx_xxxx
to 0xDxxx_xxxx. to 0xDxxx_xxxx.
#define CONFIG_SYS_SDRAM_BASE 0xc8000000 .. code-block:: c
#define CONFIG_SYS_SDRAM_SIZE 0x08000000
#define CONFIG_SYS_SDRAM_BASE 0xc8000000
#define CONFIG_SYS_SDRAM_SIZE 0x08000000
You will need to change the environment variables location and setting, You will need to change the environment variables location and setting,
too. You may change other configs to fit your board. 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-) $ export CROSS_COMPILE=nios2-elf- (or nios2-linux-gnu-)
$ make mysystem_defconfig $ make mysystem_defconfig
$ make $ make
Enjoy! Enjoy!