<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/your-pc-still-has-a-keyboard-controller-interface-from-1984-and-linux-keeps-it-as-its-second-way-to-amcdjxy9o" -->

---
title: Your PC still has a keyboard controller interface from...
description: The Intel 8042 keyboard controller from the 1984 IBM PC/AT was originally repurposed to help the 80286 escape protected mode via a CPU reset, since the 286 had...
canonical: https://daily.dev/posts/your-pc-still-has-a-keyboard-controller-interface-from-1984-and-linux-keeps-it-as-its-second-way-to-amcdjxy9o
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Your PC still has a keyboard controller interface from 1984, and Linux keeps it as its second way to reboot | daily.dev
og:description: The Intel 8042 keyboard controller from the 1984 IBM PC/AT was originally repurposed to help the 80286 escape protected mode via a CPU reset, since the 286 had...
og:url: https://daily.dev/posts/your-pc-still-has-a-keyboard-controller-interface-from-1984-and-linux-keeps-it-as-its-second-way-to-amcdjxy9o
og:image: https://api.daily.dev/og/posts/AmCdJxy9o.png
og:image:alt: Your PC still has a keyboard controller interface from 1984, and Linux keeps it as its second way to reboot
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Your PC still has a keyboard controller interface from 1984, and Linux keeps it as its second way to reboot

