<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=us-ascii">
<META content="MSHTML 6.00.2800.1528" name=GENERATOR></HEAD>
<BODY>
<DIV><FONT face=Arial size=2><SPAN class=455115021-15022006>Is there a way to 
put certain exception handler(e.g. machine check) on e500 to a cache-inhibited 
region? </SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN 
class=455115021-15022006></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2><SPAN class=455115021-15022006>1. The e500 kernel 
puts exception handlers at the starting of the physical 
memory.</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN class=455115021-15022006>2. All the physical 
memory are covered by a few TLB1s to do 0xc0000000-0x00000000 
translation.</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN class=455115021-15022006>3. We can 
not&nbsp;add a new&nbsp;TLB1 to map a small piece of memory, because it has 
boundary limitation(4K...256M). We can not use two TLB1 to overlap since it will 
cause program error.</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN class=455115021-15022006>4. When we tried to 
move a handler(e.g. machine check) to a different location, the kernel won't 
boot.</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN class=455115021-15022006>5. We don't want to 
map all the exceptional handlers to be cache inhibited, say, the first 1MB, the 
performance will be horrible if we do so.</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN 
class=455115021-15022006></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2><SPAN class=455115021-15022006>Is there a way at 
all to tweak things like this, i.e., put an exception handler into a piece of 
memory that is cache-inhibited?</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN 
class=455115021-15022006></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2><SPAN class=455115021-15022006>I also thought about 
use mlock/mmap on /dev/mem, move the specific exception handler to a high 
address then use a separate TLB1 to cover it(need change link script?),etc. 
</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN 
class=455115021-15022006></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2><SPAN class=455115021-15022006>Any suggestion is 
greatly appreciated.</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN 
class=455115021-15022006></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2><SPAN 
class=455115021-15022006>xianghua</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN 
class=455115021-15022006></SPAN></FONT>&nbsp;</DIV></BODY></HTML>