mb/google/hatch/var/helios: Implement variant_memory_sku()
This change provides an implementation of variant_memory_sku() for helios that overrides memory ID 3 and 4 to 0 and 1 to workaround the incorrect memory straps in hardware for board id 0 and unknown. BUG=b:133455595 Change-Id: I38fab1f91decac5d0a146e5a6c74e88f677af305 Signed-off-by: Furquan Shaikh <furquan@google.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/34252 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Paul Fagerburg <pfagerburg@chromium.org>
This commit is contained in:
parent
463fca4362
commit
73d560a71a
|
@ -15,8 +15,11 @@
|
|||
|
||||
#include <baseboard/variants.h>
|
||||
#include <baseboard/gpio.h>
|
||||
#include <boardid.h>
|
||||
#include <gpio.h>
|
||||
#include <soc/cnl_memcfg_init.h>
|
||||
#include <string.h>
|
||||
#include <variant/gpio.h>
|
||||
|
||||
static const struct cnl_mb_cfg baseboard_memcfg = {
|
||||
/*
|
||||
|
@ -66,3 +69,34 @@ void variant_memory_params(struct cnl_mb_cfg *bcfg)
|
|||
{
|
||||
memcpy(bcfg, &baseboard_memcfg, sizeof(baseboard_memcfg));
|
||||
}
|
||||
|
||||
int variant_memory_sku(void)
|
||||
{
|
||||
const gpio_t spd_gpios[] = {
|
||||
GPIO_MEM_CONFIG_0,
|
||||
GPIO_MEM_CONFIG_1,
|
||||
GPIO_MEM_CONFIG_2,
|
||||
GPIO_MEM_CONFIG_3,
|
||||
};
|
||||
|
||||
int val = gpio_base2_value(spd_gpios, ARRAY_SIZE(spd_gpios));
|
||||
|
||||
if ((board_id() != 0) && (board_id() != BOARD_ID_UNKNOWN))
|
||||
return val;
|
||||
|
||||
/*
|
||||
* For boards with id 0 or unknown, memory straps 3 and 4 are
|
||||
* incorrectly stuffed in hardware. This is a workaround for these
|
||||
* boards to override memory strap 3 to 0 and 4 to 1.
|
||||
*/
|
||||
switch (val) {
|
||||
case 3:
|
||||
val = 0;
|
||||
break;
|
||||
case 4:
|
||||
val = 1;
|
||||
break;
|
||||
}
|
||||
|
||||
return val;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue