1 HCU5 configuration details and startup sequence
3 (C) Copyright 2007 Netstal Maschinen AG
4 Niklaus Giger (Niklaus.Giger@netstal.com)
8 - Fix error: Waiting for PHY auto negotiation to complete..... TIMEOUT !
9 - Does not occur if both EMAC are connected
10 - Fix RTS/CTS problem (HW?)
11 CONFIG_SERIAL_MULTI/CONFIG_SERIAL_SOFTWARE_FIFO hangs after
12 Switching to interrupt driven serial input mode
13 - Make vxWorks start from u-boot. Possible reasons
14 - Does vxWorks need an entry for the Machine Check interrupt like this
15 tlbentry( 0x40000000, SZ_256M, 0, 1, AC_R|AC_W|AC_X|SA_G|SA_I ) ?
19 Errata CHIP_8: Incorrect Write to DDR SDRAM. (was not applied to sequoia.c)
23 Memory Bank 0 -- Flash chip
24 ---------------------------
26 0xfff00000 - 0xffffffff
28 The flash chip is really only 512Kbytes, but the high address bit of
29 the 1Meg region is ignored, so the flash is replicated through the
30 region. Thus, this is consistent with a flash base address 0xfff80000.
32 The placement at the end is to be consistent with reset behavior,
33 where the processor itself initially uses this bus to load the branch
34 vector and start running.
39 0xe0010000- 0xe0013fff CFG_OCM_BASE
40 The 440EPx includes a 16K on-chip memory that can be placed however
46 0xef600300 - 0xef6008ff
48 These are scattered various peripherals internal to the PPC440EPX
51 Chip-Select 2: Flash Memory
52 ---------------------------
56 Chip-Select 3: CAN Interface
57 ----------------------------
58 0xc800000: 2 Intel 82527 CAN-Controller
61 Chip-Select 4: IMC-bus standard
62 -------------------------------
64 0xcc00000: Netstal specific IO-Bus
67 Chip-Select 5: IMC-bus fast (inactive)
68 --------------------------------------
70 0xce00000: Netstal specific IO-Bus (fast, but not yet used)
74 -------------------------------------
76 0x00000000 - 0xfffffff # Default 256 MB
81 Only USB_STORAGE is enabled to load vxWorks
84 System-LEDs ??? (Analog zu HCU4 ???)
89 (cpu/ppc4xx/resetvec.S)
90 depending on configs option
91 call _start_440 _start_pci oder _start
96 initialize register like
99 setup interrupt vectors
100 configure cache regions
104 which in turn will jump to start
106 Clear and set up some registers.
108 Setup the internal SRAM
109 Setup the stack in internal SRAM
110 setup stack pointer (r1)
112 call cpu_init_f /* run low-level CPU init code (from Flash) */
115 board_init_f: (lib_ppc\board.c)
116 init_sequence defines a list of function to be called
117 board_early_init_f: (board/netstal/hcu5/hcu5.c)
118 We are using Bootstrap-Option A
119 if CPR0_ICFG_RLI_MASK == 0 then set some registers and reboot
121 Setup the interrupt controller polarities, triggers, etc.
122 Ethernet, PCI, USB enable
123 setup BOOT FLASH (Chip timing)
130 init_func_ram -> calls init_dram board/netstal/hcu5/sdram.c
131 (EYE function removed!!)
134 * Reserve memory at end of RAM for (top down in that order):
135 * - kernel log buffer
139 * - board info struct
140 Save local variables to board info struct
141 call relocate_code() does not return
142 relocate_code: (cpu/ppc4xx/start.S)
143 -------------------------------------------------------
144 From now on our copy is in RAM and we will run from there,
145 starting with board_init_r
146 -------------------------------------------------------
147 board_init_r: (lib_ppc\board.c)
148 setup bd function pointers
150 flash_init: (board/netstal/hcu5/flash.c)
151 /* setup for u-boot erase, update */
153 cpu_init_r: (cpu/ppc4xx/cpu_init.c)
154 peripheral chip select in using defines like
155 CFG_EBC_PB0A, CFG_EBC_PB0C from hcu5.h
158 spi_init (r or f)??? (CFG_ENV_IS_IN_EEPROM)
160 misc_init_r(bd): (board/netstal/hcu5.c)
161 ethaddr mit serial number ergänzen
162 Then we will somehow go into the command loop
164 Most of the HW specific code for the HCU5 may be found in
165 include/configs/hcu5.h
171 Drivers for serial etc are found under drivers/
173 Don't ask question if you did not look at the README !!
174 Most CFG_* and CONFIG_* switches are mentioned/explained there.