mirror of
https://github.com/u-boot/u-boot.git
synced 2024-11-23 12:14:32 +08:00
aa6e94deab
The rest of the unmigrated CONFIG symbols in the CONFIG_SYS_SDRAM namespace do not easily transition to Kconfig. In many cases they likely should come from the device tree instead. Move these out of CONFIG namespace and in to CFG namespace. Signed-off-by: Tom Rini <trini@konsulko.com> Reviewed-by: Simon Glass <sjg@chromium.org>
112 lines
3.3 KiB
ReStructuredText
112 lines
3.3 KiB
ReStructuredText
.. 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:
|
|
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
|
|
|
|
.. 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::
|
|
|
|
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::
|
|
|
|
aliases {
|
|
spi0 = &epcs_controller;
|
|
};
|
|
|
|
Next, you will need a default config file. You may start with
|
|
10m50_defconfig, modify the options and save it.
|
|
|
|
.. 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.
|
|
|
|
.. 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.
|
|
|
|
* 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::
|
|
|
|
$ 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.
|
|
|
|
.. code-block:: c
|
|
|
|
#define CFG_SYS_SDRAM_BASE 0xc8000000
|
|
#define CFG_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!
|