xref: /openbmc/u-boot/arch/x86/include/asm/post.h (revision 70a09c6c)
1d1cd0459SSimon Glass /*
2d1cd0459SSimon Glass  * Copyright (c) 2014 Google, Inc
3d1cd0459SSimon Glass  *
4d1cd0459SSimon Glass  * SPDX-License-Identifier:	GPL-2.0+
5d1cd0459SSimon Glass  */
6d1cd0459SSimon Glass 
7d1cd0459SSimon Glass #ifndef _post_h
8d1cd0459SSimon Glass #define _post_h
9d1cd0459SSimon Glass 
10d1cd0459SSimon Glass /* port to use for post codes */
11d1cd0459SSimon Glass #define POST_PORT		0x80
12d1cd0459SSimon Glass 
13d1cd0459SSimon Glass /* post codes which represent various stages of init */
14d1cd0459SSimon Glass #define POST_START		0x1e
15d1cd0459SSimon Glass #define POST_CAR_START		0x1f
16*70a09c6cSSimon Glass #define POST_CAR_SIPI		0x20
17*70a09c6cSSimon Glass #define POST_CAR_MTRR		0x21
18*70a09c6cSSimon Glass #define POST_CAR_UNCACHEABLE	0x22
19*70a09c6cSSimon Glass #define POST_CAR_BASE_ADDRESS	0x23
20*70a09c6cSSimon Glass #define POST_CAR_MASK		0x24
21*70a09c6cSSimon Glass #define POST_CAR_FILL		0x25
22*70a09c6cSSimon Glass #define POST_CAR_ROM_CACHE	0x26
23*70a09c6cSSimon Glass #define POST_CAR_MRC_CACHE	0x27
24*70a09c6cSSimon Glass #define POST_CAR_CPU_CACHE	0x28
25d1cd0459SSimon Glass #define POST_START_STACK	0x29
26d1cd0459SSimon Glass #define POST_START_DONE		0x2a
27*70a09c6cSSimon Glass #define POST_CPU_INIT		0x2b
28d1cd0459SSimon Glass 
29d1cd0459SSimon Glass /* Output a post code using al - value must be 0 to 0xff */
30d1cd0459SSimon Glass #ifdef __ASSEMBLY__
31d1cd0459SSimon Glass #define post_code(value) \
32d1cd0459SSimon Glass 	movb	$value, %al; \
33d1cd0459SSimon Glass 	outb	%al, $POST_PORT
34d1cd0459SSimon Glass #else
35*70a09c6cSSimon Glass #include <asm/io.h>
36*70a09c6cSSimon Glass 
37d1cd0459SSimon Glass static inline void post_code(int code)
38d1cd0459SSimon Glass {
39d1cd0459SSimon Glass 	outb(code, POST_PORT);
40d1cd0459SSimon Glass }
41d1cd0459SSimon Glass #endif
42d1cd0459SSimon Glass 
43d1cd0459SSimon Glass #endif
44