[U-Boot] [PATCH 00/36] Massive x86 Update - Bring x86 in line with ARM and PPC
Graeme Russ
graeme.russ at gmail.com
Mon Jan 3 20:46:20 CET 2011
It's been a while since I've posted a patch (missed the last release cycle
entirely). I've been working on bringing x86 into line with ARM and PowerPC
with the init sequence running in flash. Currently, the SDRAM gets
initialised in asm before jumping into C and the first thing the C code did
was copy U-Boot to RAM.
The breakthrough came when I discovered that the sc520 CPU can be configured
to enable the 16kB cache to be used as Cache-As-RAM (Thanks to Juergen
Beisert). The 'big' changes in this series are:
- Memory initialisation is done in C (26)
- The initial global data is placed in CAR (Patches 24 & 36) - These are
interesting and could be used to get rid of the fixed register for
global data, but that would break the standalone API which uses it
- Board initialisation moved into RAM (patches 27 - 34)
The fist 22 patches are mostly cleanups to make the remaining patches a
little simpler.
Regards,
Graeme
Graeme Russ (36):
x86 - Fix definition of global_data struct for asm-offsets.c
x86 - Fix mangled umlauts
x86 - Move config.mk options to arch/i386/config.mk
x86 - move linker script into arch folder
x86 - Paramatize link locations
x86 - Add stack dump to register dump
x86 - Parametize location of Real Mode code
x86 - Move Global Descriptor Table defines to processor.h
x86 - Add processor flags header from linux
x86 - Call early_board_init when warm booting
x86 - Make cpu init functions weak
sc520 - Sort Makefile
sc520 - Define MMCR address in include file
sc520 - Move board specific settings to board init function
sc520 - Remove printf calls from cpu_init_f
eNET - Remove --no-warn when compiling dlmalloc.c
eNET - Fix eNET Interrupt Setup for Linux
eNET - Add RTC support to eNET
eNET - Update board configurations
eNET - Define MMCR values in config.h
eNET - Define PAR settings in board configuration file
eNET - Rearrange PAR assignments
sc520 - Init SDRAM PAR early
x86 - Move initial gd to fixed location
x86 - Use Cache-As-RAM for initial stack
sc520 - Move RAM sizing code from asm to C
x86 - Defer setup of final stack
x86 - Move call to dram_init_f into board_init_f
x86 - Move test for cold boot into init functions
x86 - Move console initialisation into board_init_f
x86 - Fix incorrect usage of relocation offset
x86 - Split board_init_f() into init_fnc_t compatible functions
x86 - Rearrange function calls in board_init_f
x86 - Convert board_init_f to use an init_sequence
sc520 - Release CAR and enable caching
eNET - Move initial Global Data into CAR
arch/i386/config.mk | 13 +-
arch/i386/cpu/config.mk | 9 +-
arch/i386/cpu/cpu.c | 35 ++-
arch/i386/cpu/interrupts.c | 19 +-
arch/i386/cpu/sc520/Makefile | 5 +-
arch/i386/cpu/sc520/sc520.c | 146 +-------
arch/i386/cpu/sc520/sc520_asm.S | 615 -------------------------------
arch/i386/cpu/sc520/sc520_car.S | 94 +++++
arch/i386/cpu/sc520/sc520_sdram.c | 522 ++++++++++++++++++++++++++
arch/i386/cpu/start.S | 107 +++---
arch/i386/cpu/start16.S | 5 +-
arch/i386/cpu/u-boot.lds | 96 +++++
arch/i386/include/asm/global_data.h | 21 +-
arch/i386/include/asm/ic/sc520.h | 70 ++++-
arch/i386/include/asm/processor-flags.h | 100 +++++
arch/i386/include/asm/processor.h | 9 +-
arch/i386/include/asm/u-boot-i386.h | 2 +
arch/i386/lib/board.c | 148 +++++---
arch/i386/lib/realmode.c | 7 +-
board/eNET/config.mk | 6 +-
board/eNET/eNET.c | 120 ++++---
board/eNET/eNET_start.S | 3 +-
board/eNET/eNET_start16.S | 16 +-
board/eNET/u-boot.lds | 104 ------
boards.cfg | 3 +-
drivers/rtc/mc146818.c | 6 +
include/configs/eNET.h | 147 ++++++++-
27 files changed, 1351 insertions(+), 1077 deletions(-)
delete mode 100644 arch/i386/cpu/sc520/sc520_asm.S
create mode 100644 arch/i386/cpu/sc520/sc520_car.S
create mode 100644 arch/i386/cpu/sc520/sc520_sdram.c
create mode 100644 arch/i386/cpu/u-boot.lds
create mode 100644 arch/i386/include/asm/processor-flags.h
delete mode 100644 board/eNET/u-boot.lds
More information about the U-Boot
mailing list