Wim Vervoorn has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/36506 )
Change subject: mb/facebook/fbg1701: Add logo to the menu
......................................................................
mb/facebook/fbg1701: Add logo to the menu
Allow the user to enable and disable the logo from
make menuconfig. The file can ve selected as well.
BUG=N/A
TEST=build
Change-Id: I630a9d14308131c180adaaa9e1fa5e6e11c3c61c
Signed-off-by: Wim Vervoorn <wvervoorn(a)eltan.com>
---
M src/mainboard/facebook/fbg1701/Kconfig
1 file changed, 6 insertions(+), 1 deletion(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/06/36506/1
diff --git a/src/mainboard/facebook/fbg1701/Kconfig b/src/mainboard/facebook/fbg1701/Kconfig
index a6c2846..3ade727 100644
--- a/src/mainboard/facebook/fbg1701/Kconfig
+++ b/src/mainboard/facebook/fbg1701/Kconfig
@@ -69,9 +69,14 @@
default 0xfff9c000
config FSP1_1_DISPLAY_LOGO
- bool
+ bool "Enable logo"
default n
+config FSP1_1_LOGO_FILE_NAME
+ string "Logo file"
+ depends on FSP1_1_DISPLAY_LOGO
+ default "3rdparty/blobs/mainboard/$(MAINBOARDDIR)/logo.bmp"
+
config VENDORCODE_ELTAN_OEM_MANIFEST_LOC
hex
default 0xFFFE9000
--
To view, visit https://review.coreboot.org/c/coreboot/+/36506
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: I630a9d14308131c180adaaa9e1fa5e6e11c3c61c
Gerrit-Change-Number: 36506
Gerrit-PatchSet: 1
Gerrit-Owner: Wim Vervoorn
Gerrit-Reviewer: Frans Hendriks <fhendriks(a)eltan.com>
Gerrit-Reviewer: Wim Vervoorn
Gerrit-MessageType: newchange
Wim Vervoorn has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/36479 )
Change subject: vendorcode/eltan: cleanup of Kconfig files
......................................................................
vendorcode/eltan: cleanup of Kconfig files
The vendorcode/eltan and vendorcode/eltan/security directories
were both adding the mboot and verified_boot Kconfigs.
BUG=N/A
TEST=build
Change-Id: I6b5f19b4660d60345391b7320ce42466fd2cc769
Signed-off-by: Wim Vervoorn <wvervoorn(a)eltan.com>
---
M src/vendorcode/eltan/Kconfig
M src/vendorcode/eltan/security/Kconfig
2 files changed, 5 insertions(+), 4 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/79/36479/1
diff --git a/src/vendorcode/eltan/Kconfig b/src/vendorcode/eltan/Kconfig
index dc756ab..319e90a 100644
--- a/src/vendorcode/eltan/Kconfig
+++ b/src/vendorcode/eltan/Kconfig
@@ -1,7 +1,7 @@
##
## This file is part of the coreboot project.
##
-## Copyright (C) 2014-2018 Eltan B.V.
+## Copyright (C) 2014-2019 Eltan B.V.
##
## 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
@@ -17,6 +17,5 @@
bool
if USE_VENDORCODE_ELTAN
-source src/vendorcode/eltan/security/mboot/Kconfig
-source src/vendorcode/eltan/security/verified_boot/Kconfig
+source src/vendorcode/eltan/security/Kconfig
endif
diff --git a/src/vendorcode/eltan/security/Kconfig b/src/vendorcode/eltan/security/Kconfig
index 2af5808..6b93d2a 100644
--- a/src/vendorcode/eltan/security/Kconfig
+++ b/src/vendorcode/eltan/security/Kconfig
@@ -1,6 +1,6 @@
## This file is part of the coreboot project.
##
-## Copyright (C) 2018 Eltan B.V.
+## Copyright (C) 2018-2019 Eltan B.V.
##
## 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
@@ -12,5 +12,7 @@
## GNU General Public License for more details.
##
+menu "Eltan Security Settings"
source src/vendorcode/eltan/security/mboot/Kconfig
source src/vendorcode/eltan/security/verified_boot/Kconfig
+endmenu
--
To view, visit https://review.coreboot.org/c/coreboot/+/36479
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: I6b5f19b4660d60345391b7320ce42466fd2cc769
Gerrit-Change-Number: 36479
Gerrit-PatchSet: 1
Gerrit-Owner: Wim Vervoorn
Gerrit-MessageType: newchange
Arthur Heymans has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/36144 )
Change subject: [RFC,POF] pass cbmem_top via the stack to ramstage
......................................................................
[RFC,POF] pass cbmem_top via the stack to ramstage
Currently all stages that need cbmem need an implementation of a
cbmem_top function. On FSP and AGESA platforms this proves to be
painful and using the top of lower memory if often passed via lower
memory or via a PCI scratchpad register.
The problem with writing to lower memory is that also need to be
written on S3 as one cannot assume it to be still there. Writing
things on S3 is always a fragile thing to do.
A very generic solution is to pass cbmem_top via the program argument.
It should be possible to implement this solution on every
architecture.
TODO this can be done on all arch
TESTED on qemu-x86.
Change-Id: I6d5a366d6f1bc76f26d459628237e6b2c8ae03ea
Signed-off-by: Arthur Heymans <arthur(a)aheymans.xyz>
---
M src/arch/x86/c_start.S
M src/arch/x86/cbmem.c
M src/lib/prog_loaders.c
M src/mainboard/emulation/qemu-i440fx/memmap.c
M src/northbridge/intel/i945/memmap.c
5 files changed, 28 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/44/36144/1
diff --git a/src/arch/x86/c_start.S b/src/arch/x86/c_start.S
index 32b848d..6177773 100644
--- a/src/arch/x86/c_start.S
+++ b/src/arch/x86/c_start.S
@@ -18,6 +18,7 @@
.section .bss, "aw", @nobits
.global _stack
.global _estack
+.global _cbmem_top_ptr
/* Stack alignment is not enforced with rmodule loader, reserve one
* extra CPU such that alignment can be enforced on entry. */
@@ -30,6 +31,8 @@
thread_stacks:
.space CONFIG_STACK_SIZE*CONFIG_NUM_THREADS
#endif
+_cbmem_top_ptr:
+ .long 0
.section ".text._start", "ax", @progbits
#ifdef __x86_64__
@@ -59,6 +62,9 @@
cld
+ pop %eax
+ movl %eax, _cbmem_top_ptr
+
/** poison the stack. Code should not count on the
* stack being full of zeros. This stack poisoning
* recently uncovered a bug in the broadcast SIPI
diff --git a/src/arch/x86/cbmem.c b/src/arch/x86/cbmem.c
index 16c35b5..6b1581c 100644
--- a/src/arch/x86/cbmem.c
+++ b/src/arch/x86/cbmem.c
@@ -13,6 +13,7 @@
#include <stdlib.h>
#include <cbmem.h>
+#include <console/console.h>
#if CONFIG(CBMEM_TOP_BACKUP)
@@ -34,3 +35,13 @@
}
#endif /* CBMEM_TOP_BACKUP */
+
+extern const uintptr_t _cbmem_top_ptr;
+
+#if ENV_RAMSTAGE
+void *cbmem_top(void)
+{
+ printk(BIOS_DEBUG, "_cbmem_top_ptr: 0x%08x\n", (u32)_cbmem_top_ptr);
+ return (void *)_cbmem_top_ptr;
+}
+#endif
diff --git a/src/lib/prog_loaders.c b/src/lib/prog_loaders.c
index 2ef6bdf..a806f41 100644
--- a/src/lib/prog_loaders.c
+++ b/src/lib/prog_loaders.c
@@ -142,6 +142,10 @@
timestamp_add_now(TS_END_COPYRAM);
+ ramstage.arg = cbmem_top();
+
+ printk(BIOS_DEBUG, "ramstage arg: 0x%08x\n", (u32)ramstage.arg);
+
prog_run(&ramstage);
fail:
diff --git a/src/mainboard/emulation/qemu-i440fx/memmap.c b/src/mainboard/emulation/qemu-i440fx/memmap.c
index 8209379..5ec6a9f 100644
--- a/src/mainboard/emulation/qemu-i440fx/memmap.c
+++ b/src/mainboard/emulation/qemu-i440fx/memmap.c
@@ -16,6 +16,7 @@
#include <cbmem.h>
#include <arch/io.h>
#include <arch/romstage.h>
+#include <console/console.h>
#include "memory.h"
#include "fw_cfg.h"
@@ -52,6 +53,7 @@
return tomk;
}
+#if !ENV_RAMSTAGE
void *cbmem_top(void)
{
uintptr_t top = 0;
@@ -60,8 +62,10 @@
if (!top)
top = (uintptr_t)qemu_get_memory_size() * 1024;
+ printk(BIOS_DEBUG, "cbmem_top(): 0x%08x\n", (u32)top);
return (void *)top;
}
+#endif
/* Nothing to do, MTRRs are no-op on QEMU. */
void fill_postcar_frame(struct postcar_frame *pcf)
diff --git a/src/northbridge/intel/i945/memmap.c b/src/northbridge/intel/i945/memmap.c
index 8207d06..c7e5d39 100644
--- a/src/northbridge/intel/i945/memmap.c
+++ b/src/northbridge/intel/i945/memmap.c
@@ -71,11 +71,14 @@
* 1 MiB alignment. As this may cause very greedy MTRR setup, push
* CBMEM top downwards to 4 MiB boundary.
*/
+
+#if !ENV_RAMSTAGE
void *cbmem_top(void)
{
uintptr_t top_of_ram = ALIGN_DOWN(northbridge_get_tseg_base(), 4*MiB);
return (void *) top_of_ram;
}
+#endif
/** Decodes used Graphics Mode Select (GMS) to kilobytes. */
u32 decode_igd_memory_size(const u32 gms)
--
To view, visit https://review.coreboot.org/c/coreboot/+/36144
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: I6d5a366d6f1bc76f26d459628237e6b2c8ae03ea
Gerrit-Change-Number: 36144
Gerrit-PatchSet: 1
Gerrit-Owner: Arthur Heymans <arthur(a)aheymans.xyz>
Gerrit-Reviewer: Arthur Heymans <arthur(a)aheymans.xyz>
Gerrit-Reviewer: Patrick Rudolph <siro(a)das-labor.org>
Gerrit-MessageType: newchange
Arthur Heymans has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/35993 )
Change subject: cpu/x86: Add a prog_run hook to set up caching of XIP stages
......................................................................
cpu/x86: Add a prog_run hook to set up caching of XIP stages
Some platforms lack a non-eviction mode and therefore caching the
whole ROM to speed up XIP stages can be dangerous as it could result
in eviction if too much of the ROM is being accessed. The solution is
to only cache a region, about the size of the stage that the bootblock
is about to load: verstage and/or romstage.
CR0.CD bits are not touched to do this, but this seems to work just
fine on at least model_1067x and model_6ex.
Change-Id: I94d5771a57ffd74d53db3e35fe169d77d7fbb8cd
Signed-off-by: Arthur Heymans <arthur(a)aheymans.xyz>
---
M src/cpu/x86/Kconfig
M src/cpu/x86/mtrr/Makefile.inc
A src/cpu/x86/mtrr/xip_cache.c
3 files changed, 73 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/93/35993/1
diff --git a/src/cpu/x86/Kconfig b/src/cpu/x86/Kconfig
index a8cf54d..b316c1f 100644
--- a/src/cpu/x86/Kconfig
+++ b/src/cpu/x86/Kconfig
@@ -78,6 +78,16 @@
depends on !NO_FIXED_XIP_ROM_SIZE
default 0x10000
+config SETUP_XIP_CACHE
+ bool
+ depends on C_ENVIRONMENT_BOOTBLOCK
+ depends on !NO_XIP_EARLY_STAGES
+ help
+ Select this option to set up an MTRR to cache XIP stages loaded
+ from the bootblock. This is useful on platforms lacking a
+ non-eviction mode and therefore need to be careful to avoid
+ eviction.
+
config CPU_ADDR_BITS
int
default 36
diff --git a/src/cpu/x86/mtrr/Makefile.inc b/src/cpu/x86/mtrr/Makefile.inc
index caa6e9c..dc914de 100644
--- a/src/cpu/x86/mtrr/Makefile.inc
+++ b/src/cpu/x86/mtrr/Makefile.inc
@@ -7,3 +7,5 @@
romstage-y += debug.c
postcar-y += debug.c
ramstage-y += debug.c
+
+bootblock-$(CONFIG_SETUP_XIP_CACHE) += xip_cache.c
diff --git a/src/cpu/x86/mtrr/xip_cache.c b/src/cpu/x86/mtrr/xip_cache.c
new file mode 100644
index 0000000..a45944b
--- /dev/null
+++ b/src/cpu/x86/mtrr/xip_cache.c
@@ -0,0 +1,61 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * 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/cpu.h>
+#include <program_loading.h>
+#include <commonlib/region.h>
+#include <console/console.h>
+#include <cpu/x86/mtrr.h>
+
+#define MAX_ROM_CACHE_SIZE (256 * KiB)
+
+void platform_prog_run(struct prog *prog)
+{
+ uint32_t base = region_device_offset(&prog->rdev);
+ uint32_t size = region_device_sz(&prog->rdev);
+ uint32_t end = base + size;
+ int mtrr_num = get_free_var_mtrr();
+ uint32_t mtrr_mask_size = 4 * KiB;
+ struct cpuinfo_x86 cpu_info;
+
+ get_fms(&cpu_info, cpuid_eax(1));
+ if (cpu_info.x86 == 0xf) {
+ printk(BIOS_DEBUG,
+ "PROG_RUN: CPU does not support caching ROM\n"
+ "The next stage will run slowly\n");
+ return;
+ }
+
+ if (mtrr_num == -1) {
+ printk(BIOS_NOTICE,
+ "PROG_RUN: No MTRR available to cache ROM!\n"
+ "The next stage will run slowly!\n");
+ return;
+ }
+
+ while (ALIGN_DOWN(base, mtrr_mask_size) + mtrr_mask_size < end)
+ mtrr_mask_size *= 2;
+ base = ALIGN_DOWN(base, mtrr_mask_size);
+ if (mtrr_mask_size > MAX_ROM_CACHE_SIZE) {
+ printk(BIOS_WARNING,
+ "PROG_RUN: %dKiB XIP cache requested but limiting to %dKiB!",
+ mtrr_mask_size, MAX_ROM_CACHE_SIZE);
+ mtrr_mask_size = MAX_ROM_CACHE_SIZE;
+ }
+
+ printk(BIOS_DEBUG,
+ "PROG_RUN: Setting MTRR to cache XIP stage. base: 0x%08x, size: 0x%08x\n",
+ base, mtrr_mask_size);
+
+ set_var_mtrr(mtrr_num, base, mtrr_mask_size, MTRR_TYPE_WRPROT);
+}
--
To view, visit https://review.coreboot.org/c/coreboot/+/35993
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: I94d5771a57ffd74d53db3e35fe169d77d7fbb8cd
Gerrit-Change-Number: 35993
Gerrit-PatchSet: 1
Gerrit-Owner: Arthur Heymans <arthur(a)aheymans.xyz>
Gerrit-Reviewer: Arthur Heymans <arthur(a)aheymans.xyz>
Gerrit-Reviewer: Martin Roth <martinroth(a)google.com>
Gerrit-Reviewer: Patrick Georgi <pgeorgi(a)google.com>
Gerrit-MessageType: newchange
Michael Niewöhner has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/36350 )
Change subject: soc/intel/skylake: set FSP param to enable or skip GOP
......................................................................
soc/intel/skylake: set FSP param to enable or skip GOP
Set the FSP parameter PeiGraphicsPeimInit according to RUN_FSP_GOP to
enable or skip GOP.
Change-Id: I5731003c8a094c4d108efbea14d31d335758bbb7
Signed-off-by: Michael Niewöhner <foss(a)mniewoehner.de>
---
M src/soc/intel/skylake/chip_fsp20.c
1 file changed, 7 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/50/36350/1
diff --git a/src/soc/intel/skylake/chip_fsp20.c b/src/soc/intel/skylake/chip_fsp20.c
index 55fedd3..feb1339 100644
--- a/src/soc/intel/skylake/chip_fsp20.c
+++ b/src/soc/intel/skylake/chip_fsp20.c
@@ -501,6 +501,13 @@
params->PchIoApicFunctionNumber = V_P2SB_IBDF_FUN;
}
+ /* Only initialize graphics if supported and enabled */
+ dev = pcidev_path_on_root(SA_DEVFN_IGD);
+ if (CONFIG(RUN_FSP_GOP) && dev && dev->enabled)
+ params->PeiGraphicsPeimInit = 1;
+ else
+ params->PeiGraphicsPeimInit = 0;
+
soc_irq_settings(params);
}
--
To view, visit https://review.coreboot.org/c/coreboot/+/36350
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: I5731003c8a094c4d108efbea14d31d335758bbb7
Gerrit-Change-Number: 36350
Gerrit-PatchSet: 1
Gerrit-Owner: Michael Niewöhner
Gerrit-Reviewer: Michael Niewöhner
Gerrit-Reviewer: Patrick Rudolph <siro(a)das-labor.org>
Gerrit-MessageType: newchange
Michael Niewöhner has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/36355 )
Change subject: soc/intel/skylake: set LT_LOCK_MEMORY at end of POST
......................................................................
soc/intel/skylake: set LT_LOCK_MEMORY at end of POST
Use the new common function to set LT_LOCK_MEMORY at end of POST to
protect SMM in accordance to Intel BWG.
Change-Id: I623e20a34667e4df313aeab49bb57907ec75f8a8
Signed-off-by: Michael Niewöhner <foss(a)mniewoehner.de>
---
M src/soc/intel/skylake/finalize.c
1 file changed, 4 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/55/36355/1
diff --git a/src/soc/intel/skylake/finalize.c b/src/soc/intel/skylake/finalize.c
index 4cc9c83..58a8701 100644
--- a/src/soc/intel/skylake/finalize.c
+++ b/src/soc/intel/skylake/finalize.c
@@ -20,6 +20,7 @@
#include <bootstate.h>
#include <console/console.h>
#include <console/post_codes.h>
+#include <cpu/x86/mp.h>
#include <cpu/x86/smm.h>
#include <device/pci.h>
#include <intelblocks/cpulib.h>
@@ -123,6 +124,9 @@
reg8 |= SMI_LOCK;
pci_write_config8(dev, GEN_PMCON_A, reg8);
}
+
+ /* Lock chipset memory registers to protect SMM */
+ mp_run_on_all_cpus(cpu_lt_lock_memory, NULL);
}
static void soc_finalize(void *unused)
--
To view, visit https://review.coreboot.org/c/coreboot/+/36355
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: I623e20a34667e4df313aeab49bb57907ec75f8a8
Gerrit-Change-Number: 36355
Gerrit-PatchSet: 1
Gerrit-Owner: Michael Niewöhner
Gerrit-Reviewer: Michael Niewöhner
Gerrit-Reviewer: Patrick Rudolph <siro(a)das-labor.org>
Gerrit-MessageType: newchange