blob: 51f89504d28bcd13e6d36af4fbf0591649899d8b [file] [log] [blame]
Patrick Georgi11f00792020-03-04 15:10:45 +01001/* SPDX-License-Identifier: GPL-2.0-only */
Nico Huber33fcaf92018-10-10 22:44:20 +02002
3#ifndef X86_CF9_RESET_H
4#define X86_CF9_RESET_H
5
6/* Reset control port */
7#define RST_CNT 0xcf9
8#define FULL_RST (1 << 3)
9#define RST_CPU (1 << 2)
10#define SYS_RST (1 << 1)
11
12/* Implement the bare reset, i.e. write to cf9. */
13void do_system_reset(void);
14void do_full_reset(void);
15
16/* Called by functions below before reset. */
Julius Wernercd49cce2019-03-05 16:53:33 -080017#if CONFIG(HAVE_CF9_RESET_PREPARE)
Nico Huber33fcaf92018-10-10 22:44:20 +020018void cf9_reset_prepare(void);
19#else
20static inline void cf9_reset_prepare(void) {}
21#endif
22
23/* Prepare for reset, run do_*_reset(), halt. */
24__noreturn void system_reset(void);
25__noreturn void full_reset(void);
26
27#endif /* X86_CF9_RESET_H */