1*d1cd0459SSimon Glass /* 2*d1cd0459SSimon Glass * Copyright (c) 2014 Google, Inc 3*d1cd0459SSimon Glass * 4*d1cd0459SSimon Glass * SPDX-License-Identifier: GPL-2.0+ 5*d1cd0459SSimon Glass */ 6*d1cd0459SSimon Glass 7*d1cd0459SSimon Glass #ifndef _post_h 8*d1cd0459SSimon Glass #define _post_h 9*d1cd0459SSimon Glass 10*d1cd0459SSimon Glass /* port to use for post codes */ 11*d1cd0459SSimon Glass #define POST_PORT 0x80 12*d1cd0459SSimon Glass 13*d1cd0459SSimon Glass /* post codes which represent various stages of init */ 14*d1cd0459SSimon Glass #define POST_START 0x1e 15*d1cd0459SSimon Glass #define POST_CAR_START 0x1f 16*d1cd0459SSimon Glass 17*d1cd0459SSimon Glass #define POST_START_STACK 0x29 18*d1cd0459SSimon Glass #define POST_START_DONE 0x2a 19*d1cd0459SSimon Glass 20*d1cd0459SSimon Glass /* Output a post code using al - value must be 0 to 0xff */ 21*d1cd0459SSimon Glass #ifdef __ASSEMBLY__ 22*d1cd0459SSimon Glass #define post_code(value) \ 23*d1cd0459SSimon Glass movb $value, %al; \ 24*d1cd0459SSimon Glass outb %al, $POST_PORT 25*d1cd0459SSimon Glass #else 26*d1cd0459SSimon Glass static inline void post_code(int code) 27*d1cd0459SSimon Glass { 28*d1cd0459SSimon Glass outb(code, POST_PORT); 29*d1cd0459SSimon Glass } 30*d1cd0459SSimon Glass #endif 31*d1cd0459SSimon Glass 32*d1cd0459SSimon Glass #endif 33