layerscape: define ls-append function
[openwrt/openwrt.git] / target / linux / layerscape / README
1
2 Layerscape Quick Start
3
4 1. Layerscape target support
5 ----------------------------
6 * ARMv8 64-bit
7 LS1012ARDB LS1012AFRDM LS1043ARDB LS1046ARDB LS1088ARDB LS2088ARDB
8
9 * ARMv8 32-bit
10 LS1012ARDB LS1012AFRDM LS1043ARDB LS1046ARDB
11
12
13 2. Build
14 --------
15 Before configuration and build, update and install package feeds.
16
17 $ ./scripts/feeds update -a
18 $ ./scripts/feeds install -a
19
20 2.1 make menuconfig
21 -------------------
22 * For single device
23
24 Target System: "NXP Layerscape".
25 Subtarget: "ARMv8 64-bit based boards" or "ARMv8 32-bit based boards"
26 Target Profile: (select device you want to build)
27
28 For example, build firmware for 64-bit ls1043ardb.
29 +---------------------------------------------+
30 | Target System (NXP Layerscape) ---> |
31 |---------------------------------------------|
32 | Subtarget (ARMv8 64-bit based boards) ---> |
33 |---------------------------------------------|
34 | Target Profile (ls1043ardb-armv8_64b) ---> |
35 +---------------------------------------------+
36
37 * For multiple devices
38
39 Target System: "NXP Layerscape".
40 Subtarget: "ARMv8 64-bit based boards" or "ARMv8 32-bit based boards"
41 Target Profile: "Multiple devices"
42 Target Devices: (select devices you want to build)
43
44 For example, build firmware for all 64-bit devices.
45 Target Devices --->
46 +-----------------------------------------------------------------+
47 | [*] Enable all profiles by default |
48 |-----------------------------------------------------------------|
49 | [*] Use a per-device root filesystem that adds profile packages |
50 |-----------------------------------------------------------------|
51 | [*] ls1012afrdm-armv8_64b ---> |
52 |-----------------------------------------------------------------|
53 | [*] ls1012ardb-armv8_64b ---> |
54 |-----------------------------------------------------------------|
55 | [*] ls1043ardb-armv8_64b ---> |
56 |-----------------------------------------------------------------|
57 | [*] ls1046ardb-armv8_64b ---> |
58 |-----------------------------------------------------------------|
59 | [*] ls1088ardb-armv8_64b ---> |
60 |-----------------------------------------------------------------|
61 | [*] ls2088ardb-armv8_64b ---> |
62 +-----------------------------------------------------------------+
63
64 Note: The first time make menuconfig would create a .config file which
65 would include all dependencies for selected target. After that, make
66 menuconfig still could be used to modify packages. If want to change
67 other target, please remove .config and make menuconfig to select again.
68 Otherwise the packages selected in .config would be a mess.
69
70 2.2 make (or make -j<n>)
71 ------------------------
72
73 2.3 Final firmware
74 ------------------
75 Final firmware would be in bin/targets/layerscape/<subtarget>/, and
76 named as openwrt-layerscape-<subtarget>-<device>-<rootfs>-firmware.bin.
77
78
79 3. Program firmware to NOR/QSPI flash
80 -------------------------------------
81 * LS1043ARDB (NOR flash)
82
83 Start up from bank0, and program firmware to bank4 with below commands.
84 Switch to bank4 to start up OpenWrt.
85
86 => tftp a0000000 <firmware_name>.bin
87 => protect off all
88 => erase 64000000 +$filesize
89 => cp.b a0000000 64000000 $filesize
90 => cpld reset altbank
91
92 * LS2088ARDB (NOR flash)
93
94 Start up from bank0, and program firmware to bank4 with below commands.
95 Switch to bank4 to start up OpenWrt.
96
97 => tftp a0000000 <firmware_name>.bin
98 => protect off all
99 => erase 584000000 +$filesize
100 => cp.b a0000000 584000000 $filesize
101 => qix altbank
102
103 * LS1012ARDB (QSPI flash)
104
105 Start up from bank1, and program firmware to bank2 with below commands.
106 Switch to bank2 to start up OpenWrt.
107
108 => tftp a0000000 <firmware_name>.bin
109 => i2c mw 0x24 0x7 0xfc;i2c mw 0x24 0x3 0xf5
110 => sf probe 0:0
111 => sf erase 0 +$filesize
112 => sf write a0000000 0 $filesize
113 => reset
114
115 * LS1012AFRDM (QSPI flash)
116
117 LS1012AFRDM board only has one bank. Start up board, and program firmware
118 with below commands. Reset to start up OpenWrt.
119
120 => tftp 96000000 <firmware_name>.bin
121 => sf probe 0:0
122 => sf erase 0 +$filesize
123 => sf write 96000000 0 $filesize
124 => reset
125
126 * LS1046ARDB (QSPI flash)
127
128 Start up from bank1, and program firmware to bank2 with below commands.
129 Switch to bank2 to start up OpenWrt.
130
131 => tftp a0000000 <firmware_name>.bin
132 => sf probe 0:1
133 => sf erase 0 +$filesize
134 => sf write a0000000 0 $filesize
135 => cpld reset altbank
136
137 * LS1088ARDB (QSPI flash)
138
139 Start up from bank0, and program firmware to bank1 with below commands.
140 Switch to bank1 to start up OpenWrt.
141
142 => tftp a0000000 <firmware_name>.bin
143 => sf probe 0:1
144 => sf erase 0 +$filesize
145 => sf write a0000000 0 $filesize
146 => qix altbank
147
148 Note: old version u-boot of ls1088ardb may use below commands to switch to
149 bank1 instead of 'qix altbank'.
150 => i2c mw 66 50 20;i2c mw 66 10 20;i2c mw 66 10 21
151
152
153 4. Known issues and limitation
154 ------------------------------
155 * u-boot may fail to read MAC addresses from EEPROM on some boards and there
156 won't be MAC addresses set in environment. This may cause kernel fails to
157 probe these network interfaces. The workaround is to set MAC addresses
158 manually, for example,
159
160 => setenv ethaddr 00:04:9F:04:65:4b
161 => setenv eth1addr 00:04:9F:04:65:4c
162
163
164 5. Other references and sources
165 -------------------------------
166 - NXP LSDK site: https://lsdk.github.io/
167
168 - NXP LSDK github: https://github.com/qoriq-open-source
169
170 - LEDE documentation: https://lede-project.org/docs/start