reset: Finalize move to new API

Move soft_reset() to `southbridge/amd/common/` it's only used for
amdfam10 now.

Drop hard_reset() for good.

Change-Id: Ifdc5791160653c5578007f6c1b96015efe2b3e1e
Signed-off-by: Nico Huber <nico.h@gmx.de>
Reviewed-on: https://review.coreboot.org/29059
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
This commit is contained in:
Nico Huber 2018-10-11 22:54:25 +02:00
parent 30cf14ff3f
commit 718c6faff4
37 changed files with 69 additions and 61 deletions

View File

@ -449,13 +449,6 @@ config RESUME_PATH_SAME_AS_BOOT
same path as a regular boot. e.g. an x86 system runs from the same path as a regular boot. e.g. an x86 system runs from the
reset vector at 0xfffffff0 on both resume and warm/cold boot. reset vector at 0xfffffff0 on both resume and warm/cold boot.
config HAVE_HARD_RESET
bool
default n
help
This variable specifies whether a given board has a hard_reset
function, no matter if it's provided by board code or chipset code.
config HAVE_ROMSTAGE_CONSOLE_SPINLOCK config HAVE_ROMSTAGE_CONSOLE_SPINLOCK
bool bool
depends on EARLY_CBMEM_INIT depends on EARLY_CBMEM_INIT

View File

@ -27,6 +27,8 @@
#include <northbridge/amd/amdht/porting.h> #include <northbridge/amd/amdht/porting.h>
#include <northbridge/amd/amdht/h3ncmn.h> #include <northbridge/amd/amdht/h3ncmn.h>
#include <southbridge/amd/common/reset.h>
#if IS_ENABLED(CONFIG_SOUTHBRIDGE_AMD_SB700) #if IS_ENABLED(CONFIG_SOUTHBRIDGE_AMD_SB700)
#include <southbridge/amd/sb700/sb700.h> #include <southbridge/amd/sb700/sb700.h>
#endif #endif

View File

@ -39,14 +39,4 @@ __noreturn void board_reset(void);
*/ */
void do_board_reset(void); void do_board_reset(void);
/* Full board reset. Resets SoC and most/all board components (e.g. DRAM). */
__noreturn void hard_reset(void);
/* Board reset. Resets SoC some board components (e.g. TPM but not DRAM). */
__noreturn void soft_reset(void);
/* Reset implementations. Implement these in SoC or mainboard code. Implement
at least hard_reset() if possible, others fall back to it if necessary. */
void do_hard_reset(void);
void do_soft_reset(void);
#endif #endif

View File

@ -31,39 +31,4 @@ void do_board_reset(void)
{ {
printk(BIOS_CRIT, "No board_reset implementation, hanging...\n"); printk(BIOS_CRIT, "No board_reset implementation, hanging...\n");
} }
#else
/*
* Fall back to hard_reset() for a regression free transition.
* FIXME: Remove after everything is converted to board_reset().
*/
__weak void do_board_reset(void)
{
hard_reset();
}
#endif #endif
__noreturn static void __hard_reset(void) {
if (IS_ENABLED(CONFIG_HAVE_HARD_RESET))
do_hard_reset();
else
printk(BIOS_CRIT, "No hard_reset implementation, hanging...\n");
halt();
}
/* Not all platforms implement all reset types. Fall back to hard_reset. */
__weak void do_soft_reset(void) { __hard_reset(); }
void hard_reset(void)
{
printk(BIOS_INFO, "%s() called!\n", __func__);
dcache_clean_all();
__hard_reset();
}
void soft_reset(void)
{
printk(BIOS_INFO, "%s() called!\n", __func__);
dcache_clean_all();
do_soft_reset();
halt();
}

View File

