> I'd say these functions _could_ be optional, for a very limited use
> case.  On a uniprocessor system without any devices doing DMA, your
> cache will always be coherent; other than at reset, you'd never need to
> invalidate the cache and you'd never need to flush it at all.  So if
> there are any savings to be had by skipping those registers, this is
> where it is.

Just as a reminder, any wishbone masters connected to the ORPSoC / MinSoc 
arbiter other than the CPU core are actually DMA users, so they are more common 
than usually expected. For example, the Ethernet controller uses DMA 
exclusively in order to transfer data.

The debugging support also uses DMA in order to read the memory contents while 
the CPU is stalled, and I think you can also write to memory from gdb when 
halted at a breakpoint, so the debugger should be able to invalidate the cache 
too.

Therefore, if you have a cache, I'm guessing that you almost always need the 
ability to invalidate it.

Regards,
  rdiez
_______________________________________________
OpenRISC mailing list
OpenRISC@lists.openrisc.net
http://lists.openrisc.net/listinfo/openrisc

Reply via email to