RE: [PATCH] ARM MMU: add strongly-ordered memory type

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

 



> On Wed, 2008-08-06 at 07:28 -0500, Woodruff, Richard wrote:
> > > The code need to execute in a non-cached region.
> >
> > I don't think there is any guarantee that dirty cache line won't be
> > evicted to SDRAM even if your code uses uncached memory only. The CPU
> > is
> > allowed to do speculative reads from the normal cached memory and
> > these
> > reads may force a dirty cache line to be written back to memory. You
> > may
> > need to do at least a cache clean operation (invalidate not necessary).
> 
> I hope that is not necessary.

Probably not but need to check internally as well.

> As I indicated the code in question is small assembly dealing with
> hardware registers for clock and power.
> 
> This code at one point did make sure use barriers at entry which
> hopefully stop the ARM from being smart.  Also things like speculative
> access at the AXI were turned off.

You would need a DSB at the beginning to drain the write buffer (among
other things)

> And perhaps you even make my point in 'The CPU is allowed to do
> speculative reads from normal-cached-memory'.
>         !! I don't want some speculative branch prediction to fetch
> from who knows where when I've temporally shut off the memory
> controller !!

If you have a DMB at the end of your code, this ensures that all memory
accesses after the DMB (i.e. accesses to the SDRAM) are visible after
accesses before the barrier (i.e. the enabling of the SDRAM controller).

-- 
Catalin

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

[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux