How to switch to real mode in a linux driver-Collection of common programming errors
I’ve got an intel-based SBC that I’m using in an embedded application. It’s got a Digital IO (DIO) port attached to a Fintek Super I/O chip. I want to be able to set the bits on the output lines of this port to control some other hardware.
Fortunately, the manufacturer’s BIOS comes with a function to do just this:
AX=6F09h
bl=
int 15h
Unfortunately I’m running 64-bit linux in protected mode. Is there any way I can call that bios interrupt, either from a user-space program or as a kernel driver if need be?
I can alternatively set registers directly on the Fintek chip, but this requires knowing exactly what pins on the chip are connected to the DIO header, and, of course, this changes from board revision to board revision.