PCI mmap - How do I access a PCI board address space?

Eric Valette eric.valette at free.fr
Fri Sep 26 07:51:13 UTC 2003


Chris Caudle wrote:
> Eric Valette wrote:
>   >Chris Caudle wrote:
>   >> If using a typical personal computer style X86, I think that the
>   >> machine BIOS should make sure that all of PCI memory space is
>   >> non-cacheable for you.
> 
> 
>>Not at all : How could the BIOS modyfy the way the CPU 
>>access PCI address space?
> 
> 
> The BIOS sets up the memory controller.
> My experience is with Compaq/HP Proliant servers, where I used RTEMS for testing new ASICS.  The Proliant BIOS is pretty standard X86, nothing really unusual, so I would expect that all Intel processor PC style systems would behave the same way.
> When the machine boots, the BIOS finds how much physical memory is installed, and configures the memory controller so that physical memory addresses are marked as cacheable, all other address ranges are not cacheable.
> On such a system, you just access memory mapped PCI devices without worrying about cache issues.  It just works.  Cache configuration should be handled by the BSP, and in the case of pc386 that configuration is effectively handled by the bootloader, so there is nothing for the BSP to do.
> 
> -- Chris Caudle


I disagree and can tell you that without enabling the MMU to turn 
caching off, the dec21xxx driver does not work on an standard ASUS board 
with a P5... The memory controller is *after* the MMU and nothing in an 
ix86 mmu (at least p3p3p5) enables to avoid caching of address. Thus is 
caching is one, a read for an address will never go the the memory bus...


-- 
    __
   /  `                   	Eric Valette
  /--   __  o _.          	6 rue Paul Le Flem
(___, / (_(_(__         	35740 Pace

Tel: +33 (0)2 99 85 26 76	Fax: +33 (0)2 99 85 26 76
E-mail: eric.valette at free.fr




More information about the users mailing list