1*83d290c5STom Rini /* SPDX-License-Identifier: GPL-2.0+ */ 2d1cd0459SSimon Glass /* 3d1cd0459SSimon Glass * Copyright (c) 2014 Google, Inc 4d1cd0459SSimon Glass */ 5d1cd0459SSimon Glass 6d1cd0459SSimon Glass #ifndef _post_h 7d1cd0459SSimon Glass #define _post_h 8d1cd0459SSimon Glass 9d1cd0459SSimon Glass /* port to use for post codes */ 10d1cd0459SSimon Glass #define POST_PORT 0x80 11d1cd0459SSimon Glass 12d1cd0459SSimon Glass /* post codes which represent various stages of init */ 13d1cd0459SSimon Glass #define POST_START 0x1e 14d1cd0459SSimon Glass #define POST_CAR_START 0x1f 1570a09c6cSSimon Glass #define POST_CAR_SIPI 0x20 1670a09c6cSSimon Glass #define POST_CAR_MTRR 0x21 1770a09c6cSSimon Glass #define POST_CAR_UNCACHEABLE 0x22 1870a09c6cSSimon Glass #define POST_CAR_BASE_ADDRESS 0x23 1970a09c6cSSimon Glass #define POST_CAR_MASK 0x24 2070a09c6cSSimon Glass #define POST_CAR_FILL 0x25 2170a09c6cSSimon Glass #define POST_CAR_ROM_CACHE 0x26 2270a09c6cSSimon Glass #define POST_CAR_MRC_CACHE 0x27 2370a09c6cSSimon Glass #define POST_CAR_CPU_CACHE 0x28 24d1cd0459SSimon Glass #define POST_START_STACK 0x29 25d1cd0459SSimon Glass #define POST_START_DONE 0x2a 2670a09c6cSSimon Glass #define POST_CPU_INIT 0x2b 278e0df066SSimon Glass #define POST_EARLY_INIT 0x2c 288e0df066SSimon Glass #define POST_CPU_INFO 0x2d 2965dd74a6SSimon Glass #define POST_PRE_MRC 0x2e 3065dd74a6SSimon Glass #define POST_MRC 0x2f 31fde46777SSimon Glass #define POST_DRAM 0x30 32fde46777SSimon Glass #define POST_LAPIC 0x31 33b7ef3bffSBin Meng #define POST_OS_RESUME 0x40 3465dd74a6SSimon Glass 3565dd74a6SSimon Glass #define POST_RAM_FAILURE 0xea 3695a5a474SBin Meng #define POST_BIST_FAILURE 0xeb 3795a5a474SBin Meng #define POST_CAR_FAILURE 0xec 38b7ef3bffSBin Meng #define POST_RESUME_FAILURE 0xed 39d1cd0459SSimon Glass 40d1cd0459SSimon Glass /* Output a post code using al - value must be 0 to 0xff */ 41d1cd0459SSimon Glass #ifdef __ASSEMBLY__ 42d1cd0459SSimon Glass #define post_code(value) \ 43d1cd0459SSimon Glass movb $value, %al; \ 44d1cd0459SSimon Glass outb %al, $POST_PORT 45d1cd0459SSimon Glass #else 4670a09c6cSSimon Glass #include <asm/io.h> 4770a09c6cSSimon Glass post_code(int code)48d1cd0459SSimon Glassstatic inline void post_code(int code) 49d1cd0459SSimon Glass { 50d1cd0459SSimon Glass outb(code, POST_PORT); 51d1cd0459SSimon Glass } 52d1cd0459SSimon Glass #endif 53d1cd0459SSimon Glass 54d1cd0459SSimon Glass #endif 55