Hello Toan,
Wednesday, March 14, 2018, 10:13:13 AM, you wrote:
TLm> I'm so sorry if this question does not really relate to TLm> Coreboot. But I'm facing a serious problem and trying to get help TLm> from you who have excellent knowledge about BIOS and HW.
I'll answer just this one time. Please use your Intel support options for non-coreboot related issues.
TLm> I have an Intel Reference Board. I was trying to force BIOS to wait 1 second in SEC phase. TLm> I inserted these assemble code (BIOS wait function) into very TLm> first of ProtectedModeEntryPoint in Flat32.asm file:
TLm> MOV CX, 0FH TLm> MOV DX, 4240H TLm> MOV AH, 86H TLm> INT 15H
TLm> Then, the board stopped working. Status code showed "00". TLm> Even when I re-flashed its original BIOS, it's still not worked.
TLm> Could anyone please help me to figure out what's happen here? TLm> I appreciate your helps.
The SEC phase is the earliest stage of the firmware init. The CPU has been just reset; there are no BIOS services available and the interrupt table has not even been set up yet (no RAM either), so the CPU hangs when you try to invoke an interrupt with a non-existing handler.
The best you can do in this situation is probably a counted loop (with a big counter because the modern CPUs are very fast), maybe with some "out" instructions to an unused port (or even 80h) to slow it down a little.
I don't know why original BIOS did not work, maybe verify that you flashed the correct binary.