@ -40,6 +40,7 @@
#include <northbridge/amd/amdfam10/raminit.h> #include <northbridge/amd/amdfam10/raminit.h>
#include <northbridge/amd/amdht/ht_wrapper.h> #include <northbridge/amd/amdht/ht_wrapper.h>
#include <cpu/amd/family_10h-family_15h/init_cpus.h> #include <cpu/amd/family_10h-family_15h/init_cpus.h>
#include <southbridge/amd/common/reset.h>
#include <southbridge/amd/sb800/smbus.h> #include <southbridge/amd/sb800/smbus.h>
#include <southbridge/amd/sb800/sb800.h> #include <southbridge/amd/sb800/sb800.h>
#include <southbridge/amd/rs780/rs780.h> #include <southbridge/amd/rs780/rs780.h>
@ -50,7 +51,6 @@
#include "resourcemap.c" #include "resourcemap.c"
#include "cpu/amd/quadcore/quadcore.c" #include "cpu/amd/quadcore/quadcore.c"
#include "spd.h" #include "spd.h"
#include <reset.h>
#define SERIAL_DEV PNP_DEV(0x2e, W83627HF_SP1) #define SERIAL_DEV PNP_DEV(0x2e, W83627HF_SP1)

View File

@ -36,6 +36,7 @@
#include <cpu/amd/msr.h> #include <cpu/amd/msr.h>
#include <cpu/amd/mtrr.h> #include <cpu/amd/mtrr.h>
#include <cpu/amd/car.h> #include <cpu/amd/car.h>
#include <southbridge/amd/common/reset.h>
#include <southbridge/amd/sb800/smbus.h> #include <southbridge/amd/sb800/smbus.h>
#include <northbridge/amd/amdfam10/raminit.h> #include <northbridge/amd/amdfam10/raminit.h>
#include <northbridge/amd/amdht/ht_wrapper.h> #include <northbridge/amd/amdht/ht_wrapper.h>

View File

@ -40,6 +40,7 @@
#include <cpu/amd/msr.h> #include <cpu/amd/msr.h>
#include <cpu/amd/mtrr.h> #include <cpu/amd/mtrr.h>
#include <cpu/amd/car.h> #include <cpu/amd/car.h>
#include <southbridge/amd/common/reset.h>
#include <southbridge/amd/sb700/sb700.h> #include <southbridge/amd/sb700/sb700.h>
#include <southbridge/amd/sb700/smbus.h> #include <southbridge/amd/sb700/smbus.h>
#include <northbridge/amd/amdfam10/raminit.h> #include <northbridge/amd/amdfam10/raminit.h>

View File

@ -38,6 +38,7 @@
#include <cpu/amd/msr.h> #include <cpu/amd/msr.h>
#include <cpu/amd/mtrr.h> #include <cpu/amd/mtrr.h>
#include <cpu/amd/car.h> #include <cpu/amd/car.h>
#include <southbridge/amd/common/reset.h>
#include <southbridge/amd/sb700/sb700.h> #include <southbridge/amd/sb700/sb700.h>
#include <southbridge/amd/sb700/smbus.h> #include <southbridge/amd/sb700/smbus.h>
#include <northbridge/amd/amdfam10/raminit.h> #include <northbridge/amd/amdfam10/raminit.h>

View File

@ -19,7 +19,6 @@
#include <stdint.h> #include <stdint.h>
#include <string.h> #include <string.h>
#include <reset.h>
#include <device/pci_def.h> #include <device/pci_def.h>
#include <device/pci_ids.h> #include <device/pci_ids.h>
#include <arch/io.h> #include <arch/io.h>
@ -39,6 +38,7 @@
#include <smp/spinlock.h> #include <smp/spinlock.h>
#include <cpu/amd/car.h> #include <cpu/amd/car.h>
#include <cpu/amd/msr.h> #include <cpu/amd/msr.h>
#include <southbridge/amd/common/reset.h>
#include <southbridge/amd/sb700/sb700.h> #include <southbridge/amd/sb700/sb700.h>
#include <southbridge/amd/sb700/smbus.h> #include <southbridge/amd/sb700/smbus.h>
#include <southbridge/amd/sr5650/sr5650.h> #include <southbridge/amd/sr5650/sr5650.h>

View File

@ -22,7 +22,6 @@
#include <stdint.h> #include <stdint.h>
#include <string.h> #include <string.h>
#include <reset.h>
#include <device/pci_def.h> #include <device/pci_def.h>
#include <device/pci_ids.h> #include <device/pci_ids.h>
#include <arch/io.h> #include <arch/io.h>
@ -36,6 +35,7 @@
#include <cpu/amd/model_10xxx_rev.h> #include <cpu/amd/model_10xxx_rev.h>
#include <cpu/amd/car.h> #include <cpu/amd/car.h>
#include <cpu/amd/msr.h> #include <cpu/amd/msr.h>
#include <southbridge/amd/common/reset.h>
#include <southbridge/nvidia/ck804/early_smbus.h> #include <southbridge/nvidia/ck804/early_smbus.h>
#include <delay.h> #include <delay.h>
#include <cpu/x86/lapic.h> #include <cpu/x86/lapic.h>

