]>
Commit | Line | Data |
---|---|---|
485e2d8e TC |
1 | Nios II is a 32-bit embedded-processor architecture designed |
2 | specifically for the Altera family of FPGAs. | |
3 | ||
4 | Please refer to the link for more information on Nios II, | |
5 | https://www.altera.com/products/processors/overview.html | |
6 | ||
7 | Please refer to the link for Linux port and toolchains, | |
8 | http://rocketboards.org/foswiki/view/Documentation/NiosIILinuxUserManual | |
9 | ||
10 | The Nios II port of u-boot is controlled by device tree. Please check | |
11 | out doc/README.fdt-control. | |
12 | ||
13 | To add a new board/configuration (eg, mysystem) to u-boot, you will need | |
14 | three files. | |
15 | ||
16 | 1. The device tree source which describes the hardware, dts file. | |
17 | arch/nios2/dts/mysystem.dts | |
18 | ||
19 | 2. Default configuration of Kconfig, defconfig file. | |
20 | configs/mysystem_defconfig | |
21 | ||
22 | 3. The legacy board header file. | |
23 | include/configs/mysystem.h | |
24 | ||
25 | The device tree source must be generated from your qsys/sopc design | |
26 | using the sopc2dts tool. Then modified to fit your configuration. Please | |
27 | find the sopc2dts download and usage at the wiki, | |
28 | http://www.alterawiki.com/wiki/Sopc2dts | |
29 | ||
30 | $ java -jar sopc2dts.jar --force-altr -i mysystem.sopcinfo -o mysystem.dts | |
31 | ||
32 | You will need to add additional properties to the dts. Please find an | |
9f301294 | 33 | example at, arch/nios2/dts/10m50_devboard.dts. |
485e2d8e TC |
34 | |
35 | 1. Add "stdout-path=..." property with your serial path to the chosen | |
36 | node, like this, | |
37 | chosen { | |
9f301294 | 38 | stdout-path = &uart_0; |
485e2d8e TC |
39 | }; |
40 | ||
41 | 2. If you use SPI/EPCS or I2C, you will need to add aliases to number | |
42 | the sequence of these devices, like this, | |
43 | aliases { | |
44 | spi0 = &epcs_controller; | |
45 | }; | |
46 | ||
47 | Next, you will need a default config file. You may start with | |
9f301294 | 48 | 10m50_defconfig, modify the options and save it. |
485e2d8e | 49 | |
9f301294 | 50 | $ make 10m50_defconfig |
485e2d8e TC |
51 | $ make menuconfig |
52 | $ make savedefconfig | |
53 | $ cp defconfig configs/mysystem_defconfig | |
54 | ||
55 | You will need to change the names of board header file and device tree, | |
56 | and select the drivers with menuconfig. | |
57 | ||
58 | Nios II architecture ---> | |
59 | (mysystem) Board header file | |
60 | Device Tree Control ---> | |
61 | (mysystem) Default Device Tree for DT control | |
62 | ||
63 | There is a selection of "Provider of DTB for DT control" in the Device | |
64 | Tree Control menu. | |
65 | ||
66 | ( ) Separate DTB for DT control, will cat the dtb to end of u-boot | |
67 | binary, output u-boot-dtb.bin. This should be used for production. | |
68 | If you use boot copier, like EPCS boot copier, make sure the copier | |
69 | copies all the u-boot-dtb.bin, not just u-boot.bin. | |
70 | ||
71 | ( ) Embedded DTB for DT control, will include the dtb inside the u-boot | |
72 | binary. This is handy for development, eg, using gdb or nios2-download. | |
73 | ||
74 | The last thing, legacy board header file describes those config options | |
9f301294 | 75 | not covered in Kconfig yet. You may copy it from 10m50_devboard.h. |
485e2d8e | 76 | |
9f301294 | 77 | $ cp include/configs/10m50_devboard.h include/configs/mysystem.h |
485e2d8e TC |
78 | |
79 | Please change the SDRAM base and size to match your board. The base | |
80 | should be cached virtual address, for Nios II with MMU it is 0xCxxx_xxxx | |
81 | to 0xDxxx_xxxx. | |
82 | ||
9f301294 | 83 | #define CONFIG_SYS_SDRAM_BASE 0xc8000000 |
485e2d8e TC |
84 | #define CONFIG_SYS_SDRAM_SIZE 0x08000000 |
85 | ||
86 | You will need to change the environment variables location and setting, | |
87 | too. You may change other configs to fit your board. | |
88 | ||
89 | After all these changes, you may build and test. | |
90 | ||
91 | $ export CROSS_COMPILE=nios2-elf- (or nios2-linux-gnu-) | |
92 | $ make mysystem_defconfig | |
93 | $ make | |
94 | ||
95 | Enjoy! |