mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-09-10 23:03:29 +09:00
![]() JEDEC spec requires the clocks to be stable before deasserting reset signal for RDIMMs. Clocks start when any chip select is enabled and clock control register is set. This patch also adds the interface to toggle memory reset signal if needed by the boards. Signed-off-by: York Sun <yorksun@freescale.com> |
||
---|---|---|
.. | ||
ddr.c | ||
law.c | ||
Makefile | ||
p1010rdb.c | ||
README | ||
spl_minimal.c | ||
tlb.c |
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-booot 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 ARCH=powerpc export CROSS_COMPILE=/your_path/powerpc-linux-gnu- make P1010RDB_NOR 2. Burn u-boot.bin into NOR flash => tftp $loadaddr $uboot => protect off eff80000 +$filesize => erase eff80000 +$filesize => cp.b $loadaddr eff80000 $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 eef80000 +$filesize => erase eef80000 +$filesize => cp.b $loadaddr eef80000 $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 Please contact your local field applications engineer or sales representative to obtain related documents, such as P1010-RDB User Guide for details.