mb/amd/birman_plus: Update PCIe Slot configurations

Rectify board configuration flags based on the schematics Doc.
105-D99700-00C and User Guide #58168 (NDA).

Change-Id: Ia310ea616006479b9a052afb99d08df6a11431f4
Signed-off-by: Ana Carolina Cabral <ana.cpmelo95@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85493
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
Ana Carolina Cabral 2024-12-04 12:14:03 -03:00 committed by Felix Singer
commit a23020c43e
4 changed files with 62 additions and 49 deletions

View file

@ -99,39 +99,44 @@ config ENABLE_EVAL_19V
help
Enable the 19V rail for Eval Card PCIe slot
choice
prompt "DT SLOT/M.2 SSD1 ENABLE"
default ENABLE_DT_SLOT_BIRMANPLUS
config ENABLE_SSD1_BIRMANPLUS
bool "Enable M.2 SSD1 Slot"
help
Either DT slot or M.2 SSD1 can be used, as they are sharing PCIe lanes.
Enable M.2 SSD1 Slot. For Glinda SoC this will downgrade
PCIe x8 slot to x4.
config ENABLE_DT_SLOT_BIRMANPLUS
bool "Enable DT slot"
choice
prompt "GBE Enable/WWAN LANE1 Selection"
default ENABLE_GBE_BIRMANPLUS
help
When the M.2 x2 WWAN slot is enabled, the GbE LAN is disabled.
config ENABLE_M2_SSD1_BIRMANPLUS
bool "Enable M.2 SSD1"
config ENABLE_GBE_BIRMANPLUS
bool "Enable GBE (1 Lane WWAN)"
config DISABLE_DT_M2_BIRMANPLUS
bool "Disable both DT and M.2 slot"
config ENABLE_WWAN02_BIRMANPLUS
bool "Enable only WWAN (2 Lanes WWAN)"
config DISABLE_WWAN_GBE_BIRMANPLUS
bool "Disable both WWAN and GBE"
endchoice
choice
prompt "WLAN/WWAN Selection"
default WLAN0_WWAN0_BIRMANPLUS
prompt "SD Card Enable/WLAN LANE1 Selection"
default ENABLE_SDCARD_BIRMANPLUS
help
WLAN and WWAN lane configuration
When the M.2 x2 WLAN slot is enabled, the SD Card Reader is disabled.
config WLAN0_WWAN0_BIRMANPLUS
bool "Both WLAN and WWAN Enabled (1 lane each)"
config ENABLE_SDCARD_BIRMANPLUS
bool "Enable SD Card (1 Lane WLAN)"
config WLAN01_BIRMANPLUS
bool "Only WLAN Enabled (2 lanes WLAN, 0 lanes WWAN)"
config WWAN01_BIRMANPLUS
bool "Only WWAN Enabled (2 lanes WWAN, 0 lanes WLAN)"
config ENABLE_WLAN02_BIRMANPLUS
bool "Enable only WLAN (2 Lanes WLAN)"
config DISABLE_WLAN_SD_BIRMANPLUS
bool "Disable both WLAN and SD Card"
endchoice
if !EM100 # EM100 defaults in soc/amd/common/blocks/spi/Kconfig
config EFS_SPI_READ_MODE
default 3 # Quad IO (1-1-4)

View file

