[x86] Application processor doing legacy port I/O?
Posted: Tue Apr 21, 2026 6:39 pm
Hey all, the Visopsys guy here.
I've finally gotten around to adding SMP to my kernel. A major problem I've encountered with my architecture is: application processors seem unable to do old-fashioned x86 port I/O to legacy devices that require it.
I've done some searching here and on the wider web, and come up empty-handed (perhaps my search terms weren't good enough to cut through all the chaff). I've tried working around it with a daemon-style process running on the boot processor, calling a special driver to do the I/O, but it's been unwieldy and so far not very successful.
What I'm wondering is: is there a way to map this stuff into an application processor's memory space? I confess I'm not too adept with the legacy hardware side of things - knowing how the old-fashioned ISA I/O bus works, how the processors are connected to it, etc.
I've finally gotten around to adding SMP to my kernel. A major problem I've encountered with my architecture is: application processors seem unable to do old-fashioned x86 port I/O to legacy devices that require it.
I've done some searching here and on the wider web, and come up empty-handed (perhaps my search terms weren't good enough to cut through all the chaff). I've tried working around it with a daemon-style process running on the boot processor, calling a special driver to do the I/O, but it's been unwieldy and so far not very successful.
What I'm wondering is: is there a way to map this stuff into an application processor's memory space? I confess I'm not too adept with the legacy hardware side of things - knowing how the old-fashioned ISA I/O bus works, how the processors are connected to it, etc.