PC memory is laid out like this:
|---- 0-640 ----|- 640-1M -|------ 1M-top ------|
| R R RR|
where the R's are various ROMs. When the system is turned on, the ROM space
"replaces" the 640k-1M region, which is then only accessible via
chipset-specific mechanisms (and may not even be visible as "memory" at that
point). If BIOS shadowing is turned on, then the BIOS copies selected or
all parts of the 640k-1M space to the hidden RAM, and then the RAM is
swapped in place of the ROM and marked as read-only.
The problem is that there's no standards whatsoever for accessing that
shadow RAM. It *might* be implemented as a 384k block that can be remapped
elsewhere --- or it might be available only via outb() and/or outw(). It's
entirely up to the chipset. And you might have trouble getting your hands
on sufficient chipset documentation to find out how to access it, to say
nothing of coming up with code that will work with *all* the chipsets out
there (it could easily be much larger than the 384k you hope to gain...).
-- brandon s. allbery os/2,linux,solaris,perl allbery@kf8nh.apk.net system administrator kthkrb,heimdal,gnome,rt allbery@ece.cmu.edu carnegie mellon / electrical and computer engineering kf8nh We are Linux. Resistance is an indication that you missed the point.
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/