blob: 939b6fa57e3930be789402f9b070f7bf41a9fe2a [file] [log] [blame]
Tom Rini83d290c2018-05-06 17:58:06 -04001/* SPDX-License-Identifier: GPL-2.0+ */
Simon Glassd1cd0452014-11-12 22:42:09 -07002/*
3 * Copyright (c) 2014 Google, Inc
Simon Glassd1cd0452014-11-12 22:42:09 -07004 */
5
6#ifndef _post_h
7#define _post_h
8
9/* port to use for post codes */
10#define POST_PORT 0x80
11
12/* post codes which represent various stages of init */
13#define POST_START 0x1e
14#define POST_CAR_START 0x1f
Simon Glass70a09c62014-11-12 22:42:10 -070015#define POST_CAR_SIPI 0x20
16#define POST_CAR_MTRR 0x21
17#define POST_CAR_UNCACHEABLE 0x22
18#define POST_CAR_BASE_ADDRESS 0x23
19#define POST_CAR_MASK 0x24
20#define POST_CAR_FILL 0x25
21#define POST_CAR_ROM_CACHE 0x26
22#define POST_CAR_MRC_CACHE 0x27
23#define POST_CAR_CPU_CACHE 0x28
Simon Glassd1cd0452014-11-12 22:42:09 -070024#define POST_START_STACK 0x29
25#define POST_START_DONE 0x2a
Simon Glass70a09c62014-11-12 22:42:10 -070026#define POST_CPU_INIT 0x2b
Simon Glass8e0df062014-11-12 22:42:23 -070027#define POST_EARLY_INIT 0x2c
28#define POST_CPU_INFO 0x2d
Simon Glass65dd74a2014-11-12 22:42:28 -070029#define POST_PRE_MRC 0x2e
30#define POST_MRC 0x2f
Simon Glassfde46772016-03-06 19:28:18 -070031#define POST_DRAM 0x30
32#define POST_LAPIC 0x31
Bin Mengb7ef3bf2017-04-21 07:24:30 -070033#define POST_OS_RESUME 0x40
Simon Glass65dd74a2014-11-12 22:42:28 -070034
35#define POST_RAM_FAILURE 0xea
Bin Meng95a5a472014-12-12 21:05:30 +080036#define POST_BIST_FAILURE 0xeb
37#define POST_CAR_FAILURE 0xec
Bin Mengb7ef3bf2017-04-21 07:24:30 -070038#define POST_RESUME_FAILURE 0xed
Simon Glassd1cd0452014-11-12 22:42:09 -070039
40/* Output a post code using al - value must be 0 to 0xff */
41#ifdef __ASSEMBLY__
42#define post_code(value) \
43 movb $value, %al; \
44 outb %al, $POST_PORT
45#else
Simon Glass70a09c62014-11-12 22:42:10 -070046#include <asm/io.h>
47
Simon Glassd1cd0452014-11-12 22:42:09 -070048static inline void post_code(int code)
49{
50 outb(code, POST_PORT);
51}
52#endif
53
54#endif