View File

@ -19,7 +19,6 @@
#include <stdint.h> #include <stdint.h>
#include <string.h> #include <string.h>
#include <reset.h>
#include <device/pci_def.h> #include <device/pci_def.h>
#include <device/pci_ids.h> #include <device/pci_ids.h>
#include <arch/io.h> #include <arch/io.h>
@ -39,6 +38,7 @@
#include <cpu/amd/car.h> #include <cpu/amd/car.h>
#include <cpu/amd/msr.h> #include <cpu/amd/msr.h>
#include <smp/spinlock.h> #include <smp/spinlock.h>
#include <southbridge/amd/common/reset.h>
#include <southbridge/amd/sb700/sb700.h> #include <southbridge/amd/sb700/sb700.h>
#include <southbridge/amd/sb700/smbus.h> #include <southbridge/amd/sb700/smbus.h>
#include <southbridge/amd/sr5650/sr5650.h> #include <southbridge/amd/sr5650/sr5650.h>

View File

@ -39,6 +39,7 @@
#include <cpu/amd/mtrr.h> #include <cpu/amd/mtrr.h>
#include <cpu/amd/car.h> #include <cpu/amd/car.h>
#include <cpu/amd/msr.h> #include <cpu/amd/msr.h>
#include <southbridge/amd/common/reset.h>
#include <southbridge/amd/sb700/sb700.h> #include <southbridge/amd/sb700/sb700.h>
#include <southbridge/amd/sb700/smbus.h> #include <southbridge/amd/sb700/smbus.h>
#include <northbridge/amd/amdfam10/raminit.h> #include <northbridge/amd/amdfam10/raminit.h>

View File

@ -40,6 +40,7 @@
#include <cpu/amd/msr.h> #include <cpu/amd/msr.h>
#include <cpu/amd/mtrr.h> #include <cpu/amd/mtrr.h>
#include <cpu/amd/car.h> #include <cpu/amd/car.h>
#include <southbridge/amd/common/reset.h>
#include <southbridge/amd/sb700/sb700.h> #include <southbridge/amd/sb700/sb700.h>
#include <southbridge/amd/sb700/smbus.h> #include <southbridge/amd/sb700/smbus.h>
#include <northbridge/amd/amdfam10/raminit.h> #include <northbridge/amd/amdfam10/raminit.h>

View File

@ -39,6 +39,7 @@
#include <cpu/amd/msr.h> #include <cpu/amd/msr.h>
#include <cpu/amd/mtrr.h> #include <cpu/amd/mtrr.h>
#include <cpu/amd/car.h> #include <cpu/amd/car.h>
#include <southbridge/amd/common/reset.h>
#include <southbridge/amd/sb800/smbus.h> #include <southbridge/amd/sb800/smbus.h>
#include <northbridge/amd/amdfam10/raminit.h> #include <northbridge/amd/amdfam10/raminit.h>
#include <northbridge/amd/amdht/ht_wrapper.h> #include <northbridge/amd/amdht/ht_wrapper.h>
@ -48,7 +49,6 @@
#include <southbridge/amd/rs780/rs780.h> #include <southbridge/amd/rs780/rs780.h>
#include "southbridge/amd/sb800/early_setup.c" #include "southbridge/amd/sb800/early_setup.c"
#include "spd.h" #include "spd.h"
#include <reset.h>
#include "resourcemap.c" #include "resourcemap.c"
#include "cpu/amd/quadcore/quadcore.c" #include "cpu/amd/quadcore/quadcore.c"

View File

