From ee2740b7f63a7266e218fb97b657a67a8d1fde50 Mon Sep 17 00:00:00 2001 From: Alexandru Gagniuc Date: Sun, 4 Oct 2015 17:47:36 -0700 Subject: arch/x86/bootblock: Do not include non-code files in bootblock.S Since we now have more freedom in the bootblock linking step it no longer makes sense to use a monolithic bootblock.S. Code segments must still be included as the order in bootblock.S determines code flow. However, non-code flow related assembly stubs don't need to be directly included in bootblock.S Change-Id: I08e86e92d82bd2138194ed42652f268b0764aa54 Signed-off-by: Alexandru Gagniuc Reviewed-on: http://review.coreboot.org/11792 Tested-by: build bot (Jenkins) Tested-by: Raptor Engineering Automated Test Stand Reviewed-by: Aaron Durbin --- src/arch/x86/Makefile.inc | 1 + src/arch/x86/bootblock.S | 5 ----- src/arch/x86/id.S | 20 ++++++++++++++++++++ src/arch/x86/id.inc | 20 -------------------- src/cpu/intel/Makefile.inc | 1 + src/cpu/intel/fit/Makefile.inc | 1 + src/cpu/intel/fit/fit.S | 30 ++++++++++++++++++++++++++++++ src/cpu/intel/fit/fit.inc | 30 ------------------------------ 8 files changed, 53 insertions(+), 55 deletions(-) create mode 100644 src/arch/x86/id.S delete mode 100644 src/arch/x86/id.inc create mode 100644 src/cpu/intel/fit/Makefile.inc create mode 100644 src/cpu/intel/fit/fit.S delete mode 100644 src/cpu/intel/fit/fit.inc (limited to 'src') diff --git a/src/arch/x86/Makefile.inc b/src/arch/x86/Makefile.inc index 46c98cd142..56b176d6b6 100644 --- a/src/arch/x86/Makefile.inc +++ b/src/arch/x86/Makefile.inc @@ -84,6 +84,7 @@ endif # Add the assembly file that pulls in the rest of the dependencies in # the right order. Make sure the auto generated bootblock.inc is a proper # dependency. Make the same true for the linker sript. +bootblock-y += id.S bootblock-y += bootblock.S bootblock-y += walkcbfs.S $(obj)/arch/x86/bootblock.bootblock.o: $(objgenerated)/bootblock.inc diff --git a/src/arch/x86/bootblock.S b/src/arch/x86/bootblock.S index bea178d785..645e491ffe 100644 --- a/src/arch/x86/bootblock.S +++ b/src/arch/x86/bootblock.S @@ -25,11 +25,6 @@ #include #include #include -#include - -#if IS_ENABLED(CONFIG_CPU_INTEL_FIRMWARE_INTERFACE_TABLE) -#include -#endif #ifdef CONFIG_CHIPSET_BOOTBLOCK_INCLUDE #include CONFIG_CHIPSET_BOOTBLOCK_INCLUDE diff --git a/src/arch/x86/id.S b/src/arch/x86/id.S new file mode 100644 index 0000000000..a3df25e111 --- /dev/null +++ b/src/arch/x86/id.S @@ -0,0 +1,20 @@ +#include + + .section ".id", "a", @progbits + + .globl __id_start +__id_start: +ver: + .asciz COREBOOT_VERSION +vendor: + .asciz CONFIG_MAINBOARD_VENDOR +part: + .asciz CONFIG_MAINBOARD_PART_NUMBER +.long __id_end + CONFIG_ID_SECTION_OFFSET - ver /* Reverse offset to the vendor id */ +.long __id_end + CONFIG_ID_SECTION_OFFSET - vendor /* Reverse offset to the vendor id */ +.long __id_end + CONFIG_ID_SECTION_OFFSET - part /* Reverse offset to the part number */ +.long CONFIG_ROM_SIZE /* Size of this romimage */ + .globl __id_end + +__id_end: +.previous diff --git a/src/arch/x86/id.inc b/src/arch/x86/id.inc deleted file mode 100644 index a3df25e111..0000000000 --- a/src/arch/x86/id.inc +++ /dev/null @@ -1,20 +0,0 @@ -#include - - .section ".id", "a", @progbits - - .globl __id_start -__id_start: -ver: - .asciz COREBOOT_VERSION -vendor: - .asciz CONFIG_MAINBOARD_VENDOR -part: - .asciz CONFIG_MAINBOARD_PART_NUMBER -.long __id_end + CONFIG_ID_SECTION_OFFSET - ver /* Reverse offset to the vendor id */ -.long __id_end + CONFIG_ID_SECTION_OFFSET - vendor /* Reverse offset to the vendor id */ -.long __id_end + CONFIG_ID_SECTION_OFFSET - part /* Reverse offset to the part number */ -.long CONFIG_ROM_SIZE /* Size of this romimage */ - .globl __id_end - -__id_end: -.previous diff --git a/src/cpu/intel/Makefile.inc b/src/cpu/intel/Makefile.inc index 6f07e30b5e..904aa5d7b5 100644 --- a/src/cpu/intel/Makefile.inc +++ b/src/cpu/intel/Makefile.inc @@ -3,6 +3,7 @@ # # Therefore: ONLY include Makefile.inc from socket directories! +subdirs-$(CONFIG_CPU_INTEL_FIRMWARE_INTERFACE_TABLE) += fit subdirs-$(CONFIG_CPU_INTEL_SOCKET_441) += socket_441 subdirs-$(CONFIG_CPU_INTEL_SOCKET_BGA956) += socket_BGA956 subdirs-$(CONFIG_CPU_INTEL_EP80579) += ep80579 diff --git a/src/cpu/intel/fit/Makefile.inc b/src/cpu/intel/fit/Makefile.inc new file mode 100644 index 0000000000..4b540ba5df --- /dev/null +++ b/src/cpu/intel/fit/Makefile.inc @@ -0,0 +1 @@ +bootblock-y += fit.S diff --git a/src/cpu/intel/fit/fit.S b/src/cpu/intel/fit/fit.S new file mode 100644 index 0000000000..e4595c0d6d --- /dev/null +++ b/src/cpu/intel/fit/fit.S @@ -0,0 +1,30 @@ +.section ".fit_pointer", "a", @progbits + .code32 +.global fit_pointer +fit_pointer: +.long fit_table +.long 0 +.previous + +.section ".rom.data", "a", @progbits +.align 16 +.global fit_table +.global fit_table_end +fit_table: +/* Address for type 0 is '_FIT_ ' */ +.long 0x5449465f +.long 0x2020205f +/* + * There is 1 entry in the table. Other tools will have to update the size + * and checksum when adding entries. + */ +.long 0x00000001 +/* Version */ +.word 0x0100 +/* Type 0 with checksum valid. */ +.byte 0x80 +/* Checksum byte - must add to zero. */ +.byte 0x7d +.fill CONFIG_CPU_INTEL_NUM_FIT_ENTRIES*16 +fit_table_end: +.previous diff --git a/src/cpu/intel/fit/fit.inc b/src/cpu/intel/fit/fit.inc deleted file mode 100644 index e4595c0d6d..0000000000 --- a/src/cpu/intel/fit/fit.inc +++ /dev/null @@ -1,30 +0,0 @@ -.section ".fit_pointer", "a", @progbits - .code32 -.global fit_pointer -fit_pointer: -.long fit_table -.long 0 -.previous - -.section ".rom.data", "a", @progbits -.align 16 -.global fit_table -.global fit_table_end -fit_table: -/* Address for type 0 is '_FIT_ ' */ -.long 0x5449465f -.long 0x2020205f -/* - * There is 1 entry in the table. Other tools will have to update the size - * and checksum when adding entries. - */ -.long 0x00000001 -/* Version */ -.word 0x0100 -/* Type 0 with checksum valid. */ -.byte 0x80 -/* Checksum byte - must add to zero. */ -.byte 0x7d -.fill CONFIG_CPU_INTEL_NUM_FIT_ENTRIES*16 -fit_table_end: -.previous -- cgit v1.2.3