/* * This file is part of the coreboot project. * * Copyright 2015 Google Inc * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ /* I/O delay between post codes on failure */ #define LHLT_DELAY 0x50000 .text .global car_stage_entry car_stage_entry: call romstage_c_entry #include "src/drivers/intel/fsp1_1/after_raminit.S" movb $0x69, %ah jmp .Lhlt .Lhlt: xchg %al, %ah #if IS_ENABLED(CONFIG_POST_IO) outb %al, $CONFIG_POST_IO_PORT #else post_code(POST_DEAD_CODE) #endif movl $LHLT_DELAY, %ecx .Lhlt_Delay: outb %al, $0xED loop .Lhlt_Delay jmp .Lhlt