mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-08-20 17:08:52 +09:00
![Hou Zhiqiang](/assets/img/avatar_default.png)
Add device tree for T1042D4RDB board and enable CONFIG_OF_CONTROL so that device tree can be compiled. Update board README for device tree usage. Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@nxp.com> Reviewed-by: Prabhakar Kushwaha <prabhakar.kushwaha@nxp.com>
387 lines
13 KiB
Plaintext
387 lines
13 KiB
Plaintext
Overview
|
|
--------
|
|
The T1040RDB is a Freescale reference board that hosts the T1040 SoC
|
|
(and variants). Variants inclued T1042 presonality of T1040, in which
|
|
case T1040RDB can also be called T1042RDB.
|
|
|
|
The T1042RDB is a Freescale reference board that hosts the T1042 SoC
|
|
(and variants). The board is similar to T1040RDB, T1040 is a reduced
|
|
personality of T1040 SoC without Integrated 8-port Gigabit(L2 Switch).
|
|
|
|
The T1042RDB_PI is a Freescale reference board that hosts the T1042 SoC.
|
|
(a personality of T1040 SoC). The board is similar to T1040RDB but is
|
|
designed specially with low power features targeted for Printing Image Market.
|
|
|
|
The T1040D4RDB is a Freescale reference board that hosts the T1040 SoC.
|
|
The board is re-designed T1040RDB board with following changes :
|
|
- Support of DDR4 memory and some enhancements
|
|
|
|
The T1042D4RDB is a Freescale reference board that hosts the T1042 SoC.
|
|
The board is re-designed T1040RDB board with following changes :
|
|
- Support of DDR4 memory
|
|
- Support for 0x86 serdes protocol which can support following interfaces
|
|
- 2 RGMII's on DTSEC4, DTSEC5
|
|
- 3 SGMII on DTSEC1, DTSEC2 & DTSEC3
|
|
|
|
Basic difference's among T1040RDB, T1042RDB_PI, T1042RDB
|
|
-------------------------------------------------------------------------
|
|
Board Si Protocol Targeted Market
|
|
-------------------------------------------------------------------------
|
|
T1040RDB T1040 0x66 Networking
|
|
T1040RDB T1042 0x86 Networking
|
|
T1042RDB_PI T1042 0x06 Printing & Imaging
|
|
T1040D4RDB T1040 0x66 Networking
|
|
T1042D4RDB T1042 0x86 Networking
|
|
|
|
|
|
T1040 SoC Overview
|
|
------------------
|
|
The QorIQ T1040/T1042 processor support four integrated 64-bit e5500 PA
|
|
processor cores with high-performance data path acceleration architecture
|
|
and network peripheral interfaces required for networking & telecommunications.
|
|
|
|
The T1040/T1042 SoC includes the following function and features:
|
|
|
|
- Four e5500 cores, each with a private 256 KB L2 cache
|
|
- 256 KB shared L3 CoreNet platform cache (CPC)
|
|
- Interconnect CoreNet platform
|
|
- 32-/64-bit DDR3L/DDR4 SDRAM memory controller with ECC and interleaving
|
|
support
|
|
- Data Path Acceleration Architecture (DPAA) incorporating acceleration
|
|
for the following functions:
|
|
- Packet parsing, classification, and distribution
|
|
- Queue management for scheduling, packet sequencing, and congestion
|
|
management
|
|
- Cryptography Acceleration (SEC 5.0)
|
|
- RegEx Pattern Matching Acceleration (PME 2.2)
|
|
- IEEE Std 1588 support
|
|
- Hardware buffer management for buffer allocation and deallocation
|
|
- Ethernet interfaces
|
|
- Integrated 8-port Gigabit Ethernet switch (T1040 only)
|
|
- Four 1 Gbps Ethernet controllers
|
|
- Two RGMII interfaces or one RGMII and one MII interfaces
|
|
- High speed peripheral interfaces
|
|
- Four PCI Express 2.0 controllers running at up to 5 GHz
|
|
- Two SATA controllers supporting 1.5 and 3.0 Gb/s operation
|
|
- Upto two QSGMII interface
|
|
- Upto six SGMII interface supporting 1000 Mbps
|
|
- One SGMII interface supporting upto 2500 Mbps
|
|
- Additional peripheral interfaces
|
|
- Two USB 2.0 controllers with integrated PHY
|
|
- SD/eSDHC/eMMC
|
|
- eSPI controller
|
|
- Four I2C controllers
|
|
- Four UARTs
|
|
- Four GPIO controllers
|
|
- Integrated flash controller (IFC)
|
|
- LCD and HDMI interface (DIU) with 12 bit dual data rate
|
|
- TDM interface
|
|
- Multicore programmable interrupt controller (PIC)
|
|
- Two 8-channel DMA engines
|
|
- Single source clocking implementation
|
|
- Deep Sleep power implementaion (wakeup from GPIO/Timer/Ethernet/USB)
|
|
|
|
T1040 SoC Personalities
|
|
-------------------------
|
|
T1022 Personality:
|
|
T1022 is a reduced personality of T1040 with less core/clusters.
|
|
|
|
T1042 Personality:
|
|
T1042 is a reduced personality of T1040 without Integrated 8-port Gigabit
|
|
Ethernet switch. Rest of the blocks are same as T1040
|
|
|
|
|
|
T1040RDB board Overview
|
|
-------------------------
|
|
- SERDES Connections, 8 lanes information:
|
|
1: None
|
|
2: SGMII
|
|
3: QSGMII
|
|
4: QSGMII
|
|
5: PCIe1 x1 slot
|
|
6: mini PCIe connector
|
|
7: mini PCIe connector
|
|
8: SATA connector
|
|
- DDR Controller
|
|
- Supports rates of up to 1600 MHz data-rate
|
|
- Supports one DDR3LP UDIMM/RDIMMs, of single-, dual- or quad-rank types.
|
|
- IFC/Local Bus
|
|
- NAND flash: 1GB 8-bit NAND flash
|
|
- NOR: 128MB 16-bit NOR Flash
|
|
- Ethernet
|
|
- Two on-board RGMII 10/100/1G ethernet ports.
|
|
- CPLD
|
|
- Clocks
|
|
- System and DDR clock (SYSCLK, “DDRCLK”)
|
|
- SERDES clocks
|
|
- Power Supplies
|
|
- USB
|
|
- Supports two USB 2.0 ports with integrated PHYs
|
|
- Two type A ports with 5V@1.5A per port.
|
|
- SDHC
|
|
- SDHC/SDXC connector
|
|
- SPI
|
|
- On-board 64MB SPI flash
|
|
- Other IO
|
|
- Two Serial ports
|
|
- Four I2C ports
|
|
|
|
T1042RDB_PI board Overview
|
|
-------------------------
|
|
- SERDES Connections, 8 lanes information:
|
|
1, 2, 3, 4 : PCIe x4 slot
|
|
5: mini PCIe connector
|
|
6: mini PCIe connector
|
|
7: NA
|
|
8: SATA connector
|
|
- DDR Controller
|
|
- Supports rates of up to 1600 MHz data-rate
|
|
- Supports one DDR3LP UDIMM/RDIMMs, of single-, dual- or quad-rank types.
|
|
- IFC/Local Bus
|
|
- NAND flash: 1GB 8-bit NAND flash
|
|
- NOR: 128MB 16-bit NOR Flash
|
|
- Ethernet
|
|
- Two on-board RGMII 10/100/1G ethernet ports.
|
|
- CPLD
|
|
- Clocks
|
|
- System and DDR clock (SYSCLK, “DDRCLK”)
|
|
- SERDES clocks
|
|
- Video
|
|
- DIU supports video at up to 1280x1024x32bpp
|
|
- Power Supplies
|
|
- USB
|
|
- Supports two USB 2.0 ports with integrated PHYs
|
|
- Two type A ports with 5V@1.5A per port.
|
|
- SDHC
|
|
- SDHC/SDXC connector
|
|
- SPI
|
|
- On-board 64MB SPI flash
|
|
- Other IO
|
|
- Two Serial ports
|
|
- Four I2C ports
|
|
|
|
Memory map
|
|
-----------
|
|
The addresses in brackets are physical addresses.
|
|
|
|
Start Address End Address Description Size
|
|
0xF_FFDF_0000 0xF_FFDF_0FFF IFC - CPLD 4KB
|
|
0xF_FF80_0000 0xF_FF80_FFFF IFC - NAND Flash 64KB
|
|
0xF_FE00_0000 0xF_FEFF_FFFF CCSRBAR 16MB
|
|
0xF_F803_0000 0xF_F803_FFFF PCI Express 4 I/O Space 64KB
|
|
0xF_F802_0000 0xF_F802_FFFF PCI Express 3 I/O Space 64KB
|
|
0xF_F801_0000 0xF_F801_FFFF PCI Express 2 I/O Space 64KB
|
|
0xF_F800_0000 0xF_F800_FFFF PCI Express 1 I/O Space 64KB
|
|
0xF_F600_0000 0xF_F7FF_FFFF Queue manager software portal 32MB
|
|
0xF_F400_0000 0xF_F5FF_FFFF Buffer manager software portal 32MB
|
|
0xF_E800_0000 0xF_EFFF_FFFF IFC - NOR Flash 128MB
|
|
0xF_0000_0000 0xF_003F_FFFF DCSR 4MB
|
|
0xC_3000_0000 0xC_3FFF_FFFF PCI Express 4 Mem Space 256MB
|
|
0xC_2000_0000 0xC_2FFF_FFFF PCI Express 3 Mem Space 256MB
|
|
0xC_1000_0000 0xC_1FFF_FFFF PCI Express 2 Mem Space 256MB
|
|
0xC_0000_0000 0xC_0FFF_FFFF PCI Express 1 Mem Space 256MB
|
|
0x0_0000_0000 0x0_ffff_ffff DDR 2GB
|
|
|
|
|
|
NOR Flash memory Map
|
|
---------------------
|
|
Start End Definition Size
|
|
0xEFF40000 0xEFFFFFFF U-Boot (current bank) 768KB
|
|
0xEFF20000 0xEFF3FFFF U-Boot env (current bank) 128KB
|
|
0xEFF00000 0xEFF1FFFF FMAN Ucode (current bank) 128KB
|
|
0xED300000 0xEFEFFFFF rootfs (alt bank) 44MB
|
|
0xEC800000 0xEC8FFFFF Hardware device tree (alt bank) 1MB
|
|
0xEC020000 0xEC7FFFFF Linux.uImage (alt bank) 7MB + 875KB
|
|
0xEC000000 0xEC01FFFF RCW (alt bank) 128KB
|
|
0xEBF40000 0xEBFFFFFF U-Boot (alt bank) 768KB
|
|
0xEBF20000 0xEBF3FFFF U-Boot env (alt bank) 128KB
|
|
0xEBF00000 0xEBF1FFFF FMAN ucode (alt bank) 128KB
|
|
0xE9300000 0xEBEFFFFF rootfs (current bank) 44MB
|
|
0xE8800000 0xE88FFFFF Hardware device tree (cur bank) 11MB + 512KB
|
|
0xE8020000 0xE86FFFFF Linux.uImage (current bank) 7MB + 875KB
|
|
0xE8000000 0xE801FFFF RCW (current bank) 128KB
|
|
|
|
|
|
Various Software configurations/environment variables/commands
|
|
--------------------------------------------------------------
|
|
The below commands apply to the board
|
|
|
|
1. U-Boot environment variable hwconfig
|
|
The default hwconfig is:
|
|
hwconfig=fsl_ddr:ctlr_intlv=null,bank_intlv=cs0_cs1;usb1:
|
|
dr_mode=host,phy_type=utmi
|
|
Note: For USB gadget set "dr_mode=peripheral"
|
|
|
|
2. FMAN Ucode versions
|
|
fsl_fman_ucode_t1040.bin
|
|
|
|
3. Switching to alternate bank
|
|
Commands for switching to alternate bank.
|
|
|
|
1. To change from vbank0 to vbank4
|
|
=> cpld reset altbank (it will boot using vbank4)
|
|
|
|
2.To change from vbank4 to vbank0
|
|
=> cpld reset (it will boot using vbank0)
|
|
|
|
NAND boot with 2 Stage boot loader
|
|
----------------------------------
|
|
PBL initialise the internal SRAM and copy SPL(160KB) in SRAM.
|
|
SPL further initialise DDR using SPD and environment variables and copy
|
|
U-Boot(768 KB) from flash to DDR.
|
|
Finally SPL transer control to U-Boot for futher booting.
|
|
|
|
SPL has following features:
|
|
- Executes within 256K
|
|
- No relocation required
|
|
|
|
Run time view of SPL framework during boot :-
|
|
-----------------------------------------------
|
|
Area | Address |
|
|
-----------------------------------------------
|
|
Secure boot | 0xFFFC0000 (32KB) |
|
|
headers | |
|
|
-----------------------------------------------
|
|
GD, BD | 0xFFFC8000 (4KB) |
|
|
-----------------------------------------------
|
|
ENV | 0xFFFC9000 (8KB) |
|
|
-----------------------------------------------
|
|
HEAP | 0xFFFCB000 (30KB) |
|
|
-----------------------------------------------
|
|
STACK | 0xFFFD8000 (22KB) |
|
|
-----------------------------------------------
|
|
U-Boot SPL | 0xFFFD8000 (160KB) |
|
|
-----------------------------------------------
|
|
|
|
NAND Flash memory Map on T104xRDB
|
|
------------------------------------------
|
|
Start End Definition Size
|
|
0x000000 0x0FFFFF U-Boot 1MB
|
|
0x180000 0x19FFFF U-Boot env 128KB
|
|
0x280000 0x29FFFF FMAN Ucode 128KB
|
|
0x380000 0x39FFFF QE Firmware 128KB
|
|
|
|
SD Card memory Map on T104xRDB
|
|
------------------------------------------
|
|
Block #blocks Definition Size
|
|
0x008 2048 U-Boot 1MB
|
|
0x800 0024 U-Boot env 8KB
|
|
0x820 0256 FMAN Ucode 128KB
|
|
0x920 0256 QE Firmware 128KB
|
|
|
|
SPI Flash memory Map on T104xRDB
|
|
------------------------------------------
|
|
Start End Definition Size
|
|
0x000000 0x0FFFFF U-Boot 1MB
|
|
0x100000 0x101FFF U-Boot env 8KB
|
|
0x110000 0x12FFFF FMAN Ucode 128KB
|
|
0x130000 0x14FFFF QE Firmware 128KB
|
|
|
|
Please note QE Firmware is only valid for T1040RDB
|
|
|
|
|
|
Switch Settings for T104xRDB boards: (ON is 0, OFF is 1)
|
|
==========================================================
|
|
NOR boot SW setting:
|
|
SW1: 00010011
|
|
SW2: 10111011
|
|
SW3: 11100001
|
|
|
|
NAND boot SW setting:
|
|
SW1: 10001000
|
|
SW2: 00111011
|
|
SW3: 11110001
|
|
|
|
SPI boot SW setting:
|
|
SW1: 00100010
|
|
SW2: 10111011
|
|
SW3: 11100001
|
|
|
|
SD boot SW setting:
|
|
SW1: 00100000
|
|
SW2: 00111011
|
|
SW3: 11100001
|
|
|
|
Switch Settings for T104xD4RDB boards: (ON is 0, OFF is 1)
|
|
=============================================================
|
|
NOR boot SW setting:
|
|
SW1: 00010011
|
|
SW2: 10111001
|
|
SW3: 11100001
|
|
|
|
NAND boot SW setting:
|
|
SW1: 10001000
|
|
SW2: 00111001
|
|
SW3: 11110001
|
|
|
|
SPI boot SW setting:
|
|
SW1: 00100010
|
|
SW2: 10111001
|
|
SW3: 11100001
|
|
|
|
SD boot SW setting:
|
|
SW1: 00100000
|
|
SW2: 00111001
|
|
SW3: 11100001
|
|
|
|
PBL-based image generation
|
|
==========================
|
|
Changes only the required register bit in in PBI commands.
|
|
|
|
Provides reference code which might needs some
|
|
modification as per requirement.
|
|
example:
|
|
By default PBI_SRC=14 (which is for IFC-NAND/NOR) in rcw.cfg file
|
|
which needs to be changed for SPI and SD.
|
|
|
|
For SD-boot
|
|
==============
|
|
1. Set RCW[192:195], PBI_SRC bits as 6 in RCW file (t1040d4_rcw.cfg type files)
|
|
|
|
example:
|
|
RCW file: board/freescale/t104xrdb/t1040d4_rcw.cfg
|
|
|
|
Change
|
|
66000002 40000002 ec027000 01000000
|
|
to
|
|
66000002 40000002 6c027000 01000000
|
|
|
|
2. SD does not support flush so remove flush from pbl, make changes in
|
|
tools/pblimage.c file, Update value of pbl_end_cmd[0] = 0x09138000
|
|
with 0x091380c0
|
|
|
|
For SPI-boot
|
|
==============
|
|
1. Set RCW[192:195], PBI_SRC bits as 5 in RCW file (t1040d4_rcw.cfg type files)
|
|
|
|
example:
|
|
RCW file: board/freescale/t104xrdb/t1040d4_rcw.cfg
|
|
|
|
Change
|
|
66000002 40000002 ec027000 01000000
|
|
to
|
|
66000002 40000002 5c027000 01000000
|
|
|
|
2. SPI does not support flush so remove flush from pbl, make changes in
|
|
tools/pblimage.c file, Update value of pbl_end_cmd[0] = 0x09138000
|
|
with 0x091380c0
|
|
|
|
Device tree support and how to enable it for different configs
|
|
--------------------------------------------------------------
|
|
Device tree support is available for t1042d4rdb for below mentioned boot,
|
|
1. NOR Boot
|
|
2. NAND Boot
|
|
3. SD Boot
|
|
4. SPIFLASH Boot
|
|
|
|
To enable device tree support for other boot, below configs need to be
|
|
enabled in relative defconfig file,
|
|
1. CONFIG_DEFAULT_DEVICE_TREE="t1042d4rdb" (Change default device tree name if required)
|
|
2. CONFIG_OF_CONTROL
|
|
3. CONFIG_MPC85XX_HAVE_RESET_VECTOR if reset vector is located at
|
|
CONFIG_RESET_VECTOR_ADDRESS - 0xffc
|
|
|
|
If device tree support is enabled in defconfig,
|
|
1. use 'u-boot-with-dtb.bin' for NOR boot.
|
|
2. use 'u-boot-with-spl-pbl.bin' for other boot.
|