@ -37,6 +37,7 @@
#include <cpu/amd/msr.h> #include <cpu/amd/msr.h>
#include <cpu/amd/mtrr.h> #include <cpu/amd/mtrr.h>
#include <cpu/amd/car.h> #include <cpu/amd/car.h>
#include <southbridge/amd/common/reset.h>
#include <southbridge/amd/sb800/smbus.h> #include <southbridge/amd/sb800/smbus.h>
#include <northbridge/amd/amdfam10/raminit.h> #include <northbridge/amd/amdfam10/raminit.h>
#include <northbridge/amd/amdht/ht_wrapper.h> #include <northbridge/amd/amdht/ht_wrapper.h>
@ -44,7 +45,6 @@
#include <arch/early_variables.h> #include <arch/early_variables.h>
#include <cbmem.h> #include <cbmem.h>
#include "spd.h" #include "spd.h"
#include <reset.h>
#include <southbridge/amd/rs780/rs780.h> #include <southbridge/amd/rs780/rs780.h>
#include <southbridge/amd/sb800/early_setup.c> #include <southbridge/amd/sb800/early_setup.c>

View File

@ -36,6 +36,7 @@
#include <cpu/amd/msr.h> #include <cpu/amd/msr.h>
#include <cpu/amd/mtrr.h> #include <cpu/amd/mtrr.h>
#include <cpu/amd/car.h> #include <cpu/amd/car.h>
#include <southbridge/amd/common/reset.h>
#include <southbridge/amd/sb700/sb700.h> #include <southbridge/amd/sb700/sb700.h>
#include <southbridge/amd/sb700/smbus.h> #include <southbridge/amd/sb700/smbus.h>
#include <northbridge/amd/amdfam10/raminit.h> #include <northbridge/amd/amdfam10/raminit.h>

View File

@ -36,6 +36,7 @@
#include <cpu/amd/msr.h> #include <cpu/amd/msr.h>
#include <cpu/amd/mtrr.h> #include <cpu/amd/mtrr.h>
#include <cpu/amd/car.h> #include <cpu/amd/car.h>
#include <southbridge/amd/common/reset.h>
#include <southbridge/amd/sb700/sb700.h> #include <southbridge/amd/sb700/sb700.h>
#include <southbridge/amd/sb700/smbus.h> #include <southbridge/amd/sb700/smbus.h>
#include <northbridge/amd/amdfam10/raminit.h> #include <northbridge/amd/amdfam10/raminit.h>

View File

@ -39,6 +39,7 @@
#include <cpu/amd/msr.h> #include <cpu/amd/msr.h>
#include <cpu/amd/mtrr.h> #include <cpu/amd/mtrr.h>
#include <cpu/amd/car.h> #include <cpu/amd/car.h>
#include <southbridge/amd/common/reset.h>
#include <southbridge/amd/sb700/sb700.h> #include <southbridge/amd/sb700/sb700.h>
#include <southbridge/amd/sb700/smbus.h> #include <southbridge/amd/sb700/smbus.h>
#include <spd.h> #include <spd.h>

View File

@ -49,6 +49,7 @@
#include <cpu/amd/family_10h-family_15h/init_cpus.h> #include <cpu/amd/family_10h-family_15h/init_cpus.h>
#include <arch/early_variables.h> #include <arch/early_variables.h>
#include <cbmem.h> #include <cbmem.h>
#include <southbridge/amd/common/reset.h>
#include "southbridge/broadcom/bcm5785/early_smbus.c" #include "southbridge/broadcom/bcm5785/early_smbus.c"
#include "southbridge/broadcom/bcm5785/early_setup.c" #include "southbridge/broadcom/bcm5785/early_setup.c"

View File

@ -39,6 +39,7 @@
#include <cpu/amd/msr.h> #include <cpu/amd/msr.h>
#include <cpu/amd/mtrr.h> #include <cpu/amd/mtrr.h>
#include <cpu/amd/car.h> #include <cpu/amd/car.h>
#include <southbridge/amd/common/reset.h>
#include <southbridge/amd/sb700/sb700.h> #include <southbridge/amd/sb700/sb700.h>
#include <southbridge/amd/sb700/smbus.h> #include <southbridge/amd/sb700/smbus.h>
#include <spd.h> #include <spd.h>

View File

@ -40,6 +40,7 @@
#include <cpu/amd/msr.h> #include <cpu/amd/msr.h>
#include <cpu/amd/mtrr.h> #include <cpu/amd/mtrr.h>
#include <cpu/amd/car.h> #include <cpu/amd/car.h>
#include <southbridge/amd/common/reset.h>
#include <southbridge/amd/sb700/sb700.h> #include <southbridge/amd/sb700/sb700.h>
#include <southbridge/amd/sb700/smbus.h> #include <southbridge/amd/sb700/smbus.h>
#include <spd.h> #include <spd.h>

