Need help with TLB settings in Linux -System ACE

Junita Joseph junita at gdatech.com
Fri Sep 1 06:56:43 EST 2006


Hi all,
 
I am currently working on a PPC440SPe based custom board to bring up the
System ACE interface from Linux.
 
I am using linux-2.6.16 with the patch applied as per Ameet's suggestion
from the following link
 
https://www.cs.york.ac.uk/rtslab/demos/amos/xupv2pro/patches/linuxppc-2.6.17
.1-sysace-1.1.patch
 
 
 
We are able to access the controller registers from u-boot, but kernel
throws a "Data Machine Check exception" while accessing the registers.
 
1.    I have set up System ACE base address as 0xE000_0000 (which is the
same as in u-boot).
2.    As far as I understand, kernel should pick-up TLB settings from
u-boot.
3.    But , while debugging through BDI this is what I observe:
 
TLB entry Listings from u-boot:
 
IDX TID      EPN  SIZE VTS          RPN   USER WIMGE USRSVC
 0 : 00 ff000000  16MB V0 -> 4_ff000000 U:0000 WI-G- XWRXWR
 1 : 00 00000000 256MB V0 -> 0_00000000 U:0000 -I-G- XWRXWR
 2 : 00 10000000 256MB V0 -> 0_10000000 U:0000 -I-G- XWRXWR
 3 : 00 20000000 256MB V0 -> 0_20000000 U:0000 -I-G- XWRXWR
 4 : 00 30000000 256MB V0 -> 0_30000000 U:0000 -I-G- XWRXWR
 5 : 00 90000000 256KB V0 -> 4_00000000 U:0000 -I--- XWRXWR
 6 : 00 e0000000   1KB V0 -> 4_e0000000 U:0000 -I-G- XWRXWR
 
 
Note : 6th entry is for system ACE.
 
TLB entry Listings  from Kernel:
 
IDX TID      EPN  SIZE VTS          RPN   USER WIMGE USRSVC
 0 : 00 00000000   1KB -0 -> 4_ff000000 U:0000 WI-G- XWRXWR
 1 : 00 fdfff000   4KB V0 -> 4_f0000000 U:0000 -IMG- ----WR
 2 : 00 fdffe000   4KB V0 -> 4_f0000000 U:0000 -IMG- ----WR
 3 : 00 fdffd000   4KB V0 -> 4_f0000000 U:0000 -IMG- ----WR
 4 : 00 e1000000   4KB V0 -> 0_e0000000 U:0000 -IMG- ----WR
 5 : 00 00000000   1KB -0 -> 4_00000000 U:0000 -I--- XWRXWR
 6 : 00 00000000   1KB -0 -> 4_e0000000 U:0000 -I-G- XWRXWR
 
Note: 4th entry is system ACE.
 
The RPN and access permissions are totally different for System ACE from
u-boot and kernel. I u-boot it is - 4_e0000000 , and in kernel it is
0_e0000000
 
I think this is the issue, causing exception during writes to registers from
kernel.
 
Could someone throw some light on this area? This is very critical for us
now.
 
Or am I missing something?
 
Any help would be appreciated.
 
Thanks in advance
Junita
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://ozlabs.org/pipermail/linuxppc-embedded/attachments/20060831/819dcdc3/attachment.htm 


More information about the Linuxppc-embedded mailing list