arch/x86: Remove EARLY_EBDA_INIT support
This is unused now. Change-Id: Ie8bc1d6761d66c5e1dda40c34c940cdba90646d2 Signed-off-by: Arthur Heymans <arthur@aheymans.xyz> Reviewed-on: https://review.coreboot.org/c/coreboot/+/36363 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Michael Niewöhner Reviewed-by: Nico Huber <nico.h@gmx.de> Reviewed-by: Aaron Durbin <adurbin@chromium.org>
This commit is contained in:
parent
005e25de0f
commit
8b7cd43d5d
|
@ -148,15 +148,6 @@ config PRERAM_CBMEM_CONSOLE_SIZE
|
||||||
help
|
help
|
||||||
Increase this value if preram cbmem console is getting truncated
|
Increase this value if preram cbmem console is getting truncated
|
||||||
|
|
||||||
config EARLY_EBDA_INIT
|
|
||||||
bool
|
|
||||||
default n
|
|
||||||
help
|
|
||||||
Initialize BIOS EBDA area early in romstage to allow bootloader to
|
|
||||||
use this region for storing data which can be available across
|
|
||||||
various stages. If user is selecting this option then its users
|
|
||||||
responsibility to perform EBDA initialization call during romstage.
|
|
||||||
|
|
||||||
config PC80_SYSTEM
|
config PC80_SYSTEM
|
||||||
bool
|
bool
|
||||||
default y if ARCH_X86
|
default y if ARCH_X86
|
||||||
|
|
|
@ -226,7 +226,6 @@ romstage-$(CONFIG_HAVE_ACPI_RESUME) += acpi_s3.c
|
||||||
romstage-$(CONFIG_C_ENVIRONMENT_BOOTBLOCK) += gdt_init.S
|
romstage-$(CONFIG_C_ENVIRONMENT_BOOTBLOCK) += gdt_init.S
|
||||||
romstage-y += cbmem.c
|
romstage-y += cbmem.c
|
||||||
romstage-y += cbfs_and_run.c
|
romstage-y += cbfs_and_run.c
|
||||||
romstage-$(CONFIG_EARLY_EBDA_INIT) += ebda.c
|
|
||||||
romstage-$(CONFIG_IDT_IN_EVERY_STAGE) += exception.c
|
romstage-$(CONFIG_IDT_IN_EVERY_STAGE) += exception.c
|
||||||
romstage-$(CONFIG_IDT_IN_EVERY_STAGE) += idt.S
|
romstage-$(CONFIG_IDT_IN_EVERY_STAGE) += idt.S
|
||||||
romstage-y += memmove.c
|
romstage-y += memmove.c
|
||||||
|
@ -261,7 +260,6 @@ postcar-generic-ccopts += -D__POSTCAR__
|
||||||
postcar-$(CONFIG_HAVE_ACPI_RESUME) += acpi_s3.c
|
postcar-$(CONFIG_HAVE_ACPI_RESUME) += acpi_s3.c
|
||||||
postcar-y += gdt_init.S
|
postcar-y += gdt_init.S
|
||||||
postcar-y += cbfs_and_run.c
|
postcar-y += cbfs_and_run.c
|
||||||
postcar-$(CONFIG_EARLY_EBDA_INIT) += ebda.c
|
|
||||||
postcar-$(CONFIG_IDT_IN_EVERY_STAGE) += exception.c
|
postcar-$(CONFIG_IDT_IN_EVERY_STAGE) += exception.c
|
||||||
postcar-$(CONFIG_IDT_IN_EVERY_STAGE) += idt.S
|
postcar-$(CONFIG_IDT_IN_EVERY_STAGE) += idt.S
|
||||||
postcar-y += exit_car.S
|
postcar-y += exit_car.S
|
||||||
|
|
|
@ -24,58 +24,12 @@ static void *get_ebda_start(void)
|
||||||
return (void *)((uintptr_t)DEFAULT_EBDA_SEGMENT << 4);
|
return (void *)((uintptr_t)DEFAULT_EBDA_SEGMENT << 4);
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool is_length_valid(size_t dlength)
|
|
||||||
{
|
|
||||||
/* Check if input data length is > DEFAULT_EBDA_SIZE */
|
|
||||||
if (dlength > DEFAULT_EBDA_SIZE)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
/* Valid data length */
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* EBDA area is representing a 1KB memory area just below
|
* EBDA area is representing a 1KB memory area just below
|
||||||
* the top of conventional memory (below 1MB)
|
* the top of conventional memory (below 1MB)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
static void setup_ebda(u32 low_memory_size, u16 ebda_segment, u16 ebda_size)
|
||||||
* write_ebda_data is a wrapper function to write into EBDA area
|
|
||||||
*
|
|
||||||
* data = data to be written into EBDA area
|
|
||||||
* length = input data size.
|
|
||||||
*/
|
|
||||||
void write_ebda_data(const void *data, size_t length)
|
|
||||||
{
|
|
||||||
void *ebda;
|
|
||||||
|
|
||||||
if (!is_length_valid(length))
|
|
||||||
die("Input data length is > EBDA default size (1KiB)!");
|
|
||||||
|
|
||||||
ebda = get_ebda_start();
|
|
||||||
|
|
||||||
memcpy(ebda, data, length);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* read_ebda_data is a wrapper function to read from EBDA area
|
|
||||||
*
|
|
||||||
* data = data read from EBDA area based on input size
|
|
||||||
* length = read data size.
|
|
||||||
*/
|
|
||||||
void read_ebda_data(void *data, size_t length)
|
|
||||||
{
|
|
||||||
void *ebda;
|
|
||||||
|
|
||||||
if (!is_length_valid(length))
|
|
||||||
die("Input data length is > EBDA default size (1KiB)!");
|
|
||||||
|
|
||||||
ebda = get_ebda_start();
|
|
||||||
|
|
||||||
memcpy(data, ebda, length);
|
|
||||||
}
|
|
||||||
|
|
||||||
void setup_ebda(u32 low_memory_size, u16 ebda_segment, u16 ebda_size)
|
|
||||||
{
|
{
|
||||||
u16 low_memory_kb;
|
u16 low_memory_kb;
|
||||||
u16 ebda_kb;
|
u16 ebda_kb;
|
||||||
|
|
|
@ -27,27 +27,6 @@
|
||||||
#define DEFAULT_EBDA_SEGMENT 0xF600
|
#define DEFAULT_EBDA_SEGMENT 0xF600
|
||||||
#define DEFAULT_EBDA_SIZE 0x400
|
#define DEFAULT_EBDA_SIZE 0x400
|
||||||
|
|
||||||
void setup_ebda(u32 low_memory_size, u16 ebda_segment, u16 ebda_size);
|
|
||||||
void setup_default_ebda(void);
|
void setup_default_ebda(void);
|
||||||
|
|
||||||
/*
|
|
||||||
* This read/write API only allows and assumes
|
|
||||||
* a single EBDA structure type for a platform.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* write_ebda_data is a wrapper function to write into EBDA area
|
|
||||||
*
|
|
||||||
* data = data to be written into EBDA area
|
|
||||||
* length = input data size.
|
|
||||||
*/
|
|
||||||
void write_ebda_data(const void *data, size_t length);
|
|
||||||
/*
|
|
||||||
* read_ebda_data is a wrapper function to read from EBDA area
|
|
||||||
*
|
|
||||||
* data = data read from EBDA area based on input size
|
|
||||||
* length = read data size.
|
|
||||||
*/
|
|
||||||
void read_ebda_data(void *data, size_t length);
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -194,41 +194,6 @@ static unsigned long write_smbios_table(unsigned long rom_table_end)
|
||||||
#define FORWARDING_TABLE_ADDR ((uintptr_t)0x500)
|
#define FORWARDING_TABLE_ADDR ((uintptr_t)0x500)
|
||||||
static uintptr_t forwarding_table = FORWARDING_TABLE_ADDR;
|
static uintptr_t forwarding_table = FORWARDING_TABLE_ADDR;
|
||||||
|
|
||||||
/*
|
|
||||||
* For EARLY_EBDA_INIT the BDA area will be wiped on the resume path which
|
|
||||||
* has the forwarding table entry. Therefore, when tables are written an
|
|
||||||
* entry is placed in cbmem that can be restored on OS resume to the proper
|
|
||||||
* location.
|
|
||||||
*/
|
|
||||||
static void stash_forwarding_table(uintptr_t addr, size_t sz)
|
|
||||||
{
|
|
||||||
void *cbmem_addr = cbmem_add(CBMEM_ID_CBTABLE_FWD, sz);
|
|
||||||
|
|
||||||
if (cbmem_addr == NULL) {
|
|
||||||
printk(BIOS_ERR, "Unable to allocate CBMEM forwarding entry.\n");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
memcpy(cbmem_addr, (void *)addr, sz);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void restore_forwarding_table(void *dest)
|
|
||||||
{
|
|
||||||
const struct cbmem_entry *fwd_entry;
|
|
||||||
|
|
||||||
fwd_entry = cbmem_entry_find(CBMEM_ID_CBTABLE_FWD);
|
|
||||||
|
|
||||||
if (fwd_entry == NULL) {
|
|
||||||
printk(BIOS_ERR, "Unable to restore CBMEM forwarding entry.\n");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
memcpy(dest, cbmem_entry_start(fwd_entry), cbmem_entry_size(fwd_entry));
|
|
||||||
}
|
|
||||||
|
|
||||||
BOOT_STATE_INIT_ENTRY(BS_OS_RESUME, BS_ON_ENTRY,
|
|
||||||
restore_forwarding_table, (void *)FORWARDING_TABLE_ADDR);
|
|
||||||
|
|
||||||
void arch_write_tables(uintptr_t coreboot_table)
|
void arch_write_tables(uintptr_t coreboot_table)
|
||||||
{
|
{
|
||||||
size_t sz;
|
size_t sz;
|
||||||
|
@ -250,8 +215,6 @@ void arch_write_tables(uintptr_t coreboot_table)
|
||||||
|
|
||||||
sz = write_coreboot_forwarding_table(forwarding_table, coreboot_table);
|
sz = write_coreboot_forwarding_table(forwarding_table, coreboot_table);
|
||||||
|
|
||||||
stash_forwarding_table(forwarding_table, sz);
|
|
||||||
|
|
||||||
forwarding_table += sz;
|
forwarding_table += sz;
|
||||||
/* Align up to page boundary for historical consistency. */
|
/* Align up to page boundary for historical consistency. */
|
||||||
forwarding_table = ALIGN_UP(forwarding_table, 4*KiB);
|
forwarding_table = ALIGN_UP(forwarding_table, 4*KiB);
|
||||||
|
|
|
@ -1165,13 +1165,8 @@ void dev_initialize(void)
|
||||||
printk(BIOS_INFO, "Initializing devices...\n");
|
printk(BIOS_INFO, "Initializing devices...\n");
|
||||||
|
|
||||||
#if CONFIG(ARCH_X86)
|
#if CONFIG(ARCH_X86)
|
||||||
/*
|
/* Ensure EBDA is prepared before Option ROMs. */
|
||||||
* Initialize EBDA area in ramstage if early
|
setup_default_ebda();
|
||||||
* initialization is not done.
|
|
||||||
*/
|
|
||||||
if (!CONFIG(EARLY_EBDA_INIT))
|
|
||||||
/* Ensure EBDA is prepared before Option ROMs. */
|
|
||||||
setup_default_ebda();
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* First call the mainboard init. */
|
/* First call the mainboard init. */
|
||||||
|
|
Loading…
Reference in New Issue