Memory mapped IO for an ISA device

Memory mapped IO for an ISA device

Post by Jason Stoke » Tue, 31 Oct 2000 02:06:19

I have an ISA network card that can use a 4 KB memory-mapped address
space for communication.  It's a PnP card and it can locate the base
address for this window anywhere within an (aligned) 24 bit address
space.  My question is: where should it *actually* locate this address
space so that Linux reserves this spaces for the device, not system RAM?

Now I know that Linux maps bus address space into a high memory area,
and an ISA device driver must use ioremap to translate base addresses
into offsets into kernel memory.  But I don't know how this memory is
reserved in the first place.  How does the memory address translation
hardware become aware that a particular range of physical addresses is
assigned to an ISA device, not system RAM?  How does Linux ensure that a
given range of addresses should be mapped to an IO device, not RAM?


1. Mapping IO device to Cacheable memory

 I am trying to map an IO peripheral device to _Cacheable_ memory, to
improve performance of read/write accesses to it. Is there a kernel
routine to do so? vremap()? Normally IO devices are mapped as uncacheable.
Is this specified as default anywhere in the kernel or special registers?
  This is on Pentium Pro, with Memory Type Range Registers (MTRRs)
enabled. Will I need to modify MTRR group of registers explicity (using
RDMSR/WRMSR instructions) to mark the mapped region as Cacheable?

Thanks for any responses,

2. PPP problem - one for the Gurus!

3. mapping ISA device memory in kernel space

4. The Greatest News Ever!

5. ISA memory mapped to userspace OR kernel char device?

6. gcache error with Apache + open SSL

7. memory mapped io, where to start?

8. LCP: timeout sending config request

9. PCI memory mapped IO

10. memory mapped IO

11. memory mapped io in pci driver for ppc?

12. Find out size of memory mapped IO on PCI-dev

13. memory mapped IO