u-boot/board/freescale/t102xrdb
Shengzhou Liu 48c6f328f0 powerpc/t1024rdb: Add T1024 RDB board support
T1024RDB is a Freescale Reference Design Board that hosts the T1024 SoC.

T1024RDB board Overview
-----------------------
- T1024 SoC integrating two 64-bit e5500 cores up to 1.4GHz
- CoreNet fabric supporting coherent and noncoherent transactions with
  prioritization and bandwidth allocation
- 32-/64-bit DDR3L SDRAM memory controller with ECC and interleaving support
- Accelerator: DPAA components consist of FMan, BMan, QMan, DCE and SEC
- Ethernet interfaces:
  - Two 10M/100M/1G RGMII ports on-board
  - one 10Gbps XFI interface
- PCIe: Three PCIe controllers: one PCIe Slot and two Mini-PCIe connectors.
- SerDes: 4 lanes up to 10.3125GHz
- IFC: 128MB NOR Flash, 512MB NAND Flash and CPLD
- eSPI: 64MB N25Q512 SPI flash.
- Deep Sleep power implementaion (wakeup from GPIO/Timer/Ethernet/USB)
- USB: Two  Type-A USB2.0 ports with internal PHY
- eSDHC: Support SD, SDHC, SDXC and MMC/eMMC
- I2C: Four I2C controllers
- UART: Two UART serial ports

Signed-off-by: Shengzhou Liu <Shengzhou.Liu@freescale.com>
[York Sun: Fix ft_board_setup() type, fix MAINTAINERS for SECURE_BOOT
	   Fix Kconfig by adding SUPPORT_SPL]
Reviewed-by: York Sun <yorksun@freescale.com>
2014-12-05 08:06:15 -08:00
..
cpld.c powerpc/t1024rdb: Add T1024 RDB board support 2014-12-05 08:06:15 -08:00
cpld.h powerpc/t1024rdb: Add T1024 RDB board support 2014-12-05 08:06:15 -08:00
ddr.c powerpc/t1024rdb: Add T1024 RDB board support 2014-12-05 08:06:15 -08:00
eth_t102xrdb.c powerpc/t1024rdb: Add T1024 RDB board support 2014-12-05 08:06:15 -08:00
Kconfig powerpc/t1024rdb: Add T1024 RDB board support 2014-12-05 08:06:15 -08:00
law.c powerpc/t1024rdb: Add T1024 RDB board support 2014-12-05 08:06:15 -08:00
MAINTAINERS powerpc/t1024rdb: Add T1024 RDB board support 2014-12-05 08:06:15 -08:00
Makefile powerpc/t1024rdb: Add T1024 RDB board support 2014-12-05 08:06:15 -08:00
pci.c powerpc/t1024rdb: Add T1024 RDB board support 2014-12-05 08:06:15 -08:00
README powerpc/t1024rdb: Add T1024 RDB board support 2014-12-05 08:06:15 -08:00
spl.c powerpc/t1024rdb: Add T1024 RDB board support 2014-12-05 08:06:15 -08:00
t102xrdb.c powerpc/t1024rdb: Add T1024 RDB board support 2014-12-05 08:06:15 -08:00
t102xrdb.h powerpc/t1024rdb: Add T1024 RDB board support 2014-12-05 08:06:15 -08:00
t1024_pbi.cfg powerpc/t1024rdb: Add T1024 RDB board support 2014-12-05 08:06:15 -08:00
t1024_rcw.cfg powerpc/t1024rdb: Add T1024 RDB board support 2014-12-05 08:06:15 -08:00
tlb.c powerpc/t1024rdb: Add T1024 RDB board support 2014-12-05 08:06:15 -08:00

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
  - 10GbE XFI 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


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


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 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      QE firmware (current bank)	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      QE 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


T1024 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
	set SW1[1:8] = '00010011', 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:
        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 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] = '10001000', 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 f0000
	=> 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 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 0x800
	=> tftp 1000000 fsl_fman_ucode_t1024_xx.bin
	=> mmc write 1000000 0x820 80
	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 (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)


SD Card memory Map on T1024RDB
----------------------------------------------------
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


SPI Flash memory Map on T1024RDB
----------------------------------------------------
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


For more details, please refer to T1024RDB Reference Manual and access
website www.freescale.com and Freescale QorIQ SDK Infocenter document.