Felix Singer has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/32734 )
Change subject: mb/supermicro/x11ssh: Add Supermicro X11SSH-TF
......................................................................
Patch Set 76:
(5 comments)
https://review.coreboot.org/c/coreboot/+/32734/74/src/mainboard/supermicro/…
File src/mainboard/supermicro/x11ssh/Kconfig:
https://review.coreboot.org/c/coreboot/+/32734/74/src/mainboard/supermicro/…
PS74, Line 9: select MAINBOARD_USES_FSP2_0
> already selected by SOC_INTEL_KABYLAKE
Done
https://review.coreboot.org/c/coreboot/+/32734/74/src/mainboard/supermicro/…
PS74, Line 18: config SOC_INTEL_COMMON_BLOCK_SGX
> is this needed? SOC_INTEL_COMMON_BLOCK_SGX is selected by SOC_INTEL_KABYLAKE/SOC_INTEL_COMMON_SKYLAK […]
Done
https://review.coreboot.org/c/coreboot/+/32734/74/src/mainboard/supermicro/…
PS74, Line 76: endif
> endif # BOARD_SUPERMICRO_BASEBOARD_X11SSH
Done
https://review.coreboot.org/c/coreboot/+/32734/74/src/mainboard/supermicro/…
File src/mainboard/supermicro/x11ssh/board_info.txt:
https://review.coreboot.org/c/coreboot/+/32734/74/src/mainboard/supermicro/…
PS74, Line 5: ROM socketed: n
> both, UEFI and BMC rom are socketed
They aren't.
https://review.coreboot.org/c/coreboot/+/32734/74/src/mainboard/supermicro/…
File src/mainboard/supermicro/x11ssh/variants/tf/board_info.txt:
https://review.coreboot.org/c/coreboot/+/32734/74/src/mainboard/supermicro/…
PS74, Line 5: ROM socketed: n
> both, UEFI and BMC rom are socketed
They aren't.
--
To view, visit https://review.coreboot.org/c/coreboot/+/32734
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: I2edaa4a928de3a065e517c0f20e3302b4b702323
Gerrit-Change-Number: 32734
Gerrit-PatchSet: 76
Gerrit-Owner: Christian Walter <christian.walter(a)9elements.com>
Gerrit-Reviewer: Alexander Couzens <lynxis(a)fe80.eu>
Gerrit-Reviewer: Angel Pons <th3fanbus(a)gmail.com>
Gerrit-Reviewer: Christian Walter <christian.walter(a)9elements.com>
Gerrit-Reviewer: Felix Singer <felixsinger(a)posteo.net>
Gerrit-Reviewer: Keno Fischer <keno(a)alumni.harvard.edu>
Gerrit-Reviewer: Martin Roth <martinroth(a)google.com>
Gerrit-Reviewer: Name of user not set #1002358
Gerrit-Reviewer: Patrick Georgi <pgeorgi(a)google.com>
Gerrit-Reviewer: Patrick Rudolph <patrick.rudolph(a)9elements.com>
Gerrit-Reviewer: Philipp Deppenwiese <zaolin.daisuki(a)gmail.com>
Gerrit-Reviewer: T. Hudson <trammell.hudson(a)gmail.com>
Gerrit-Reviewer: Trammell Hudson <hudson(a)trmm.net>
Gerrit-Reviewer: build bot (Jenkins) <no-reply(a)coreboot.org>
Gerrit-CC: Christoph Pomaska <github(a)aufmachen.jetzt>
Gerrit-CC: Felix Held <felix-coreboot(a)felixheld.de>
Gerrit-CC: Maxim Polyakov <max.senia.poliak(a)gmail.com>
Gerrit-CC: Michael Niewöhner
Gerrit-CC: Paul Menzel <paulepanter(a)users.sourceforge.net>
Gerrit-Comment-Date: Fri, 30 Aug 2019 20:43:02 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: Michael Niewöhner
Gerrit-MessageType: comment
Felix Singer has uploaded a new patch set (#76) to the change originally created by Christian Walter. ( https://review.coreboot.org/c/coreboot/+/32734 )
Change subject: mb/supermicro/x11ssh: Add Supermicro X11SSH-TF
......................................................................
mb/supermicro/x11ssh: Add Supermicro X11SSH-TF
Add support for the X11SSH-TF which is based on Intel KBL.
Working:
* SeaBios payload
* LinuxBoot payload
* IPMI of BMC
* PCIe, SATA, USB and M.2 ports
* RS232 serial
* Native graphics init
Not working:
* Tianocore doesn't work yet as the Aspeed NGI is text mode only.
* Intel SGX, due to random crashes in soc/intel/common
For more details have a look at the documentation.
Please apply those patches as well for good user experience:
I456be647b159f7a2ea7d94986a24424e56dcc8c4
I22c6885eae6fd7c778ac37b18f95b8775e9064e3
Ica0c20255f661dd61edc3a7d15646b7447c4658e
Signed-off-by: Christian Walter <christian.walter(a)9elements.com>
Signed-off-by: Patrick Rudolph <patrick.rudolph(a)9elements.com>
Change-Id: I2edaa4a928de3a065e517c0f20e3302b4b702323
---
M Documentation/mainboard/index.md
A Documentation/mainboard/supermicro/x11ssh-tf.md
A Documentation/mainboard/supermicro/x11ssh_flash.jpg
A src/mainboard/supermicro/x11ssh/Kconfig
A src/mainboard/supermicro/x11ssh/Kconfig.name
A src/mainboard/supermicro/x11ssh/Makefile.inc
A src/mainboard/supermicro/x11ssh/acpi/ec.asl
A src/mainboard/supermicro/x11ssh/acpi/mainboard.asl
A src/mainboard/supermicro/x11ssh/acpi/superio.asl
A src/mainboard/supermicro/x11ssh/acpi_tables.c
A src/mainboard/supermicro/x11ssh/board_info.txt
A src/mainboard/supermicro/x11ssh/bootblock.c
A src/mainboard/supermicro/x11ssh/cmos.layout
A src/mainboard/supermicro/x11ssh/dsdt.asl
A src/mainboard/supermicro/x11ssh/gpio.h
A src/mainboard/supermicro/x11ssh/mainboard.c
A src/mainboard/supermicro/x11ssh/ramstage.c
A src/mainboard/supermicro/x11ssh/romstage.c
A src/mainboard/supermicro/x11ssh/variants/tf/board_info.txt
A src/mainboard/supermicro/x11ssh/variants/tf/devicetree.cb
A src/mainboard/supermicro/x11ssh/vboot-ro-rwab.fmd
21 files changed, 1,019 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/34/32734/76
--
To view, visit https://review.coreboot.org/c/coreboot/+/32734
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: I2edaa4a928de3a065e517c0f20e3302b4b702323
Gerrit-Change-Number: 32734
Gerrit-PatchSet: 76
Gerrit-Owner: Christian Walter <christian.walter(a)9elements.com>
Gerrit-Reviewer: Alexander Couzens <lynxis(a)fe80.eu>
Gerrit-Reviewer: Angel Pons <th3fanbus(a)gmail.com>
Gerrit-Reviewer: Christian Walter <christian.walter(a)9elements.com>
Gerrit-Reviewer: Felix Singer <felixsinger(a)posteo.net>
Gerrit-Reviewer: Keno Fischer <keno(a)alumni.harvard.edu>
Gerrit-Reviewer: Martin Roth <martinroth(a)google.com>
Gerrit-Reviewer: Name of user not set #1002358
Gerrit-Reviewer: Patrick Georgi <pgeorgi(a)google.com>
Gerrit-Reviewer: Patrick Rudolph <patrick.rudolph(a)9elements.com>
Gerrit-Reviewer: Philipp Deppenwiese <zaolin.daisuki(a)gmail.com>
Gerrit-Reviewer: T. Hudson <trammell.hudson(a)gmail.com>
Gerrit-Reviewer: Trammell Hudson <hudson(a)trmm.net>
Gerrit-Reviewer: build bot (Jenkins) <no-reply(a)coreboot.org>
Gerrit-CC: Christoph Pomaska <github(a)aufmachen.jetzt>
Gerrit-CC: Felix Held <felix-coreboot(a)felixheld.de>
Gerrit-CC: Maxim Polyakov <max.senia.poliak(a)gmail.com>
Gerrit-CC: Michael Niewöhner
Gerrit-CC: Paul Menzel <paulepanter(a)users.sourceforge.net>
Gerrit-MessageType: newpatchset
Kyösti Mälkki has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/34893 )
Change subject: soc/intel: Use common romstage code
......................................................................
soc/intel: Use common romstage code
This provides stack guards with checking and common
entry into postcar.
Change-Id: I4c5a9789e7cf3f7f49a4a33e21dac894320a9639
Signed-off-by: Kyösti Mälkki <kyosti.malkki(a)gmail.com>
---
M src/arch/x86/include/arch/cpu.h
M src/arch/x86/postcar_loader.c
M src/cpu/intel/car/romstage.c
M src/include/cpu/intel/romstage.h
M src/soc/intel/apollolake/romstage.c
M src/soc/intel/baytrail/romstage/romstage.c
M src/soc/intel/cannonlake/romstage/romstage.c
M src/soc/intel/denverton_ns/romstage.c
M src/soc/intel/icelake/romstage/romstage.c
M src/soc/intel/quark/romstage/fsp2_0.c
M src/soc/intel/skylake/romstage/romstage_fsp20.c
11 files changed, 96 insertions(+), 137 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/93/34893/1
diff --git a/src/arch/x86/include/arch/cpu.h b/src/arch/x86/include/arch/cpu.h
index 9aa446e..1258669 100644
--- a/src/arch/x86/include/arch/cpu.h
+++ b/src/arch/x86/include/arch/cpu.h
@@ -335,6 +335,20 @@
void *postcar_commit_mtrrs(struct postcar_frame *pcf);
/*
+ * fill_postcar_frame() is called after raminit completes and right before
+ * calling run_postcar_phase(). Implementation should call postcar_frame_add_mtrr()
+ * to tag memory ranges as cacheable to speed up execution of postcar and
+ * early ramstage.
+ */
+void fill_postcar_frame(struct postcar_frame *pcf);
+
+/*
+ * prepare_and_run_postcar() determines the stack to use after
+ * cache-as-ram is torn down as well as the MTRR settings to use.
+ */
+void prepare_and_run_postcar(struct postcar_frame *pcf)
+
+/*
* Load and run a program that takes control of execution that
* tears down CAR and loads ramstage. The postcar_frame object
* indicates how to set up the frame. If caching is enabled at
diff --git a/src/arch/x86/postcar_loader.c b/src/arch/x86/postcar_loader.c
index b1b2da0..adaa1ce 100644
--- a/src/arch/x86/postcar_loader.c
+++ b/src/arch/x86/postcar_loader.c
@@ -132,6 +132,21 @@
postcar_frame_add_romcache(pcf, MTRR_TYPE_WRPROT);
}
+/* prepare_and_run_postcar() determines the stack to use after
+ * cache-as-ram is torn down as well as the MTRR settings to use. */
+void prepare_and_run_postcar(struct postcar_frame *pcf)
+{
+ if (postcar_frame_init(pcf, 0))
+ die("Unable to initialize postcar frame.\n");
+
+ fill_postcar_frame(pcf);
+
+ postcar_frame_common_mtrrs(pcf);
+
+ run_postcar_phase(pcf);
+ /* We do not return here. */
+}
+
void *postcar_commit_mtrrs(struct postcar_frame *pcf)
{
/*
diff --git a/src/cpu/intel/car/romstage.c b/src/cpu/intel/car/romstage.c
index 43fbe8a..e52507f 100644
--- a/src/cpu/intel/car/romstage.c
+++ b/src/cpu/intel/car/romstage.c
@@ -11,6 +11,7 @@
* GNU General Public License for more details.
*/
+#include <arch/cpu.h>
#include <bootblock_common.h>
#include <console/console.h>
#include <cpu/intel/romstage.h>
@@ -25,21 +26,6 @@
static struct postcar_frame early_mtrrs;
-/* prepare_and_run_postcar() determines the stack to use after
- * cache-as-ram is torn down as well as the MTRR settings to use. */
-static void prepare_and_run_postcar(struct postcar_frame *pcf)
-{
- if (postcar_frame_init(pcf, 0))
- die("Unable to initialize postcar frame.\n");
-
- fill_postcar_frame(pcf);
-
- postcar_frame_common_mtrrs(pcf);
-
- run_postcar_phase(pcf);
- /* We do not return here. */
-}
-
static void romstage_main(unsigned long bist)
{
int i;
@@ -102,3 +88,8 @@
romstage_main(NO_BIST);
}
+
+asmlinkage void car_stage_entry(void)
+{
+ mainboard_romstage_entry(void);
+}
diff --git a/src/include/cpu/intel/romstage.h b/src/include/cpu/intel/romstage.h
index 328f464..d2092a3 100644
--- a/src/include/cpu/intel/romstage.h
+++ b/src/include/cpu/intel/romstage.h
@@ -1,14 +1,6 @@
#ifndef _CPU_INTEL_ROMSTAGE_H
#define _CPU_INTEL_ROMSTAGE_H
-#include <arch/cpu.h>
-
void mainboard_romstage_entry(unsigned long bist);
-/* fill_postcar_frame() is called after raminit completes and right before
- * calling run_postcar_phase(). Implementation should call postcar_frame_add_mtrr()
- * to tag memory ranges as cacheable to speed up execution of postcar and
- * early ramstage. */
-void fill_postcar_frame(struct postcar_frame *pcf);
-
#endif /* _CPU_INTEL_ROMSTAGE_H */
diff --git a/src/soc/intel/apollolake/romstage.c b/src/soc/intel/apollolake/romstage.c
index 640208d..8324b77 100644
--- a/src/soc/intel/apollolake/romstage.c
+++ b/src/soc/intel/apollolake/romstage.c
@@ -195,14 +195,11 @@
cpu_set_p_state_to_turbo_ratio();
}
-asmlinkage void car_stage_entry(void)
+void mainboard_romstage_entry(void)
{
- struct postcar_frame pcf;
- uintptr_t top_of_ram;
bool s3wake;
+ size_t var_size;
struct chipset_power_state *ps = pmc_get_power_state();
- uintptr_t smm_base;
- size_t smm_size, var_size;
const void *new_var_data;
timestamp_add_now(TS_START_ROMSTAGE);
@@ -229,10 +226,14 @@
else
printk(BIOS_ERR, "Failed to determine variable data\n");
- if (postcar_frame_init(&pcf, 0))
- die("Unable to initialize postcar frame.\n");
-
mainboard_save_dimm_info();
+}
+
+void fill_postcar_frame(struct postcar_frame *pcf)
+{
+ uintptr_t top_of_ram;
+ uintptr_t smm_base;
+ size_t smm_size;
/*
* We need to make sure ramstage will be run cached. At this point exact
@@ -245,9 +246,6 @@
postcar_frame_add_mtrr(&pcf, top_of_ram - 16*MiB, 16*MiB,
MTRR_TYPE_WRBACK);
- /* Cache the memory-mapped boot media. */
- postcar_frame_add_romcache(&pcf, MTRR_TYPE_WRPROT);
-
/*
* Cache the TSEG region at the top of ram. This region is
* not restricted to SMM mode until SMM has been relocated.
@@ -257,8 +255,6 @@
*/
smm_region(&smm_base, &smm_size);
postcar_frame_add_mtrr(&pcf, smm_base, smm_size, MTRR_TYPE_WRBACK);
-
- run_postcar_phase(&pcf);
}
static void fill_console_params(FSPM_UPD *mupd)
diff --git a/src/soc/intel/baytrail/romstage/romstage.c b/src/soc/intel/baytrail/romstage/romstage.c
index 084cf09..2b37d18 100644
--- a/src/soc/intel/baytrail/romstage/romstage.c
+++ b/src/soc/intel/baytrail/romstage/romstage.c
@@ -51,23 +51,6 @@
static struct postcar_frame early_mtrrs;
-static void fill_postcar_frame(struct postcar_frame *pcf);
-
-/* prepare_and_run_postcar() determines the stack to use after
- * cache-as-ram is torn down as well as the MTRR settings to use. */
-static void prepare_and_run_postcar(struct postcar_frame *pcf)
-{
- if (postcar_frame_init(pcf, 0))
- die("Unable to initialize postcar frame.\n");
-
- fill_postcar_frame(pcf);
-
- postcar_frame_common_mtrrs(pcf);
-
- run_postcar_phase(pcf);
- /* We do not return here. */
-}
-
static void program_base_addresses(void)
{
uint32_t reg;
@@ -146,11 +129,6 @@
/* Call into mainboard. */
mainboard_romstage_entry(&rp);
- if (CONFIG(SMM_TSEG))
- smm_list_regions();
-
- prepare_and_run_postcar(&early_mtrrs);
- /* We do not return here. */
}
/* This wrapper enables easy transition towards C_ENVIRONMENT_BOOTBLOCK,
@@ -257,7 +235,7 @@
romstage_handoff_init(prev_sleep_state == ACPI_S3);
}
-static void fill_postcar_frame(struct postcar_frame *pcf)
+void fill_postcar_frame(struct postcar_frame *pcf)
{
uintptr_t top_of_ram;
diff --git a/src/soc/intel/cannonlake/romstage/romstage.c b/src/soc/intel/cannonlake/romstage/romstage.c
index 94b9899..75cedc8 100644
--- a/src/soc/intel/cannonlake/romstage/romstage.c
+++ b/src/soc/intel/cannonlake/romstage/romstage.c
@@ -127,11 +127,9 @@
printk(BIOS_DEBUG, "%d DIMMs found\n", mem_info->dimm_cnt);
}
-asmlinkage void car_stage_entry(void)
+void mainboard_romstage_entry(void)
{
bool s3wake;
- struct postcar_frame pcf;
- uintptr_t top_of_ram;
struct chipset_power_state *ps = pmc_get_power_state();
console_init();
@@ -147,9 +145,11 @@
pmc_set_disb();
if (!s3wake)
save_dimm_info();
- if (postcar_frame_init(&pcf, 0))
- die("Unable to initialize postcar frame.\n");
+}
+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.
@@ -159,10 +159,5 @@
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 ROM as WP just below 4GiB. */
- postcar_frame_add_romcache(&pcf, MTRR_TYPE_WRPROT);
-
- run_postcar_phase(&pcf);
+ postcar_frame_add_mtrr(pcf, top_of_ram, 16*MiB, MTRR_TYPE_WRBACK);
}
diff --git a/src/soc/intel/denverton_ns/romstage.c b/src/soc/intel/denverton_ns/romstage.c
index 53c51f4..624ba46 100644
--- a/src/soc/intel/denverton_ns/romstage.c
+++ b/src/soc/intel/denverton_ns/romstage.c
@@ -136,14 +136,8 @@
outw(reg16, tco_base + TCO2_STS);
}
-asmlinkage void car_stage_entry(void)
+void mainboard_romstage_entry(void)
{
-
- struct postcar_frame pcf;
- uintptr_t top_of_ram;
- uintptr_t smm_base;
- size_t smm_size;
-
console_init();
printk(BIOS_DEBUG, "FSP TempRamInit was successful...\n");
@@ -157,9 +151,13 @@
#if CONFIG(DISPLAY_HOBS)
display_fsp_smbios_memory_info_hob();
#endif
+}
- if (postcar_frame_init(&pcf, 0))
- die("Unable to initialize postcar frame.\n");
+void fill_postcar_frame(struct postcar_frame *pcf)
+{
+ uintptr_t top_of_ram;
+ uintptr_t smm_base;
+ size_t smm_size;
/*
* We need to make sure ramstage will be run cached. At this point exact
@@ -167,12 +165,9 @@
* 16 megs under cbmem top which is a safe bet to cover ramstage.
*/
top_of_ram = (uintptr_t)cbmem_top();
- postcar_frame_add_mtrr(&pcf, top_of_ram - 16 * MiB, 16 * MiB,
+ postcar_frame_add_mtrr(pcf, top_of_ram - 16 * MiB, 16 * MiB,
MTRR_TYPE_WRBACK);
- /* Cache the memory-mapped boot media. */
- postcar_frame_add_romcache(&pcf, MTRR_TYPE_WRPROT);
-
/*
* Cache the TSEG region at the top of ram. This region is
* not restricted to SMM mode until SMM has been relocated.
@@ -180,12 +175,8 @@
* when relocating the SMM handler as well as using the TSEG
* region for other purposes.
*/
- if (CONFIG(HAVE_SMI_HANDLER)) {
- smm_region(&smm_base, &smm_size);
- postcar_frame_add_mtrr(&pcf, smm_base, smm_size, MTRR_TYPE_WRBACK);
- }
-
- run_postcar_phase(&pcf);
+ smm_region(&smm_base, &smm_size);
+ postcar_frame_add_mtrr(pcf, smm_base, smm_size, MTRR_TYPE_WRBACK);
}
static void soc_memory_init_params(FSP_M_CONFIG *m_cfg)
diff --git a/src/soc/intel/icelake/romstage/romstage.c b/src/soc/intel/icelake/romstage/romstage.c
index 65e65cc..0b6a75b 100644
--- a/src/soc/intel/icelake/romstage/romstage.c
+++ b/src/soc/intel/icelake/romstage/romstage.c
@@ -111,11 +111,10 @@
printk(BIOS_DEBUG, "%d DIMMs found\n", mem_info->dimm_cnt);
}
-asmlinkage void car_stage_entry(void)
+void mainboard_romstage_entry(void)
{
bool s3wake;
struct postcar_frame pcf;
- uintptr_t top_of_ram;
struct chipset_power_state *ps = pmc_get_power_state();
console_init();
@@ -131,9 +130,11 @@
pmc_set_disb();
if (!s3wake)
save_dimm_info();
- if (postcar_frame_init(&pcf, 0))
- die("Unable to initialize postcar frame.\n");
+}
+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.
@@ -143,10 +144,5 @@
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 ROM as WP just below 4GiB. */
- postcar_frame_add_romcache(&pcf, MTRR_TYPE_WRPROT);
-
- run_postcar_phase(&pcf);
+ postcar_frame_add_mtrr(pcf, top_of_ram, 16*MiB, MTRR_TYPE_WRBACK);
}
diff --git a/src/soc/intel/quark/romstage/fsp2_0.c b/src/soc/intel/quark/romstage/fsp2_0.c
index 20f2ad7..41830c7 100644
--- a/src/soc/intel/quark/romstage/fsp2_0.c
+++ b/src/soc/intel/quark/romstage/fsp2_0.c
@@ -27,12 +27,9 @@
#include <soc/reg_access.h>
#include <soc/storage_test.h>
-asmlinkage void car_stage_c_entry(void)
+void mainboard_romstage_entry(void)
{
- struct postcar_frame pcf;
bool s3wake;
- uintptr_t top_of_ram;
- uintptr_t top_of_low_usable_memory;
post_code(0x20);
console_init();
@@ -61,29 +58,31 @@
/* Initialize the PCIe bridges */
pcie_init();
+}
- if (postcar_frame_init(&pcf, 0))
- die("Unable to initialize postcar frame.\n");
+void fill_postcar_frame(struct postcar_frame *pcf)
+{
+ uintptr_t top_of_ram;
+ uintptr_t top_of_low_usable_memory;
/* Locate the top of RAM */
top_of_low_usable_memory = (uintptr_t) cbmem_top();
top_of_ram = ALIGN(top_of_low_usable_memory, 16 * MiB);
/* Cache postcar and ramstage */
- postcar_frame_add_mtrr(&pcf, top_of_ram - (16 * MiB), 16 * MiB,
+ postcar_frame_add_mtrr(pcf, top_of_ram - (16 * MiB), 16 * MiB,
MTRR_TYPE_WRBACK);
/* Cache RMU area */
- postcar_frame_add_mtrr(&pcf, (uintptr_t) top_of_low_usable_memory,
+ postcar_frame_add_mtrr(pcf, (uintptr_t) top_of_low_usable_memory,
0x10000, MTRR_TYPE_WRTHROUGH);
/* Cache ESRAM */
- postcar_frame_add_mtrr(&pcf, 0x80000000, 0x80000, MTRR_TYPE_WRBACK);
+ postcar_frame_add_mtrr(pcf, 0x80000000, 0x80000, MTRR_TYPE_WRBACK);
+ pcf->skip_common_mtrr = 1;
/* Cache SPI flash - Write protect not supported */
- postcar_frame_add_romcache(&pcf, MTRR_TYPE_WRTHROUGH);
-
- run_postcar_phase(&pcf);
+ postcar_frame_add_romcache(pcf, MTRR_TYPE_WRTHROUGH);
}
static struct chipset_power_state power_state;
diff --git a/src/soc/intel/skylake/romstage/romstage_fsp20.c b/src/soc/intel/skylake/romstage/romstage_fsp20.c
index 221c6c4..0c39d6a 100644
--- a/src/soc/intel/skylake/romstage/romstage_fsp20.c
+++ b/src/soc/intel/skylake/romstage/romstage_fsp20.c
@@ -139,11 +139,9 @@
printk(BIOS_DEBUG, "%d DIMMs found\n", mem_info->dimm_cnt);
}
-asmlinkage void car_stage_entry(void)
+void mainboard_romstage_entry(void)
{
bool s3wake;
- struct postcar_frame pcf;
- uintptr_t top_of_ram;
struct chipset_power_state *ps;
console_init();
@@ -158,8 +156,13 @@
pmc_set_disb();
if (!s3wake)
save_dimm_info();
- if (postcar_frame_init(&pcf, 0))
- die("Unable to initialize postcar frame.\n");
+}
+
+void fill_postcar_frame(struct postcar_frame *pcf)
+{
+ uintptr_t top_of_ram;
+ uintptr_t smm_base;
+ size_t smm_size;
/*
* We need to make sure ramstage will be run cached. At this
@@ -170,28 +173,17 @@
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);
+ postcar_frame_add_mtrr(pcf, top_of_ram, 16*MiB, MTRR_TYPE_WRBACK);
- if (CONFIG(HAVE_SMI_HANDLER)) {
- uintptr_t smm_base;
- size_t smm_size;
-
- /*
- * Cache the TSEG region at the top of ram. This region is
- * not restricted to SMM mode until SMM has been relocated.
- * By setting the region to cacheable it provides faster access
- * when relocating the SMM handler as well as using the TSEG
- * region for other purposes.
- */
- smm_region(&smm_base, &smm_size);
- postcar_frame_add_mtrr(&pcf, smm_base, smm_size,
- MTRR_TYPE_WRBACK);
- }
-
- /* Cache the ROM as WP just below 4GiB. */
- postcar_frame_add_romcache(&pcf, MTRR_TYPE_WRPROT);
-
- run_postcar_phase(&pcf);
+ /*
+ * Cache the TSEG region at the top of ram. This region is
+ * not restricted to SMM mode until SMM has been relocated.
+ * By setting the region to cacheable it provides faster access
+ * when relocating the SMM handler as well as using the TSEG
+ * region for other purposes.
+ */
+ smm_region(&smm_base, &smm_size);
+ postcar_frame_add_mtrr(pcf, smm_base, smm_size, MTRR_TYPE_WRBACK);
}
static void cpu_flex_override(FSP_M_CONFIG *m_cfg)
--
To view, visit https://review.coreboot.org/c/coreboot/+/34893
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: I4c5a9789e7cf3f7f49a4a33e21dac894320a9639
Gerrit-Change-Number: 34893
Gerrit-PatchSet: 1
Gerrit-Owner: Kyösti Mälkki <kyosti.malkki(a)gmail.com>
Gerrit-MessageType: newchange
Matt DeVillier has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/30564
Change subject: google/buddy: adjust CID for realtek audio codec
......................................................................
google/buddy: adjust CID for realtek audio codec
Adjust CID to allow for Windows driver to attach without breaking
functionality under Linux. Same change made as to google/cyan
(which uses same Realtek RT5650 codec) in commit 607d72b.
Test: build/boot Windowns 10 on google/buddy, observe audio
drivers correctly attached to codec and Intel SST devices.
Change-Id: I839acc8427ee9b5c425885858a513e9b0b9d0f93
Signed-off-by: Matt DeVillier <matt.devillier(a)gmail.com>
---
M src/mainboard/google/auron/variants/buddy/include/variant/acpi/mainboard.asl
1 file changed, 1 insertion(+), 1 deletion(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/64/30564/1
diff --git a/src/mainboard/google/auron/variants/buddy/include/variant/acpi/mainboard.asl b/src/mainboard/google/auron/variants/buddy/include/variant/acpi/mainboard.asl
index 788fbdc..f4ed69e 100644
--- a/src/mainboard/google/auron/variants/buddy/include/variant/acpi/mainboard.asl
+++ b/src/mainboard/google/auron/variants/buddy/include/variant/acpi/mainboard.asl
@@ -19,7 +19,7 @@
Device (RTEK)
{
Name (_HID, "10EC5650")
- Name (_CID, "10EC5650")
+ Name (_CID, "INTCCFFD")
Name (_DDN, "RTEK Codec Controller ")
Name (_UID, 1)
--
To view, visit https://review.coreboot.org/c/coreboot/+/30564
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: I839acc8427ee9b5c425885858a513e9b0b9d0f93
Gerrit-Change-Number: 30564
Gerrit-PatchSet: 1
Gerrit-Owner: Matt DeVillier <matt.devillier(a)gmail.com>
Gerrit-MessageType: newchange