2017-10-26 10:58:03 +00:00
|
|
|
|
|
|
|
Layerscape Quick Start
|
|
|
|
|
|
|
|
1. Layerscape target support
|
|
|
|
----------------------------
|
|
|
|
* ARMv8 64-bit
|
|
|
|
LS1012ARDB LS1012AFRDM LS1043ARDB LS1046ARDB LS1088ARDB LS2088ARDB
|
|
|
|
|
|
|
|
* ARMv8 32-bit
|
|
|
|
LS1012ARDB LS1012AFRDM LS1043ARDB LS1046ARDB
|
|
|
|
|
|
|
|
|
|
|
|
2. Build
|
|
|
|
--------
|
2018-01-08 04:12:16 +00:00
|
|
|
Before configuration and build, update and install package feeds.
|
|
|
|
|
|
|
|
$ ./scripts/feeds update -a
|
|
|
|
$ ./scripts/feeds install -a
|
2017-10-26 10:58:03 +00:00
|
|
|
|
|
|
|
2.1 make menuconfig
|
|
|
|
-------------------
|
|
|
|
* For single device
|
|
|
|
|
|
|
|
Target System: "NXP Layerscape".
|
|
|
|
Subtarget: "ARMv8 64-bit based boards" or "ARMv8 32-bit based boards"
|
|
|
|
Target Profile: (select device you want to build)
|
|
|
|
|
|
|
|
For example, build firmware for 64-bit ls1043ardb.
|
|
|
|
+---------------------------------------------+
|
|
|
|
| Target System (NXP Layerscape) ---> |
|
|
|
|
|---------------------------------------------|
|
|
|
|
| Subtarget (ARMv8 64-bit based boards) ---> |
|
|
|
|
|---------------------------------------------|
|
|
|
|
| Target Profile (ls1043ardb-armv8_64b) ---> |
|
|
|
|
+---------------------------------------------+
|
|
|
|
|
|
|
|
* For multiple devices
|
|
|
|
|
|
|
|
Target System: "NXP Layerscape".
|
|
|
|
Subtarget: "ARMv8 64-bit based boards" or "ARMv8 32-bit based boards"
|
|
|
|
Target Profile: "Multiple devices"
|
|
|
|
Target Devices: (select devices you want to build)
|
|
|
|
|
|
|
|
For example, build firmware for all 64-bit devices.
|
|
|
|
Target Devices --->
|
|
|
|
+-----------------------------------------------------------------+
|
|
|
|
| [*] Enable all profiles by default |
|
|
|
|
|-----------------------------------------------------------------|
|
2018-01-22 08:42:05 +00:00
|
|
|
| [*] Use a per-device root filesystem that adds profile packages |
|
2017-10-26 10:58:03 +00:00
|
|
|
|-----------------------------------------------------------------|
|
2018-01-22 08:42:05 +00:00
|
|
|
| [*] ls1012afrdm-armv8_64b ---> |
|
2017-10-26 10:58:03 +00:00
|
|
|
|-----------------------------------------------------------------|
|
2018-01-22 08:42:05 +00:00
|
|
|
| [*] ls1012ardb-armv8_64b ---> |
|
2017-10-26 10:58:03 +00:00
|
|
|
|-----------------------------------------------------------------|
|
2018-01-22 08:42:05 +00:00
|
|
|
| [*] ls1043ardb-armv8_64b ---> |
|
2017-10-26 10:58:03 +00:00
|
|
|
|-----------------------------------------------------------------|
|
2018-01-22 08:42:05 +00:00
|
|
|
| [*] ls1046ardb-armv8_64b ---> |
|
2017-10-26 10:58:03 +00:00
|
|
|
|-----------------------------------------------------------------|
|
2018-01-22 08:42:05 +00:00
|
|
|
| [*] ls1088ardb-armv8_64b ---> |
|
2017-10-26 10:58:03 +00:00
|
|
|
|-----------------------------------------------------------------|
|
2018-01-22 08:42:05 +00:00
|
|
|
| [*] ls2088ardb-armv8_64b ---> |
|
2017-10-26 10:58:03 +00:00
|
|
|
+-----------------------------------------------------------------+
|
|
|
|
|
2018-01-26 08:46:17 +00:00
|
|
|
Note: The first time make menuconfig would create a .config file which
|
|
|
|
would include all dependencies for selected target. After that, make
|
|
|
|
menuconfig still could be used to modify packages. If want to change
|
|
|
|
other target, please remove .config and make menuconfig to select again.
|
|
|
|
Otherwise the packages selected in .config would be a mess.
|
|
|
|
|
2017-10-26 10:58:03 +00:00
|
|
|
2.2 make (or make -j<n>)
|
|
|
|
------------------------
|
|
|
|
|
|
|
|
2.3 Final firmware
|
|
|
|
------------------
|
|
|
|
Final firmware would be in bin/targets/layerscape/<subtarget>/, and
|
2018-01-22 08:42:05 +00:00
|
|
|
named as openwrt-layerscape-<subtarget>-<device>-<rootfs>-firmware.bin.
|
2017-10-26 10:58:03 +00:00
|
|
|
|
|
|
|
|
|
|
|
3. Program firmware to NOR/QSPI flash
|
|
|
|
-------------------------------------
|
|
|
|
* LS1043ARDB (NOR flash)
|
|
|
|
|
|
|
|
Start up from bank0, and program firmware to bank4 with below commands.
|
2018-01-22 08:42:05 +00:00
|
|
|
Switch to bank4 to start up OpenWrt.
|
2017-10-26 10:58:03 +00:00
|
|
|
|
2018-01-22 08:42:05 +00:00
|
|
|
=> tftp a0000000 <firmware_name>.bin
|
2017-10-26 10:58:03 +00:00
|
|
|
=> protect off all
|
|
|
|
=> erase 64000000 +$filesize
|
|
|
|
=> cp.b a0000000 64000000 $filesize
|
|
|
|
=> cpld reset altbank
|
|
|
|
|
|
|
|
* LS2088ARDB (NOR flash)
|
|
|
|
|
|
|
|
Start up from bank0, and program firmware to bank4 with below commands.
|
2018-01-22 08:42:05 +00:00
|
|
|
Switch to bank4 to start up OpenWrt.
|
2017-10-26 10:58:03 +00:00
|
|
|
|
2018-01-22 08:42:05 +00:00
|
|
|
=> tftp a0000000 <firmware_name>.bin
|
2017-10-26 10:58:03 +00:00
|
|
|
=> protect off all
|
|
|
|
=> erase 584000000 +$filesize
|
|
|
|
=> cp.b a0000000 584000000 $filesize
|
|
|
|
=> qix altbank
|
|
|
|
|
|
|
|
* LS1012ARDB (QSPI flash)
|
|
|
|
|
|
|
|
Start up from bank1, and program firmware to bank2 with below commands.
|
2018-01-22 08:42:05 +00:00
|
|
|
Switch to bank2 to start up OpenWrt.
|
2017-10-26 10:58:03 +00:00
|
|
|
|
2018-01-22 08:42:05 +00:00
|
|
|
=> tftp a0000000 <firmware_name>.bin
|
2017-10-26 10:58:03 +00:00
|
|
|
=> i2c mw 0x24 0x7 0xfc;i2c mw 0x24 0x3 0xf5
|
|
|
|
=> sf probe 0:0
|
|
|
|
=> sf erase 0 +$filesize
|
|
|
|
=> sf write a0000000 0 $filesize
|
|
|
|
=> reset
|
|
|
|
|
|
|
|
* LS1012AFRDM (QSPI flash)
|
|
|
|
|
|
|
|
LS1012AFRDM board only has one bank. Start up board, and program firmware
|
2018-01-22 08:42:05 +00:00
|
|
|
with below commands. Reset to start up OpenWrt.
|
2017-10-26 10:58:03 +00:00
|
|
|
|
2018-01-22 08:42:05 +00:00
|
|
|
=> tftp 96000000 <firmware_name>.bin
|
2017-10-26 10:58:03 +00:00
|
|
|
=> sf probe 0:0
|
|
|
|
=> sf erase 0 +$filesize
|
|
|
|
=> sf write 96000000 0 $filesize
|
|
|
|
=> reset
|
|
|
|
|
|
|
|
* LS1046ARDB (QSPI flash)
|
|
|
|
|
|
|
|
Start up from bank1, and program firmware to bank2 with below commands.
|
2018-01-22 08:42:05 +00:00
|
|
|
Switch to bank2 to start up OpenWrt.
|
2017-10-26 10:58:03 +00:00
|
|
|
|
2018-01-22 08:42:05 +00:00
|
|
|
=> tftp a0000000 <firmware_name>.bin
|
2017-10-26 10:58:03 +00:00
|
|
|
=> sf probe 0:1
|
|
|
|
=> sf erase 0 +$filesize
|
|
|
|
=> sf write a0000000 0 $filesize
|
|
|
|
=> cpld reset altbank
|
|
|
|
|
|
|
|
* LS1088ARDB (QSPI flash)
|
|
|
|
|
|
|
|
Start up from bank0, and program firmware to bank1 with below commands.
|
2018-01-22 08:42:05 +00:00
|
|
|
Switch to bank1 to start up OpenWrt.
|
2017-10-26 10:58:03 +00:00
|
|
|
|
2018-01-22 08:42:05 +00:00
|
|
|
=> tftp a0000000 <firmware_name>.bin
|
2017-10-26 10:58:03 +00:00
|
|
|
=> sf probe 0:1
|
|
|
|
=> sf erase 0 +$filesize
|
|
|
|
=> sf write a0000000 0 $filesize
|
|
|
|
=> qix altbank
|
|
|
|
|
|
|
|
Note: old version u-boot of ls1088ardb may use below commands to switch to
|
|
|
|
bank1 instead of 'qix altbank'.
|
|
|
|
=> i2c mw 66 50 20;i2c mw 66 10 20;i2c mw 66 10 21
|
|
|
|
|
|
|
|
|
2018-01-22 08:42:05 +00:00
|
|
|
4. Known issues and limitation
|
|
|
|
------------------------------
|
|
|
|
* u-boot may fail to read MAC addresses from EEPROM on some boards and there
|
|
|
|
won't be MAC addresses set in environment. This may cause kernel fails to
|
|
|
|
probe these network interfaces. The workaround is to set MAC addresses
|
|
|
|
manually, for example,
|
|
|
|
|
|
|
|
=> setenv ethaddr 00:04:9F:04:65:4b
|
|
|
|
=> setenv eth1addr 00:04:9F:04:65:4c
|
|
|
|
|
|
|
|
|
|
|
|
5. Other references and sources
|
2017-10-26 10:58:03 +00:00
|
|
|
-------------------------------
|
|
|
|
- NXP LSDK site: https://lsdk.github.io/
|
|
|
|
|
|
|
|
- NXP LSDK github: https://github.com/qoriq-open-source
|
|
|
|
|
|
|
|
- LEDE documentation: https://lede-project.org/docs/start
|