diff options
author | Kyösti Mälkki <kyosti.malkki@gmail.com> | 2014-12-29 19:36:50 +0200 |
---|---|---|
committer | Kyösti Mälkki <kyosti.malkki@gmail.com> | 2015-03-11 18:15:22 +0100 |
commit | 48b3dbc7483f5404a2dfb3b8bb5f4bcf7d3c4b09 (patch) | |
tree | 429accfcc8e6eb89206abd1e14a0b25c0b687074 /src/cpu/x86/smm/smihandler.c | |
parent | b0922f0183cb50b9714285c539c387956d86814c (diff) |
x86 SMM: Replace weak prototypes with weak function stub
Change-Id: I682617cd2f4310d3e2e2ab6ffec51def28a4779c
Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
Reviewed-on: http://review.coreboot.org/7961
Tested-by: build bot (Jenkins)
Reviewed-by: Aaron Durbin <adurbin@google.com>
Reviewed-by: Patrick Georgi <pgeorgi@google.com>
Diffstat (limited to 'src/cpu/x86/smm/smihandler.c')
-rw-r--r-- | src/cpu/x86/smm/smihandler.c | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/src/cpu/x86/smm/smihandler.c b/src/cpu/x86/smm/smihandler.c index bd03030c4c..cbd6d44bc7 100644 --- a/src/cpu/x86/smm/smihandler.c +++ b/src/cpu/x86/smm/smihandler.c @@ -199,12 +199,9 @@ void smi_handler(u32 smm_revision) } /* Call chipset specific SMI handlers. */ - if (cpu_smi_handler) - cpu_smi_handler(node, &state_save); - if (northbridge_smi_handler) - northbridge_smi_handler(node, &state_save); - if (southbridge_smi_handler) - southbridge_smi_handler(node, &state_save); + cpu_smi_handler(node, &state_save); + northbridge_smi_handler(node, &state_save); + southbridge_smi_handler(node, &state_save); smi_restore_pci_address(); @@ -215,3 +212,15 @@ void smi_handler(u32 smm_revision) /* De-assert SMI# signal to allow another SMI */ smi_set_eos(); } + +/* Provide a default implementation for all weak handlers so that relocation + * entries in the modules make sense. Without default implementations the + * weak relocations w/o a symbol have a 0 address which is where the modules + * are linked at. */ +int __attribute__((weak)) mainboard_io_trap_handler(int smif) { return 0; } +void __attribute__((weak)) cpu_smi_handler(unsigned int node, smm_state_save_area_t *state_save) {} +void __attribute__((weak)) northbridge_smi_handler(unsigned int node, smm_state_save_area_t *state_save) {} +void __attribute__((weak)) southbridge_smi_handler(unsigned int node, smm_state_save_area_t *state_save) {} +void __attribute__((weak)) mainboard_smi_gpi(u32 gpi_sts) {} +int __attribute__((weak)) mainboard_smi_apmc(u8 data) { return 0; } +void __attribute__((weak)) mainboard_smi_sleep(u8 slp_typ) {} |