Re: Wierd code in Entry.S

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 2009-07-15 at 00:38 -0600, Grant Grundler wrote:
> On Fri, Jul 10, 2009 at 11:18:21AM -0500, James Bottomley wrote:
> > On Fri, 2009-07-10 at 11:55 -0400, John David Anglin wrote:
> ...
> > > Your comment would explain why I
> > > don't see this on c3750.  Could this affect PA8700?
> > 
> > In theory it would affect every box running a 64 bit kernel.
> 
> Yes, regarding corrupting bit-44 but not U-bit.
> 
> IIRC, only pa880 and pa8900 pay attention to the U-bit.
> I thought all the previous CPUs ignored U-bit.

Um, no, almost all pa chips use it ... it's the way we make coherent
memory on the very old 710 and similar systems: use an ordinary kmalloc
and turn off caching in the map.  The 715 class systems with the oldest
pa chips don't respect the U bit ... these are the ones we have to pull
the driver cache flushing tricks on to get them working.

We also use the U bit for ioremaps.

> > We
> > actually set PAGE_NO_CACHE on ioremaps(), so it's spreading out from the
> > PCI device space.
> 
> Yes - but only ZX1 chipset (e.g. rp3440 and C8000) uses IO space that
> is outside of F-space. F-space is hardwired to be uncachable by the CPU.

OK, so we don't really use the concept of F-Space in the linux kernel
virtual memory map on parisc linux.  What we do is map the whole of
memory into the virtual address space, but none of the I/O space.  the
readX/writeX macros actually go via absolute accesses.  Because the
kernel virtual addresses are offset mapped from the absolute addresses,
we do get a hole in the virtual map corresponding to F-Space (simply
because there's no accessible memory there) but we're actually able to
fill that hole later with virtual mappings if we choose.  The net result
is that I/O devices aren't mapped into the kernel at all until we call
ioremap.  If a device uses readX/writeX only, it never actually gets an
appearance in our virtual space because we simply use absolute accesses
to get the data to and from the device.  If it really needs a remapped
area, we use ioremap, then it does appear in our virtual map, and we set
the U bit on the mapping.

James


--
To unsubscribe from this list: send the line "unsubscribe linux-parisc" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux SoC]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux