Overview
=========
The P1010RDB is a Freescale reference design board that hosts the P1010 SoC.

The P1010 is a cost-effective, low-power, highly integrated host processor
based on a Power Architecture e500v2 core (maximum core frequency 800/1000 MHz),
that addresses the requirements of several routing, gateways, storage, consumer,
and industrial applications. Applications of interest include the main CPUs and
I/O processors in network attached storage (NAS), the voice over IP (VoIP)
router/gateway, and wireless LAN (WLAN) and industrial controllers.

The P1010RDB board features are as follows:
Memory subsystem:
	- 1Gbyte unbuffered DDR3 SDRAM discrete devices (32-bit bus)
	- 32 Mbyte NOR flash single-chip memory
	- 32 Mbyte NAND flash memory
	- 256 Kbit M24256 I2C EEPROM
	- 16 Mbyte SPI memory
	- I2C Board EEPROM 128x8 bit memory
	- SD/MMC connector to interface with the SD memory card
Interfaces:
	- PCIe:
		- Lane0: x1 mini-PCIe slot
		- Lane1: x1 PCIe standard slot
	- SATA:
		- 1 internal SATA connector to 2.5” 160G SATA2 HDD
		- 1 eSATA connector to rear panel
	- 10/100/1000 BaseT Ethernet ports:
		- eTSEC1, RGMII: one 10/100/1000 port using Vitesse VSC8641XKO
		- eTSEC2, SGMII: one 10/100/1000 port using Vitesse VSC8221
		- eTSEC3, SGMII: one 10/100/1000 port using Vitesse VSC8221
	- USB 2.0 port:
		- x1 USB2.0 port via an external ULPI PHY to micro-AB connector
		- x1 USB2.0 port via an internal UTMI PHY to micro-AB connector
	- FlexCAN ports:
		- 2 DB-9 female connectors for FlexCAN bus(revision 2.0B)
		  interface;
	- DUART interface:
		- DUART interface: supports two UARTs up to 115200 bps for
		   console display
		- RJ45 connectors are used for these 2 UART ports.
	- TDM
		- 2 FXS ports connected via an external SLIC to the TDM interface.
		  SLIC is controllled via SPI.
		- 1 FXO port connected via a relay to FXS for switchover to POTS
Board connectors:
	- Mini-ITX power supply connector
	- JTAG/COP for debugging
IEEE Std. 1588 signals for test and measurement
Real-time clock on I2C bus
POR
	- support critical POR setting changed via switch on board
PCB
	- 6-layer routing (4-layer signals, 2-layer power and ground)


Physical Memory Map on P1010RDB
===============================
Address Start   Address End   Memory type	Attributes
0x0000_0000	0x3fff_ffff   DDR		1G Cacheable
0xa000_0000	0xdfff_ffff   PCI Express Mem	1G non-cacheable
0xee00_0000	0xefff_ffff   NOR Flash		32M non-cacheable
0xffc2_0000	0xffc5_ffff   PCI IO range	256K non-cacheable
0xffa0_0000	0xffaf_ffff   NAND Flash	1M cacheable
0xffb0_0000	0xffbf_ffff   Board CPLD	1M non-cacheable
0xffd0_0000	0xffd0_3fff   L1 for Stack	16K Cacheable TLB0
0xffe0_0000	0xffef_ffff   CCSR		1M non-cacheable


Serial Port Configuration on P1010RDB
=====================================
Configure the serial port of the attached computer with the following values:
	-Data rate: 115200 bps
	-Number of data bits: 8
	-Parity: None
	-Number of Stop bits: 1
	-Flow Control: Hardware/None


Settings of DIP-switch
======================
  SW4[1:4]= 1111 and SW6[4]=0 for boot from 16bit NOR flash
  SW4[1:4]= 1000 and SW6[4]=1 for boot from 8bit NAND flash
  SW4[1:4]= 0110 and SW6[4]=0 for boot from SPI flash
Note: 1 stands for 'on', 0 stands for 'off'


Setting of hwconfig
===================
If FlexCAN or TDM is needed, please set "fsl_p1010mux:tdm_can=can" or
"fsl_p1010mux:tdm_can=tdm" explicitly in u-boot prompt as below for example:
setenv hwconfig "fsl_p1010mux:tdm_can=tdm;usb1:dr_mode=host,phy_type=utmi"
By default, don't set fsl_p1010mux:tdm_can, in this case, spi chip selection
is set to spi-flash instead of to SLIC/TDM/DAC and tdm_can_sel is set to TDM
instead of to CAN/UART1.