**[XDA Developers](https://daily.dev/sources/xda-developers)** · 6 min read · 0 upvotes · 0 comments

## Summary

The Intel 8042 keyboard controller from the 1984 IBM PC/AT was originally repurposed to help the 80286 escape protected mode via a CPU reset, since the 286 had no instruction to return to real mode. Writing 0xFE to I/O port 0x64 pulses a system reset, a mechanism that survives as a legacy interface on modern x86 platforms like Intel's Arrow Lake and is still tried early in the Linux kernel's reboot fallback chain, just before more esoteric last-resort methods like deliberately triggering a triple fault. Modern chipsets still decode ports 0x60 and 0x64 as the keyboard controller interface and forward them over eSPI, even though the physical 8042 chip disappeared decades ago.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://www.xda-developers.com/your-pc-still-keyboard-controller-1984-linux-second-way-reboot>

## Questions this post answers

### What does writing 0xFE to I/O port 0x64 do on an x86 PC?

Writing 0xFE to I/O port 0x64 tells the legacy 8042 keyboard controller interface to pulse output-port bit 0 low for about six microseconds, briefly asserting the system reset line and causing the CPU to restart from its reset vector. This mechanism dates back to the 1984 IBM PC/AT, where it let 80286 protected-mode software return to real mode since no native instruction existed for that transition. It still works on modern Intel platforms like Arrow Lake-S, which forward the access over eSPI.

_Anyone digging into low-level reset internals can find kernel-level explainers like this through daily.dev._

### Why does the Linux kernel still use the keyboard controller reset method?

The Linux kernel keeps the keyboard-controller reset (writing 0xFE to port 0x64) near the front of its reboot fallback sequence, even though newer mechanisms like the ACPI reset register at port 0xCF9 usually succeed first. It also retains a deliberate triple-fault trigger as a last-resort reset method. Both approaches survive because some old software or broken hardware may still depend on them, decades after their original purpose became obsolete.

_Kernel maintainers tracking legacy fallback paths often follow deep-dive hardware stories via daily.dev._

### How does triggering a triple fault reset an x86 CPU?

A triple fault occurs when an exception happens while the processor is already failing to invoke another exception handler, escalating to a double fault, and then the double-fault handler itself cannot be invoked either, putting the 80286 into a shutdown cycle. Motherboard hardware detects that shutdown cycle and asserts RESET. One way to provoke it deliberately is loading an interrupt descriptor table with a zero-length limit and then triggering an interrupt.

_Developers exploring CPU exception handling internals can surface explainers like this on daily.dev._

## Similar posts on daily.dev

- [Legacy PC design misery](https://daily.dev/posts/legacy-pc-design-misery-jkmxt8hpk) · Lobsters · 0 upvotes · 0 comments
- [Motherboards still have a port that nobody has needed in 20 years, but there's a real reason why](https://daily.dev/posts/motherboards-still-have-a-port-that-nobody-has-needed-in-20-years-but-there-s-a-real-reason-why-ftbwjopfp) · XDA Developers · 1 upvotes · 0 comments
- [Your modern motherboard still needs a chip designed for decades-old PC hardware](https://daily.dev/posts/your-modern-motherboard-still-needs-a-chip-designed-for-decades-old-pc-hardware-l5vikcbod) · XDA Developers · 0 upvotes · 0 comments
- [Linux 7.1 x86/x86\_64 Aligns With Other Architectures Now For Supporting Custom Restart Handlers](https://daily.dev/posts/linux-7-1-x86-x86-64-aligns-with-other-architectures-now-for-supporting-custom-restart-handlers-p6thxymb3) · Phoronix · 0 upvotes · 0 comments
- [z8086: Rebuilding the 8086 from Original Microcode](https://daily.dev/posts/z8086-rebuilding-the-8086-from-original-microcode-zvcpgwewn) · Two Stop Bits · 0 upvotes · 0 comments

---

Tags: [#linux](https://daily.dev/tags/linux), [#architecture](https://daily.dev/tags/architecture), [#firmware](https://daily.dev/tags/firmware), [#reverse-engineering](https://daily.dev/tags/reverse-engineering)

[View this post on daily.dev](https://daily.dev/posts/your-pc-still-has-a-keyboard-controller-interface-from-1984-and-linux-keeps-it-as-its-second-way-to-amcdjxy9o)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Your PC still has a keyboard controller interface from 1984, and Linux keeps it as its second way to reboot","url":"https://daily.dev/posts/your-pc-still-has-a-keyboard-controller-interface-from-1984-and-linux-keeps-it-as-its-second-way-to-amcdjxy9o","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/your-pc-still-has-a-keyboard-controller-interface-from-1984-and-linux-keeps-it-as-its-second-way-to-amcdjxy9o"},"datePublished":"2026-08-17T16:02:16.936Z","dateModified":"2026-09-14T06:43:22.850Z","description":"The Intel 8042 keyboard controller from the 1984 IBM PC/AT was originally repurposed to help the 80286 escape protected mode via a CPU reset, since the 286 had...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/10b1ae480d8186c56ab47b7d62fdc502?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/10b1ae480d8186c56ab47b7d62fdc502?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"XDA Developers","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"XDA Developers","logo":"https://media.daily.dev/image/upload/s--kCg6yyAP--/f_auto,q_auto/v1774964407/logos/xda-developers?_a=BAMAMiWQ0","url":"https://daily.dev/sources/xda-developers"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/your-pc-still-has-a-keyboard-controller-interface-from-1984-and-linux-keeps-it-as-its-second-way-to-amcdjxy9o","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"linux,architecture,firmware,reverse-engineering","timeRequired":"PT6M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"XDA Developers","item":"https://daily.dev/sources/xda-developers"},{"@type":"ListItem","position":3,"name":"Your PC still has a keyboard controller interface from 1984, and Linux keeps it as its second way to reboot"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/your-pc-still-has-a-keyboard-controller-interface-from-1984-and-linux-keeps-it-as-its-second-way-to-amcdjxy9o#faq","mainEntity":[{"@type":"Question","name":"What does writing 0xFE to I/O port 0x64 do on an x86 PC?","acceptedAnswer":{"@type":"Answer","text":"Writing 0xFE to I/O port 0x64 tells the legacy 8042 keyboard controller interface to pulse output-port bit 0 low for about six microseconds, briefly asserting the system reset line and causing the CPU to restart from its reset vector. This mechanism dates back to the 1984 IBM PC/AT, where it let 80286 protected-mode software return to real mode since no native instruction existed for that transition. It still works on modern Intel platforms like Arrow Lake-S, which forward the access over eSPI. Anyone digging into low-level reset internals can find kernel-level explainers like this through daily.dev."}},{"@type":"Question","name":"Why does the Linux kernel still use the keyboard controller reset method?","acceptedAnswer":{"@type":"Answer","text":"The Linux kernel keeps the keyboard-controller reset (writing 0xFE to port 0x64) near the front of its reboot fallback sequence, even though newer mechanisms like the ACPI reset register at port 0xCF9 usually succeed first. It also retains a deliberate triple-fault trigger as a last-resort reset method. Both approaches survive because some old software or broken hardware may still depend on them, decades after their original purpose became obsolete. Kernel maintainers tracking legacy fallback paths often follow deep-dive hardware stories via daily.dev."}},{"@type":"Question","name":"How does triggering a triple fault reset an x86 CPU?","acceptedAnswer":{"@type":"Answer","text":"A triple fault occurs when an exception happens while the processor is already failing to invoke another exception handler, escalating to a double fault, and then the double-fault handler itself cannot be invoked either, putting the 80286 into a shutdown cycle. Motherboard hardware detects that shutdown cycle and asserts RESET. One way to provoke it deliberately is loading an interrupt descriptor table with a zero-length limit and then triggering an interrupt. Developers exploring CPU exception handling internals can surface explainers like this on daily.dev."}}]}
```

