reBoot code: can we detect if there is an AT keyboard controller?



AFAIK, the FreeBSD kernel still relies on a 90s codebase for rebooting... It uses the keyboard controller reset method to do a warm reboot.

I have had trouble with this method over the years... a Pentium Pro and more recently a Mac Pro with no keyboard controller. I have speculated that Mac laptops and blade servers would also lack the KBC. If Intel continues their progress of dropping deprecated hardware, the KBC could disappear in the next 3 to 5 years.

So could there be some intelligent software code to check the presence of this device, and if not present, use the alternate reboot? The ACPI reboot sequence, for example, works for FreeBSD 6.2 and later, on my Mac Pro quad Xeon, amd64.

Unfortunately, although the kernel detects the presence of a KBC during boot, it doesn't seem that this information gets stored as a global variable for later use. (I made this assertion a few times at freebsd-stable.) It seems like the logical course is to only reboot the keyboard controller if such a thing exists!!

Looking back at my notes and my previous research, it appears that the code is around where you can find the cpu_reset code near...

/* "good night, sweet prince .... <THUNK!>" */

Setting hw.acpi.handle_reboot=1 must bypass that. Could we force the use of this tunable when it's obvious that the KBC is missing?

Billy
_______________________________________________
freebsd-arch@xxxxxxxxxxx mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-arch
To unsubscribe, send any mail to "freebsd-arch-unsubscribe@xxxxxxxxxxx"



Relevant Pages

  • Re: reBoot code: can we detect if there is an AT keyboard controller?
    ... keyboard controller reset method to do a warm reboot. ... the KBC could disappear in the next 3 to 5 years. ... besides just the keyboard controller such as flipping reset bits in I/O ...
    (freebsd-arch)
  • Re: Instant reboot with FreeBSD 6.3 and > 2GB RAM
    ... I will test it also on FreeBSD 7.0, but i assume that it will fix it there too. ... Many users using FreeNAS reporting this reboot problem on their machines with RAM> 2GB. ... detailed but from your description it looks like loader is causing that. ... The report is about 6.2-R but at least I've checked loader code and 7.x ...
    (freebsd-questions)
  • Re: Instant reboot with FreeBSD 6.3 and > 2GB RAM
    ... I will test it also on FreeBSD 7.0, but i assume that it will fix it there too. ... Many users using FreeNAS reporting this reboot problem on their machines with RAM> 2GB. ... detailed but from your description it looks like loader is causing that. ... The report is about 6.2-R but at least I've checked loader code and 7.x ...
    (freebsd-stable)
  • Re: reBoot code: can we detect if there is an AT keyboard controller?
    ... a Pentium Pro and more recently a Mac Pro with no keyboard controller. ... So could there be some intelligent software code to check the presence of this device, and if not present, use the alternate reboot? ... The ACPI reboot sequence, for example, works for FreeBSD 6.2 and later, on my Mac Pro quad Xeon, amd64. ...
    (freebsd-arch)
  • Re: Booting takes too long. Why? (/ was not properly dismounted)
    ... I have two PC's running FreeBSD and a Compaq laptop ... > or reboot using reboot now ... Does fsck succeed during boot? ... "fsck -y" until the filesystems are all marked clean, ...
    (freebsd-questions)