[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