| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222 |
- Layerscape Quick Start
- 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 (QSPI NOR boot)
- LS1012AFRDM (QSPI NOR boot)
- LS1012AFRWY (QSPI NOR boot)
- LS1028ARDB (QSPI NOR boot | SD card 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)
- * ARMv7
- LS1021ATWR (NOR boot | SD card boot)
- LS1021AIOT (SD card boot)
- 2. Build
- --------
- Before configuration and build, update and install package feeds.
- $ ./scripts/feeds update -a
- $ ./scripts/feeds install -a
- * 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.)
- 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.
- * make download (or make download -j<n>)
- * make (or make -j<n>)
- * 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
- 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>-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
- * LS1028ARDB
- 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
- * LS1043ARDB
- 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
- => 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>-firmware.bin
- => sf probe 0:1
- => sf erase 0 +$filesize
- => sf write a0000000 0 $filesize
- => cpld reset altbank
- * 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>-firmware.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
- * 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
- 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.
- # /etc/init.d/firewall stop
- 5. Other references
- -------------------
- - NXP LSDK source: https://lsdk.github.io/
- - NXP LSDK site: https://www.nxp.com/design/software/embedded-software/linux-software-and-development-tools/layerscape-software-development-kit:LAYERSCAPE-SDK
- - OpenWrt documentation: https://openwrt.org/docs/start
|