[U-Boot] [RFC PATCH v2 0/9] x86: Add Intel Quark Memory Reference Code (MRC) support
Bin Meng
bmeng.cn at gmail.com
Thu Feb 5 16:42:19 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.
Changes in v2:
- Fixed issues per review comments. See the following link for details.
http://lists.denx.de/pipermail/u-boot/2015-February/204023.html
- Fixed issues per review comments. See the following link for details.
http://lists.denx.de/pipermail/u-boot/2015-February/204044.html
- Write out the values instead of BIT in smc.h
- Removing the ending / in the file header comment block
- Update comment for calling mrc_init()
- Check return status of mrc_init()
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 | 99 +-
arch/x86/cpu/quark/hte.c | 396 +++++
arch/x86/cpu/quark/hte.h | 44 +
arch/x86/cpu/quark/mrc.c | 204 +++
arch/x86/cpu/quark/mrc_util.c | 1475 ++++++++++++++++++
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 | 187 +++
include/dt-bindings/mrc/quark.h | 83 +
include/fdtdec.h | 1 +
lib/fdtdec.c | 1 +
16 files changed, 5902 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