So.. We use an embedded RTOS.. It's basically DOS, more or less. Problem is.. The company that wrote it has shut down, thus ending all support.
This has happened at an inopportune time as we're migrating to UEFI from Legacy BIOS booting.
One problem that we're encountering that has us scratching our heads a bit.. The RTOS program has a reboot function in it.. Basically, it creates a "triple fault" condition to cause a reboot..
This works perfectly fine with a legacy BIOS, but.. Is, at best, intermittent with UEFI systems.
on some of them, we'll hear three beeps, then after about a minute and a half to 2 minutes.. The computer DOES restart. On other systems.. It basically hangs.
This is the code that is in the reboot function from On-Time RTOS..
//////////////////////////////////////////////////////////////////////////////// // Intended to cause a triple fault by destroying the IDT and then // causing a GPF by destroying the Stack Segment register //------------------------------------------------------------------------------ __asm cli // load IDTR __asm sub esp, 8 __asm mov word ptr [esp], 0 __asm mov dword ptr [esp+2], 0 __asm lidt fword ptr [esp] __asm mov ax, -1 __asm mov ss, ax ; that should kill him!
While On Time has ceased operations.. Their website with documentation is still online at http://www.on-time.com/rtos-32-docs/
This is their specific doc on the function.. http://www.on-time.com/rtos-32-docs/rttarget-32/reference-manual/system-functions/rtreboot.htm
and you can see, it's.. Limited in description, just saying
RTReboot merely puts the CPU in shutdown mode through a triple fault. This mode is signalled by a special bus cycle. Most motherboards detect this cycle and generate a hardware reset. Thus, the specific reaction to shutdown mode can depend on your motherboard's design.
finding anything at quite this level has been challenging.. We've tried a few things that.. Haven't really panned out.. So.. Throwing it out to all here to see if anyone has any thoughts on this. But more complicated than clicking "Shutdown" but.. It shouldn't be as hard as it's been I wouldn't think.