This patch is to add a known issue of make menuconfig in README file. This is also a common issue for OpenWrt. Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
		
			
				
	
	
		
			171 lines
		
	
	
		
			5.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			171 lines
		
	
	
		
			5.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
 | 
						|
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
 |