Many Intel SoCs require a FIT in order to boot properly. Add an option to
include this and enable it by default.

This term can be confused with FIT (Flat Image Tree) in U-Boot so the
CONFIG option has to include 'X86'.

Signed-off-by: Simon Glass <s...@chromium.org>
Reviewed-by: Bin Meng <bmeng...@gmail.com>
---

Changes in v6: None
Changes in v5: None
Changes in v4: None
Changes in v3:
- Add help to CONFIG_FIT and don't make it 'default y'
- Rename X86_HAS_FIT to HAVE_X86_FIT
- Update commit message to explain why HAVE_FIT woudl be confusing

Changes in v2: None

 arch/x86/Kconfig         | 8 ++++++++
 arch/x86/dts/u-boot.dtsi | 6 ++++++
 2 files changed, 14 insertions(+)

diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index e2e0f20f21..bcce1114ce 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -217,6 +217,14 @@ config SYS_X86_START16
        depends on X86_RESET_VECTOR
        default 0xfffff800
 
+config HAVE_X86_FIT
+       bool
+       help
+         Enable inclusion of an Intel Firmware Interface Table (FIT) into the
+         image. This table is supposed to point to microcode and the like. So
+         far it is just a fixed table with the minimum set of headers, so that
+         it is actually present.
+
 config X86_LOAD_FROM_32_BIT
        bool "Boot from a 32-bit program"
        help
diff --git a/arch/x86/dts/u-boot.dtsi b/arch/x86/dts/u-boot.dtsi
index 0e87b88e10..33441c7c80 100644
--- a/arch/x86/dts/u-boot.dtsi
+++ b/arch/x86/dts/u-boot.dtsi
@@ -82,6 +82,12 @@
        u-boot-ucode {
                align = <16>;
        };
+#ifdef CONFIG_HAVE_X86_FIT
+       intel-fit {
+       };
+       intel-fit-ptr {
+       };
+#endif
 #ifdef CONFIG_HAVE_MRC
        intel-mrc {
                offset = <CONFIG_X86_MRC_ADDR>;
-- 
2.24.0.393.g34dc348eaf-goog

Reply via email to