Build and burn U-Boot to NOR flash
==================================
1. Build u-boot.bin image
	export CROSS_COMPILE=/your_path/powerpc-linux-gnu-
	make P1010RDB_NOR

2. Burn u-boot.bin into NOR flash
	=> tftp $loadaddr $uboot
	=> protect off eff40000 +$filesize
	=> erase eff40000 +$filesize
	=> cp.b $loadaddr eff40000 $filesize

3. Check SW4[1:4]= 1111 and SW6[4]=0, then power on.


Alternate NOR bank
==================
1. Burn u-boot.bin into alternate NOR bank
	=> tftp $loadaddr $uboot
	=> protect off eef40000 +$filesize
	=> erase eef40000 +$filesize
	=> cp.b $loadaddr eef40000 $filesize

2. Switch to alternate NOR bank
	=> mw.b ffb00009 1
	=> reset
	or set SW1[8]= ON

SW1[8]= OFF: Upper bank used for booting start
SW1[8]= ON:  Lower bank used for booting start
CPLD NOR bank selection register address 0xFFB00009 Bit[0]:
0 - boot from upper 4 sectors
1 - boot from lower 4 sectors


Build and burn U-Boot to NAND flash
===================================
1. Build u-boot.bin image
	export ARCH=powerpc
	export CROSS_COMPILE=/your_path/powerpc-linux-gnu-
	make P1010RDB_NAND

2. Burn u-boot-nand.bin into NAND flash
	=> tftp $loadaddr $uboot-nand
	=> nand erase 0 $filesize
	=> nand write $loadaddr 0 $filesize

3. Check SW4[1:4]= 1000 and SW6[4]=1, then power on.


Build and burn U-Boot to SPI flash
==================================
1. Build u-boot-spi.bin image
	make P1010RDB_SPIFLASH_config; make
	Boot up kernel with rootfs.ext2.gz.uboot.p1010rdb
	Download u-boot.bin to linux and you can find some config files
	under /usr/share such as config_xx.dat. Do below command:
	boot_format config_ddr3_1gb_p1010rdb_800M.dat u-boot.bin -spi \
			u-boot-spi.bin
	to generate u-boot-spi.bin.

2. Burn u-boot-spi.bin into SPI flash
	=> tftp $loadaddr $uboot-spi
	=> sf erase 0 100000
	=> sf write $loadaddr 0 $filesize

3. Check SW4[1:4]= 0110 and SW6[4]=0, then power on.


CPLD POR setting registers
==========================
1. Set POR switch selection register (addr 0xFFB00011) to 0.
2. Write CPLD POR registers (BCSR0~BCSR3, addr 0xFFB00014~0xFFB00017) with
   proper values.
   If change boot ROM location to NOR or NAND flash, need write the IFC_CS0
   switch command by I2C.
3. Send reset command.
   After reset, the new POR setting will be implemented.

Two examples are given in below:
Switch from NOR to NAND boot with default frequency:
	=> i2c dev 0
	=> i2c mw 18 1 f9
	=> i2c mw 18 3 f0
	=> mw.b ffb00011 0
	=> mw.b ffb00017 1
	=> reset
Switch from NAND to NOR boot with Core/CCB/DDR (800/400/667 MHz):
	=> i2c dev 0
	=> i2c mw 18 1 f1
	=> i2c mw 18 3 f0
	=> mw.b ffb00011 0
	=> mw.b ffb00014 2
	=> mw.b ffb00015 5
	=> mw.b ffb00016 3
	=> mw.b ffb00017 f
	=> reset


Boot Linux from network using TFTP on P1010RDB
==============================================
Place uImage, p1010rdb.dtb and rootfs files in the TFTP disk area.
	=> tftp 1000000 uImage
	=> tftp 2000000 p1010rdb.dtb
	=> tftp 3000000 rootfs.ext2.gz.uboot.p1010rdb
	=> bootm 1000000 3000000 2000000


For more details, please refer to P1010RDB User Guide and access website
www.freescale.com