View File

@ -42,6 +42,7 @@
#include <cpu/amd/family_10h-family_15h/init_cpus.h> #include <cpu/amd/family_10h-family_15h/init_cpus.h>
#include <arch/early_variables.h> #include <arch/early_variables.h>
#include <cbmem.h> #include <cbmem.h>
#include <southbridge/amd/common/reset.h>
#include <southbridge/nvidia/mcp55/mcp55.h> #include <southbridge/nvidia/mcp55/mcp55.h>
#include "resourcemap.c" #include "resourcemap.c"

View File

@ -37,6 +37,7 @@
#include <cpu/x86/bist.h> #include <cpu/x86/bist.h>
#include <cpu/amd/car.h> #include <cpu/amd/car.h>
#include <cpu/amd/msr.h> #include <cpu/amd/msr.h>
#include <southbridge/amd/common/reset.h>
#include <northbridge/amd/amdfam10/raminit.h> #include <northbridge/amd/amdfam10/raminit.h>
#include <northbridge/amd/amdht/ht_wrapper.h> #include <northbridge/amd/amdht/ht_wrapper.h>
#include <cpu/amd/family_10h-family_15h/init_cpus.h> #include <cpu/amd/family_10h-family_15h/init_cpus.h>

View File

@ -37,6 +37,7 @@
#include <cpu/x86/bist.h> #include <cpu/x86/bist.h>
#include <cpu/amd/car.h> #include <cpu/amd/car.h>
#include <cpu/amd/msr.h> #include <cpu/amd/msr.h>
#include <southbridge/amd/common/reset.h>
#include <northbridge/amd/amdfam10/raminit.h> #include <northbridge/amd/amdfam10/raminit.h>
#include <northbridge/amd/amdht/ht_wrapper.h> #include <northbridge/amd/amdht/ht_wrapper.h>
#include <cpu/amd/family_10h-family_15h/init_cpus.h> #include <cpu/amd/family_10h-family_15h/init_cpus.h>

View File

@ -37,6 +37,7 @@
#include <cpu/amd/msr.h> #include <cpu/amd/msr.h>
#include <cpu/amd/mtrr.h> #include <cpu/amd/mtrr.h>
#include <cpu/amd/car.h> #include <cpu/amd/car.h>
#include <southbridge/amd/common/reset.h>
#include <southbridge/amd/sb700/sb700.h> #include <southbridge/amd/sb700/sb700.h>
#include <southbridge/amd/sb700/smbus.h> #include <southbridge/amd/sb700/smbus.h>
#include <southbridge/amd/sr5650/sr5650.h> #include <southbridge/amd/sr5650/sr5650.h>

View File

@ -37,6 +37,7 @@
#include <superio/winbond/common/winbond.h> #include <superio/winbond/common/winbond.h>
#include <superio/winbond/w83627hf/w83627hf.h> #include <superio/winbond/w83627hf/w83627hf.h>
#include <cpu/x86/bist.h> #include <cpu/x86/bist.h>
#include <southbridge/amd/common/reset.h>
#include <northbridge/amd/amdfam10/raminit.h> #include <northbridge/amd/amdfam10/raminit.h>
#include <northbridge/amd/amdht/ht_wrapper.h> #include <northbridge/amd/amdht/ht_wrapper.h>
#include <cpu/amd/family_10h-family_15h/init_cpus.h> #include <cpu/amd/family_10h-family_15h/init_cpus.h>

View File

@ -36,7 +36,7 @@
#include <northbridge/amd/amdfam10/debug.h> #include <northbridge/amd/amdfam10/debug.h>
#include <northbridge/amd/amdfam10/raminit.h> #include <northbridge/amd/amdfam10/raminit.h>
#include <northbridge/amd/amdfam10/amdfam10.h> #include <northbridge/amd/amdfam10/amdfam10.h>
#include <reset.h> #include <southbridge/amd/common/reset.h>
#include <cpu/x86/msr.h> #include <cpu/x86/msr.h>
#include <cpu/amd/msr.h> #include <cpu/amd/msr.h>
#include <arch/acpi.h> #include <arch/acpi.h>

