[U-Boot] [RFC PATCH 0/9] x86: Add Intel Quark Memory Reference Code (MRC) support

Bin Meng bmeng.cn at gmail.com
Tue Feb 3 12:45:18 CET 2015


This series adds the 2nd step of bare support for the Intel Quark
SoC support which can be validated on Intel Galileo board. It adds
Intel Quark Memory Reference Code (MRC) which is ported from Intel
released UEFI BIOS for Quark, which per its name does the memory
initialization for Quark based board. Now with this patch series,
U-Boot boots to the command shell on Intel Galileo gen2 board.

The MRC port work was mainly replacing all UEFI BIOS APIs with
corresponding U-Boot ones, like register access, timer, debug output
etc, however the majority of the time was spent to converting Intel
coding convention to U-Boot's, like comment block //, space to indent,
camel cases, struct typedefs, etc. It took me almost 4 days to finish
the work, but I have not managed to fix all checkpatch warnings given
the code complexity and black magics in the codes. See commit notes
inside patch#3, #4, #5 about the checkpatch warning details.

Currently only the cold boot path is taken by MRC and it takes about
10 seconds from power-up to U-Boot shell. Future work will be done
to support a fast boot path (MRC cache) which is supposed to boot
much faster. With previous Quark patch series, we have a basic support
for Intel Quark SoC in good shape which more additional feature work
can be based upon in the following weeks.


Bin Meng (9):
  x86: Allow overriding TSC_FREQ_IN_MHZ
  x86: quark: Bypass TSC calibration
  x86: quark: Add Memory Reference Code (MRC) main routines
  x86: quark: Add utility codes needed for MRC
  x86: quark: Add System Memory Controller support
  x86: quark: Enable the Memory Reference Code build
  fdtdec: Add compatible id and string for Intel Quark MRC
  dt-bindings: Add Intel Quark MRC bindings
  x86: quark: Call MRC in dram_init()

 arch/x86/Kconfig                      |   40 +-
 arch/x86/cpu/quark/Kconfig            |    5 +
 arch/x86/cpu/quark/Makefile           |    1 +
 arch/x86/cpu/quark/dram.c             |   97 +-
 arch/x86/cpu/quark/hte.c              |  398 +++++
 arch/x86/cpu/quark/hte.h              |   44 +
 arch/x86/cpu/quark/mrc.c              |  206 +++
 arch/x86/cpu/quark/mrc_util.c         | 1499 ++++++++++++++++++
 arch/x86/cpu/quark/mrc_util.h         |  153 ++
 arch/x86/cpu/quark/smc.c              | 2764 +++++++++++++++++++++++++++++++++
 arch/x86/cpu/quark/smc.h              |  446 ++++++
 arch/x86/dts/galileo.dts              |   25 +
 arch/x86/include/asm/arch-quark/mrc.h |  189 +++
 include/dt-bindings/mrc/quark.h       |   83 +
 include/fdtdec.h                      |    1 +
 lib/fdtdec.c                          |    1 +
 16 files changed, 5930 insertions(+), 22 deletions(-)
 create mode 100644 arch/x86/cpu/quark/hte.c
 create mode 100644 arch/x86/cpu/quark/hte.h
 create mode 100644 arch/x86/cpu/quark/mrc.c
 create mode 100644 arch/x86/cpu/quark/mrc_util.c
 create mode 100644 arch/x86/cpu/quark/mrc_util.h
 create mode 100644 arch/x86/cpu/quark/smc.c
 create mode 100644 arch/x86/cpu/quark/smc.h
 create mode 100644 arch/x86/include/asm/arch-quark/mrc.h
 create mode 100644 include/dt-bindings/mrc/quark.h

-- 
1.8.2.1



More information about the U-Boot mailing list