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 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot