mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-12-22 11:13:07 +00:00
77b11f7604
As part of the effort of making U-Boot work with the same device tree as Linux, there is an issue with the "xfi" phy-mode. To be precise, in Linux there was a discussion (for those who have time to read: https://lore.kernel.org/netdev/1576768881-24971-2-git-send-email-madalin.bucur@oss.nxp.com/) which led to a patch: https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next.git/commit/?id=c114574ebfdf42f826776f717c8056a00fa94881 TL;DR: "xfi" was standardized in Linux as "10gbase-r". This patch changes the relevant occurrences in U-Boot to use "10gbase-r" instead of "xfi" wherever applicable. Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com> Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
340 lines
13 KiB
Text
340 lines
13 KiB
Text
T1024 SoC Overview
|
|
------------------
|
|
The T1024/T1023 dual core and T1014/T1013 single core QorIQ communication processor
|
|
combines two or one 64-bit Power Architecture e5500 core respectively with high
|
|
performance datapath acceleration logic, and network peripheral bus interfaces
|
|
required for networking and telecommunications. This processor can be used in
|
|
applications such as enterprise WLAN access points, routers, switches, firewall
|
|
and other packet processing intensive small enterprise and branch office appliances,
|
|
and general-purpose embedded computing. Its high level of integration offers
|
|
significant performance benefits and greatly helps to simplify board design.
|
|
|
|
|
|
The T1024 SoC includes the following function and features:
|
|
- two e5500 cores, each with a private 256 KB L2 cache
|
|
- Up to 1.4 GHz with 64-bit ISA support (Power Architecture v2.06-compliant)
|
|
- Three levels of instructions: User, supervisor, and hypervisor
|
|
- Independent boot and reset
|
|
- Secure boot capability
|
|
- 256 KB shared L3 CoreNet platform cache (CPC)
|
|
- Interconnect CoreNet platform
|
|
- CoreNet coherency manager supporting coherent and noncoherent transactions
|
|
with prioritization and bandwidth allocation amongst CoreNet endpoints
|
|
- 150 Gbps coherent read bandwidth
|
|
- 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.x)
|
|
- IEEE 1588 support
|
|
- Hardware buffer management for buffer allocation and deallocation
|
|
- MACSEC on DPAA-based Ethernet ports
|
|
- Ethernet interfaces
|
|
- Four 1 Gbps Ethernet controllers
|
|
- Parallel Ethernet interfaces
|
|
- Two RGMII interfaces
|
|
- High speed peripheral interfaces
|
|
- Three PCI Express 2.0 controllers/ports running at up to 5 GHz
|
|
- One SATA controller supporting 1.5 and 3.0 Gb/s operation
|
|
- One QSGMII interface
|
|
- Four SGMII interface supporting 1000 Mbps
|
|
- Three SGMII interfaces supporting up to 2500 Mbps
|
|
- 10GBase-R or 10Base-KR interface
|
|
- 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 interface (DIU) with 12 bit dual data rate
|
|
- Multicore programmable interrupt controller (PIC)
|
|
- Two 8-channel DMA engines
|
|
- Single source clocking implementation
|
|
- Deep Sleep power implementaion (wakeup from GPIO/Timer/Ethernet/USB)
|
|
- QUICC Engine block
|
|
- 32-bit RISC controller for flexible support of the communications peripherals
|
|
- Serial DMA channel for receive and transmit on all serial channels
|
|
- Two universal communication controllers, supporting TDM, HDLC, and UART
|
|
|
|
T1023 Personality
|
|
------------------
|
|
T1023 is a reduced personality of T1024 without QUICC Engine, DIU, and
|
|
unavailable deep sleep. Rest of the blocks are almost same as T1024.
|
|
Differences between T1024 and T1023
|
|
Feature T1024 T1023
|
|
QUICC Engine: yes no
|
|
DIU: yes no
|
|
Deep Sleep: yes no
|
|
I2C controller: 4 3
|
|
DDR: 64-bit 32-bit
|
|
IFC: 32-bit 28-bit
|
|
Package: 23x23 19x19
|
|
|
|
|
|
T1024RDB board Overview
|
|
-----------------------
|
|
- Ethernet
|
|
- Two on-board 10M/100M/1G bps RGMII ethernet ports
|
|
- One on-board 10G bps Base-T port.
|
|
- DDR Memory
|
|
- Supports 64-bit 4GB DDR3L DIMM
|
|
- PCIe
|
|
- One on-board PCIe slot.
|
|
- Two on-board PCIe Mini-PCIe connectors.
|
|
- IFC/Local Bus
|
|
- NOR: 128MB 16-bit NOR Flash
|
|
- NAND: 1GB 8-bit NAND flash
|
|
- CPLD: for system controlling with programable header on-board
|
|
- USB
|
|
- Supports two USB 2.0 ports with integrated PHYs
|
|
- Two type A ports with 5V@1.5A per port.
|
|
- SDHC
|
|
- one SD connector supporting 1.8V/3.3V via J53.
|
|
- SPI
|
|
- On-board 64MB SPI flash
|
|
- Other
|
|
- Two Serial ports
|
|
- Four I2C ports
|
|
|
|
|
|
T1023RDB board Overview
|
|
-----------------------
|
|
- T1023 SoC integrating two 64-bit e5500 cores up to 1.4GHz
|
|
- CoreNet fabric supporting coherent and noncoherent transactions with
|
|
prioritization and bandwidth allocation
|
|
- SDRAM memory: 2GB Micron MT40A512M8HX unbuffered 32-bit DDR4 w/o ECC
|
|
- Accelerator: DPAA components consist of FMan, BMan, QMan, DCE and SEC
|
|
- Ethernet interfaces:
|
|
- one 1G RGMII port on-board(RTL8211FS PHY)
|
|
- one 1G SGMII port on-board(RTL8211FS PHY)
|
|
- one 2.5G SGMII port on-board(AQR105 PHY)
|
|
- PCIe: Two Mini-PCIe connectors on-board.
|
|
- SerDes: 4 lanes up to 10.3125GHz
|
|
- NOR: 128MB S29GL01GS110TFIV10 Spansion NOR Flash
|
|
- NAND: 512MB S34MS04G200BFI000 Spansion NAND Flash
|
|
- eSPI: 64MB S25FL512SAGMFI010 Spansion SPI flash.
|
|
- USB: one Type-A USB 2.0 port with internal PHY
|
|
- eSDHC: support SD/MMC and eMMC card
|
|
- 256Kbit M24256 I2C EEPROM
|
|
- RTC: Real-time clock DS1339U on I2C bus
|
|
- UART: one serial port on-board with RJ45 connector
|
|
- Debugging: JTAG/COP for T1023 debugging
|
|
|
|
|
|
Memory map on T1024RDB
|
|
----------------------
|
|
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_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_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 4GB
|
|
|
|
|
|
128MB NOR Flash Memory Layout
|
|
-----------------------------
|
|
Start Address End Address Definition Max size
|
|
0xEFF40000 0xEFFFFFFF U-Boot (current bank) 768KB
|
|
0xEFF20000 0xEFF3FFFF U-Boot env (current bank) 128KB
|
|
0xEFF00000 0xEFF1FFFF FMAN Ucode (current bank) 128KB
|
|
0xEFE00000 0xEFE3FFFF QE firmware (current bank) 256KB
|
|
0xED300000 0xEFDFFFFF rootfs (alt bank) 44MB
|
|
0xED000000 0xED2FFFFF Guest image #3 (alternate bank) 3MB
|
|
0xECD00000 0xECFFFFFF Guest image #2 (alternate bank) 3MB
|
|
0xECA00000 0xECCFFFFF Guest image #1 (alternate bank) 3MB
|
|
0xEC900000 0xEC9FFFFF HV config device tree(alt bank) 1MB
|
|
0xEC800000 0xEC8FFFFF Hardware device tree (alt bank) 1MB
|
|
0xEC700000 0xEC7FFFFF HV.uImage (alternate bank) 1MB
|
|
0xEC020000 0xEC6FFFFF Linux.uImage (alt bank) ~7MB
|
|
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
|
|
0xEBE00000 0xEBE3FFFF QE firmware (alt bank) 256KB
|
|
0xE9300000 0xEBDFFFFF rootfs (current bank) 44MB
|
|
0xE9000000 0xE92FFFFF Guest image #3 (current bank) 3MB
|
|
0xE8D00000 0xE8FFFFFF Guest image #2 (current bank) 3MB
|
|
0xE8A00000 0xE8CFFFFF Guest image #1 (current bank) 3MB
|
|
0xE8900000 0xE89FFFFF HV config device tree(cur bank) 1MB
|
|
0xE8800000 0xE88FFFFF Hardware device tree (cur bank) 1MB
|
|
0xE8700000 0xE87FFFFF HV.uImage (current bank) 1MB
|
|
0xE8020000 0xE86FFFFF Linux.uImage (current bank) ~7MB
|
|
0xE8000000 0xE801FFFF RCW (current bank) 128KB
|
|
|
|
|
|
T1024/T1023 Clock frequency
|
|
---------------------------
|
|
BIN Core DDR Platform FMan
|
|
Bin1: 1400MHz 1600MT/s 400MHz 700MHz
|
|
Bin2: 1200MHz 1600MT/s 400MHz 600MHz
|
|
Bin3: 1000MHz 1600MT/s 400MHz 500MHz
|
|
|
|
|
|
Software configurations and board settings
|
|
------------------------------------------
|
|
1. NOR boot:
|
|
a. build NOR boot image
|
|
$ make T1024RDB_defconfig
|
|
$ make
|
|
b. program u-boot.bin image to NOR flash
|
|
=> tftp 1000000 u-boot.bin
|
|
=> pro off all;era eff40000 efffffff;cp.b 1000000 eff40000 $filesize
|
|
on T1024RDB:
|
|
set SW1[1:8] = '00010011', SW2[1] = '1', SW3[4] = '0' for NOR boot
|
|
on T1023RDB:
|
|
set SW1[1:8] = '00010111', SW2[1] = '1', SW3[4] = '0' for NOR boot
|
|
|
|
Switching between default bank0 and alternate bank4 on NOR flash
|
|
To change boot source to vbank4:
|
|
on T1024RDB:
|
|
via software: run command 'cpld reset altbank' in U-Boot.
|
|
via DIP-switch: set SW3[5:7] = '100'
|
|
on T1023RDB:
|
|
via software: run command 'switch bank4' in U-Boot.
|
|
via DIP-switch: set SW3[5:7] = '100'
|
|
|
|
To change boot source to vbank0:
|
|
on T1024RDB:
|
|
via software: run command 'cpld reset' in U-Boot.
|
|
via DIP-Switch: set SW3[5:7] = '000'
|
|
on T1023RDB:
|
|
via software: run command 'switch bank0' in U-Boot.
|
|
via DIP-switch: set SW3[5:7] = '000'
|
|
|
|
2. NAND Boot:
|
|
a. build PBL image for NAND boot
|
|
$ make T1024RDB_NAND_defconfig
|
|
$ make
|
|
b. program u-boot-with-spl-pbl.bin to NAND flash
|
|
=> tftp 1000000 u-boot-with-spl-pbl.bin
|
|
=> nand erase 0 $filesize
|
|
=> nand write 1000000 0 $filesize
|
|
set SW1[1:8] = '10000010', SW2[1] = '1', SW3[4] = '1' for NAND boot
|
|
|
|
3. SPI Boot:
|
|
a. build PBL image for SPI boot
|
|
$ make T1024RDB_SPIFLASH_defconfig
|
|
$ make
|
|
b. program u-boot-with-spl-pbl.bin to SPI flash
|
|
=> tftp 1000000 u-boot-with-spl-pbl.bin
|
|
=> sf probe 0
|
|
=> sf erase 0 100000
|
|
=> sf write 1000000 0 $filesize
|
|
=> tftp 1000000 fsl_fman_ucode_t1024_xx.bin
|
|
=> sf erase 100000 100000
|
|
=> sf write 1000000 110000 20000
|
|
set SW1[1:8] = '00100010', SW2[1] ='1' for SPI boot
|
|
|
|
4. SD Boot:
|
|
a. build PBL image for SD boot
|
|
$ make T1024RDB_SDCARD_defconfig
|
|
$ make
|
|
b. program u-boot-with-spl-pbl.bin to SD/MMC card
|
|
=> tftp 1000000 u-boot-with-spl-pbl.bin
|
|
=> mmc write 1000000 8 0x7f0
|
|
=> tftp 1000000 fsl_fman_ucode_t1024_xx.bin
|
|
=> mmc write 1000000 0x820 80
|
|
set SW1[1:8] = '00100000', SW2[1] = '0' for SD boot
|
|
|
|
SW3[3] = '1' for SD card(or 'switch sd' by software)
|
|
SW3[3] = '0' for eMMC (or 'switch emmc' by software)
|
|
|
|
|
|
device tree support and how to enable it for different configs
|
|
--------------------------------------------------------------
|
|
device tree support is available for t1024rdb 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="t1024rdb" (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.
|
|
|
|
2-stage NAND/SPI/SD boot loader
|
|
-------------------------------
|
|
PBL initializes the internal CPC-SRAM and copy SPL(160K) to SRAM.
|
|
SPL further initializes DDR using SPD and environment variables
|
|
and copy U-Boot(768 KB) from NAND/SPI/SD device to DDR.
|
|
Finally SPL transers control to U-Boot for futher booting.
|
|
|
|
SPL has following features:
|
|
- Executes within 256K
|
|
- No relocation required
|
|
|
|
Run time view of SPL framework
|
|
-------------------------------------------------
|
|
|Area | Address |
|
|
-------------------------------------------------
|
|
|SecureBoot header | 0xFFFC0000 (32KB) |
|
|
-------------------------------------------------
|
|
|GD, BD | 0xFFFC8000 (4KB) |
|
|
-------------------------------------------------
|
|
|ENV | 0xFFFC9000 (8KB) |
|
|
-------------------------------------------------
|
|
|HEAP | 0xFFFCB000 (30KB) |
|
|
-------------------------------------------------
|
|
|STACK | 0xFFFD8000 (22KB) |
|
|
-------------------------------------------------
|
|
|U-Boot SPL | 0xFFFD8000 (160KB) |
|
|
-------------------------------------------------
|
|
|
|
NAND Flash memory Map on T1024RDB
|
|
-------------------------------------------------------------
|
|
Start End Definition Size
|
|
0x000000 0x0FFFFF U-Boot 1MB(2 block)
|
|
0x100000 0x17FFFF U-Boot env 512KB(1 block)
|
|
0x180000 0x1FFFFF FMAN Ucode 512KB(1 block)
|
|
0x200000 0x27FFFF QE Firmware 512KB(1 block)
|
|
|
|
|
|
NAND Flash memory Map on T1023RDB
|
|
----------------------------------------------------
|
|
Start End Definition Size
|
|
0x000000 0x0FFFFF U-Boot 1MB
|
|
0x100000 0x15FFFF U-Boot env 8KB
|
|
0x160000 0x17FFFF FMAN Ucode 128KB
|
|
|
|
|
|
SD Card memory Map on T102xRDB
|
|
----------------------------------------------------
|
|
Block #blocks Definition Size
|
|
0x008 2048 U-Boot img 1MB
|
|
0x800 0016 U-Boot env 8KB
|
|
0x820 0256 FMAN Ucode 128KB
|
|
0x920 0256 QE Firmware 128KB(only T1024RDB)
|
|
|
|
|
|
64MB SPI Flash memory Map on T102xRDB
|
|
----------------------------------------------------
|
|
Start End Definition Size
|
|
0x000000 0x0FFFFF U-Boot img 1MB
|
|
0x100000 0x101FFF U-Boot env 8KB
|
|
0x110000 0x12FFFF FMAN Ucode 128KB
|
|
0x130000 0x14FFFF QE Firmware 128KB(only T1024RDB)
|
|
0x300000 0x3FFFFF device tree 128KB
|
|
0x400000 0x9FFFFF Linux kernel 6MB
|
|
0xa00000 0x3FFFFFF rootfs 54MB
|
|
|
|
|
|
For more details, please refer to T1024RDB/T1023RDB User Guide
|
|
and Freescale QorIQ SDK Infocenter document.
|