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:
Arthur Heymans 2019-10-26 20:31:41 +02:00
parent 005e25de0f
commit 8b7cd43d5d
6 changed files with 3 additions and 123 deletions

View File

@ -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

View File

@ -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

View File

@ -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;

View File

@ -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

View File

@ -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);

View File

@ -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. */