u-boot/board/freescale/p1010rdb
Tom Rini 93145335fb nxp: Make board/freescale/common/Kconfig safe to include once in arch/Kconfig
The way that we use this file currently means that we have to guard it
in every platform Kconfig.  But it is also required in all NXP
platforms, including non-reference platforms.  Make all options in it
have appropriate dependencies so that we can include it a single time
under arch/Kconfig

Signed-off-by: Tom Rini <trini@konsulko.com>
2022-07-05 17:03:02 -04:00
..
ddr.c common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
Kconfig nxp: Make board/freescale/common/Kconfig safe to include once in arch/Kconfig 2022-07-05 17:03:02 -04:00
law.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
MAINTAINERS configs: Remove P1010RDB secure boot configs 2020-09-24 08:27:44 -04:00
Makefile Convert CONFIG_SPL_INIT_MINIMAL et al to Kconfig 2022-06-06 12:09:00 -04:00
p1010rdb.c i2c: fsl_i2c: Migrate to Kconfig 2021-08-30 14:10:07 -04:00
README.P1010RDB-PA trivial: Fix booot occurences 2020-06-15 11:23:41 -04:00
README.P1010RDB-PB powerpc: Remove ARCH= references from documentation 2020-06-02 17:27:04 -04:00
spl.c Convert CONFIG_SPL_GD_ADDR to Kconfig 2022-06-06 12:09:29 -04:00
spl_minimal.c Finish conversion of CONFIG_SYS_CLK_FREQ to Kconfig 2021-12-27 16:20:18 -05:00
tlb.c Convert CONFIG_SPL_COMMON_INIT_DDR to Kconfig 2022-06-06 12:09:12 -04:00

Overview
=========
The P1010RDB-PB is a Freescale Reference Design Board that hosts the P1010 SoC.
P1010RDB-PB is a variation of previous P1010RDB-PA board.

The P1010 is a cost-effective, low-power, highly integrated host processor
based on a Power Architecture e500v2 core (maximum core frequency 1GHz),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-PB board features are as following:
Memory subsystem:
	- 1G bytes unbuffered DDR3 SDRAM discrete devices (32-bit bus)
	- 32M bytes NOR flash single-chip memory
	- 2G bytes NAND flash memory
	- 16M bytes SPI memory
	- 256K bit M24256 I2C EEPROM
	- I2C Board EEPROM 128x8 bit memory
	- SD/MMC connector to interface with the SD memory card
Interfaces:
	- Three 10/100/1000 BaseT Ethernet ports (One RGMII and two SGMII)
	- PCIe 2.0: two x1 mini-PCIe slots
	- SATA 2.0: two SATA interfaces
	- USB 2.0: one USB interface
	- FlexCAN: two FlexCAN interfaces (revision 2.0B)
	- UART: one USB-to-Serial interface
	- TDM: 2 FXS ports connected via an external SLIC to the TDM interface.
	       1 FXO port connected via a relay to FXS for switchover to POTS

Board connectors:
	- Mini-ITX power supply connector
	- JTAG/COP for debugging

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


P1010RDB-PB default DIP-switch settings
=======================================
SW1[1:8]= 10101010
SW2[1:8]= 11011000
SW3[1:8]= 10010000
SW4[1:4]= 1010
SW5[1:8]= 11111010


P1010RDB-PB boot mode settings via DIP-switch
=============================================
SW4[1:4]= 1111 and SW3[3:4]= 00 for 16bit NOR boot
SW4[1:4]= 1010 and SW3[3:4]= 01 for 8bit NAND boot
SW4[1:4]= 0110 and SW3[3:4]= 00 for SPI boot
SW4[1:4]= 0111 and SW3[3:4]= 10 for SD boot
Note: 1 stands for 'on', 0 stands for 'off'


Switch P1010RDB-PB boot mode via software without setting DIP-switch
====================================================================
=> run boot_bank0    (boot from NOR bank0)
=> run boot_bank1    (boot from NOR bank1)
=> run boot_nand     (boot from NAND flash)
=> run boot_spi      (boot from SPI flash)
=> run boot_sd       (boot from SD card)


Frequency combination support on P1010RDB-PB
=============================================
SW1[4:7] SW5[1] SW5[5:8] SW2[2] Core(MHz) Platform(MHz) DDR(MT/s)
0101      1      1010     0       800       400		800
1001      1      1010     0       800       400		667
1010      1      1100     0       667       333		667
1000      0      1010     0       533       266		667
0101      1      1010     1       1000      400		800
1001      1      1010     1       1000      400		667


Setting of pin mux
==================
Since pins multiplexing, TDM and CAN are muxed with SPI flash.
SDHC is muxed with IFC. IFC and SPI flash are enabled by default.

To enable TDM:
=> setenv hwconfig fsl_p1010mux:tdm_can=tdm
=> save;reset

To enable FlexCAN:
=> setenv hwconfig fsl_p1010mux:tdm_can=can
=> save;reset

To enable SDHC in case of NOR/NAND/SPI boot
   a) For temporary use case in runtime without reboot system
      run 'mux sdhc' in U-Boot to validate SDHC with invalidating IFC.

   b) For long-term use case
      set 'esdhc' in hwconfig and save it.

To enable IFC in case of SD boot
   a) For temporary use case in runtime without reboot system
      run 'mux ifc' in U-Boot to validate IFC with invalidating SDHC.

   b) For long-term use case
      set 'ifc' in hwconfig and save it.


Build images for different boot mode
====================================
First setup cross compile environment on build host
   $ export CROSS_COMPILE=<your-compiler-path>/powerpc-linux-gnu-

1. For NOR boot
   $ make P1010RDB-PB_NOR

2. For NAND boot
   $ make P1010RDB-PB_NAND

3. For SPI boot
   $ make P1010RDB-PB_SPIFLASH

4. For SD boot
   $ make P1010RDB-PB_SDCARD


Steps to program images to flash for different boot mode
========================================================
1. NOR boot
   => tftp 1000000 u-boot.bin
   For bank0
   => pro off all;era eff40000 efffffff;cp.b 1000000 eff40000 $filesize
   set SW1[8]=0, SW4[1:4]= 1111 and SW3[3:4]= 00, then power on the board

   For bank1
   => pro off all;era eef40000 eeffffff;cp.b 1000000 eef40000 $filesize
   set SW1[8]=1, SW4[1:4]= 1111 and SW3[3:4]= 00, then power on the board

2. NAND boot
   => tftp 1000000 u-boot-nand.bin
   => nand erase 0 $filesize; nand write $loadaddr 0 $filesize
   Set SW4[1:4]= 1010 and SW3[3:4]= 01, then power on the board

3. SPI boot
   1)  cat p1010rdb-config-header.bin u-boot.bin > u-boot-spi-combined.bin
   2)  =>  tftp 1000000 u-boot-spi-combined.bin
   3)  =>  sf probe 0; sf erase 0 100000; sf write 1000000 0 100000
   set SW4[1:4]= 0110 and SW3[3:4]= 00, then power on the board

4. SD boot
   1)	cat p1010rdb-config-header.bin u-boot.bin > u-boot-sd-combined.bin
   2)	=> tftp 1000000 u-boot-sd-combined.bin
   3)	=> mux sdhc
   4)	=> mmc write 1000000 0 1050
   set SW4[1:4]= 0111 and SW3[3:4]= 10, then power on the board


Boot Linux from network using TFTP on P1010RDB-PB
=================================================
Place uImage, p1010rdb.dtb and rootfs files in the TFTP download path.
	=> 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-PB User Guide and access website
www.freescale.com and Freescale QorIQ SDK Infocenter document.