From 19deb55f0237c917876b992a5da37c4c4f57b8a0 Mon Sep 17 00:00:00 2001 From: Keith Hui Date: Sun, 28 Dec 2025 19:37:25 -0500 Subject: [PATCH] mb/asrock/fatal1ty_z87_professional: Temporarily refactor nuvoton_pnp_*() As the pair of non-ramstage Nuvoton SIO config mode entry/exit functions see wider use, they are being moved to sio/nuvoton/common/. This mainboard carries 2 local copies. This preparatory patch moves it out of smihandler.c into a temporary C file to prevent build breakage. It is to be removed when the shared copy is in place. WARNING: Disassembly of compiled SMM code shows a possible stack issue. Do not flash a binary with this patch applied but without the final shared version above. Change-Id: I685ebe6c2bb638d815ccf1fcdd1d73edc176c69e Signed-off-by: Keith Hui Reviewed-on: https://review.coreboot.org/c/coreboot/+/90655 Tested-by: build bot (Jenkins) Reviewed-by: Matt DeVillier --- .../fatal1ty_z87_professional/Makefile.mk | 2 ++ .../fatal1ty_z87_professional/mainboard.c | 18 -------------- .../fatal1ty_z87_professional/nuvoton.c | 24 +++++++++++++++++++ .../fatal1ty_z87_professional/smihandler.c | 18 -------------- 4 files changed, 26 insertions(+), 36 deletions(-) create mode 100644 src/mainboard/asrock/fatal1ty_z87_professional/nuvoton.c diff --git a/src/mainboard/asrock/fatal1ty_z87_professional/Makefile.mk b/src/mainboard/asrock/fatal1ty_z87_professional/Makefile.mk index 93f729d787..de5aa51b34 100644 --- a/src/mainboard/asrock/fatal1ty_z87_professional/Makefile.mk +++ b/src/mainboard/asrock/fatal1ty_z87_professional/Makefile.mk @@ -4,3 +4,5 @@ bootblock-y += bootblock.c bootblock-y += gpio.c romstage-y += gpio.c ramstage-$(CONFIG_MAINBOARD_USE_LIBGFXINIT) += gma-mainboard.ads +smm-y += nuvoton.c +ramstage-y += nuvoton.c diff --git a/src/mainboard/asrock/fatal1ty_z87_professional/mainboard.c b/src/mainboard/asrock/fatal1ty_z87_professional/mainboard.c index 1e62d65d2e..8e30e3c61c 100644 --- a/src/mainboard/asrock/fatal1ty_z87_professional/mainboard.c +++ b/src/mainboard/asrock/fatal1ty_z87_professional/mainboard.c @@ -10,24 +10,6 @@ #include #define GPIO1_DEV PNP_DEV(0x2e, NCT6776_WDT1_GPIO01A_V) -#define NUVOTON_ENTRY_KEY 0x87 -#define NUVOTON_EXIT_KEY 0xAA - -/* Enable configuration: pass entry key '0x87' into index port dev - * two times. */ -void nuvoton_pnp_enter_conf_state(pnp_devfn_t dev) -{ - u16 port = dev >> 8; - outb(NUVOTON_ENTRY_KEY, port); - outb(NUVOTON_ENTRY_KEY, port); -} - -/* Disable configuration: pass exit key '0xAA' into index port dev. */ -void nuvoton_pnp_exit_conf_state(pnp_devfn_t dev) -{ - u16 port = dev >> 8; - outb(NUVOTON_EXIT_KEY, port); -} static void turn_off_leds(void *unused) { diff --git a/src/mainboard/asrock/fatal1ty_z87_professional/nuvoton.c b/src/mainboard/asrock/fatal1ty_z87_professional/nuvoton.c new file mode 100644 index 0000000000..56453329cb --- /dev/null +++ b/src/mainboard/asrock/fatal1ty_z87_professional/nuvoton.c @@ -0,0 +1,24 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +#include +#include +#include + +#define NUVOTON_ENTRY_KEY 0x87 +#define NUVOTON_EXIT_KEY 0xAA + +/* Enable configuration: pass entry key '0x87' into index port dev + * two times. */ +void nuvoton_pnp_enter_conf_state(pnp_devfn_t dev) +{ + u16 port = dev >> 8; + outb(NUVOTON_ENTRY_KEY, port); + outb(NUVOTON_ENTRY_KEY, port); +} + +/* Disable configuration: pass exit key '0xAA' into index port dev. */ +void nuvoton_pnp_exit_conf_state(pnp_devfn_t dev) +{ + u16 port = dev >> 8; + outb(NUVOTON_EXIT_KEY, port); +} diff --git a/src/mainboard/asrock/fatal1ty_z87_professional/smihandler.c b/src/mainboard/asrock/fatal1ty_z87_professional/smihandler.c index 6736c15bcd..5ecf42409c 100644 --- a/src/mainboard/asrock/fatal1ty_z87_professional/smihandler.c +++ b/src/mainboard/asrock/fatal1ty_z87_professional/smihandler.c @@ -7,24 +7,6 @@ #include #define GPIO1_DEV PNP_DEV(0x2e, NCT6776_WDT1_GPIO01A_V) -#define NUVOTON_ENTRY_KEY 0x87 -#define NUVOTON_EXIT_KEY 0xAA - -/* Enable configuration: pass entry key '0x87' into index port dev - * two times. */ -void nuvoton_pnp_enter_conf_state(pnp_devfn_t dev) -{ - u16 port = dev >> 8; - outb(NUVOTON_ENTRY_KEY, port); - outb(NUVOTON_ENTRY_KEY, port); -} - -/* Disable configuration: pass exit key '0xAA' into index port dev. */ -void nuvoton_pnp_exit_conf_state(pnp_devfn_t dev) -{ - u16 port = dev >> 8; - outb(NUVOTON_EXIT_KEY, port); -} void mainboard_smi_sleep(u8 slp_typ) {