mb/google/brya/brya0: Manually probe fw_config for DB_LTE
In order to use the USB WWAN module in USB mode (as opposed to PCIe), the PCIe RP must be turned off at the FSP level. The `probe` statement in the devicetree unfortunately takes effect too late, because the UPDs for disabling/enabling PCIE RP belong to FSP-M (romstage), whereas fw_config probing for devicetree is done in ramstage. Add a new variant-specific file which will handle manually setting the UPD based on FW_CONFIG instead. BUG=b:180166408 TEST=set CBI FW_CONFIG field to LTE_USB, see message in console, set field to LTE_PCIE, do not see message in console. Change-Id: Ica2f64ec99fa547e233012dc201577a14f6aa7d7 Signed-off-by: Tim Wawrzynczak <twawrzynczak@chromium.org> Reviewed-on: https://review.coreboot.org/c/coreboot/+/54633 Reviewed-by: EricR Lai <ericr_lai@compal.corp-partner.google.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
parent
8bb83a3456
commit
2f8a7046bb
|
@ -17,4 +17,6 @@ void mainboard_memory_init_params(FSPM_UPD *memupd)
|
||||||
};
|
};
|
||||||
|
|
||||||
memcfg_init(&memupd->FspmConfig, mem_config, &spd_info, half_populated);
|
memcfg_init(&memupd->FspmConfig, mem_config, &spd_info, half_populated);
|
||||||
|
|
||||||
|
variant_update_fspm_upds(memupd);
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
#ifndef __BASEBOARD_VARIANTS_H__
|
#ifndef __BASEBOARD_VARIANTS_H__
|
||||||
#define __BASEBOARD_VARIANTS_H__
|
#define __BASEBOARD_VARIANTS_H__
|
||||||
|
|
||||||
|
#include <fsp/api.h>
|
||||||
#include <soc/gpio.h>
|
#include <soc/gpio.h>
|
||||||
#include <soc/meminit.h>
|
#include <soc/meminit.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
@ -19,4 +20,6 @@ const struct mb_cfg *variant_memory_params(void);
|
||||||
int variant_memory_sku(void);
|
int variant_memory_sku(void);
|
||||||
bool variant_is_half_populated(void);
|
bool variant_is_half_populated(void);
|
||||||
|
|
||||||
|
void variant_update_fspm_upds(FSPM_UPD *memupd);
|
||||||
|
|
||||||
#endif /*__BASEBOARD_VARIANTS_H__ */
|
#endif /*__BASEBOARD_VARIANTS_H__ */
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
romstage-y += variant.c
|
||||||
|
ramstage-y += variant.c
|
|
@ -122,9 +122,6 @@ chip soc/intel/alderlake
|
||||||
device generic 0 on end
|
device generic 0 on end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
device ref pcie_rp6 on
|
|
||||||
probe DB_LTE LTE_PCIE
|
|
||||||
end
|
|
||||||
device ref pcie_rp8 on
|
device ref pcie_rp8 on
|
||||||
chip soc/intel/common/block/pcie/rtd3
|
chip soc/intel/common/block/pcie/rtd3
|
||||||
register "enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_H13)"
|
register "enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_H13)"
|
||||||
|
|
|
@ -0,0 +1,14 @@
|
||||||
|
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||||
|
|
||||||
|
#include <baseboard/variants.h>
|
||||||
|
#include <console/console.h>
|
||||||
|
#include <fw_config.h>
|
||||||
|
|
||||||
|
void variant_update_fspm_upds(FSPM_UPD *memupd)
|
||||||
|
{
|
||||||
|
if (fw_config_probe(FW_CONFIG(DB_LTE, LTE_USB))) {
|
||||||
|
FSP_M_CONFIG *m_cfg = &memupd->FspmConfig;
|
||||||
|
printk(BIOS_INFO, "Disabling PCIe RP 6 UPD for USB WWAN\n");
|
||||||
|
m_cfg->PcieRpEnableMask &= ~BIT(5);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue