mb/lenovo/sklkbl: refactor memory_init_params to use gpio_base2_value()
Cosmetic fix validated on a Thinkpad T470s. Change-Id: I7e2032a665933cb7e002a7202bcd4305dfcdbed4 Signed-off-by: Johann C. Rode <jcrode@gmx.net> Reviewed-on: https://review.coreboot.org/c/coreboot/+/89864 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Matt DeVillier <matt.devillier@gmail.com> Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
This commit is contained in:
parent
2a9deabc35
commit
d4bee96484
3 changed files with 37 additions and 9 deletions
|
|
@ -5,6 +5,8 @@
|
|||
|
||||
void variant_config_gpios(void);
|
||||
|
||||
int variant_memory_sku(void);
|
||||
|
||||
void ssdt_add_dgpu(const struct device *dev);
|
||||
|
||||
void dgpu_detect(void);
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@
|
|||
#include <soc/romstage.h>
|
||||
#include <spd_bin.h>
|
||||
#include <stdio.h>
|
||||
#include "../../variant.h"
|
||||
|
||||
static const struct pad_config memory_id_gpio_table[] = {
|
||||
PAD_CFG_GPI_TRIG_OWN(GPP_F16, UP_20K, DEEP, OFF, ACPI), /* MEMORYID0 */
|
||||
|
|
@ -15,6 +16,19 @@ static const struct pad_config memory_id_gpio_table[] = {
|
|||
PAD_CFG_GPI_TRIG_OWN(GPP_F20, UP_20K, DEEP, OFF, ACPI), /* MEMORYID4 */
|
||||
};
|
||||
|
||||
int variant_memory_sku(void)
|
||||
{
|
||||
gpio_t spd_gpios[] = {
|
||||
GPP_F16,
|
||||
GPP_F17,
|
||||
GPP_F18,
|
||||
GPP_F19,
|
||||
GPP_F20,
|
||||
};
|
||||
|
||||
return gpio_base2_value(spd_gpios, ARRAY_SIZE(spd_gpios));
|
||||
}
|
||||
|
||||
void mainboard_memory_init_params(FSPM_UPD *mupd)
|
||||
{
|
||||
int spd_idx;
|
||||
|
|
@ -29,8 +43,7 @@ void mainboard_memory_init_params(FSPM_UPD *mupd)
|
|||
/* Get SPD for soldered RAM SPD (CH A) */
|
||||
gpio_configure_pads(memory_id_gpio_table, ARRAY_SIZE(memory_id_gpio_table));
|
||||
|
||||
spd_idx = gpio_get(GPP_F16) | gpio_get(GPP_F17) << 1 | gpio_get(GPP_F18) << 2 |
|
||||
gpio_get(GPP_F19) << 3 | gpio_get(GPP_F20) << 4;
|
||||
spd_idx = variant_memory_sku();
|
||||
printk(BIOS_DEBUG, "Detected MEMORY_ID = %d\n", spd_idx);
|
||||
snprintf(spd_name, sizeof(spd_name), "spd_%d.bin", spd_idx);
|
||||
mem_cfg->MemorySpdPtr00 = (uintptr_t)cbfs_map(spd_name, &spd_size);
|
||||
|
|
|
|||
|
|
@ -6,15 +6,29 @@
|
|||
#include <soc/romstage.h>
|
||||
#include <spd_bin.h>
|
||||
#include <stdio.h>
|
||||
#include "../../variant.h"
|
||||
|
||||
static const struct pad_config memory_id_gpio_table[] = {
|
||||
PAD_CFG_GPI_TRIG_OWN(GPP_F16, UP_20K, DEEP, OFF, ACPI), /* MEMORYID0 */
|
||||
PAD_CFG_GPI_TRIG_OWN(GPP_F17, UP_20K, DEEP, OFF, ACPI), /* MEMORYID1 */
|
||||
PAD_CFG_GPI_TRIG_OWN(GPP_F18, UP_20K, DEEP, OFF, ACPI), /* MEMORYID2 */
|
||||
PAD_CFG_GPI_TRIG_OWN(GPP_F19, UP_20K, DEEP, OFF, ACPI), /* MEMORYID3 */
|
||||
PAD_CFG_GPI_TRIG_OWN(GPP_F20, UP_20K, DEEP, OFF, ACPI), /* MEMORYID4 */
|
||||
PAD_CFG_GPI_TRIG_OWN(GPP_F16, UP_20K, DEEP, OFF, ACPI), /* MEMORYID0 */
|
||||
PAD_CFG_GPI_TRIG_OWN(GPP_F17, UP_20K, DEEP, OFF, ACPI), /* MEMORYID1 */
|
||||
PAD_CFG_GPI_TRIG_OWN(GPP_F18, UP_20K, DEEP, OFF, ACPI), /* MEMORYID2 */
|
||||
PAD_CFG_GPI_TRIG_OWN(GPP_F19, UP_20K, DEEP, OFF, ACPI), /* MEMORYID3 */
|
||||
PAD_CFG_GPI_TRIG_OWN(GPP_F20, UP_20K, DEEP, OFF, ACPI), /* MEMORYID4 */
|
||||
};
|
||||
|
||||
int variant_memory_sku(void)
|
||||
{
|
||||
gpio_t spd_gpios[] = {
|
||||
GPP_F16,
|
||||
GPP_F17,
|
||||
GPP_F18,
|
||||
GPP_F19,
|
||||
GPP_F20,
|
||||
};
|
||||
|
||||
return gpio_base2_value(spd_gpios, ARRAY_SIZE(spd_gpios));
|
||||
}
|
||||
|
||||
void mainboard_memory_init_params(FSPM_UPD *mupd)
|
||||
{
|
||||
int spd_idx;
|
||||
|
|
@ -29,8 +43,7 @@ void mainboard_memory_init_params(FSPM_UPD *mupd)
|
|||
/* Get SPD for soldered RAM SPD (CH A) */
|
||||
gpio_configure_pads(memory_id_gpio_table, ARRAY_SIZE(memory_id_gpio_table));
|
||||
|
||||
spd_idx = gpio_get(GPP_F16) | gpio_get(GPP_F17) << 1 | gpio_get(GPP_F18) << 2 |
|
||||
gpio_get(GPP_F19) << 3 | gpio_get(GPP_F20) << 4;
|
||||
spd_idx = variant_memory_sku();
|
||||
printk(BIOS_DEBUG, "Detected MEMORY_ID = %d\n", spd_idx);
|
||||
snprintf(spd_name, sizeof(spd_name), "spd_%d.bin", spd_idx);
|
||||
mem_cfg->MemorySpdPtr00 = (uintptr_t)cbfs_map(spd_name, &spd_size);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue