Re: newbus bus access routines and bus_space_barrier()
- From: Warner Losh <imp@xxxxxxxxxx>
- Date: Sat, 15 Oct 2011 21:45:23 -0600
Usually they are needed, but we get away without them often because they are needed in a limited set of circumstances and we have memory barriers in our locking primitives.
Warner
On Oct 15, 2011, at 7:48 PM, Adrian Chadd wrote:
Hi all,
I'm not clued up on the way of the bus API, so please excuse the
newbie questions.
Nathan and I found that ath(4) wasn't working for a user because of a
missing bus barrier. Ath trips it up because it does lots of loops of
register reads/writes through the bus stream API rather than the
normal bus API.
It does this because it handles the register value swapping in
hardware rather than in software.
The correct fix is to teach ath(4) to use bus_space_barrier() calls
when doing stream calls, which I can do, but the newbus documentation
points out that both normal and stream bus access doesn't enforce
ordering, and barrier calls are needed. But I don't see lots of
bus_space_barrier() calls everywhere. Why's that?
Thanks,
Adrian
_______________________________________________
freebsd-arch@xxxxxxxxxxx mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-arch
To unsubscribe, send any mail to "freebsd-arch-unsubscribe@xxxxxxxxxxx"
_______________________________________________
freebsd-arch@xxxxxxxxxxx mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-arch
To unsubscribe, send any mail to "freebsd-arch-unsubscribe@xxxxxxxxxxx"
- Follow-Ups:
- Re: newbus bus access routines and bus_space_barrier()
- From: Adrian Chadd
- Re: newbus bus access routines and bus_space_barrier()
- From: Adrian Chadd
- Re: newbus bus access routines and bus_space_barrier()
- References:
- newbus bus access routines and bus_space_barrier()
- From: Adrian Chadd
- newbus bus access routines and bus_space_barrier()
- Prev by Date: newbus bus access routines and bus_space_barrier()
- Next by Date: Re: newbus bus access routines and bus_space_barrier()
- Previous by thread: newbus bus access routines and bus_space_barrier()
- Next by thread: Re: newbus bus access routines and bus_space_barrier()
- Index(es):
Relevant Pages
|