View File

@ -18,7 +18,7 @@ config VBOOT
bool "Verify firmware with vboot." bool "Verify firmware with vboot."
default n default n
select VBOOT_MOCK_SECDATA if !TPM1 && !TPM2 select VBOOT_MOCK_SECDATA if !TPM1 && !TPM2
depends on HAVE_HARD_RESET || !MISSING_BOARD_RESET depends on !MISSING_BOARD_RESET
help help
Enabling VBOOT will use vboot to verify the components of the firmware Enabling VBOOT will use vboot to verify the components of the firmware
(stages, payload, etc). (stages, payload, etc).

View File

@ -15,6 +15,7 @@
#include "amd8111.h" #include "amd8111.h"
#include <reset.h> #include <reset.h>
#include <southbridge/amd/common/reset.h>
unsigned get_sbdn(unsigned bus) unsigned get_sbdn(unsigned bus)
{ {

View File

@ -0,0 +1,35 @@
/*
* This file is part of the coreboot project.
*
* Copyright 2017 Google, Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; version 2 of the License.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#ifndef _AMD_SB_RESET_H_
#define _AMD_SB_RESET_H_
#include <arch/cache.h>
#include <console/console.h>
#include <halt.h>
/* Implement the bare reset, e.g. write to cf9. */
void do_soft_reset(void);
/* Prepare for reset, run do_soft_reset(), halt. */
static inline __noreturn void soft_reset(void)
{
printk(BIOS_INFO, "%s() called!\n", __func__);
dcache_clean_all();
do_soft_reset();
halt();
}
#endif /* _AMD_SB_RESET_H_ */

View File

@ -18,6 +18,7 @@
#include <arch/io.h> #include <arch/io.h>
#include <reset.h> #include <reset.h>
#include <southbridge/amd/common/reset.h>
#define HT_INIT_CONTROL 0x6C #define HT_INIT_CONTROL 0x6C
#define HTIC_BIOSR_Detect (1<<5) #define HTIC_BIOSR_Detect (1<<5)

View File

@ -19,6 +19,7 @@
#include <reset.h> #include <reset.h>
#include <arch/cpu.h> #include <arch/cpu.h>
#include <southbridge/amd/common/amd_defs.h> #include <southbridge/amd/common/amd_defs.h>
#include <southbridge/amd/common/reset.h>
#include "sb800.h" #include "sb800.h"
#include "smbus.c" #include "smbus.c"

View File

@ -22,7 +22,7 @@
#include <cpu/x86/msr.h> #include <cpu/x86/msr.h>
#include <cpu/amd/msr.h> #include <cpu/amd/msr.h>
#include <option.h> #include <option.h>
#include <reset.h> #include <southbridge/amd/common/reset.h>
#include "sr5650.h" #include "sr5650.h"
#include "cmn.h" #include "cmn.h"

View File

@ -15,6 +15,7 @@
*/ */
#include <reset.h> #include <reset.h>
#include <southbridge/amd/common/reset.h>
#include "bcm5785.h" #include "bcm5785.h"
static void bcm5785_enable_lpc(void) static void bcm5785_enable_lpc(void)

View File

@ -15,6 +15,7 @@
*/ */
#include <reset.h> #include <reset.h>
#include <southbridge/amd/common/reset.h>
#include "ck804.h" #include "ck804.h"
static int set_ht_link_ck804(u8 ht_c_num) static int set_ht_link_ck804(u8 ht_c_num)

View File

@ -16,6 +16,7 @@
* GNU General Public License for more details. * GNU General Public License for more details.
*/ */
#include <southbridge/amd/common/reset.h>
#include "ck804.h" #include "ck804.h"
/* Someone messed up and snuck in some K8-specific code */ /* Someone messed up and snuck in some K8-specific code */

View File

@ -19,6 +19,7 @@
#include <console/console.h> #include <console/console.h>
#include <reset.h> #include <reset.h>
#include <northbridge/amd/amdfam10/amdfam10.h> #include <northbridge/amd/amdfam10/amdfam10.h>
#include <southbridge/amd/common/reset.h>
#include "mcp55.h" #include "mcp55.h"
void do_soft_reset(void) void do_soft_reset(void)