summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/arch/x86/Kconfig9
-rw-r--r--src/arch/x86/Makefile.inc2
-rw-r--r--src/arch/x86/ebda.c48
-rw-r--r--src/arch/x86/include/arch/ebda.h21
-rw-r--r--src/arch/x86/tables.c37
-rw-r--r--src/device/device.c9
6 files changed, 3 insertions, 123 deletions
diff --git a/src/arch/x86/Kconfig b/src/arch/x86/Kconfig
index c5a5642974..24a2065c0e 100644
--- a/src/arch/x86/Kconfig
+++ b/src/arch/x86/Kconfig
@@ -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
diff --git a/src/arch/x86/Makefile.inc b/src/arch/x86/Makefile.inc
index c15971ff7b..cc094d111f 100644
--- a/src/arch/x86/Makefile.inc
+++ b/src/arch/x86/Makefile.inc
@@ -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
diff --git a/src/arch/x86/ebda.c b/src/arch/x86/ebda.c
index d1212f9d32..f2727bb8fe 100644
--- a/src/arch/x86/ebda.c
+++ b/src/arch/x86/ebda.c
@@ -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;
diff --git a/src/arch/x86/include/arch/ebda.h b/src/arch/x86/include/arch/ebda.h
index 534fb3d590..6ee3332540 100644
--- a/src/arch/x86/include/arch/ebda.h
+++ b/src/arch/x86/include/arch/ebda.h
@@ -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
diff --git a/src/arch/x86/tables.c b/src/arch/x86/tables.c
index ddb0710c8a..8ecf86dc3f 100644
--- a/src/arch/x86/tables.c
+++ b/src/arch/x86/tables.c
@@ -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);
diff --git a/src/device/device.c b/src/device/device.c
index 333f1f0f1d..5d9938ff0e 100644
--- a/src/device/device.c
+++ b/src/device/device.c
@@ -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. */