[LinuxBIOS] Opteron caching of device memory
myles at pel.cs.byu.edu
Thu Jun 14 22:39:14 CEST 2007
> Myles Watson wrote:
> >> On 6/13/07, Myles Watson <myles at pel.cs.byu.edu> wrote:
> >>> I'm using LinuxBIOS on my Tyan s2892. I have a device that maps a lot
> >>> of the memory space, but I'm struggling trying to get the Opteron to
> >>> read and write to my device in larger blocks. I have set the variable
> >>> MTRRs in the device driver to writeback (witnessed by /proc/mtrr), but
> >>> still get 64-bit accesses instead of 64-byte (cache line).
> >> wirte-back or write-combining?
> >> YH
> > I did write-back, because I would like it to be treated as much like
> > DRAM as possible.
> > Myles
> Hi Myles,
> I am not an Opteron expert but here are a few items you might want to
> I assume that this is a PCI/E/X device. Is the device memory BAR and
> bridge memory set as prefetchable?
It is HyperTransport, but pretty much the same. I set it as prefetchable.
The reads actually work, it's the writes that come through 8-bytes at a
> Check that you don't have any overlapping mtrrs. I think that they
> resolve to the most restrictive setting
> Check the PAT setting for that memory. The memory page will resolve to
> the most restrictive setting. (Note I am not sure if Linux uses PAT)
> See section 7.6 of the System Programmers Guide Volume 2. You can get
> You might get some performance by caching the device memory space but I
> don't think that it is the best use of the cache. If you are moving a
> lot memory between your device and system memory it is best that the
> driver DMA it in instead of reading it in with the CPU.
I'm using the device to explore paging activity, so I'm not after speed as
much as I am trying to make the device seem as much like RAM as possible
Thanks for your help,
More information about the coreboot