/* * This routine reboots the machine by asking the keyboard * controller to pulse the reset-line low. We try that for a while, * and if it doesn't work, we do some other stupid things.
*/ staticinlinevoid kb_wait(void)
{ int i;
for (i = 0; i < 0x10000; i++) if ((inb_p(0x64) & 0x02) == 0) break;
}
/* XXX This ends up at the ARC firmware prompt ... */ void sni_machine_restart(char *command)
{ int i;
/* This does a normal via the keyboard controller like a PC.
We can do that easier ... */
local_irq_disable(); for (;;) { for (i = 0; i < 100; i++) {
kb_wait();
udelay(50);
outb_p(0xfe, 0x64); /* pulse reset low */
udelay(50);
}
}
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.