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
|
||||
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
|
||||
bool
|
||||
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-y += cbmem.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) += idt.S
|
||||
romstage-y += memmove.c
|
||||
|
@ -261,7 +260,6 @@ postcar-generic-ccopts += -D__POSTCAR__
|
|||
postcar-$(CONFIG_HAVE_ACPI_RESUME) += acpi_s3.c
|
||||
postcar-y += gdt_init.S
|
||||
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) += idt.S
|
||||
postcar-y += exit_car.S
|
||||
|
|
|
@ -24,58 +24,12 @@ static void *get_ebda_start(void)
|
|||
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
|
||||
* the top of conventional memory (below 1MB)
|
||||
*/
|
||||
|
||||
/*
|
||||
* 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)
|
||||
static void setup_ebda(u32 low_memory_size, u16 ebda_segment, u16 ebda_size)
|
||||
{
|
||||
u16 low_memory_kb;
|
||||
u16 ebda_kb;
|
||||
|
|
|
@ -27,27 +27,6 @@
|
|||
#define DEFAULT_EBDA_SEGMENT 0xF600
|
||||
#define DEFAULT_EBDA_SIZE 0x400
|
||||
|
||||
void setup_ebda(u32 low_memory_size, u16 ebda_segment, u16 ebda_size);
|
||||
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
|
||||
|
|
|
@ -194,41 +194,6 @@ static unsigned long write_smbios_table(unsigned long rom_table_end)
|
|||
#define FORWARDING_TABLE_ADDR ((uintptr_t)0x500)
|
||||
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)
|
||||
{
|
||||
size_t sz;
|
||||
|
@ -250,8 +215,6 @@ void arch_write_tables(uintptr_t coreboot_table)
|
|||
|
||||
sz = write_coreboot_forwarding_table(forwarding_table, coreboot_table);
|
||||
|
||||
stash_forwarding_table(forwarding_table, sz);
|
||||
|
||||
forwarding_table += sz;
|
||||
/* Align up to page boundary for historical consistency. */
|
||||
forwarding_table = ALIGN_UP(forwarding_table, 4*KiB);
|
||||
|
|
|
@ -1165,13 +1165,8 @@ void dev_initialize(void)
|
|||
printk(BIOS_INFO, "Initializing devices...\n");
|
||||
|
||||
#if CONFIG(ARCH_X86)
|
||||
/*
|
||||
* Initialize EBDA area in ramstage if early
|
||||
* initialization is not done.
|
||||
*/
|
||||
if (!CONFIG(EARLY_EBDA_INIT))
|
||||
/* Ensure EBDA is prepared before Option ROMs. */
|
||||
setup_default_ebda();
|
||||
/* Ensure EBDA is prepared before Option ROMs. */
|
||||
setup_default_ebda();
|
||||
#endif
|
||||
|
||||
/* First call the mainboard init. */
|
||||
|
|
Loading…
Reference in New Issue