From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from darwaza.gdatech.com (darwaza.gdatech.com [66.237.41.98]) by ozlabs.org (Postfix) with ESMTP id 7C0DC67B59 for ; Fri, 1 Sep 2006 06:56:51 +1000 (EST) Message-Id: <200608312057.k7VKvHP32470@sierra.gdatech.com> From: "Junita Joseph" To: Subject: Need help with TLB settings in Linux -System ACE Date: Thu, 31 Aug 2006 13:56:43 -0700 MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_0003_01C6CD05.4ABCDE20" Cc: a.sudheer@gdatech.co.in List-Id: Linux on Embedded PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , This is a multi-part message in MIME format. ------=_NextPart_000_0003_01C6CD05.4ABCDE20 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit 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 ------=_NextPart_000_0003_01C6CD05.4ABCDE20 Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable

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/am=
os/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:
 
T=
LB entry Listings from u-boot:
 
IDX TID      EPN  =
SIZE VTS       &nbs=
p;  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       &nbs=
p;  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
------=_NextPart_000_0003_01C6CD05.4ABCDE20--