blob: 1360bd53b1e044bb8a6d72d521bd650e38100ad6 [file] [log] [blame]
Felix Held44f41532020-12-09 02:01:16 +01001/* SPDX-License-Identifier: GPL-2.0-only */
2
3#include <arch/io.h>
4#include <cf9_reset.h>
5#include <reset.h>
Felix Held44f41532020-12-09 02:01:16 +01006#include <soc/southbridge.h>
7#include <amdblocks/acpimmio.h>
8#include <amdblocks/reset.h>
9
Felix Held44f41532020-12-09 02:01:16 +010010void do_cold_reset(void)
11{
12 /* De-assert and then assert all PwrGood signals on CF9 reset. */
13 pm_write16(PWR_RESET_CFG, pm_read16(PWR_RESET_CFG) |
14 TOGGLE_ALL_PWR_GOOD);
15 outb(RST_CPU | SYS_RST, RST_CNT);
16}
17
18void do_warm_reset(void)
19{
Marshall Dawson3e1943e2021-05-06 16:08:09 -060020 /* Warm resets are not supported and must be executed as cold */
21 pm_write16(PWR_RESET_CFG, pm_read16(PWR_RESET_CFG) |
22 TOGGLE_ALL_PWR_GOOD);
Felix Held44f41532020-12-09 02:01:16 +010023 outb(RST_CPU | SYS_RST, RST_CNT);
24}
25
26void do_board_reset(void)
27{
Felix Held44f41532020-12-09 02:01:16 +010028 do_cold_reset();
29}