Arthur Heymans has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/36255 )
Change subject: drivers/intel/fsp1_0: Fake microcode update to make FSP happy
......................................................................
drivers/intel/fsp1_0: Fake microcode update to make FSP happy
The FSP loops through microcode updates and at the end checks if
the microcode revision is not zero. Since we update the microcode
before loading FSP, this is the case and a fake microcode can be
passed to the FSP.
Change-Id: I63cfb7b19e9795da85566733fb4c1ff989e85d03
Signed-off-by: Arthur Heymans <arthur(a)aheymans.xyz>
---
M src/drivers/intel/fsp1_1/cache_as_ram.S
1 file changed, 24 insertions(+), 2 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/55/36255/1
diff --git a/src/drivers/intel/fsp1_1/cache_as_ram.S b/src/drivers/intel/fsp1_1/cache_as_ram.S
index 007b974..b7e21f7 100644
--- a/src/drivers/intel/fsp1_1/cache_as_ram.S
+++ b/src/drivers/intel/fsp1_1/cache_as_ram.S
@@ -235,17 +235,39 @@
* esp is set to this location so that the call into and return from the FSP
* in find_fsp will work.
*/
+
+/* Put something sensible in here */
+#define MCU_DATA_SIZE 0x10
+#define MCU_HEADER_SIZE 0x30
+#define MCU_TOTAL_SIZE (MCU_HEADER_SIZE + MCU_DATA_SIZE)
+
.align 4
fake_fsp_stack:
.long find_fsp_ret
.long CONFIG_FSP_LOC /* FSP base address */
CAR_init_params:
- .long CONFIG_CPU_MICROCODE_CBFS_LOC /* Microcode Location */
- .long CONFIG_CPU_MICROCODE_CBFS_LEN /* Microcode Length */
+ .long fake_microcode /* Microcode Location */
+ .long MCU_TOTAL_SIZE /* Microcode Length */
.long 0xFFFFFFFF - CONFIG_ROM_SIZE + 1 /* Firmware Location */
.long CONFIG_ROM_SIZE /* Firmware Length */
CAR_init_stack:
.long CAR_init_done
.long CAR_init_params
+
+fake_microcode:
+fake_microcode_header_start:
+ .long 1 /* Header Version */
+ .long 1 /* Microcode revision */
+ .long 0x10232019 /* Date: Time of writing 23-10-2019 */
+ .long 0x00010ff0 /* Sig: (non existing) Family: 0xf, Model: 0x1f, stepping: 0 */
+ .long 0 /* Checksum: not checked by FSP, so won't care */
+ .long 1 /* Loader Revision */
+ .long 1 /* Processor Flags */
+ .long MCU_DATA_SIZE /* Data Size */
+ .long MCU_TOTAL_SIZE /* Total Size */
+ .space 12 /* Reserved */
+fake_microcode_header_end:
+ .space MCU_DATA_SIZE
+fake_microcode_end:
--
To view, visit https://review.coreboot.org/c/coreboot/+/36255
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: I63cfb7b19e9795da85566733fb4c1ff989e85d03
Gerrit-Change-Number: 36255
Gerrit-PatchSet: 1
Gerrit-Owner: Arthur Heymans <arthur(a)aheymans.xyz>
Gerrit-MessageType: newchange
Arthur Heymans has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/36369 )
Change subject: lib/cbmem: Remove the cbmem_top_init() hook
......................................................................
lib/cbmem: Remove the cbmem_top_init() hook
This hook is unused and with the need for initializing storage to
share cbmem_top over other stages gone, there is likely no future
need for this.
Change-Id: I4ba9daea61b6d7b8949bbd2c4fb71d0a0fa20d93
Signed-off-by: Arthur Heymans <arthur(a)aheymans.xyz>
---
M src/include/cbmem.h
M src/lib/imd_cbmem.c
2 files changed, 0 insertions(+), 11 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/69/36369/1
diff --git a/src/include/cbmem.h b/src/include/cbmem.h
index c029108..0df8686 100644
--- a/src/include/cbmem.h
+++ b/src/include/cbmem.h
@@ -63,11 +63,6 @@
void cbmem_initialize_empty(void);
void cbmem_initialize_empty_id_size(u32 id, u64 size);
-/* Optional hook for platforms to initialize cbmem_top() value. When employed
- * it's called a single time during boot at cbmem initialization/recovery
- * time. */
-void cbmem_top_init(void);
-
/* Return the top address for dynamic cbmem. The address returned needs to
* be consistent across romstage and ramstage, and it is required to be
* below 4GiB for 32bit coreboot builds. On 64bit coreboot builds there's no
diff --git a/src/lib/imd_cbmem.c b/src/lib/imd_cbmem.c
index f04e086..d175d89 100644
--- a/src/lib/imd_cbmem.c
+++ b/src/lib/imd_cbmem.c
@@ -108,10 +108,6 @@
cbmem_initialize_empty_id_size(0, 0);
}
-void __weak cbmem_top_init(void)
-{
-}
-
static void cbmem_top_init_once(void)
{
/* Call one-time hook on expected cbmem init during boot. This sequence
@@ -119,8 +115,6 @@
if (!ENV_ROMSTAGE)
return;
- cbmem_top_init();
-
/* The test is only effective on X86 and when address hits UC memory. */
if (ENV_X86)
quick_ram_check_or_die((uintptr_t)cbmem_top() - sizeof(u32));
--
To view, visit https://review.coreboot.org/c/coreboot/+/36369
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: I4ba9daea61b6d7b8949bbd2c4fb71d0a0fa20d93
Gerrit-Change-Number: 36369
Gerrit-PatchSet: 1
Gerrit-Owner: Arthur Heymans <arthur(a)aheymans.xyz>
Gerrit-MessageType: newchange