xref: /rk3399_rockchip-uboot/arch/x86/include/asm/post.h (revision ae1b939930b0fffc062bb99196ec22e19afcc7e8)
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
1670a09c6cSSimon Glass #define POST_CAR_SIPI		0x20
1770a09c6cSSimon Glass #define POST_CAR_MTRR		0x21
1870a09c6cSSimon Glass #define POST_CAR_UNCACHEABLE	0x22
1970a09c6cSSimon Glass #define POST_CAR_BASE_ADDRESS	0x23
2070a09c6cSSimon Glass #define POST_CAR_MASK		0x24
2170a09c6cSSimon Glass #define POST_CAR_FILL		0x25
2270a09c6cSSimon Glass #define POST_CAR_ROM_CACHE	0x26
2370a09c6cSSimon Glass #define POST_CAR_MRC_CACHE	0x27
2470a09c6cSSimon Glass #define POST_CAR_CPU_CACHE	0x28
25d1cd0459SSimon Glass #define POST_START_STACK	0x29
26d1cd0459SSimon Glass #define POST_START_DONE		0x2a
2770a09c6cSSimon Glass #define POST_CPU_INIT		0x2b
288e0df066SSimon Glass #define POST_EARLY_INIT		0x2c
298e0df066SSimon Glass #define POST_CPU_INFO		0x2d
3065dd74a6SSimon Glass #define POST_PRE_MRC		0x2e
3165dd74a6SSimon Glass #define POST_MRC		0x2f
32fde46777SSimon Glass #define POST_DRAM		0x30
33fde46777SSimon Glass #define POST_LAPIC		0x31
34*b7ef3bffSBin Meng #define POST_OS_RESUME		0x40
3565dd74a6SSimon Glass 
3665dd74a6SSimon Glass #define POST_RAM_FAILURE	0xea
3795a5a474SBin Meng #define POST_BIST_FAILURE	0xeb
3895a5a474SBin Meng #define POST_CAR_FAILURE	0xec
39*b7ef3bffSBin Meng #define POST_RESUME_FAILURE	0xed
40d1cd0459SSimon Glass 
41d1cd0459SSimon Glass /* Output a post code using al - value must be 0 to 0xff */
42d1cd0459SSimon Glass #ifdef __ASSEMBLY__
43d1cd0459SSimon Glass #define post_code(value) \
44d1cd0459SSimon Glass 	movb	$value, %al; \
45d1cd0459SSimon Glass 	outb	%al, $POST_PORT
46d1cd0459SSimon Glass #else
4770a09c6cSSimon Glass #include <asm/io.h>
4870a09c6cSSimon Glass 
post_code(int code)49d1cd0459SSimon Glass static inline void post_code(int code)
50d1cd0459SSimon Glass {
51d1cd0459SSimon Glass 	outb(code, POST_PORT);
52d1cd0459SSimon Glass }
53d1cd0459SSimon Glass #endif
54d1cd0459SSimon Glass 
55d1cd0459SSimon Glass #endif
56