Thread (181 messages) 181 messages, 8 authors, 2009-11-28

Re: [RFC PATCH 03/19] powerpc: gamecube: bootwrapper bits

From: Segher Boessenkool <hidden>
Date: 2009-11-24 20:53:26

quoted
quoted
+asm ("\n\

A file scope asm?!  Please don't.
So what's your proposal then? Placing it within a fake func?
That asm snippet is the entry point. I took as an example how  
prpmc2800.c deals with that, providing an own version of the (weak)  
_zImage_start.
Use an assembler source file.  You'll get much nicer syntax as well
(none of that \n stuff).
quoted
quoted
+    /* IBAT3,DBAT3 for first 16Mbytes */\n\
+    li    8, 0x01ff    /* 16MB */\n\
+    li      9, 0x0002    /* rw */\n\
+    mtspr   0x216, 8    /* IBAT3U */\n\
+    mtspr   0x217, 9    /* IBAT3L */\n\
+    mtspr   0x21e, 8    /* DBAT3U */\n\
+    mtspr   0x21f, 9    /* DBAT3L */\n\
WIMG=0000, are you sure?  Not M=1?
To be honest, I don't recall the details now.
But it was tested in the very early days, the result was not the  
expected one and, in the end, manual cache coherency management was  
still needed.
Sure, the memory controllers don't do coherency.  I'm slightly worried
about two things:
1) Will the generic code use M=0 as well?  Is it a problem if it  
doesn't?
2) Do lwarx. etc. work in M=0?

And a question: does M=0 actually give better performance (lower bus
utilisation, and maybe saves a few cycles)?


Segher
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help