@ -130,21 +130,12 @@ static void configure_ec_gpio(void)
ec_write(EC_GPIO_7_ADDR, tmp);
tmp = ec_read(EC_GPIO_8_ADDR);
if (CONFIG(ENABLE_M2_SSD1_BIRMANPLUS)) {
tmp |= EC8_DT_N_SSD1_SW;
} else {
tmp &= ~EC8_DT_N_SSD1_SW;
}
tmp |= EC8_DT_N_SSD1_SW;
printk(BIOS_SPEW, "Write reg [0x%02x] = 0x%02x\n", EC_GPIO_8_ADDR, tmp);
ec_write(EC_GPIO_8_ADDR, tmp);
tmp = ec_read(EC_GPIO_9_ADDR);
tmp |= EC9_CAM0_PWR_EN | EC9_CAM1_PWR_EN | EC9_WWAN_RST | EC9_TPM_PWR_EN;
if (CONFIG(ENABLE_DT_SLOT_BIRMANPLUS)) {
tmp |= EC9_DT_PWREN;
} else {
tmp &= ~EC9_DT_PWREN;
}
tmp |= EC9_CAM0_PWR_EN | EC9_CAM1_PWR_EN | EC9_WWAN_RST | EC9_TPM_PWR_EN | EC9_DT_PWREN;
printk(BIOS_SPEW, "Write reg [0x%02x] = 0x%02x\n", EC_GPIO_9_ADDR, tmp);
ec_write(EC_GPIO_9_ADDR, tmp);
@ -158,12 +149,7 @@ static void configure_ec_gpio(void)
ec_write(EC_GPIO_C_ADDR, tmp);
tmp = ec_read(EC_GPIO_D_ADDR);
tmp |= ECD_TPNL_PWR_EN | ECD_TPNL_EN | ECD_TPAD_DISABLE_N;
if (CONFIG(ENABLE_M2_SSD1_BIRMANPLUS)) {
tmp |= ECD_SSD1_PWR_EN;
} else {
tmp &= ~ECD_SSD1_PWR_EN;
}
tmp |= ECD_TPNL_PWR_EN | ECD_TPNL_EN | ECD_TPAD_DISABLE_N | ECD_SSD1_PWR_EN;
printk(BIOS_SPEW, "Write reg [0x%02x] = 0x%02x\n", EC_GPIO_D_ADDR, tmp);
ec_write(EC_GPIO_D_ADDR, tmp);
@ -171,12 +157,12 @@ static void configure_ec_gpio(void)
tmp |= ECE_LOM_PWR_EN | ECE_SSD0_PWR_EN | ECE_SD_PWR_EN;
tmp |= ECE_CAM_PWR_EN | ECE_FPR_N_GBE_SEL;
tmp &= ~ECE_BT_N_TPNL_SEL;
if (CONFIG(WLAN01_BIRMANPLUS)) { // no WWAN, turn off WWAN power
if (CONFIG(DISABLE_WWAN_GBE_BIRMANPLUS)) { // no WWAN, turn off WWAN power
tmp &= ~ECE_WWAN_PWR_EN;
} else {
tmp |= ECE_WWAN_PWR_EN;
}
if (CONFIG(WWAN01_BIRMANPLUS)) { // no WLAN, turn off WLAN power
if (CONFIG(DISABLE_WLAN_SD_BIRMANPLUS)) { // no WLAN, turn off WLAN power
tmp &= ~ECE_WLAN_PWR_EN;
} else {
tmp |= ECE_WLAN_PWR_EN;
@ -185,12 +171,12 @@ static void configure_ec_gpio(void)
ec_write(EC_GPIO_E_ADDR, tmp);
tmp = ec_read(EC_GPIO_F_ADDR);
if (CONFIG(WLAN01_BIRMANPLUS)) {
if (CONFIG(ENABLE_WLAN02_BIRMANPLUS)) {
tmp |= ECF_WWAN0_N_WLAN1_SW;
} else {
tmp &= ~ECF_WWAN0_N_WLAN1_SW;
}
if (CONFIG(WWAN01_BIRMANPLUS)) {
if (CONFIG(ENABLE_WWAN02_BIRMANPLUS)) {
tmp |= ECF_WLAN0_N_WWAN1_SW;
} else {
tmp &= ~ECF_WLAN0_N_WWAN1_SW;

View file

@ -11,7 +11,7 @@
.engine_type = PCIE_ENGINE, \
.port_present = CONFIG(ENABLE_EVAL_CARD), \
.start_logical_lane = 0, \
.end_logical_lane = 7, \
.end_logical_lane = CONFIG(ENABLE_SSD1_BIRMANPLUS) ? 3 : 7, \
.device_number = 3, \
.function_number = 1, \
.link_speed_capability = GEN_MAX, \
@ -22,6 +22,21 @@
.port_params = {PP_PSPP_AC, 0x144, PP_PSPP_DC, 0x133}, \
}
#define glinda_ssd1_dxio_descriptor { \
.engine_type = PCIE_ENGINE, \
.port_present = true, \
.start_logical_lane = 4, \
.end_logical_lane = 7, \
.device_number = 3, \
.function_number = 2, \
.link_speed_capability = GEN_MAX, \
.turn_off_unused_lanes = true, \
.link_aspm = ASPM_L1, \
.link_hotplug = HOTPLUG_DISABLED, \
.clk_req = CLK_REQ1, \
.port_params = {PP_PSPP_AC, 0x144, PP_PSPP_DC, 0x133}, \
}
#define glinda_ssd0_dxio_descriptor { \
.engine_type = PCIE_ENGINE, \
.port_present = true, \
@ -39,11 +54,11 @@
#define glinda_wlan_dxio_descriptor { \
.engine_type = PCIE_ENGINE, \
.port_present = true, \
.start_logical_lane = 15, \
.port_present = !CONFIG(DISABLE_WLAN_SD_BIRMANPLUS), \
.start_logical_lane = CONFIG(ENABLE_WLAN02_BIRMANPLUS) ? 14 : 15, \
.end_logical_lane = 15, \
.device_number = 2, \
.function_number = 2, \
.function_number = 3, \
.link_speed_capability = GEN_MAX, \
.turn_off_unused_lanes = true, \
.link_aspm = ASPM_L1, \
@ -53,9 +68,9 @@
#define glinda_wwan_dxio_descriptor { \
.engine_type = PCIE_ENGINE, \
.port_present = true, \
.port_present = !CONFIG(DISABLE_WWAN_GBE_BIRMANPLUS), \
.start_logical_lane = 12, \
.end_logical_lane = 12, \
.end_logical_lane = CONFIG(ENABLE_WWAN02_BIRMANPLUS) ? 13 : 12, \
.device_number = 2, \
.function_number = 5, \
.link_speed_capability = GEN_MAX, \
@ -91,7 +106,7 @@
.link_speed_capability = GEN_MAX, \
.turn_off_unused_lanes = true, \
.link_aspm = ASPM_L1, \
.link_hotplug = HOTPLUG_DISABLED, \
.link_hotplug = HOTPLUG_BASIC, \
.clk_req = CLK_REQ5, \
.port_params = {PP_PSPP_AC, 0x144, PP_PSPP_DC, 0x133}, \
}
@ -170,11 +185,18 @@ void mainboard_get_dxio_ddi_descriptors(
static const fsp_dxio_descriptor birmanplus_glinda_dxio_descriptors[] = {
glinda_mxm_dxio_descriptor,
#if CONFIG(ENABLE_SSD1_BIRMANPLUS)
glinda_ssd1_dxio_descriptor,
#endif
glinda_ssd0_dxio_descriptor,
glinda_wlan_dxio_descriptor,
glinda_wwan_dxio_descriptor,
#if CONFIG(ENABLE_GBE_BIRMANPLUS)
glinda_gbe_dxio_descriptor,
#endif
#if CONFIG(ENABLE_SDCARD_BIRMANPLUS)
glinda_sd_dxio_descriptor,
#endif
};
*dxio_descs = birmanplus_glinda_dxio_descriptors;

View file

@ -52,7 +52,7 @@
#define phx_ssd1_dxio_descriptor { \
.engine_type = PCIE_ENGINE, \
.port_present = true, \
.port_present = CONFIG(ENABLE_SSD1_BIRMANPLUS), \
.start_lane = 8, \
.end_lane = 11, \
.device_number = 1, \