layerscape: add new devices in README and clean up
[openwrt/openwrt.git] / target / linux / layerscape / README
index 7415f27e309024f7c7386cf378fc02b1c2bf1773..a8d1846468709942f8be6cb87dee048b0adbc25a 100644 (file)
@@ -1,13 +1,27 @@
 
 Layerscape Quick Start
 
-1. Layerscape target support
+This is a quick start guide for Layerscape specific usage, like introducing
+how to configure, build, and deploy OpenWrt to Layerscape boards, so that
+users can bring up the board without difficulty.
+
+
+1. Target support
 ----------------------------
 * ARMv8 64-bit
-  LS1012ARDB LS1012AFRDM LS1043ARDB LS1046ARDB LS1088ARDB LS2088ARDB
+  LS1012ARDB        (QSPI NOR boot)
+  LS1012AFRDM       (QSPI NOR boot)
+  LS1012AFRWY       (QSPI NOR boot)
+  LS1043ARDB        (NOR boot         | SD card boot)
+  LS1046ARDB        (QSPI NOR boot    | SD card boot)
+  LS1046AFRWY       (QSPI NOR boot    | SD card boot)
+  LS1088ARDB        (QSPI NOR boot    | SD card boot)
+  LS2088ARDB        (NOR boot)
+  LX2160ARDB Rev2.0 (FlexSPI NOR boot | SD card boot)
 
-* ARMv8 32-bit
-  LS1012ARDB LS1012AFRDM LS1043ARDB LS1046ARDB
+* ARMv7
+  LS1021ATWR        (NOR boot | SD card boot)
+  LS1021AIOT        (SD card boot)
 
 
 2. Build
