Re: Accessing shared physical memory

Richard B. Johnson (root@chaos.analogic.com)
Sat, 13 Nov 1999 14:13:53 -0500 (EST)


On Fri, 12 Nov 1999, Pavel Machek wrote:

> Hi!
>
> > I am trying to access a board with shared memory at absolute address
> > 0xd0000. This is accessible in 'real-mode' on the ISA bus as
> > D000:0000.
>
> Dirty method is ptr = (short *) 0xc00d0000; It is not clean, not
> portable, not recommended, but it should work.
>

Yes. But this is what I have found on some Gateway Pentiums:

If I access a device that is below 1 megabyte, using a flat-mode
(32-bits, starting at 0), segment descriptor, the "below 1 megbyte"
address bit, that some use to save bits in the decode, is active so
such a device can be accessed. However, if I access it through Linux's
segment descriptor, this bit is not set. This means that boards that
use this bit in the decode are invisible to Linux unless seen though
a segment descriptor that gives 1:1 virtual to physical mapping.

This invisibility is strange because the MMU is supposed to translate
to physical regardless of how it was generated.

Cheers,
Dick Johnson

Penguin : Linux version 2.3.13 on an i686 machine (400.59 BogoMips).
Warning : It's hard to remain at the trailing edge of technology.

-
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/