Michael Niewöhner has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/36137 )
Change subject: soc/intel: skl,cnl,icl: consolidate ebda and memmap and move to common code ......................................................................
soc/intel: skl,cnl,icl: consolidate ebda and memmap and move to common code
As of CB:36136 ebda and memmap are identical for skl, cnl and icl, thus move them to common code.
Change-Id: I9a20c814d2a6874fcb4ff99ef1a7825d891f74e2 Signed-off-by: Michael Niewöhner foss@mniewoehner.de --- M src/soc/intel/cannonlake/Makefile.inc D src/soc/intel/cannonlake/memmap.c M src/soc/intel/common/block/ebda/ebda.c M src/soc/intel/common/block/include/intelblocks/ebda.h A src/soc/intel/common/block/memmap/Kconfig A src/soc/intel/common/block/memmap/Makefile.inc R src/soc/intel/common/block/memmap/memmap.c M src/soc/intel/common/pch/Kconfig M src/soc/intel/icelake/Makefile.inc D src/soc/intel/icelake/memmap.c M src/soc/intel/skylake/Makefile.inc 11 files changed, 26 insertions(+), 323 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/37/36137/1
diff --git a/src/soc/intel/cannonlake/Makefile.inc b/src/soc/intel/cannonlake/Makefile.inc index 724e141..1588bde 100644 --- a/src/soc/intel/cannonlake/Makefile.inc +++ b/src/soc/intel/cannonlake/Makefile.inc @@ -16,7 +16,6 @@ bootblock-y += bootblock/report_platform.c bootblock-y += gspi.c bootblock-y += i2c.c -bootblock-y += memmap.c bootblock-y += spi.c bootblock-y += lpc.c bootblock-y += p2sb.c @@ -26,7 +25,6 @@ romstage-y += gspi.c romstage-y += i2c.c romstage-y += lpc.c -romstage-y += memmap.c romstage-y += pmutil.c romstage-y += reset.c romstage-y += spi.c @@ -44,7 +42,6 @@ ramstage-y += lockdown.c ramstage-y += lpc.c ramstage-y += me.c -ramstage-y += memmap.c ramstage-y += nhlt.c ramstage-y += p2sb.c ramstage-y += pmc.c @@ -66,7 +63,6 @@ smm-y += uart.c smm-y += xhci.c
-postcar-y += memmap.c postcar-y += pmutil.c postcar-y += i2c.c postcar-y += gspi.c diff --git a/src/soc/intel/cannonlake/memmap.c b/src/soc/intel/cannonlake/memmap.c deleted file mode 100644 index 4973e8d..0000000 --- a/src/soc/intel/cannonlake/memmap.c +++ /dev/null @@ -1,124 +0,0 @@ -/* - * This file is part of the coreboot project. - * - * Copyright (C) 2014 Google Inc. - * Copyright (C) 2015-2017 Intel Corporation. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; version 2 of the License. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - */ - -#include <arch/romstage.h> -#include <cbmem.h> -#include <console/console.h> -#include <cpu/x86/mtrr.h> -#include <cpu/x86/smm.h> -#include <fsp/util.h> -#include <intelblocks/ebda.h> -#include <intelblocks/systemagent.h> -#include <stdlib.h> - -void smm_region(uintptr_t *start, size_t *size) -{ - *start = sa_get_tseg_base(); - *size = sa_get_tseg_size(); -} - -/* - * SoC implementation - * - * SoC call to summarize all Intel Reserve MMIO size and report to SA - */ -size_t soc_reserved_mmio_size(void) -{ - struct ebda_config cfg; - - retrieve_ebda_object(&cfg); - - /* Get Intel Reserved Memory Range Size */ - return cfg.reserved_mem_size; -} - -/* Fill up memory layout information */ -void fill_soc_memmap_ebda(struct ebda_config *cfg) -{ - struct range_entry fsp_mem; - struct range_entry tolum; - - /* Lookup the FSP_BOOTLOADER_TOLUM_HOB */ - if (fsp_find_bootloader_tolum(&tolum)) - die("9.3: FSP_BOOTLOADER_TOLUM_HOB missing!\n"); - - /* Locate the FSP reserved memory area */ - if (fsp_find_reserved_memory(&fsp_mem)) - die("9.1: FSP_RESERVED_MEMORY_RESOURCE_HOB missing!\n"); - - cfg->tolum_end = range_entry_end(&tolum); - cfg->reserved_mem_size = range_entry_size(&fsp_mem); -} - -void cbmem_top_init(void) -{ - /* Fill up EBDA area */ - fill_ebda_area(); -} - -/* - * +-------------------------+ Top of RAM (aligned) - * | System Management Mode | - * | code and data | Length: CONFIG_TSEG_SIZE - * | (TSEG) | - * +-------------------------+ SMM base (aligned) - * | | - * | Chipset Reserved Memory | - * | | - * +-------------------------+ top_of_ram (aligned) - * | | - * | CBMEM Root | - * | | - * +-------------------------+ - * | | - * | FSP Reserved Memory | - * | | - * +-------------------------+ - * | | - * | Various CBMEM Entries | - * | | - * +-------------------------+ top_of_stack (8 byte aligned) - * | | - * | stack (CBMEM Entry) | - * | | - * +-------------------------+ - */ -void *cbmem_top(void) -{ - struct ebda_config ebda_cfg; - - retrieve_ebda_object(&ebda_cfg); - - return (void *)(uintptr_t)ebda_cfg.tolum_end; -} - -void fill_postcar_frame(struct postcar_frame *pcf) -{ - uintptr_t top_of_ram; - /* - * We need to make sure ramstage will be run cached. At this - * point exact location of ramstage in cbmem is not known. - * Instruct postcar to cache 16 megs under cbmem top which is - * a safe bet to cover ramstage. - */ - top_of_ram = (uintptr_t) cbmem_top(); - printk(BIOS_DEBUG, "top_of_ram = 0x%lx\n", top_of_ram); - top_of_ram -= 16*MiB; - postcar_frame_add_mtrr(pcf, top_of_ram, 16*MiB, MTRR_TYPE_WRBACK); - - /* Cache the TSEG region */ - postcar_enable_tseg_cache(pcf); -} diff --git a/src/soc/intel/common/block/ebda/ebda.c b/src/soc/intel/common/block/ebda/ebda.c index 6b0bd67..072023c 100644 --- a/src/soc/intel/common/block/ebda/ebda.c +++ b/src/soc/intel/common/block/ebda/ebda.c @@ -17,34 +17,14 @@ #include <intelblocks/ebda.h> #include <string.h>
-/* - * Mainboard Override function - * - * Mainboard directory may implement below functionality for romstage. - */ - -/* Fill up EBDA structure inside Mainboard directory */ -__weak void create_mainboard_ebda(struct ebda_config *cfg) -{ - /* no-op */ -} - -static void create_soc_ebda(struct ebda_config *cfg) -{ - /* Create EBDA header */ - cfg->signature = EBDA_SIGNATURE; - /* Fill up memory layout information */ - fill_soc_memmap_ebda(cfg); -} - -void fill_ebda_area(void) +void initialize_ebda_area(void) { struct ebda_config ebda_cfg;
/* Initialize EBDA area early during romstage. */ setup_default_ebda(); - create_soc_ebda(&ebda_cfg); - create_mainboard_ebda(&ebda_cfg); + ebda_cfg.signature = EBDA_SIGNATURE; + fill_memmap_ebda(&ebda_cfg); write_ebda_data(&ebda_cfg, sizeof(ebda_cfg)); }
diff --git a/src/soc/intel/common/block/include/intelblocks/ebda.h b/src/soc/intel/common/block/include/intelblocks/ebda.h index 16124df..1770e8f 100644 --- a/src/soc/intel/common/block/include/intelblocks/ebda.h +++ b/src/soc/intel/common/block/include/intelblocks/ebda.h @@ -16,52 +16,24 @@ #ifndef SOC_INTEL_COMMON_BLOCK_EBDA_H #define SOC_INTEL_COMMON_BLOCK_EBDA_H
-#include <soc/ebda.h> - #define EBDA_SIGNATURE 0xebdaebda
-/* - * Mainboard Override function - * - * Mainboard directory may implement below functionality for romstage. - */ +/* EBDA structure */ +struct ebda_config { + uint32_t signature; /* EBDA signature */ + uint32_t tolum_end; /* coreboot memory start */ + uint32_t reserved_mem_size; /* chipset reserved memory size */ +};
-/* Fill up EBDA structure inside Mainboard directory */ -void create_mainboard_ebda(struct ebda_config *cfg); +/* Initialize EBDA and store structure into EBDA area */ +void initialize_ebda_area(void);
/* - * SoC overrides - * - * All new SoC must implement below functionality for romstage. - */ -void fill_soc_memmap_ebda(struct ebda_config *cfg); - -/* - * API to perform below operation - * 1. Initialize EBDA area - * 2. Fill up EBDA structure inside SOC directory - * 3. Fill up EBDA structure inside Mainboard directory - * 4. Store EBDA structure into EBDA area - */ -void fill_ebda_area(void); - -/* Fill the ebda object pointed to by cfg. Object will be zero filled + * Fill the ebda object pointed to by cfg. Object will be zero filled * if signature check fails. */ void retrieve_ebda_object(struct ebda_config *cfg);
-/* - * EBDA structure - * - * SOC should implement EBDA structure as per need - * as below. - * - * Note: First 4 bytes should be reserved for signature as - * 0xEBDA - * - * struct ebda_config { - * uint32_t signature; - * <Required variables..> - * }; - */ +/* API for filling ebda with data */ +void fill_memmap_ebda(struct ebda_config *cfg);
#endif diff --git a/src/soc/intel/common/block/memmap/Kconfig b/src/soc/intel/common/block/memmap/Kconfig new file mode 100644 index 0000000..677400b --- /dev/null +++ b/src/soc/intel/common/block/memmap/Kconfig @@ -0,0 +1,5 @@ +config SOC_INTEL_COMMON_BLOCK_MEMMAP + bool + select SOC_INTEL_COMMON_BLOCK_EBDA + help + Intel Processor common MEMMAP library support diff --git a/src/soc/intel/common/block/memmap/Makefile.inc b/src/soc/intel/common/block/memmap/Makefile.inc new file mode 100644 index 0000000..8da9815 --- /dev/null +++ b/src/soc/intel/common/block/memmap/Makefile.inc @@ -0,0 +1,3 @@ +romstage-$(CONFIG_SOC_INTEL_COMMON_BLOCK_MEMMAP) += memmap.c +ramstage-$(CONFIG_SOC_INTEL_COMMON_BLOCK_MEMMAP) += memmap.c +postcar-$(CONFIG_SOC_INTEL_COMMON_BLOCK_MEMMAP) += memmap.c diff --git a/src/soc/intel/skylake/memmap.c b/src/soc/intel/common/block/memmap/memmap.c similarity index 96% rename from src/soc/intel/skylake/memmap.c rename to src/soc/intel/common/block/memmap/memmap.c index e98bf51..03ef3b8 100644 --- a/src/soc/intel/skylake/memmap.c +++ b/src/soc/intel/common/block/memmap/memmap.c @@ -46,7 +46,7 @@ }
/* Fill up memory layout information */ -void fill_soc_memmap_ebda(struct ebda_config *cfg) +void fill_memmap_ebda(struct ebda_config *cfg) { struct range_entry fsp_mem; struct range_entry tolum; @@ -65,8 +65,8 @@
void cbmem_top_init(void) { - /* Fill up EBDA area */ - fill_ebda_area(); + /* Initialize EBDA area */ + initialize_ebda_area(); }
/* diff --git a/src/soc/intel/common/pch/Kconfig b/src/soc/intel/common/pch/Kconfig index 7ece9549..c8c4c24 100644 --- a/src/soc/intel/common/pch/Kconfig +++ b/src/soc/intel/common/pch/Kconfig @@ -20,6 +20,7 @@ select SOC_INTEL_COMMON_BLOCK_CSE select SOC_INTEL_COMMON_BLOCK_DSP select SOC_INTEL_COMMON_BLOCK_EBDA + select SOC_INTEL_COMMON_BLOCK_MEMMAP select SOC_INTEL_COMMON_BLOCK_FAST_SPI select SOC_INTEL_COMMON_BLOCK_GPIO select SOC_INTEL_COMMON_BLOCK_GPIO_ITSS_POL_CFG diff --git a/src/soc/intel/icelake/Makefile.inc b/src/soc/intel/icelake/Makefile.inc index 15f7030..401b446 100644 --- a/src/soc/intel/icelake/Makefile.inc +++ b/src/soc/intel/icelake/Makefile.inc @@ -17,7 +17,6 @@ bootblock-y += gpio.c bootblock-y += gspi.c bootblock-y += i2c.c -bootblock-y += memmap.c bootblock-y += spi.c bootblock-y += p2sb.c bootblock-y += uart.c @@ -26,7 +25,6 @@ romstage-y += gpio.c romstage-y += gspi.c romstage-y += i2c.c -romstage-y += memmap.c romstage-y += pmutil.c romstage-y += reset.c romstage-y += spi.c @@ -44,7 +42,6 @@ ramstage-y += gspi.c ramstage-y += i2c.c ramstage-y += lockdown.c -ramstage-y += memmap.c ramstage-y += p2sb.c ramstage-y += pmc.c ramstage-y += pmutil.c @@ -62,7 +59,6 @@ smm-y += smihandler.c smm-y += uart.c
-postcar-y += memmap.c postcar-y += pmutil.c postcar-y += i2c.c postcar-y += gspi.c diff --git a/src/soc/intel/icelake/memmap.c b/src/soc/intel/icelake/memmap.c deleted file mode 100644 index 9c7f067..0000000 --- a/src/soc/intel/icelake/memmap.c +++ /dev/null @@ -1,123 +0,0 @@ -/* - * This file is part of the coreboot project. - * - * Copyright (C) 2018 Intel Corp. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; version 2 of the License. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - */ - -#include <arch/romstage.h> -#include <cbmem.h> -#include <console/console.h> -#include <cpu/x86/mtrr.h> -#include <cpu/x86/smm.h> -#include <fsp/util.h> -#include <intelblocks/ebda.h> -#include <intelblocks/systemagent.h> -#include <stdlib.h> - -void smm_region(uintptr_t *start, size_t *size) -{ - *start = sa_get_tseg_base(); - *size = sa_get_tseg_size(); -} - -/* - * SoC implementation - * - * SoC call to summarize all Intel Reserve MMIO size and report to SA - */ -size_t soc_reserved_mmio_size(void) -{ - struct ebda_config cfg; - - retrieve_ebda_object(&cfg); - - /* Get Intel Reserved Memory Range Size */ - return cfg.reserved_mem_size; -} - -/* Fill up memory layout information */ -void fill_soc_memmap_ebda(struct ebda_config *cfg) -{ - struct range_entry fsp_mem; - struct range_entry tolum; - - /* Lookup the FSP_BOOTLOADER_TOLUM_HOB */ - if (fsp_find_bootloader_tolum(&tolum)) - die("9.3: FSP_BOOTLOADER_TOLUM_HOB missing!\n"); - - /* Locate the FSP reserved memory area */ - if (fsp_find_reserved_memory(&fsp_mem)) - die("9.1: FSP_RESERVED_MEMORY_RESOURCE_HOB missing!\n"); - - cfg->tolum_end = range_entry_end(&tolum); - cfg->reserved_mem_size = range_entry_size(&fsp_mem); -} - -void cbmem_top_init(void) -{ - /* Fill up EBDA area */ - fill_ebda_area(); -} - -/* - * +-------------------------+ Top of RAM (aligned) - * | System Management Mode | - * | code and data | Length: CONFIG_TSEG_SIZE - * | (TSEG) | - * +-------------------------+ SMM base (aligned) - * | | - * | Chipset Reserved Memory | - * | | - * +-------------------------+ top_of_ram (aligned) - * | | - * | CBMEM Root | - * | | - * +-------------------------+ - * | | - * | FSP Reserved Memory | - * | | - * +-------------------------+ - * | | - * | Various CBMEM Entries | - * | | - * +-------------------------+ top_of_stack (8 byte aligned) - * | | - * | stack (CBMEM Entry) | - * | | - * +-------------------------+ - */ -void *cbmem_top(void) -{ - struct ebda_config ebda_cfg; - - retrieve_ebda_object(&ebda_cfg); - - return (void *)(uintptr_t)ebda_cfg.tolum_end; -} - -void fill_postcar_frame(struct postcar_frame *pcf) -{ - uintptr_t top_of_ram; - /* - * We need to make sure ramstage will be run cached. At this - * point exact location of ramstage in cbmem is not known. - * Instruct postcar to cache 16 megs under cbmem top which is - * a safe bet to cover ramstage. - */ - top_of_ram = (uintptr_t) cbmem_top(); - printk(BIOS_DEBUG, "top_of_ram = 0x%lx\n", top_of_ram); - top_of_ram -= 16*MiB; - postcar_frame_add_mtrr(pcf, top_of_ram, 16*MiB, MTRR_TYPE_WRBACK); - - /* Cache the TSEG region */ - postcar_enable_tseg_cache(pcf); -} diff --git a/src/soc/intel/skylake/Makefile.inc b/src/soc/intel/skylake/Makefile.inc index ef741f8..dce1d6b 100644 --- a/src/soc/intel/skylake/Makefile.inc +++ b/src/soc/intel/skylake/Makefile.inc @@ -33,7 +33,6 @@ romstage-y += gpio.c romstage-y += gspi.c romstage-y += i2c.c -romstage-y += memmap.c romstage-y += me.c romstage-y += pmc.c romstage-y += pmutil.c @@ -55,7 +54,6 @@ ramstage-y += lockdown.c ramstage-y += lpc.c ramstage-y += me.c -ramstage-y += memmap.c ramstage-y += p2sb.c ramstage-y += pmc.c ramstage-y += pmutil.c @@ -77,7 +75,6 @@ smm-y += uart.c smm-y += xhci.c
-postcar-y += memmap.c postcar-y += gspi.c postcar-y += spi.c postcar-y += i2c.c
Michael Niewöhner has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/36137 )
Change subject: soc/intel: skl,cnl,icl: consolidate ebda and memmap and move to common code ......................................................................
Uploaded patch set 2.
Hello Patrick Rudolph, build bot (Jenkins), Patrick Georgi, Martin Roth,
I'd like you to reexamine a change. Please visit
https://review.coreboot.org/c/coreboot/+/36137
to look at the new patch set (#2).
Change subject: soc/intel: skl,cnl,icl: consolidate ebda and memmap and move to common code ......................................................................
soc/intel: skl,cnl,icl: consolidate ebda and memmap and move to common code
As of CB:36136 ebda and memmap are identical for skl, cnl and icl, thus move them to common code.
Change-Id: I9a20c814d2a6874fcb4ff99ef1a7825d891f74e2 Signed-off-by: Michael Niewöhner foss@mniewoehner.de --- M src/soc/intel/cannonlake/Makefile.inc D src/soc/intel/cannonlake/memmap.c M src/soc/intel/common/block/ebda/ebda.c M src/soc/intel/common/block/include/intelblocks/ebda.h A src/soc/intel/common/block/memmap/Kconfig A src/soc/intel/common/block/memmap/Makefile.inc R src/soc/intel/common/block/memmap/memmap.c M src/soc/intel/common/pch/Kconfig M src/soc/intel/icelake/Makefile.inc D src/soc/intel/icelake/memmap.c M src/soc/intel/skylake/Makefile.inc 11 files changed, 26 insertions(+), 389 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/37/36137/2
Michael Niewöhner has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/36137 )
Change subject: soc/intel: skl,cnl,icl: consolidate ebda and memmap and move to common code ......................................................................
Patch Set 3:
This change is ready for review.
Michael Niewöhner has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/36137 )
Change subject: soc/intel: skl,cnl,icl: consolidate ebda and memmap and move to common code ......................................................................
Uploaded patch set 4.
Hello Aaron Durbin, Patrick Rudolph, Subrata Banik, Arthur Heymans, build bot (Jenkins), Nico Huber, Patrick Georgi, Martin Roth,
I'd like you to reexamine a change. Please visit
https://review.coreboot.org/c/coreboot/+/36137
to look at the new patch set (#4).
Change subject: soc/intel: skl,cnl,icl: consolidate ebda and memmap and move to common code ......................................................................
soc/intel: skl,cnl,icl: consolidate ebda and memmap and move to common code
As of CB:36136 ebda and memmap are identical for skl, cnl and icl, thus move them to common code.
Tested successfully on X11SSM-F
Change-Id: I9a20c814d2a6874fcb4ff99ef1a7825d891f74e2 Signed-off-by: Michael Niewöhner foss@mniewoehner.de --- M src/soc/intel/cannonlake/Makefile.inc D src/soc/intel/cannonlake/memmap.c M src/soc/intel/common/block/ebda/ebda.c M src/soc/intel/common/block/include/intelblocks/ebda.h A src/soc/intel/common/block/memmap/Kconfig A src/soc/intel/common/block/memmap/Makefile.inc R src/soc/intel/common/block/memmap/memmap.c M src/soc/intel/common/pch/Kconfig M src/soc/intel/icelake/Makefile.inc D src/soc/intel/icelake/memmap.c M src/soc/intel/skylake/Makefile.inc 11 files changed, 25 insertions(+), 347 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/37/36137/4
Michael Niewöhner has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/36137 )
Change subject: soc/intel: skl,cnl,icl: consolidate ebda and memmap and move to common code ......................................................................
Uploaded patch set 5: Patch Set 4 was rebased.
Michael Niewöhner has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/36137 )
Change subject: soc/intel: skl,cnl,icl: consolidate ebda and memmap and move to common code ......................................................................
Uploaded patch set 7: Patch Set 6 was rebased.
Hello Aaron Durbin, Patrick Rudolph, Subrata Banik, Arthur Heymans, build bot (Jenkins), Nico Huber, Patrick Georgi, Martin Roth,
I'd like you to reexamine a change. Please visit
https://review.coreboot.org/c/coreboot/+/36137
to look at the new patch set (#8).
Change subject: soc/intel: skl,cnl,icl: consolidate ebda and memmap and move to common code ......................................................................
soc/intel: skl,cnl,icl: consolidate ebda and memmap and move to common code
As of CB:36136 ebda and memmap are identical for skl, cnl and icl, thus move them to common code.
Tested successfully on X11SSM-F
Change-Id: I9a20c814d2a6874fcb4ff99ef1a7825d891f74e2 Signed-off-by: Michael Niewöhner foss@mniewoehner.de --- M src/soc/intel/cannonlake/Makefile.inc D src/soc/intel/cannonlake/memmap.c M src/soc/intel/common/block/ebda/ebda.c M src/soc/intel/common/block/include/intelblocks/ebda.h A src/soc/intel/common/block/memmap/Kconfig A src/soc/intel/common/block/memmap/Makefile.inc R src/soc/intel/common/block/memmap/memmap.c M src/soc/intel/common/pch/Kconfig M src/soc/intel/icelake/Makefile.inc D src/soc/intel/icelake/memmap.c M src/soc/intel/skylake/Makefile.inc 11 files changed, 25 insertions(+), 347 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/37/36137/8
Michael Niewöhner has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/36137 )
Change subject: soc/intel: skl,cnl,icl: consolidate ebda and memmap and move to common code ......................................................................
Uploaded patch set 8.
Michael Niewöhner has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/36137 )
Change subject: soc/intel: skl,cnl,icl: consolidate ebda and memmap and move to common code ......................................................................
Uploaded patch set 9: Patch Set 8 was rebased.
Michael Niewöhner has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/36137 )
Change subject: soc/intel: skl,cnl,icl: consolidate ebda and memmap and move to common code ......................................................................
Uploaded patch set 10: Patch Set 9 was rebased.
Aaron Durbin has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/36137 )
Change subject: soc/intel: skl,cnl,icl: consolidate ebda and memmap and move to common code ......................................................................
Patch Set 10:
(1 comment)
https://review.coreboot.org/c/coreboot/+/36137/10/src/soc/intel/common/pch/K... File src/soc/intel/common/pch/Kconfig:
https://review.coreboot.org/c/coreboot/+/36137/10/src/soc/intel/common/pch/K... PS10, Line 23: select SOC_INTEL_COMMON_BLOCK_MEMMAP Why is this in PCH area? This change is entirely related to the system agent and memory controller.
Hello Aaron Durbin, Patrick Rudolph, Subrata Banik, Arthur Heymans, build bot (Jenkins), Nico Huber, Patrick Georgi, Martin Roth,
I'd like you to reexamine a change. Please visit
https://review.coreboot.org/c/coreboot/+/36137
to look at the new patch set (#11).
Change subject: soc/intel: skl,cnl,icl: consolidate ebda and memmap and move to common code ......................................................................
soc/intel: skl,cnl,icl: consolidate ebda and memmap and move to common code
As of CB:36136 ebda and memmap are identical for skl, cnl and icl, thus move them to common code.
Tested successfully on X11SSM-F
Change-Id: I9a20c814d2a6874fcb4ff99ef1a7825d891f74e2 Signed-off-by: Michael Niewöhner foss@mniewoehner.de --- M src/soc/intel/cannonlake/Makefile.inc D src/soc/intel/cannonlake/memmap.c M src/soc/intel/common/block/ebda/ebda.c M src/soc/intel/common/block/include/intelblocks/ebda.h A src/soc/intel/common/block/memmap/Kconfig A src/soc/intel/common/block/memmap/Makefile.inc R src/soc/intel/common/block/memmap/memmap.c M src/soc/intel/common/pch/Kconfig M src/soc/intel/icelake/Makefile.inc D src/soc/intel/icelake/memmap.c M src/soc/intel/skylake/Makefile.inc 11 files changed, 25 insertions(+), 347 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/37/36137/11
Michael Niewöhner has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/36137 )
Change subject: soc/intel: skl,cnl,icl: consolidate ebda and memmap and move to common code ......................................................................
Uploaded patch set 11: New patch set was added with same tree, parent, and commit message as Patch Set 10.
Michael Niewöhner has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/36137 )
Change subject: soc/intel: skl,cnl,icl: consolidate ebda and memmap and move to common code ......................................................................
Patch Set 11:
(1 comment)
https://review.coreboot.org/c/coreboot/+/36137/10/src/soc/intel/common/pch/K... File src/soc/intel/common/pch/Kconfig:
https://review.coreboot.org/c/coreboot/+/36137/10/src/soc/intel/common/pch/K... PS10, Line 23: select SOC_INTEL_COMMON_BLOCK_MEMMAP
Why is this in PCH area? This change is entirely related to the system agent and memory controller.
indeed, moved both EBDA and MEMMAP to the specific socs
Hello Aaron Durbin, Patrick Rudolph, Subrata Banik, Arthur Heymans, build bot (Jenkins), Nico Huber, Patrick Georgi, Martin Roth,
I'd like you to reexamine a change. Please visit
https://review.coreboot.org/c/coreboot/+/36137
to look at the new patch set (#12).
Change subject: soc/intel: skl,cnl,icl: consolidate ebda and memmap and move to common code ......................................................................
soc/intel: skl,cnl,icl: consolidate ebda and memmap and move to common code
As of CB:36136 ebda and memmap are identical for skl, cnl and icl, thus move them to common code.
Tested successfully on X11SSM-F
Change-Id: I9a20c814d2a6874fcb4ff99ef1a7825d891f74e2 Signed-off-by: Michael Niewöhner foss@mniewoehner.de --- M src/soc/intel/cannonlake/Kconfig M src/soc/intel/cannonlake/Makefile.inc D src/soc/intel/cannonlake/memmap.c M src/soc/intel/common/block/ebda/ebda.c M src/soc/intel/common/block/include/intelblocks/ebda.h M src/soc/intel/common/pch/Kconfig M src/soc/intel/icelake/Kconfig M src/soc/intel/icelake/Makefile.inc D src/soc/intel/icelake/memmap.c M src/soc/intel/skylake/Kconfig M src/soc/intel/skylake/Makefile.inc D src/soc/intel/skylake/memmap.c 12 files changed, 19 insertions(+), 482 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/37/36137/12
Michael Niewöhner has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/36137 )
Change subject: soc/intel: skl,cnl,icl: consolidate ebda and memmap and move to common code ......................................................................
Uploaded patch set 12.
Michael Niewöhner has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/36137 )
Change subject: soc/intel: skl,cnl,icl: consolidate ebda and memmap and move to common code ......................................................................
Patch Set 12:
(1 comment)
https://review.coreboot.org/c/coreboot/+/36137/12//COMMIT_MSG Commit Message:
https://review.coreboot.org/c/coreboot/+/36137/12//COMMIT_MSG@12 PS12, Line 12: Tested successfully on X11SSM-F needs retest
Michael Niewöhner has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/36137 )
Change subject: soc/intel: skl,cnl,icl: consolidate ebda and memmap and move to common code ......................................................................
Uploaded patch set 14: New patch set was added with same tree, parent, and commit message as Patch Set 13.
Michael Niewöhner has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/36137 )
Change subject: soc/intel: skl,cnl,icl: consolidate ebda and memmap and move to common code ......................................................................
Uploaded patch set 15.
Hello Aaron Durbin, Patrick Rudolph, Subrata Banik, Arthur Heymans, build bot (Jenkins), Nico Huber, Patrick Georgi, Martin Roth,
I'd like you to reexamine a change. Please visit
https://review.coreboot.org/c/coreboot/+/36137
to look at the new patch set (#15).
Change subject: soc/intel: skl,cnl,icl: consolidate ebda and memmap and move to common code ......................................................................
soc/intel: skl,cnl,icl: consolidate ebda and memmap and move to common code
As of CB:36136 ebda and memmap are identical for skl, cnl and icl, thus move them to common code.
Tested successfully on X11SSM-F
Change-Id: I9a20c814d2a6874fcb4ff99ef1a7825d891f74e2 Signed-off-by: Michael Niewöhner foss@mniewoehner.de --- M src/soc/intel/cannonlake/Kconfig M src/soc/intel/cannonlake/Makefile.inc M src/soc/intel/common/block/ebda/ebda.c M src/soc/intel/common/block/include/intelblocks/ebda.h A src/soc/intel/common/block/memmap/Kconfig A src/soc/intel/common/block/memmap/Makefile.inc R src/soc/intel/common/block/memmap/memmap.c M src/soc/intel/common/block/systemagent/systemagent_early.c M src/soc/intel/common/pch/Kconfig M src/soc/intel/icelake/Kconfig M src/soc/intel/icelake/Makefile.inc D src/soc/intel/icelake/memmap.c M src/soc/intel/skylake/Kconfig M src/soc/intel/skylake/Makefile.inc D src/soc/intel/skylake/memmap.c 15 files changed, 31 insertions(+), 348 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/37/36137/15
Aaron Durbin has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/36137 )
Change subject: soc/intel: skl,cnl,icl: consolidate ebda and memmap and move to common code ......................................................................
Patch Set 15:
(1 comment)
https://review.coreboot.org/c/coreboot/+/36137/15/src/soc/intel/common/block... File src/soc/intel/common/block/include/intelblocks/ebda.h:
https://review.coreboot.org/c/coreboot/+/36137/15/src/soc/intel/common/block... PS15, Line 35: /* API for filling ebda with data */ Add a comment when it's called?
Michael Niewöhner has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/36137 )
Change subject: soc/intel: skl,cnl,icl: consolidate ebda and memmap and move to common code ......................................................................
Uploaded patch set 16: Patch Set 15 was rebased.
Michael Niewöhner has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/36137 )
Change subject: soc/intel: skl,cnl,icl: consolidate ebda and memmap and move to common code ......................................................................
Uploaded patch set 17: Patch Set 16 was rebased.
Michael Niewöhner has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/36137 )
Change subject: soc/intel: skl,cnl,icl: consolidate ebda and memmap and move to common code ......................................................................
Patch Set 17:
(1 comment)
https://review.coreboot.org/c/coreboot/+/36137/12//COMMIT_MSG Commit Message:
https://review.coreboot.org/c/coreboot/+/36137/12//COMMIT_MSG@12 PS12, Line 12: Tested successfully on X11SSM-F
needs retest
Done
Michael Niewöhner has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/36137 )
Change subject: soc/intel: skl,cnl,icl: consolidate ebda and memmap and move to common code ......................................................................
Patch Set 17:
(1 comment)
https://review.coreboot.org/c/coreboot/+/36137/15/src/soc/intel/common/block... File src/soc/intel/common/block/include/intelblocks/ebda.h:
https://review.coreboot.org/c/coreboot/+/36137/15/src/soc/intel/common/block... PS15, Line 35: /* API for filling ebda with data */
Add a comment when it's called?
Done
Michael Niewöhner has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/36137 )
Change subject: soc/intel: skl,cnl,icl: consolidate ebda and memmap and move to common code ......................................................................
Patch Set 17: Code-Review+1
Michael Niewöhner has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/36137 )
Change subject: soc/intel: skl,cnl,icl: consolidate ebda and memmap and move to common code ......................................................................
Uploaded patch set 18.
Hello Aaron Durbin, Patrick Rudolph, Subrata Banik, Arthur Heymans, build bot (Jenkins), Nico Huber, Patrick Georgi, Martin Roth,
I'd like you to reexamine a change. Please visit
https://review.coreboot.org/c/coreboot/+/36137
to look at the new patch set (#18).
Change subject: soc/intel: skl,cnl,icl: consolidate ebda and memmap and move to common code ......................................................................
soc/intel: skl,cnl,icl: consolidate ebda and memmap and move to common code
As of CB:36136 ebda and memmap are identical for skl, cnl and icl, thus move them to common code.
Tested successfully on X11SSM-F
Change-Id: I9a20c814d2a6874fcb4ff99ef1a7825d891f74e2 Signed-off-by: Michael Niewöhner foss@mniewoehner.de --- M src/soc/intel/cannonlake/Kconfig M src/soc/intel/cannonlake/Makefile.inc D src/soc/intel/cannonlake/memmap.c M src/soc/intel/common/block/ebda/ebda.c M src/soc/intel/common/block/include/intelblocks/ebda.h A src/soc/intel/common/block/memmap/Kconfig A src/soc/intel/common/block/memmap/Makefile.inc A src/soc/intel/common/block/memmap/memmap.c M src/soc/intel/common/pch/Kconfig M src/soc/intel/icelake/Kconfig M src/soc/intel/icelake/Makefile.inc D src/soc/intel/icelake/memmap.c M src/soc/intel/skylake/Kconfig M src/soc/intel/skylake/Makefile.inc D src/soc/intel/skylake/memmap.c 15 files changed, 145 insertions(+), 473 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/37/36137/18
Hello Aaron Durbin, Patrick Rudolph, Subrata Banik, Arthur Heymans, build bot (Jenkins), Nico Huber, Patrick Georgi, Martin Roth,
I'd like you to reexamine a change. Please visit
https://review.coreboot.org/c/coreboot/+/36137
to look at the new patch set (#19).
Change subject: soc/intel: skl,cnl,icl: consolidate ebda and memmap and move to common code ......................................................................
soc/intel: skl,cnl,icl: consolidate ebda and memmap and move to common code
As of CB:36136 ebda and memmap are identical for skl, cnl and icl, thus move them to common code.
Tested successfully on X11SSM-F
Change-Id: I9a20c814d2a6874fcb4ff99ef1a7825d891f74e2 Signed-off-by: Michael Niewöhner foss@mniewoehner.de --- M src/soc/intel/cannonlake/Kconfig M src/soc/intel/cannonlake/Makefile.inc D src/soc/intel/cannonlake/memmap.c M src/soc/intel/common/block/ebda/ebda.c M src/soc/intel/common/block/include/intelblocks/ebda.h A src/soc/intel/common/block/memmap/Kconfig A src/soc/intel/common/block/memmap/Makefile.inc A src/soc/intel/common/block/memmap/memmap.c M src/soc/intel/common/pch/Kconfig M src/soc/intel/icelake/Kconfig M src/soc/intel/icelake/Makefile.inc D src/soc/intel/icelake/memmap.c M src/soc/intel/skylake/Kconfig M src/soc/intel/skylake/Makefile.inc D src/soc/intel/skylake/memmap.c 15 files changed, 145 insertions(+), 473 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/37/36137/19
Michael Niewöhner has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/36137 )
Change subject: soc/intel: skl,cnl,icl: consolidate ebda and memmap and move to common code ......................................................................
Uploaded patch set 19.
Nico Huber has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/36137 )
Change subject: soc/intel: skl,cnl,icl: consolidate ebda and memmap and move to common code ......................................................................
Patch Set 19: Code-Review+1
(7 comments)
I'm not sure about the block/ location. However, this wouldn't be the first software feature there... or maybe put it into block/systemagent/?
https://review.coreboot.org/c/coreboot/+/36137/19//COMMIT_MSG Commit Message:
https://review.coreboot.org/c/coreboot/+/36137/19//COMMIT_MSG@7 PS19, Line 7: and move to common code `and ...` not needed and exceeds line length
https://review.coreboot.org/c/coreboot/+/36137/19/src/soc/intel/common/block... File src/soc/intel/common/block/memmap/memmap.c:
https://review.coreboot.org/c/coreboot/+/36137/19/src/soc/intel/common/block... PS19, Line 40: also maps into MC address space Does anybody know what this means?
https://review.coreboot.org/c/coreboot/+/36137/19/src/soc/intel/common/block... PS19, Line 54: * +---------------------------+ TOLUM / top_of_ram (aligned) This is the same as cbmem_top
https://review.coreboot.org/c/coreboot/+/36137/19/src/soc/intel/common/block... PS19, Line 54: aligned Aligned to what?
https://review.coreboot.org/c/coreboot/+/36137/19/src/soc/intel/common/block... PS19, Line 56: * +---------------------------+ cbmem_top Not cbmem_top, as CBMEM root is part of CBMEM
https://review.coreboot.org/c/coreboot/+/36137/19/src/soc/intel/common/block... PS19, Line 62: FSP TOLUM FSP makes no sense here. If anything, the above TOLUM would be the FSP one.
https://review.coreboot.org/c/coreboot/+/36137/19/src/soc/intel/common/block... PS19, Line 66: * Some of the base registers above can be equal making the size of those : * regions 0. The reason is because the memory controller internally subtracts : * the base registers from each other to determine sizes of the regions. In : * other words, the memory map is in a fixed order no matter what. This confuses me. Does it tell us anything non-obvious?
Michael Niewöhner has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/36137 )
Change subject: soc/intel: skl,cnl,icl: consolidate ebda and memmap and move to common code ......................................................................
Patch Set 19:
(6 comments)
https://review.coreboot.org/c/coreboot/+/36137/19/src/soc/intel/common/block... File src/soc/intel/common/block/memmap/memmap.c:
https://review.coreboot.org/c/coreboot/+/36137/19/src/soc/intel/common/block... PS19, Line 40: also maps into MC address space
Does anybody know what this means?
nope :/
https://review.coreboot.org/c/coreboot/+/36137/19/src/soc/intel/common/block... PS19, Line 54: * +---------------------------+ TOLUM / top_of_ram (aligned)
This is the same as cbmem_top
Done
https://review.coreboot.org/c/coreboot/+/36137/19/src/soc/intel/common/block... PS19, Line 54: aligned
Aligned to what?
I have no idea, copied from the original one
https://review.coreboot.org/c/coreboot/+/36137/19/src/soc/intel/common/block... PS19, Line 56: * +---------------------------+ cbmem_top
Not cbmem_top, as CBMEM root is part of CBMEM
Done
https://review.coreboot.org/c/coreboot/+/36137/19/src/soc/intel/common/block... PS19, Line 62: FSP TOLUM
FSP makes no sense here. If anything, the above TOLUM would be the FSP one.
According to Skylake FSP IG this is FSP TOLUM
https://review.coreboot.org/c/coreboot/+/36137/19/src/soc/intel/common/block... PS19, Line 66: * Some of the base registers above can be equal making the size of those : * regions 0. The reason is because the memory controller internally subtracts : * the base registers from each other to determine sizes of the regions. In : * other words, the memory map is in a fixed order no matter what.
This confuses me. […]
IMHO no, I removed that
Michael Niewöhner has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/36137 )
Change subject: soc/intel: skl,cnl,icl: consolidate ebda and memmap ......................................................................
Uploaded patch set 20.
Hello Aaron Durbin, Patrick Rudolph, Subrata Banik, Arthur Heymans, build bot (Jenkins), Nico Huber, Patrick Georgi, Martin Roth,
I'd like you to reexamine a change. Please visit
https://review.coreboot.org/c/coreboot/+/36137
to look at the new patch set (#20).
Change subject: soc/intel: skl,cnl,icl: consolidate ebda and memmap ......................................................................
soc/intel: skl,cnl,icl: consolidate ebda and memmap
As of CB:36136 ebda and memmap are identical for skl, cnl and icl, thus move them to common code.
Tested successfully on X11SSM-F
Change-Id: I9a20c814d2a6874fcb4ff99ef1a7825d891f74e2 Signed-off-by: Michael Niewöhner foss@mniewoehner.de --- M src/soc/intel/cannonlake/Kconfig M src/soc/intel/cannonlake/Makefile.inc D src/soc/intel/cannonlake/memmap.c M src/soc/intel/common/block/ebda/ebda.c M src/soc/intel/common/block/include/intelblocks/ebda.h A src/soc/intel/common/block/memmap/Kconfig A src/soc/intel/common/block/memmap/Makefile.inc A src/soc/intel/common/block/memmap/memmap.c M src/soc/intel/common/pch/Kconfig M src/soc/intel/icelake/Kconfig M src/soc/intel/icelake/Makefile.inc D src/soc/intel/icelake/memmap.c M src/soc/intel/skylake/Kconfig M src/soc/intel/skylake/Makefile.inc D src/soc/intel/skylake/memmap.c 15 files changed, 140 insertions(+), 473 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/37/36137/20
Hello Aaron Durbin, Patrick Rudolph, Subrata Banik, Arthur Heymans, build bot (Jenkins), Nico Huber, Patrick Georgi, Martin Roth,
I'd like you to reexamine a change. Please visit
https://review.coreboot.org/c/coreboot/+/36137
to look at the new patch set (#21).
Change subject: soc/intel: skl,cnl,icl: consolidate ebda and memmap ......................................................................
soc/intel: skl,cnl,icl: consolidate ebda and memmap
As of CB:36136 ebda and memmap are identical for skl, cnl and icl, thus move them to common code.
Tested successfully on X11SSM-F
Change-Id: I9a20c814d2a6874fcb4ff99ef1a7825d891f74e2 Signed-off-by: Michael Niewöhner foss@mniewoehner.de --- M src/soc/intel/cannonlake/Kconfig M src/soc/intel/cannonlake/Makefile.inc D src/soc/intel/cannonlake/memmap.c M src/soc/intel/common/block/ebda/ebda.c M src/soc/intel/common/block/include/intelblocks/ebda.h M src/soc/intel/common/block/systemagent/Makefile.inc A src/soc/intel/common/block/systemagent/memmap.c M src/soc/intel/common/pch/Kconfig M src/soc/intel/icelake/Kconfig M src/soc/intel/icelake/Makefile.inc D src/soc/intel/icelake/memmap.c M src/soc/intel/skylake/Kconfig M src/soc/intel/skylake/Makefile.inc D src/soc/intel/skylake/memmap.c 14 files changed, 132 insertions(+), 473 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/37/36137/21
Michael Niewöhner has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/36137 )
Change subject: soc/intel: skl,cnl,icl: consolidate ebda and memmap ......................................................................
Uploaded patch set 21.
Michael Niewöhner has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/36137 )
Change subject: soc/intel: skl,cnl,icl: consolidate ebda and memmap ......................................................................
Patch Set 21:
(1 comment)
https://review.coreboot.org/c/coreboot/+/36137/19//COMMIT_MSG Commit Message:
https://review.coreboot.org/c/coreboot/+/36137/19//COMMIT_MSG@7 PS19, Line 7: and move to common code
`and ... […]
Done
Arthur Heymans has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/36137 )
Change subject: soc/intel: skl,cnl,icl: consolidate ebda and memmap ......................................................................
Patch Set 21:
(1 comment)
https://review.coreboot.org/c/coreboot/+/36137/21/src/soc/intel/common/block... File src/soc/intel/common/block/systemagent/memmap.c:
https://review.coreboot.org/c/coreboot/+/36137/21/src/soc/intel/common/block... PS21, Line 57: * | FSP Reserved Memory | hu? Is this a cbmem entry?
Michael Niewöhner has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/36137 )
Change subject: soc/intel: skl,cnl,icl: consolidate ebda and memmap ......................................................................
Uploaded patch set 22.
Hello Aaron Durbin, Patrick Rudolph, Subrata Banik, Arthur Heymans, build bot (Jenkins), Nico Huber, Patrick Georgi, Martin Roth,
I'd like you to reexamine a change. Please visit
https://review.coreboot.org/c/coreboot/+/36137
to look at the new patch set (#22).
Change subject: soc/intel: skl,cnl,icl: consolidate ebda and memmap ......................................................................
soc/intel: skl,cnl,icl: consolidate ebda and memmap
As of CB:36136 ebda and memmap are identical for skl, cnl and icl, thus move them to common code.
Tested successfully on X11SSM-F
Change-Id: I9a20c814d2a6874fcb4ff99ef1a7825d891f74e2 Signed-off-by: Michael Niewöhner foss@mniewoehner.de --- M src/soc/intel/apollolake/memmap.c M src/soc/intel/cannonlake/Kconfig M src/soc/intel/cannonlake/Makefile.inc D src/soc/intel/cannonlake/memmap.c M src/soc/intel/common/block/ebda/ebda.c M src/soc/intel/common/block/include/intelblocks/ebda.h M src/soc/intel/common/block/systemagent/Makefile.inc A src/soc/intel/common/block/systemagent/memmap.c M src/soc/intel/common/pch/Kconfig M src/soc/intel/icelake/Kconfig M src/soc/intel/icelake/Makefile.inc D src/soc/intel/icelake/memmap.c M src/soc/intel/skylake/Kconfig M src/soc/intel/skylake/Makefile.inc D src/soc/intel/skylake/memmap.c 15 files changed, 135 insertions(+), 504 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/37/36137/22
Michael Niewöhner has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/36137 )
Change subject: soc/intel: skl,cnl,icl: consolidate ebda and memmap ......................................................................
Patch Set 22:
(1 comment)
https://review.coreboot.org/c/coreboot/+/36137/21/src/soc/intel/common/block... File src/soc/intel/common/block/systemagent/memmap.c:
https://review.coreboot.org/c/coreboot/+/36137/21/src/soc/intel/common/block... PS21, Line 57: * | FSP Reserved Memory |
hu? Is this a cbmem entry?
see original src/soc/intel/icelake/memmap.c
Arthur Heymans has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/36137 )
Change subject: soc/intel: skl,cnl,icl: consolidate ebda and memmap ......................................................................
Patch Set 22:
(1 comment)
https://review.coreboot.org/c/coreboot/+/36137/21/src/soc/intel/common/block... File src/soc/intel/common/block/systemagent/memmap.c:
https://review.coreboot.org/c/coreboot/+/36137/21/src/soc/intel/common/block... PS21, Line 57: * | FSP Reserved Memory |
see original src/soc/intel/icelake/memmap.c
That is the origin, but what is it? Who populates it?
Michael Niewöhner has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/36137 )
Change subject: soc/intel: skl,cnl,icl: consolidate ebda and memmap ......................................................................
Patch Set 22:
(1 comment)
https://review.coreboot.org/c/coreboot/+/36137/21/src/soc/intel/common/block... File src/soc/intel/common/block/systemagent/memmap.c:
https://review.coreboot.org/c/coreboot/+/36137/21/src/soc/intel/common/block... PS21, Line 57: * | FSP Reserved Memory |
see original src/soc/intel/icelake/memmap.c […]
yeah, I absolutely don't know :S What I know is that CBMEM is in the space, that FSP leaves free. Maybe Nico has some idea on this
Hello Aaron Durbin, Patrick Rudolph, Subrata Banik, Arthur Heymans, build bot (Jenkins), Nico Huber, Patrick Georgi, Martin Roth,
I'd like you to reexamine a change. Please visit
https://review.coreboot.org/c/coreboot/+/36137
to look at the new patch set (#23).
Change subject: soc/intel: skl,cnl,icl: consolidate ebda and memmap ......................................................................
soc/intel: skl,cnl,icl: consolidate ebda and memmap
As of CB:36136 ebda and memmap are identical for skl, cnl and icl, thus move them to common code.
Tested successfully on X11SSM-F
Change-Id: I9a20c814d2a6874fcb4ff99ef1a7825d891f74e2 Signed-off-by: Michael Niewöhner foss@mniewoehner.de --- M src/soc/intel/apollolake/memmap.c M src/soc/intel/cannonlake/Kconfig M src/soc/intel/cannonlake/Makefile.inc D src/soc/intel/cannonlake/memmap.c M src/soc/intel/common/block/ebda/ebda.c M src/soc/intel/common/block/include/intelblocks/ebda.h M src/soc/intel/common/block/systemagent/Makefile.inc A src/soc/intel/common/block/systemagent/memmap.c M src/soc/intel/common/pch/Kconfig M src/soc/intel/icelake/Kconfig M src/soc/intel/icelake/Makefile.inc D src/soc/intel/icelake/memmap.c M src/soc/intel/skylake/Kconfig M src/soc/intel/skylake/Makefile.inc D src/soc/intel/skylake/memmap.c 15 files changed, 137 insertions(+), 504 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/37/36137/23
Michael Niewöhner has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/36137 )
Change subject: soc/intel: skl,cnl,icl: consolidate ebda and memmap ......................................................................
Uploaded patch set 23.
Michael Niewöhner has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/36137 )
Change subject: soc/intel: skl,cnl,icl: consolidate ebda and memmap ......................................................................
Patch Set 23:
(1 comment)
https://review.coreboot.org/c/coreboot/+/36137/19/src/soc/intel/common/block... File src/soc/intel/common/block/memmap/memmap.c:
https://review.coreboot.org/c/coreboot/+/36137/19/src/soc/intel/common/block... PS19, Line 40: also maps into MC address space
nope :/
MC = memory controller ... does that have to do with remapping?
From src/northbridge/intel/x4x/northbridge.c: 111 * If >= 4GB installed then memory from TOLUD to 4GB 112 * is remapped above TOM, TOUUD will account for both
Michael Niewöhner has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/36137 )
Change subject: soc/intel: skl,cnl,icl: consolidate ebda and memmap ......................................................................
Uploaded patch set 24: New patch set was added with same tree, parent, and commit message as Patch Set 23.
Michael Niewöhner has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/36137 )
Change subject: soc/intel: skl,cnl,icl: consolidate ebda and memmap ......................................................................
Uploaded patch set 25: New patch set was added with same tree, parent, and commit message as Patch Set 24.
Hello Aaron Durbin, Patrick Rudolph, Subrata Banik, Arthur Heymans, build bot (Jenkins), Nico Huber, Patrick Georgi, Martin Roth,
I'd like you to reexamine a change. Please visit
https://review.coreboot.org/c/coreboot/+/36137
to look at the new patch set (#25).
Change subject: soc/intel: skl,cnl,icl: consolidate ebda and memmap ......................................................................
soc/intel: skl,cnl,icl: consolidate ebda and memmap
As of CB:36136 ebda and memmap are identical for skl, cnl and icl, thus move them to common code.
Tested successfully on X11SSM-F
Change-Id: I9a20c814d2a6874fcb4ff99ef1a7825d891f74e2 Signed-off-by: Michael Niewöhner foss@mniewoehner.de --- M src/soc/intel/apollolake/memmap.c M src/soc/intel/cannonlake/Kconfig M src/soc/intel/cannonlake/Makefile.inc D src/soc/intel/cannonlake/memmap.c M src/soc/intel/common/block/ebda/ebda.c M src/soc/intel/common/block/include/intelblocks/ebda.h M src/soc/intel/common/block/systemagent/Makefile.inc A src/soc/intel/common/block/systemagent/memmap.c M src/soc/intel/common/pch/Kconfig M src/soc/intel/icelake/Kconfig M src/soc/intel/icelake/Makefile.inc D src/soc/intel/icelake/memmap.c M src/soc/intel/skylake/Kconfig M src/soc/intel/skylake/Makefile.inc D src/soc/intel/skylake/memmap.c 15 files changed, 137 insertions(+), 504 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/37/36137/25
Arthur Heymans has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/36137 )
Change subject: soc/intel: skl,cnl,icl: consolidate ebda and memmap ......................................................................
Patch Set 25:
(3 comments)
https://review.coreboot.org/c/coreboot/+/36137/25/src/soc/intel/apollolake/m... File src/soc/intel/apollolake/memmap.c:
https://review.coreboot.org/c/coreboot/+/36137/25/src/soc/intel/apollolake/m... PS25, Line 52: void fill_postcar_frame(struct postcar_frame *pcf) : { : uintptr_t top_of_ram; : : /* : * We need to make sure ramstage will be run cached. At this point exact : * location of ramstage in cbmem is not known. Instruct postcar to cache : * 16 megs under cbmem top which is a safe bet to cover ramstage. : */ : top_of_ram = (uintptr_t) cbmem_top(); : /* cbmem_top() needs to be at least 16 MiB aligned */ : assert(ALIGN_DOWN(top_of_ram, 16*MiB) == top_of_ram); : postcar_frame_add_mtrr(pcf, top_of_ram - 16*MiB, 16*MiB, : MTRR_TYPE_WRBACK); : : /* Cache the TSEG region */ : postcar_enable_tseg_cache(pcf); : } Can you split this off in a separate patch? That would be trivial to review.
https://review.coreboot.org/c/coreboot/+/36137/25/src/soc/intel/apollolake/m... PS25, Line 24: } on the next line.
https://review.coreboot.org/c/coreboot/+/36137/25/src/soc/intel/common/block... File src/soc/intel/common/block/systemagent/memmap.c:
https://review.coreboot.org/c/coreboot/+/36137/25/src/soc/intel/common/block... PS25, Line 28: Expected Host Memory Map (we don't know 100%): Maybe state here that not all entries are necessarily present on some SOC?
Arthur Heymans has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/36137 )
Change subject: soc/intel: skl,cnl,icl: consolidate ebda and memmap ......................................................................
Patch Set 25:
(1 comment)
https://review.coreboot.org/c/coreboot/+/36137/25/src/soc/intel/apollolake/m... File src/soc/intel/apollolake/memmap.c:
https://review.coreboot.org/c/coreboot/+/36137/25/src/soc/intel/apollolake/m... PS25, Line 24: }
on the next line.
Actually scratch that. cbmem_top_init is optional so no need to implement it here.
Michael Niewöhner has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/36137 )
Change subject: soc/intel: skl,cnl,icl: consolidate ebda and memmap ......................................................................
Patch Set 26:
This change is ready for review.
Michael Niewöhner has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/36137 )
Change subject: soc/intel: skl,cnl,icl: consolidate ebda and memmap ......................................................................
Patch Set 26:
(1 comment)
https://review.coreboot.org/c/coreboot/+/36137/25/src/soc/intel/apollolake/m... File src/soc/intel/apollolake/memmap.c:
https://review.coreboot.org/c/coreboot/+/36137/25/src/soc/intel/apollolake/m... PS25, Line 52: void fill_postcar_frame(struct postcar_frame *pcf) : { : uintptr_t top_of_ram; : : /* : * We need to make sure ramstage will be run cached. At this point exact : * location of ramstage in cbmem is not known. Instruct postcar to cache : * 16 megs under cbmem top which is a safe bet to cover ramstage. : */ : top_of_ram = (uintptr_t) cbmem_top(); : /* cbmem_top() needs to be at least 16 MiB aligned */ : assert(ALIGN_DOWN(top_of_ram, 16*MiB) == top_of_ram); : postcar_frame_add_mtrr(pcf, top_of_ram - 16*MiB, 16*MiB, : MTRR_TYPE_WRBACK); : : /* Cache the TSEG region */ : postcar_enable_tseg_cache(pcf); : }
Can you split this off in a separate patch? That would be trivial to review.
done in CB:36410
Michael Niewöhner has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/36137 )
Change subject: soc/intel: skl,cnl,icl: consolidate ebda and memmap ......................................................................
Uploaded patch set 27: New patch set was added with same tree, parent, and commit message as Patch Set 26.
Nico Huber has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/36137 )
Change subject: soc/intel: skl,cnl,icl: consolidate ebda and memmap ......................................................................
Patch Set 27:
(3 comments)
https://review.coreboot.org/c/coreboot/+/36137/19/src/soc/intel/common/block... File src/soc/intel/common/block/memmap/memmap.c:
https://review.coreboot.org/c/coreboot/+/36137/19/src/soc/intel/common/block... PS19, Line 40: also maps into MC address space
MC = memory controller ... does that have to do with remapping? […]
Ack
https://review.coreboot.org/c/coreboot/+/36137/19/src/soc/intel/common/block... PS19, Line 54: aligned
I have no idea, copied from the original one
Ack
https://review.coreboot.org/c/coreboot/+/36137/19/src/soc/intel/common/block... PS19, Line 62: FSP TOLUM
According to Skylake FSP IG this is FSP TOLUM
Ack
Aaron Durbin has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/36137 )
Change subject: soc/intel: skl,cnl,icl: consolidate ebda and memmap ......................................................................
Patch Set 27: Code-Review+2
Michael Niewöhner has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/36137 )
Change subject: soc/intel: skl,cnl,icl: consolidate ebda and memmap ......................................................................
Uploaded patch set 28.
Hello Aaron Durbin, Patrick Rudolph, Subrata Banik, Arthur Heymans, build bot (Jenkins), Nico Huber, Patrick Georgi, Martin Roth,
I'd like you to reexamine a change. Please visit
https://review.coreboot.org/c/coreboot/+/36137
to look at the new patch set (#28).
Change subject: soc/intel: skl,cnl,icl: consolidate ebda and memmap ......................................................................
soc/intel: skl,cnl,icl: consolidate ebda and memmap
As of CB:36136 ebda and memmap are identical for skl, cnl and icl, thus move them to common code.
Tested successfully on X11SSM-F
Change-Id: I9a20c814d2a6874fcb4ff99ef1a7825d891f74e2 Signed-off-by: Michael Niewöhner foss@mniewoehner.de --- M src/soc/intel/cannonlake/Makefile.inc D src/soc/intel/cannonlake/memmap.c M src/soc/intel/common/block/ebda/ebda.c M src/soc/intel/common/block/include/intelblocks/ebda.h M src/soc/intel/common/block/systemagent/memmap.c M src/soc/intel/icelake/Makefile.inc D src/soc/intel/icelake/memmap.c M src/soc/intel/skylake/Makefile.inc D src/soc/intel/skylake/memmap.c 9 files changed, 80 insertions(+), 390 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/37/36137/28
Nico Huber has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/36137 )
Change subject: soc/intel: skl,cnl,icl: consolidate ebda and memmap ......................................................................
Patch Set 28: Code-Review+2
Hello Aaron Durbin, Patrick Rudolph, Subrata Banik, Arthur Heymans, build bot (Jenkins), Nico Huber, Patrick Georgi, Martin Roth,
I'd like you to reexamine a change. Please visit
https://review.coreboot.org/c/coreboot/+/36137
to look at the new patch set (#29).
Change subject: soc/intel: skl,cnl,icl: consolidate ebda and memmap ......................................................................
soc/intel: skl,cnl,icl: consolidate ebda and memmap
As of CB:36136 ebda and memmap are identical for skl, cnl and icl, thus move them to common code.
Tested successfully on X11SSM-F
Change-Id: I9a20c814d2a6874fcb4ff99ef1a7825d891f74e2 Signed-off-by: Michael Niewöhner foss@mniewoehner.de --- M src/soc/intel/cannonlake/Makefile.inc D src/soc/intel/cannonlake/memmap.c M src/soc/intel/common/block/ebda/ebda.c M src/soc/intel/common/block/include/intelblocks/ebda.h M src/soc/intel/common/block/systemagent/memmap.c M src/soc/intel/icelake/Makefile.inc D src/soc/intel/icelake/memmap.c M src/soc/intel/skylake/Makefile.inc D src/soc/intel/skylake/memmap.c 9 files changed, 80 insertions(+), 391 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/37/36137/29
Michael Niewöhner has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/36137 )
Change subject: soc/intel: skl,cnl,icl: consolidate ebda and memmap ......................................................................
Uploaded patch set 29.
Nico Huber has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/36137 )
Change subject: soc/intel: skl,cnl,icl: consolidate ebda and memmap ......................................................................
Patch Set 29: Code-Review+2
Nico Huber has submitted this change. ( https://review.coreboot.org/c/coreboot/+/36137 )
Change subject: soc/intel: skl,cnl,icl: consolidate ebda and memmap ......................................................................
soc/intel: skl,cnl,icl: consolidate ebda and memmap
As of CB:36136 ebda and memmap are identical for skl, cnl and icl, thus move them to common code.
Tested successfully on X11SSM-F
Change-Id: I9a20c814d2a6874fcb4ff99ef1a7825d891f74e2 Signed-off-by: Michael Niewöhner foss@mniewoehner.de Reviewed-on: https://review.coreboot.org/c/coreboot/+/36137 Reviewed-by: Nico Huber nico.h@gmx.de Tested-by: build bot (Jenkins) no-reply@coreboot.org --- M src/soc/intel/cannonlake/Makefile.inc D src/soc/intel/cannonlake/memmap.c M src/soc/intel/common/block/ebda/ebda.c M src/soc/intel/common/block/include/intelblocks/ebda.h M src/soc/intel/common/block/systemagent/memmap.c M src/soc/intel/icelake/Makefile.inc D src/soc/intel/icelake/memmap.c M src/soc/intel/skylake/Makefile.inc D src/soc/intel/skylake/memmap.c 9 files changed, 80 insertions(+), 391 deletions(-)
Approvals: build bot (Jenkins): Verified Nico Huber: Looks good to me, approved
diff --git a/src/soc/intel/cannonlake/Makefile.inc b/src/soc/intel/cannonlake/Makefile.inc index 5bc9409..0fcbcd1 100644 --- a/src/soc/intel/cannonlake/Makefile.inc +++ b/src/soc/intel/cannonlake/Makefile.inc @@ -16,7 +16,6 @@ bootblock-y += bootblock/report_platform.c bootblock-y += gspi.c bootblock-y += i2c.c -bootblock-y += memmap.c bootblock-y += spi.c bootblock-y += lpc.c bootblock-y += p2sb.c @@ -26,7 +25,6 @@ romstage-y += gspi.c romstage-y += i2c.c romstage-y += lpc.c -romstage-y += memmap.c romstage-y += pmutil.c romstage-y += reset.c romstage-y += spi.c @@ -44,7 +42,6 @@ ramstage-y += lockdown.c ramstage-y += lpc.c ramstage-y += me.c -ramstage-y += memmap.c ramstage-y += nhlt.c ramstage-y += p2sb.c ramstage-y += pmc.c @@ -66,7 +63,6 @@ smm-y += uart.c smm-y += xhci.c
-postcar-y += memmap.c postcar-y += pmutil.c postcar-y += i2c.c postcar-y += gspi.c diff --git a/src/soc/intel/cannonlake/memmap.c b/src/soc/intel/cannonlake/memmap.c deleted file mode 100644 index 63e7acd..0000000 --- a/src/soc/intel/cannonlake/memmap.c +++ /dev/null @@ -1,106 +0,0 @@ -/* - * This file is part of the coreboot project. - * - * Copyright (C) 2014 Google Inc. - * Copyright (C) 2015-2017 Intel Corporation. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; version 2 of the License. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - */ - -#include <arch/romstage.h> -#include <cbmem.h> -#include <fsp/util.h> -#include <intelblocks/ebda.h> -#include <intelblocks/systemagent.h> -#include <stdlib.h> - -/* - * Fill up memory layout information - * - * Host Memory Map: - * - * +--------------------------+ TOUUD - * | | - * +--------------------------+ 4GiB - * | PCI Address Space | - * +--------------------------+ TOLUD (also maps into MC address space) - * | iGD | - * +--------------------------+ BDSM - * | GTT | - * +--------------------------+ BGSM - * | TSEG | - * +--------------------------+ TSEGMB - * | DMA Protected Region | - * +--------------------------+ DPR - * | PRM (C6DRAM/SGX) | - * +--------------------------+ PRMRR - * | ME Stolen Memory | - * +--------------------------+ ME Stolen - * | PTT | - * +--------------------------+ top_of_ram - * | Reserved - FSP/CBMEM | - * +--------------------------+ TOLUM - * | Usage DRAM | - * +--------------------------+ 0 - * - * Some of the base registers above can be equal making the size of those - * regions 0. The reason is because the memory controller internally subtracts - * the base registers from each other to determine sizes of the regions. In - * other words, the memory map is in a fixed order no matter what. - */ -void fill_soc_memmap_ebda(struct ebda_config *cfg) -{ - struct range_entry tolum; - - fsp_find_bootloader_tolum(&tolum); - cfg->cbmem_top = range_entry_end(&tolum); -} - -void cbmem_top_init(void) -{ - /* Fill up EBDA area */ - fill_ebda_area(); -} - -/* - * +-------------------------+ Top of RAM (aligned) - * | System Management Mode | - * | code and data | Length: CONFIG_TSEG_SIZE - * | (TSEG) | - * +-------------------------+ SMM base (aligned) - * | | - * | Chipset Reserved Memory | - * | | - * +-------------------------+ top_of_ram (aligned) - * | | - * | CBMEM Root | - * | | - * +-------------------------+ - * | | - * | FSP Reserved Memory | - * | | - * +-------------------------+ - * | | - * | Various CBMEM Entries | - * | | - * +-------------------------+ top_of_stack (8 byte aligned) - * | | - * | stack (CBMEM Entry) | - * | | - * +-------------------------+ - */ -void *cbmem_top_chipset(void) -{ - struct ebda_config ebda_cfg; - - retrieve_ebda_object(&ebda_cfg); - - return (void *)(uintptr_t)ebda_cfg.cbmem_top; -} diff --git a/src/soc/intel/common/block/ebda/ebda.c b/src/soc/intel/common/block/ebda/ebda.c index 6b0bd67..072023c 100644 --- a/src/soc/intel/common/block/ebda/ebda.c +++ b/src/soc/intel/common/block/ebda/ebda.c @@ -17,34 +17,14 @@ #include <intelblocks/ebda.h> #include <string.h>
-/* - * Mainboard Override function - * - * Mainboard directory may implement below functionality for romstage. - */ - -/* Fill up EBDA structure inside Mainboard directory */ -__weak void create_mainboard_ebda(struct ebda_config *cfg) -{ - /* no-op */ -} - -static void create_soc_ebda(struct ebda_config *cfg) -{ - /* Create EBDA header */ - cfg->signature = EBDA_SIGNATURE; - /* Fill up memory layout information */ - fill_soc_memmap_ebda(cfg); -} - -void fill_ebda_area(void) +void initialize_ebda_area(void) { struct ebda_config ebda_cfg;
/* Initialize EBDA area early during romstage. */ setup_default_ebda(); - create_soc_ebda(&ebda_cfg); - create_mainboard_ebda(&ebda_cfg); + ebda_cfg.signature = EBDA_SIGNATURE; + fill_memmap_ebda(&ebda_cfg); write_ebda_data(&ebda_cfg, sizeof(ebda_cfg)); }
diff --git a/src/soc/intel/common/block/include/intelblocks/ebda.h b/src/soc/intel/common/block/include/intelblocks/ebda.h index 16124df..48904f4 100644 --- a/src/soc/intel/common/block/include/intelblocks/ebda.h +++ b/src/soc/intel/common/block/include/intelblocks/ebda.h @@ -16,52 +16,23 @@ #ifndef SOC_INTEL_COMMON_BLOCK_EBDA_H #define SOC_INTEL_COMMON_BLOCK_EBDA_H
-#include <soc/ebda.h> - #define EBDA_SIGNATURE 0xebdaebda
-/* - * Mainboard Override function - * - * Mainboard directory may implement below functionality for romstage. - */ +/* EBDA structure */ +struct ebda_config { + uint32_t signature; /* EBDA signature */ + uint32_t cbmem_top; /* coreboot memory start */ +};
-/* Fill up EBDA structure inside Mainboard directory */ -void create_mainboard_ebda(struct ebda_config *cfg); +/* Initialize EBDA and store structure into EBDA area */ +void initialize_ebda_area(void);
/* - * SoC overrides - * - * All new SoC must implement below functionality for romstage. - */ -void fill_soc_memmap_ebda(struct ebda_config *cfg); - -/* - * API to perform below operation - * 1. Initialize EBDA area - * 2. Fill up EBDA structure inside SOC directory - * 3. Fill up EBDA structure inside Mainboard directory - * 4. Store EBDA structure into EBDA area - */ -void fill_ebda_area(void); - -/* Fill the ebda object pointed to by cfg. Object will be zero filled + * Fill the ebda object pointed to by cfg. Object will be zero filled * if signature check fails. */ void retrieve_ebda_object(struct ebda_config *cfg);
-/* - * EBDA structure - * - * SOC should implement EBDA structure as per need - * as below. - * - * Note: First 4 bytes should be reserved for signature as - * 0xEBDA - * - * struct ebda_config { - * uint32_t signature; - * <Required variables..> - * }; - */ +/* API for filling ebda with data in romstage */ +void fill_memmap_ebda(struct ebda_config *cfg);
#endif diff --git a/src/soc/intel/common/block/systemagent/memmap.c b/src/soc/intel/common/block/systemagent/memmap.c index ea22aa6..809c13a 100644 --- a/src/soc/intel/common/block/systemagent/memmap.c +++ b/src/soc/intel/common/block/systemagent/memmap.c @@ -19,15 +19,82 @@ #include <console/console.h> #include <cpu/x86/mtrr.h> #include <cpu/x86/smm.h> +#include <fsp/util.h> +#include <intelblocks/ebda.h> #include <intelblocks/systemagent.h> #include <stdlib.h>
+/* + * Expected Host Memory Map (we don't know 100% and not all regions are present on all SoCs): + * + * +---------------------------+ TOUUD + * | | + * +---------------------------+ TOM (if mem > 4GB) + * | CSME UMA (if mem > 4 GiB) | + * +---------------------------+ TOUUD + * | | + * +---------------------------+ 4GiB + * | PCI Address Space | + * +---------------------------+ TOM (if mem < 4GB) + * | CSME UMA (if mem < 4 GiB) | + * +---------------------------+ TOLUD (also maps into MC address space) + * | iGD / DSM | + * +---------------------------+ BDSM + * | GTT / GSM | + * +---------------------------+ TOLM + * | TSEG | + * +---------------------------+ TSEGMB + * | DMA Protected Region | + * +---------------------------+ DPR + * | PRM (C6DRAM/SGX) | + * +---------------------------+ PRMRR + * | Probeless Trace | + * +---------------------------+ ME Stolen + * | PTT | + * +---------------------------+ TOLUM / top_of_ram / cbmem_top + * | CBMEM Root | + * +---------------------------+ + * | FSP Reserved Memory | + * +---------------------------+ + * | various CBMEM entries | + * +---------------------------+ top_of_stack (8 byte aligned) + * | stack (CBMEM entry) | + * +---------------------------+ FSP TOLUM + * | | + * +---------------------------+ 0 + */ + void smm_region(uintptr_t *start, size_t *size) { *start = sa_get_tseg_base(); *size = sa_get_tseg_size(); }
+#if CONFIG(SOC_INTEL_COMMON_BLOCK_EBDA) +void fill_memmap_ebda(struct ebda_config *cfg) +{ + struct range_entry tolum; + + fsp_find_bootloader_tolum(&tolum); + cfg->cbmem_top = range_entry_end(&tolum); +} + +void cbmem_top_init(void) +{ + /* Initialize EBDA area */ + initialize_ebda_area(); +} + +void *cbmem_top_chipset(void) +{ + struct ebda_config ebda_cfg; + + retrieve_ebda_object(&ebda_cfg); + + return (void *)(uintptr_t)ebda_cfg.cbmem_top; +} +#endif + void fill_postcar_frame(struct postcar_frame *pcf) { uintptr_t top_of_ram; diff --git a/src/soc/intel/icelake/Makefile.inc b/src/soc/intel/icelake/Makefile.inc index a4ebd20..67a3a71 100644 --- a/src/soc/intel/icelake/Makefile.inc +++ b/src/soc/intel/icelake/Makefile.inc @@ -21,12 +21,10 @@ bootblock-y += bootblock/report_platform.c bootblock-y += espi.c bootblock-y += gpio.c -bootblock-y += memmap.c bootblock-y += p2sb.c
romstage-y += espi.c romstage-y += gpio.c -romstage-y += memmap.c romstage-y += reset.c
ramstage-y += acpi.c @@ -39,7 +37,6 @@ ramstage-y += gpio.c ramstage-y += graphics.c ramstage-y += lockdown.c -ramstage-y += memmap.c ramstage-y += p2sb.c ramstage-y += pmc.c ramstage-y += reset.c @@ -54,8 +51,6 @@ smm-y += smihandler.c smm-y += uart.c
-postcar-y += memmap.c - CPPFLAGS_common += -I$(src)/soc/intel/icelake CPPFLAGS_common += -I$(src)/soc/intel/icelake/include
diff --git a/src/soc/intel/icelake/memmap.c b/src/soc/intel/icelake/memmap.c deleted file mode 100644 index a4fd2e8..0000000 --- a/src/soc/intel/icelake/memmap.c +++ /dev/null @@ -1,105 +0,0 @@ -/* - * This file is part of the coreboot project. - * - * Copyright (C) 2018 Intel Corp. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; version 2 of the License. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - */ - -#include <arch/romstage.h> -#include <cbmem.h> -#include <fsp/util.h> -#include <intelblocks/ebda.h> -#include <intelblocks/systemagent.h> -#include <stdlib.h> - -/* - * Fill up memory layout information - * - * Host Memory Map: - * - * +--------------------------+ TOUUD - * | | - * +--------------------------+ 4GiB - * | PCI Address Space | - * +--------------------------+ TOLUD (also maps into MC address space) - * | iGD | - * +--------------------------+ BDSM - * | GTT | - * +--------------------------+ BGSM - * | TSEG | - * +--------------------------+ TSEGMB - * | DMA Protected Region | - * +--------------------------+ DPR - * | PRM (C6DRAM/SGX) | - * +--------------------------+ PRMRR - * | ME Stolen Memory | - * +--------------------------+ ME Stolen - * | PTT | - * +--------------------------+ top_of_ram - * | Reserved - FSP/CBMEM | - * +--------------------------+ TOLUM - * | Usage DRAM | - * +--------------------------+ 0 - * - * Some of the base registers above can be equal making the size of those - * regions 0. The reason is because the memory controller internally subtracts - * the base registers from each other to determine sizes of the regions. In - * other words, the memory map is in a fixed order no matter what. - */ -void fill_soc_memmap_ebda(struct ebda_config *cfg) -{ - struct range_entry tolum; - - fsp_find_bootloader_tolum(&tolum); - cfg->cbmem_top = range_entry_end(&tolum); -} - -void cbmem_top_init(void) -{ - /* Fill up EBDA area */ - fill_ebda_area(); -} - -/* - * +-------------------------+ Top of RAM (aligned) - * | System Management Mode | - * | code and data | Length: CONFIG_TSEG_SIZE - * | (TSEG) | - * +-------------------------+ SMM base (aligned) - * | | - * | Chipset Reserved Memory | - * | | - * +-------------------------+ top_of_ram (aligned) - * | | - * | CBMEM Root | - * | | - * +-------------------------+ - * | | - * | FSP Reserved Memory | - * | | - * +-------------------------+ - * | | - * | Various CBMEM Entries | - * | | - * +-------------------------+ top_of_stack (8 byte aligned) - * | | - * | stack (CBMEM Entry) | - * | | - * +-------------------------+ - */ -void *cbmem_top_chipset(void) -{ - struct ebda_config ebda_cfg; - - retrieve_ebda_object(&ebda_cfg); - - return (void *)(uintptr_t)ebda_cfg.cbmem_top; -} diff --git a/src/soc/intel/skylake/Makefile.inc b/src/soc/intel/skylake/Makefile.inc index cb0906c..b049e84 100644 --- a/src/soc/intel/skylake/Makefile.inc +++ b/src/soc/intel/skylake/Makefile.inc @@ -33,7 +33,6 @@ romstage-y += gpio.c romstage-y += gspi.c romstage-y += i2c.c -romstage-y += memmap.c romstage-y += me.c romstage-y += pmc.c romstage-y += pmutil.c @@ -54,7 +53,6 @@ ramstage-y += lockdown.c ramstage-y += lpc.c ramstage-y += me.c -ramstage-y += memmap.c ramstage-y += p2sb.c ramstage-y += pmc.c ramstage-y += pmutil.c @@ -76,7 +74,6 @@ smm-y += uart.c smm-y += xhci.c
-postcar-y += memmap.c postcar-y += gspi.c postcar-y += spi.c postcar-y += i2c.c diff --git a/src/soc/intel/skylake/memmap.c b/src/soc/intel/skylake/memmap.c deleted file mode 100644 index 63e7acd..0000000 --- a/src/soc/intel/skylake/memmap.c +++ /dev/null @@ -1,106 +0,0 @@ -/* - * This file is part of the coreboot project. - * - * Copyright (C) 2014 Google Inc. - * Copyright (C) 2015-2017 Intel Corporation. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; version 2 of the License. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - */ - -#include <arch/romstage.h> -#include <cbmem.h> -#include <fsp/util.h> -#include <intelblocks/ebda.h> -#include <intelblocks/systemagent.h> -#include <stdlib.h> - -/* - * Fill up memory layout information - * - * Host Memory Map: - * - * +--------------------------+ TOUUD - * | | - * +--------------------------+ 4GiB - * | PCI Address Space | - * +--------------------------+ TOLUD (also maps into MC address space) - * | iGD | - * +--------------------------+ BDSM - * | GTT | - * +--------------------------+ BGSM - * | TSEG | - * +--------------------------+ TSEGMB - * | DMA Protected Region | - * +--------------------------+ DPR - * | PRM (C6DRAM/SGX) | - * +--------------------------+ PRMRR - * | ME Stolen Memory | - * +--------------------------+ ME Stolen - * | PTT | - * +--------------------------+ top_of_ram - * | Reserved - FSP/CBMEM | - * +--------------------------+ TOLUM - * | Usage DRAM | - * +--------------------------+ 0 - * - * Some of the base registers above can be equal making the size of those - * regions 0. The reason is because the memory controller internally subtracts - * the base registers from each other to determine sizes of the regions. In - * other words, the memory map is in a fixed order no matter what. - */ -void fill_soc_memmap_ebda(struct ebda_config *cfg) -{ - struct range_entry tolum; - - fsp_find_bootloader_tolum(&tolum); - cfg->cbmem_top = range_entry_end(&tolum); -} - -void cbmem_top_init(void) -{ - /* Fill up EBDA area */ - fill_ebda_area(); -} - -/* - * +-------------------------+ Top of RAM (aligned) - * | System Management Mode | - * | code and data | Length: CONFIG_TSEG_SIZE - * | (TSEG) | - * +-------------------------+ SMM base (aligned) - * | | - * | Chipset Reserved Memory | - * | | - * +-------------------------+ top_of_ram (aligned) - * | | - * | CBMEM Root | - * | | - * +-------------------------+ - * | | - * | FSP Reserved Memory | - * | | - * +-------------------------+ - * | | - * | Various CBMEM Entries | - * | | - * +-------------------------+ top_of_stack (8 byte aligned) - * | | - * | stack (CBMEM Entry) | - * | | - * +-------------------------+ - */ -void *cbmem_top_chipset(void) -{ - struct ebda_config ebda_cfg; - - retrieve_ebda_object(&ebda_cfg); - - return (void *)(uintptr_t)ebda_cfg.cbmem_top; -}