[ECOS] MIPS cache or uncached memory

Nick Garnett nickg@ecoscentric.com
Sat May 3 14:31:00 GMT 2003

"Jimmy Zhang" <jzhang@elmic.com> writes:

> I know this question is not directly related to eCOS. However I can't
> find a better place with this many gurus. Please let me finish my
> question and then kick me out :-)
> How can I make part of MIPS kseg0 memory uncached ? I must uncache that
> region because it gives me too much trouble with DMA data, however, I
> don't want to uncache the whole kseg0 segment in order to get better
> performance.  Kseg0 is not mapped through TLB, so it seems I can't
> achieve my goal through TLB. 

kseg1 is an uncached duplicate mapping of kseg0. So just add
0x20000000 to the kseg0 address and access memory there. Or, better,
use the eCos HAL macros defined for this purpose.

> Cite from the book See Mips Run, "if you feel that your system needs to
> make uncached references to cacheable memory, then I strongly recommand
> that you divide memory into regions that are always accessed uncached
> and regions that are always accessed through the cache - and don't let
> them overlap. " But how ?

This book should explain about kseg0 and kseg1.

Nick Garnett                    eCos Kernel Architect
http://www.ecoscentric.com/     The eCos and RedBoot experts

Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss

More information about the Ecos-discuss mailing list