mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-18 02:38:56 +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>
288 lines
11 KiB
Text
288 lines
11 KiB
Text
T2080PCIe-RDB is a Freescale Reference Design Board that hosts the T2080 SoC.
|
|
It can work in two mode: standalone mode and PCIe endpoint mode.
|
|
|
|
T2080 SoC Overview
|
|
------------------
|
|
The T2080 QorIQ multicore processor combines four dual-threaded e6500 Power
|
|
Architecture processor cores with high-performance datapath acceleration
|
|
logic and network and peripheral bus interfaces required for networking,
|
|
telecom/datacom, wireless infrastructure, and mil/aerospace applications.
|
|
|
|
T2080 includes the following functions and features:
|
|
- Four dual-threads 64-bit Power architecture e6500 cores, up to 1.8GHz
|
|
- 2MB L2 cache and 512KB CoreNet platform cache (CPC)
|
|
- Hierarchical interconnect fabric
|
|
- One 32-/64-bit DDR3/3L SDRAM memory controllers with ECC and interleaving
|
|
- Data Path Acceleration Architecture (DPAA) incorporating acceleration
|
|
- 16 SerDes lanes up to 10.3125 GHz
|
|
- 8 Ethernet interfaces, supporting combinations of the following:
|
|
- Up to four 10 Gbps Ethernet MACs
|
|
- Up to eight 1 Gbps Ethernet MACs
|
|
- Up to four 2.5 Gbps Ethernet MACs
|
|
- High-speed peripheral interfaces
|
|
- Four PCI Express controllers (two PCIe 2.0 and two PCIe 3.0 with SR-IOV)
|
|
- Two Serial RapidIO 2.0 controllers/ports running at up to 5 GHz
|
|
- Additional peripheral interfaces
|
|
- Two serial ATA (SATA 2.0) controllers
|
|
- Two high-speed USB 2.0 controllers with integrated PHY
|
|
- Enhanced secure digital host controller (SD/SDHC/SDXC/eMMC)
|
|
- Enhanced serial peripheral interface (eSPI)
|
|
- Four I2C controllers
|
|
- Four 2-pin UARTs or two 4-pin UARTs
|
|
- Integrated Flash Controller supporting NAND and NOR flash
|
|
- Three eight-channel DMA engines
|
|
- Support for hardware virtualization and partitioning enforcement
|
|
- QorIQ Platform's Trust Architecture 2.0
|
|
|
|
User Guide
|
|
----------
|
|
The T2080RDB User Guide is available on the web at
|
|
https://www.nxp.com/docs/en/user-guide/T2080RDBPCUG.pdf
|
|
|
|
Differences between T2080 and T2081
|
|
-----------------------------------
|
|
Feature T2080 T2081
|
|
1G Ethernet numbers: 8 6
|
|
10G Ethernet numbers: 4 2
|
|
SerDes lanes: 16 8
|
|
Serial RapidIO,RMan: 2 no
|
|
SATA Controller: 2 no
|
|
Aurora: yes no
|
|
SoC Package: 896-pins 780-pins
|
|
|
|
|
|
T2080PCIe-RDB board Overview
|
|
----------------------------
|
|
- SERDES Configuration
|
|
- SerDes-1 Lane A-B: to two 10GBase-R fiber (MAC9 & MAC10)
|
|
- SerDes-1 Lane C-D: to two 10G Base-T (MAC1 & MAC2)
|
|
- SerDes-1 Lane E-H: to PCIe Goldfinger (PCIe4 x4, Gen3)
|
|
- SerDes-2 Lane A-D: to PCIe Slot (PCIe1 x4, Gen2)
|
|
- SerDes-2 Lane E-F: to C293 secure co-processor (PCIe2 x2)
|
|
- SerDes-2 Lane G-H: to SATA1 & SATA2
|
|
- Ethernet
|
|
- Two on-board 10M/100M/1G RGMII ethernet ports
|
|
- Two on-board 10GBase-R fiber ports
|
|
- Two on-board 10Gbps Base-T copper ports
|
|
- DDR Memory
|
|
- Supports 72bit 4GB DDR3-LP SODIMM
|
|
- PCIe
|
|
- One PCIe x4 gold-finger
|
|
- One PCIe x4 connector
|
|
- One PCIe x2 end-point device (C293 Crypto co-processor)
|
|
- IFC/Local Bus
|
|
- NOR: 128MB 16-bit NOR Flash
|
|
- NAND: 1GB 8-bit NAND flash
|
|
- CPLD: for system controlling with programable header on-board
|
|
- SATA
|
|
- Two SATA 2.0 onnectors on-board
|
|
- USB
|
|
- Supports two USB 2.0 ports with integrated PHYs
|
|
- Two type A ports with 5V@1.5A per port.
|
|
- SDHC
|
|
- one TF-card connector on-board
|
|
- SPI
|
|
- On-board 64MB SPI flash
|
|
- Other
|
|
- Two Serial ports
|
|
- Four I2C ports
|
|
|
|
|
|
System Memory map
|
|
-----------------
|
|
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_4000_0000 0xC_4FFF_FFFF PCI Express 4 Mem Space 256MB
|
|
0xC_3000_0000 0xC_3FFF_FFFF PCI Express 3 Mem Space 256MB
|
|
0xC_2000_0000 0xC_2FFF_FFFF PCI Express 2 Mem Space 256MB
|
|
0xC_0000_0000 0xC_1FFF_FFFF PCI Express 1 Mem Space 512MB
|
|
0x0_0000_0000 0x0_ffff_ffff DDR 4GB
|
|
|
|
|
|
128M NOR Flash memory Map
|
|
-------------------------
|
|
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 PHY CS4315 firmware 256KB
|
|
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
|
|
0xEBE00000 0xEBE3FFFF PHY CS4315 firmware (alt bank) 256KB
|
|
0xE9300000 0xEBEFFFFF rootfs (current bank) 44MB
|
|
0xE8800000 0xE88FFFFF Hardware device tree (cur bank) 1MB
|
|
0xE8020000 0xE86FFFFF Linux.uImage (current bank) 7MB + 875KB
|
|
0xE8000000 0xE801FFFF RCW (current bank) 128KB
|
|
|
|
|
|
T2080PCIe-RDB Ethernet Port Map
|
|
-------------------------------
|
|
Label In Uboot In Linux FMan Address Comments PHY
|
|
ETH0 FM1@GTEC1 fm1-mac9 0xfe4f0000 10G SFP+ (CS4315)
|
|
ETH1 FM1@GTEC2 fm1-mac10 0xfe4f2000 10G SFP+ (CS4315)
|
|
ETH2 FM1@GTEC3 fm1-mac1 0xfe4e0000 10G Base-T (AQ1202)
|
|
ETH3 FM1@GTEC4 fm1-mac2 0xfe4e2000 10G Base-T (AQ1202)
|
|
ETH4 FM1@DTSEC3 fm1-mac3 0xfe4e4000 1G RGMII (RTL8211E)
|
|
ETH5 FM1@DTSEC4 fm1-mac4 0xfe4e6000 1G RGMII (RTL8211E)
|
|
|
|
|
|
T2080PCIe-RDB Default DIP-Switch setting
|
|
----------------------------------------
|
|
SW1[1:8] = '00010011'
|
|
SW2[1:8] = '10111111'
|
|
SW3[1:8] = '11100001'
|
|
|
|
Software configurations and board settings
|
|
------------------------------------------
|
|
1. NOR boot:
|
|
a. build NOR boot image
|
|
$ make T2080RDB_config
|
|
$ 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
|
|
set SW1[1:8] = '00010011', SW2[1] = '1', SW3[4] = '0' for NOR boot
|
|
|
|
Switching between default bank and alternate bank on NOR flash
|
|
To change boot source to vbank4:
|
|
via software: run command 'cpld reset altbank' in U-Boot.
|
|
via DIP-switch: set SW3[5:7] = '100'
|
|
|
|
To change boot source to vbank0:
|
|
via software: run command 'cpld reset' in U-Boot.
|
|
via DIP-Switch: set SW3[5:7] = '000'
|
|
|
|
2. NAND Boot:
|
|
a. build PBL image for NAND boot
|
|
$ make T2080RDB_NAND_config
|
|
$ make
|
|
b. program u-boot-with-spl-pbl.bin to NAND flash
|
|
=> tftp 1000000 u-boot-with-spl-pbl.bin
|
|
=> nand erase 0 d0000
|
|
=> 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 T2080RDB_SPIFLASH_config
|
|
$ 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 d0000
|
|
=> sf write 1000000 0 $filesize
|
|
set SW1[1:8] = '00100010', SW2[1] ='1' for SPI boot
|
|
|
|
4. SD Boot:
|
|
a. build PBL image for SD boot
|
|
$ make T2080RDB_SDCARD_config
|
|
$ make
|
|
b. program u-boot-with-spl-pbl.bin to micro-SD/TF card
|
|
=> tftp 1000000 u-boot-with-spl-pbl.bin
|
|
=> mmc write 1000000 8 0x800
|
|
set SW1[1:8] = '00100000', SW2[1] = '0' for SD 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 (50KB) |
|
|
-------------------------------------------------
|
|
|STACK | 0xFFFD8000 (22KB) |
|
|
-------------------------------------------------
|
|
|U-Boot SPL | 0xFFFD8000 (160KB) |
|
|
-------------------------------------------------
|
|
|
|
NAND Flash memory Map on T2080RDB
|
|
--------------------------------------------------------------
|
|
Start End Definition Size
|
|
0x000000 0x0FFFFF U-Boot img 1MB (2 blocks)
|
|
0x100000 0x17FFFF U-Boot env 512KB (1 block)
|
|
0x180000 0x1FFFFF FMAN ucode 512KB (1 block)
|
|
0x200000 0x27FFFF CS4315 ucode 512KB (1 block)
|
|
|
|
|
|
Micro SD Card memory Map on T2080RDB
|
|
----------------------------------------------------
|
|
Block #blocks Definition Size
|
|
0x008 2048 U-Boot img 1MB
|
|
0x800 0016 U-Boot env 8KB
|
|
0x820 0128 FMAN ucode 64KB
|
|
0x8a0 0512 CS4315 ucode 256KB
|
|
|
|
|
|
SPI Flash memory Map on T2080RDB
|
|
----------------------------------------------------
|
|
Start End Definition Size
|
|
0x000000 0x0FFFFF U-Boot img 1MB
|
|
0x100000 0x101FFF U-Boot env 8KB
|
|
0x110000 0x11FFFF FMAN ucode 64KB
|
|
0x120000 0x15FFFF CS4315 ucode 256KB
|
|
|
|
|
|
How to update the ucode of Cortina CS4315/CS4340 10G PHY
|
|
--------------------------------------------------------
|
|
=> tftp 1000000 CS4315-CS4340-PHY-ucode.txt
|
|
=> pro off all;era 0xefe00000 0xefefffff;cp.b 1000000 0xefe00000 $filesize
|
|
|
|
|
|
How to update the ucode of Freescale FMAN
|
|
-----------------------------------------
|
|
=> tftp 1000000 fsl_fman_ucode_t2080_r1.0.bin
|
|
=> pro off all;erase 0xeff00000 0xeff1ffff;cp 1000000 0xeff00000 $filesize
|
|
|
|
|
|
For more details, please refer to T2080PCIe-RDB User Guide and access
|
|
website www.freescale.com and Freescale QorIQ SDK Infocenter document.
|
|
|
|
Device tree support and how to enable it for different configs
|
|
--------------------------------------------------------------
|
|
Device tree support is available for t2080rdb 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="t2080rdb" (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.
|