diff --git a/target/linux/layerscape/README b/target/linux/layerscape/README index c210e01ca4..1aecf30ac5 100644 --- a/target/linux/layerscape/README +++ b/target/linux/layerscape/README @@ -4,10 +4,15 @@ Layerscape Quick Start 1. Layerscape target support ---------------------------- * ARMv8 64-bit - LS1012ARDB LS1012AFRDM LS1043ARDB LS1046ARDB LS1088ARDB LS2088ARDB + LS1012ARDB LS1012AFRWY LS1043ARDB LS1046ARDB LS1088ARDB LS2088ARDB + (SD card boot support on LS1043ARDB/LS1046ARDB/LS1088ARDB) * ARMv8 32-bit - LS1012ARDB LS1012AFRDM LS1043ARDB LS1046ARDB + LS1012ARDB LS1012AFRWY LS1043ARDB LS1046ARDB + +* ARMv7 + LS1021ATWR + (SD card boot support on LS1021ATWR) 2. Build @@ -17,129 +22,94 @@ Before configuration and build, update and install package feeds. $ ./scripts/feeds update -a $ ./scripts/feeds install -a -2.1 make menuconfig -------------------- -* For single device +* 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 don't want to unzip manually to use the images.) - Target System: "NXP Layerscape". - Subtarget: "ARMv8 64-bit based boards" or "ARMv8 32-bit based boards" - Target Profile: (select device you want to build) + 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. - For example, build firmware for 64-bit ls1043ardb. - +---------------------------------------------+ - | Target System (NXP Layerscape) ---> | - |---------------------------------------------| - | Subtarget (ARMv8 64-bit based boards) ---> | - |---------------------------------------------| - | Target Profile (ls1043ardb-armv8_64b) ---> | - +---------------------------------------------+ +* make download (or make download -j) -* For multiple devices +* make (or make -j) - 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) ------------------------- - -2.3 Final firmware ------------------- -Final firmware would be in bin/targets/layerscape//, and -named as openwrt-layerscape----firmware.bin. +* Final firmware/image + Path: bin/targets/layerscape// + Firmware for flash: openwrt-layerscape----firmware.bin + Image for SD card: openwrt-layerscape----sdcard.img -3. Program firmware to NOR/QSPI flash -------------------------------------- -* LS1043ARDB (NOR flash) +3. Program NOR/QSPI flash or SD card +------------------------------------ +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. - Start up from bank0, and program firmware to bank4 with below commands. - Switch to bank4 to start up OpenWrt. +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. - => tftp a0000000 .bin - => protect off all - => erase 64000000 +$filesize - => cp.b a0000000 64000000 $filesize - => cpld reset altbank +* u-boot environment -* LS2088ARDB (NOR flash) + => tftp a0000000 -sdcard.img + => mmc write a0000000 0 a0000 - Start up from bank0, and program firmware to bank4 with below commands. - Switch to bank4 to start up OpenWrt. + Note: The default sdcard.img size is 320MB. a0000 is the block number for 320MB. + blk_num = filesize / 512. - => tftp a0000000 .bin - => protect off all - => erase 584000000 +$filesize - => cp.b a0000000 584000000 $filesize - => qix altbank +* linux environment + $ dd if=./-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 (QSPI flash) - Start up from bank1, and program firmware to bank2 with below commands. Switch to bank2 to start up OpenWrt. - => tftp a0000000 .bin + => tftp a0000000 -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) +* LS1043ARDB (NOR flash) + Start up from bank0, and program firmware to bank4 with below commands. + Switch to bank4 to start up OpenWrt. - LS1012AFRDM board only has one bank. Start up board, and program firmware - with below commands. Reset to start up OpenWrt. - - => tftp 96000000 .bin - => sf probe 0:0 - => sf erase 0 +$filesize - => sf write 96000000 0 $filesize - => reset + => tftp a0000000 -firmware.bin + => protect off all + => erase 64000000 +$filesize + => cp.b a0000000 64000000 $filesize + => cpld reset altbank * LS1046ARDB (QSPI flash) - Start up from bank1, and program firmware to bank2 with below commands. Switch to bank2 to start up OpenWrt. - => tftp a0000000 .bin + => tftp a0000000 -firmware.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 .bin + => tftp a0000000 -firmware.bin => sf probe 0:1 => sf erase 0 +$filesize => sf write a0000000 0 $filesize @@ -149,6 +119,35 @@ named as openwrt-layerscape----firmware.bin. bank1 instead of 'qix altbank'. => i2c mw 66 50 20;i2c mw 66 10 20;i2c mw 66 10 21 +* 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.bin + => protect off all + => erase 584000000 +$filesize + => cp.b a0000000 584000000 $filesize + => qix altbank + +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.bin + => sf probe 0:0 + => sf erase 0 +$filesize + => sf write 96000000 0 $filesize + => reset + 4. Known issues and limitation ------------------------------ @@ -161,10 +160,7 @@ named as openwrt-layerscape----firmware.bin. => setenv eth1addr 00:04:9F:04:65:4c -5. Other references and sources -------------------------------- +5. Other references +------------------- - NXP LSDK site: https://lsdk.github.io/ - -- NXP LSDK github: https://github.com/qoriq-open-source - -- LEDE documentation: https://lede-project.org/docs/start +- OpenWrt documentation: https://openwrt.org/docs/start