mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-08-31 06:18:51 +09:00
![]() This function can fail if the device tree runs out of space. Rather than silently booting with an incomplete device tree, allow the failure to be detected. Unfortunately this involves changing a lot of places in the code. I have not changed behvaiour to return an error where one is not currently returned, to avoid unexpected breakage. Eventually it would be nice to allow boards to register functions to be called to update the device tree. This would avoid all the many functions to do this. However it's not clear yet if this should be done using driver model or with a linker list. This work is left for later. Signed-off-by: Simon Glass <sjg@chromium.org> Acked-by: Anatolij Gustschin <agust@denx.de> |
||
---|---|---|
.. | ||
c29xpcie.c | ||
cpld.c | ||
cpld.h | ||
ddr.c | ||
Kconfig | ||
law.c | ||
MAINTAINERS | ||
Makefile | ||
README | ||
spl_minimal.c | ||
spl.c | ||
tlb.c |
Overview ========= C29XPCIE board is a series of Freescale PCIe add-in cards to perform as public key crypto accelerator or secure key management module. It includes C293PCIE board, C293PCIE board and C291PCIE board. The Freescale C29x family is a high performance crypto co-processor. It combines a single e500v2 core with necessary SEC engines. (maximum core frequency 1000/1200 MHz). The C29xPCIE board features are as follows: Memory subsystem: - 512Mbyte unbuffered DDR3 SDRAM discrete devices (32-bit bus) - 64 Mbyte NOR flash single-chip memory - 4 Gbyte NAND flash memory - 1 Mbit AT24C1024 I2C EEPROM - 16 Mbyte SPI memory Interfaces: - 10/100/1000 BaseT Ethernet ports: - eTSEC1, RGMII: one 10/100/1000 port - eTSEC2, RGMII: one 10/100/1000 port - DUART interface: - DUART interface: supports two UARTs up to 115200 bps for console display Board connectors: - Mini-ITX power supply connector - JTAG/COP for debugging Physical Memory Map on C29xPCIE =============================== Address Start Address End Memory type 0x0_0000_0000 - 0x0_1fff_ffff 512MB DDR 0xc_0000_0000 - 0xc_8fff_ffff 256MB PCIE memory 0xf_ec00_0000 - 0xf_efff_ffff 64MB NOR flash 0xf_ffb0_0000 - 0xf_ffb7_ffff 512KB SRAM 0xf_ffc0_0000 - 0xf_ffc0_ffff 64KB PCIE IO 0xf_ffdf_0000 - 0xf_ffdf_0fff 4KB CPLD 0xf_ffe0_0000 - 0xf_ffef_ffff 1MB CCSR Serial Port Configuration on C29xPCIE ===================================== 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 ====================== SW5[1:4]= 1111 and SW5[6]=0 for boot from 16bit NOR flash SW5[1:4]= 0110 and SW5[6]=0 for boot from SPI flash Note: 1 stands for 'off', 0 stands for 'on' Build and program u-boot to NOR flash ================================== 1. Build u-boot.bin image example: export ARCH=powerpc export CROSS_COMPILE=/your_path/powerpc-linux-gnu- make C293PCIE 2. Program u-boot.bin into NOR flash => tftp $loadaddr $uboot => protect off eff40000 +$filesize => erase eff40000 +$filesize => cp.b $loadaddr eff40000 $filesize 3. Check SW5[1:4]= 1111 and SW5[6]=0, then power on. Alternate NOR bank ================== There are four banks in C29XPCIE board, example to change bank booting: 1. Program u-boot.bin into alternate NOR bank => tftp $loadaddr $uboot => protect off e9f40000 +$filesize => erase e9f40000 +$filesize => cp.b $loadaddr e9f40000 $filesize 2. Switch to alternate NOR bank => cpld_cmd reset altbank [bank] - [bank] bank value select 1-4 - bank 1 on the flash 0x0000000~0x0ffffff - bank 2 on the flash 0x1000000~0x1ffffff - bank 3 on the flash 0x2000000~0x2ffffff - bank 4 on the flash 0x3000000~0x3ffffff or set SW5[7]= ON/OFF and SW5[7]= ON/OFF, then power on again. Build and program u-boot to SPI flash ================================== 1. Build u-boot-spi.bin image make C29xPCIE_SPIFLASH_config; make Need the boot_format tool to generate u-boot-spi.bin from the u-boot.bin. 2. Program u-boot-spi.bin into SPI flash => tftp $loadaddr $uboot-spi => sf erase 0 100000 => sf write $loadaddr 0 $filesize 3. Check SW5[1:4]= 0110 and SW5[6]=0, then power on.