@@ -17,123 +31,115 @@ 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  --->                                  |
-  +-----------------------------------------------------------------+
-
-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)
+* make menuconfig
+  Target System:   "NXP Layerscape"
+  Subtarget:       (Select subtarget)
+  Target Profile:  (Select device, or "Multiple devices")
+  Target Devices:  (Select devices. Available when Target Profile is "Multiple devices")
+  Target Images:   (Disable "GZip images" if you don't want to unzip manually to use the images.)
 
-  Start up from bank0, and program firmware to bank4 with below commands.
-  Switch to bank4 to start up OpenWrt.
+  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.
 
-  => tftp a0000000 <firmware_name>.bin
-  => protect off all
-  => erase 64000000 +$filesize
-  => cp.b a0000000 64000000 $filesize
-  => cpld reset altbank
+* make download (or make download -j<n>)
 
-* LS2088ARDB (NOR flash)
+* make (or make -j<n>)
 
-  Start up from bank0, and program firmware to bank4 with below commands.
-  Switch to bank4 to start up OpenWrt.
+* Final firmware/image
+  Path:               bin/targets/layerscape/<subtarget>/
+  Firmware for flash: openwrt-layerscape-<subtarget>-<device>-<rootfs>-firmware.bin
+  Image for SD card:  openwrt-layerscape-<subtarget>-<device>-<rootfs>-sdcard.img.gz
+  Sysupgrade images:  openwrt-layerscape-<subtarget>-<device>-<rootfs>-sysupgrade.bin
 
-  => tftp a0000000 <firmware_name>.bin
-  => protect off all
-  => erase 584000000 +$filesize
-  => cp.b a0000000 584000000 $filesize
-  => qix altbank
 
-* LS1012ARDB (QSPI flash)
+3. Deploy
+---------
+The firmware.bin or sdcard.img is an all-in-one image including all things
+for OpenWrt staring up except LS1012AFRWY (Refer to 3.3).
+If you want to install all things into flash, please use firmware.bin.
+If you want to install all things into SD card, please use sdcard.img.
+
+3.1 Program sdcard.img to SD card
+---------------------------------
+sdcard.img could be programmed to SD card in either u-boot environment
+or linux environment. After programming, configure the board to boot
+from SD card. (sdcard.img images are gz-iped to save space. Please extract them first.)
 
+* u-boot environment
+
+  => tftp a0000000 <image_name>-sdcard.img
+  => mmc write a0000000 0 a0000
+
+  Note: The default sdcard.img size is 320MB. a0000 is the block number for 320MB.
+  blk_num = filesize / 512.
+
+* linux environment
+
+  $ dd if=./<image_name>-sdcard.img of=/dev/mmcblkx
+
+  Note: Need to check the SD card device name to replace "mmcblkx".
+
+3.2 Program firmware.bin to flash
+---------------------------------
+* LS1012ARDB
   Start up from bank1, and program firmware to bank2 with below commands.
   Switch to bank2 to start up OpenWrt.
 
-  => tftp a0000000 <firmware_name>.bin
+  => tftp a0000000 <firmware_name>-firmware.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
+* LS1043ARDB
+  Start up from bank0, and program firmware to bank4 with below commands.
+  Switch to bank4 to start up OpenWrt.
 
-* LS1046ARDB (QSPI flash)
+  => tftp a0000000 <firmware_name>-firmware.bin
+  => protect off all
+  => erase 64000000 +$filesize
+  => cp.b a0000000 64000000 $filesize
+  => cpld reset altbank
 
+* LS1046ARDB
   Start up from bank1, and program firmware to bank2 with below commands.
   Switch to bank2 to start up OpenWrt.
 
-  => tftp a0000000 <firmware_name>.bin
+  => tftp a0000000 <firmware_name>-firmware.bin
   => sf probe 0:1
   => sf erase 0 +$filesize
   => sf write a0000000 0 $filesize
   => cpld reset altbank
 
-* LS1088ARDB (QSPI flash)
+* LS2088ARDB
+  Start up from bank0, and program firmware to bank4 with below commands.
+  Switch to bank4 to start up OpenWrt.
+
+  => tftp a0000000 <firmware_name>-firmware.bin
+  => protect off all
+  => erase 584000000 +$filesize
+  => cp.b a0000000 584000000 $filesize
+  => qix altbank
+
+* LS1012FRDM/LS1046AFRWY
+  Board has only one bank. Those commands will replace stock bootloader
+  and firmware.
+
+  => tftp a0000000 <firmware_name>-firmware.bin
+  => sf probe 0:0
+  => sf erase 0 +$filesize
+  => sf write a0000000 0 $filesize
+  => reset
 
+* LS1088ARDB/LX2160ARDB Rev2.0
   Start up from bank0, and program firmware to bank1 with below commands.
   Switch to bank1 to start up OpenWrt.
 
-  => tftp a0000000 <firmware_name>.bin
+  => tftp a0000000 <firmware_name>-firmware.bin
   => sf probe 0:1
   => sf erase 0 +$filesize
   => sf write a0000000 0 $filesize
@@ -143,22 +149,64 @@ named as openwrt-layerscape-<subtarget>-<device>-<rootfs>-firmware.bin.
   bank1 instead of 'qix altbank'.
   => i2c mw 66 50 20;i2c mw 66 10 20;i2c mw 66 10 21
 
+* LS1021ATWR
+  Start up from bank0, and program firmware to bank4 with below commands.
+  Switch to bank4 to start up OpenWrt.
+
+  => tftp a0000000 <firmware_name>-firmware.bin
+  => protect off all
+  => erase 64000000 +$filesize
+  => cp.b a0000000 64000000 $filesize
+  => boot_bank 1
+
+3.3 Program LS1012AFRWY
+-----------------------
+* LS1012AFRWY (QSPI flash + SD card)
+  LS1012AFRWY only supports 2MB QSPI flash. We have to put u-boot, and
+  some firmwares on QSPI flash, and kernel/dtb/rootfs on SD card.
+  So both firmware.bin and sdcard.img are needed for OpenWrt starting up.
+
+  To program sdcard.img, please use linux command described in 3.1 on a
+  linux machine.
+  To program firmware.bin, start up board from QSPI flash, and program
+  firmware with below commands. Reset to start up OpenWrt. (LS1012AFRWY
+  supports only one bank.)
+
+  => tftp 96000000 <firmware_name>-firmware.bin
+  => sf probe 0:0
+  => sf erase 0 +$filesize
+  => sf write 96000000 0 $filesize
+  => reset
+
 
 4. Known issues and limitation
 ------------------------------
-* u-boot may fail to read MAC addresses from EEPROM on some boards and there
+* 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
+  => saveenv
+
+* In case users want to refer Layerscape SDK doc for network configuration,
+  like TSN (Time-Sensitive Networking) on LS1028A, the OpenWrt LAN/WAN router
+  setting should be removed before that.
+
+  # ubus call network.interface.lan remove
+  # ubus call network.interface.wan remove
+  # ubus call network.interface.wan6 remove
 
+  And firewall may be needed to stop.
 
-5. Other references and sources
--------------------------------
-- NXP LSDK site: https://lsdk.github.io/
+  # /etc/init.d/firewall stop
+
+
+5. Other references
+-------------------
+- NXP LSDK source: https://lsdk.github.io/
 
-- NXP LSDK github: https://github.com/qoriq-open-source
+- NXP LSDK site: https://www.nxp.com/design/software/embedded-software/linux-software-and-development-tools/layerscape-software-development-kit:LAYERSCAPE-SDK
 
-- LEDE documentation: https://lede-project.org/docs/start
+- OpenWrt documentation: https://openwrt.org/docs/start