> Hello All,
> 
> We're working on a driver for a PCI card, we're currently running into a
> problem that's symptomatic of a cache coherency problem.  We have a area of
> memory that we manipulate and pass a physical address to our card.  In other
> OS's (Linux, NT), before we manipulate this memory area, we mark the area as
> non-cachable.  Are there similar operations/system calls we can use in
> FreeBSD?  Are there any FAQ's, Docs or man-pages that explain memory
> usage/attributes?

Take a look at <sys/memrange.h>, and particularly mem_range_attr_set().

*However*, since the PC architecture is strongly cache coherent, you 
probably have a problem with the design or implementation of your 
driver:adapter protocol.  Marking an entire region of memory as 
uncacheable is *very* inefficient; there are much better ways of 
maintaining synchronisation without doing this.

-- 
... every activity meets with opposition, everyone who acts has his
rivals and unfortunately opponents also.  But not because people want
to be opponents, rather because the tasks and relationships force
people to take different points of view.  [Dr. Fritz Todt]
           V I C T O R Y   N O T   V E N G E A N C E




To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message

Reply via email to