| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170 |
- 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
- --------
- Before configuration and build, update and install package feeds.
- $ ./scripts/feeds update -a
- $ ./scripts/feeds install -a
- 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 |
- |-----------------------------------------------------------------|
- | [*] Use a per-device root filesystem that adds profile packages |
- |-----------------------------------------------------------------|
- | [*] ls1012afrdm-armv8_64b ---> |
- |-----------------------------------------------------------------|
- | [*] ls1012ardb-armv8_64b ---> |
- |-----------------------------------------------------------------|
- | [*] ls1043ardb-armv8_64b ---> |
- |-----------------------------------------------------------------|
- | [*] ls1046ardb-armv8_64b ---> |
- |-----------------------------------------------------------------|
- | [*] ls1088ardb-armv8_64b ---> |
- |-----------------------------------------------------------------|
- | [*] ls2088ardb-armv8_64b ---> |
- +-----------------------------------------------------------------+
- 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.
- 2.2 make (or make -j<n>)
- ------------------------
- 2.3 Final firmware
- ------------------
- Final firmware would be in bin/targets/layerscape/<subtarget>/, and
- named as openwrt-layerscape-<subtarget>-<device>-<rootfs>-firmware.bin.
- 3. Program firmware to NOR/QSPI flash
- -------------------------------------
- * LS1043ARDB (NOR flash)
- Start up from bank0, and program firmware to bank4 with below commands.
- Switch to bank4 to start up OpenWrt.
- => tftp a0000000 <firmware_name>.bin
- => 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.
- Switch to bank4 to start up OpenWrt.
- => tftp a0000000 <firmware_name>.bin
- => 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.
- Switch to bank2 to start up OpenWrt.
- => tftp a0000000 <firmware_name>.bin
- => 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
- with below commands. Reset to start up OpenWrt.
- => tftp 96000000 <firmware_name>.bin
- => 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.
- Switch to bank2 to start up OpenWrt.
- => tftp a0000000 <firmware_name>.bin
- => 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.
- Switch to bank1 to start up OpenWrt.
- => tftp a0000000 <firmware_name>.bin
- => 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
- 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
- -------------------------------
- - NXP LSDK site: https://lsdk.github.io/
- - NXP LSDK github: https://github.com/qoriq-open-source
- - LEDE documentation: https://lede-project.org/docs/start
|