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

gregory.menke at gsfc.nasa.gov gregory.menke at gsfc.nasa.gov
Fri Sep 26 13:44:29 UTC 2003


Chris Caudle writes:
 > gregm wrote:
 > > Thats great until you don't have a PC BIOS to do it
 > 
 > Wait a minute, all I'm saying is that I think cache/mmu
 > configuration should be done by the BSP code, not the application
 > code.

I agree completely.

 > 
 > > What happens when you want your bsp to work on an 
 > > x86 box with a broken or non-existant bios?
 > 
 > I would say that if the BIOS is broken, then the platform is not a
 > PC, and the pc386 BSP is not appropriate for that platform.  If you
 > encounter that case, you would need a BSP which was similar to
 > pc386, but handled the hardware setup explicitly, and had
 > replacements for the PCI configuration functionality provided by
 > the 32 bit BIOS extensions on modern hardware.
 > 

Does the pc386 bsp actually call the BIOS at runtime, or does it
exploit the configuration the BIOS provided at boot-time?  If the
latter, then the pc386 bsp is fundamentally no different than the rest
of the bsp's and like all the others, is responsible for configuring
its own hardware from top to bottom.  I agree using BIOS routines
where possible to ease portability makes a lot of sense, but a bsp
oughtn't just assume things are OK just because the BIOS established a
configuration.

I'm sure we've all had experience with PC's where the BIOS doesn't do
something right, are you sure that the unfortunate users of that kind
of hardware must either abandon RTEMS as an embedded OS or write their
own bsp?

 > 
 > However, after looking back at the original email, I see that I
 > jumped to the conclusion that the question was being asked of the
 > pc386 BSP, when actually the original question only stated i386
 > target.  If the target is in fact not a full PC architecture
 > machine, then Eric's admonition of verifying MMU setup is
 > appropriate.

I think the bsp should verify and possibly reconfigure the mmu & cache
and interrupts regardless of what hardware its running on.  Just
because the bios establishes some basic configuration doesn't mean its
going to be done right or usefully.

Gregm





More information about the users mailing list