mb/prodrive/hermes: Generalise `check_signature` function
Allow to specify which signature is to be checked. Change-Id: Ica874b1c4283fdb8dbd702c34ccb3315a2cf160d Signed-off-by: Angel Pons <th3fanbus@gmail.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/48147 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Patrick Georgi <pgeorgi@google.com>
This commit is contained in:
parent
36854a831e
commit
f9f129a5dc
|
@ -9,13 +9,13 @@
|
||||||
* Check Signature in EEPROM (M24C32-FMN6TP)
|
* Check Signature in EEPROM (M24C32-FMN6TP)
|
||||||
* If signature is there we assume that that the content is valid
|
* If signature is there we assume that that the content is valid
|
||||||
*/
|
*/
|
||||||
int check_signature(u8 addr)
|
int check_signature(u8 addr, const size_t offset, const uint64_t signature)
|
||||||
{
|
{
|
||||||
u8 blob[8] = {0};
|
u8 blob[8] = {0};
|
||||||
|
|
||||||
if (!read_write_config(addr, blob, EEPROM_OFFSET_FSP_SIGNATURE, 0, ARRAY_SIZE(blob))) {
|
if (!read_write_config(addr, blob, offset, 0, ARRAY_SIZE(blob))) {
|
||||||
/* Check signature */
|
/* Check signature */
|
||||||
if (*(uint64_t *)blob == FSP_UPD_SIGNATURE) {
|
if (*(uint64_t *)blob == signature) {
|
||||||
printk(BIOS_DEBUG, "CFG EEPROM: Signature valid.\n");
|
printk(BIOS_DEBUG, "CFG EEPROM: Signature valid.\n");
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,7 +17,7 @@ void mainboard_silicon_init_params(FSP_S_CONFIG *params)
|
||||||
params->SataLedEnable = 1;
|
params->SataLedEnable = 1;
|
||||||
|
|
||||||
/* Overwrite params */
|
/* Overwrite params */
|
||||||
if (!check_signature(I2C_ADDR_EEPROM))
|
if (!check_signature(I2C_ADDR_EEPROM, EEPROM_OFFSET_FSP_SIGNATURE, FSP_UPD_SIGNATURE))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
for (u8 i = 0; i <= ARRAY_SIZE(parmas_list); i++) {
|
for (u8 i = 0; i <= ARRAY_SIZE(parmas_list); i++) {
|
||||||
|
|
|
@ -19,7 +19,7 @@ void mainboard_memory_init_params(FSPM_UPD *memupd)
|
||||||
cannonlake_memcfg_init(&memupd->FspmConfig, variant_memcfg_config());
|
cannonlake_memcfg_init(&memupd->FspmConfig, variant_memcfg_config());
|
||||||
|
|
||||||
/* Overwrite memupd */
|
/* Overwrite memupd */
|
||||||
if (!check_signature(I2C_ADDR_EEPROM))
|
if (!check_signature(I2C_ADDR_EEPROM, EEPROM_OFFSET_FSP_SIGNATURE, FSP_UPD_SIGNATURE))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
for (size_t i = 0; i < ARRAY_SIZE(parmas_list); i++) {
|
for (size_t i = 0; i < ARRAY_SIZE(parmas_list); i++) {
|
||||||
|
|
|
@ -30,4 +30,4 @@ typedef struct {
|
||||||
|
|
||||||
bool read_write_config(u8 addr, void *blob, size_t read_offset, size_t write_offset,
|
bool read_write_config(u8 addr, void *blob, size_t read_offset, size_t write_offset,
|
||||||
size_t size);
|
size_t size);
|
||||||
int check_signature(u8 addr);
|
int check_signature(u8 addr, const size_t offset, const uint64_t signature);
|
||||||
|
|
Loading…
Reference in New Issue