<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.6000.16674" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT size=2><FONT face="Courier New"><FONT
size=3></FONT></FONT></FONT> </DIV>
<DIV><FONT face="Courier New">I am attempting to write to a CPLD mapped to the
EBC port of a AMCC 440EP. When I attempt to write using
an unsigned variable</FONT></DIV>
<DIV><FONT face="Courier New">ie. unsigned *pbase = (unsigned char
*)ioremap64(0x8F000000,0x1000000);</FONT><BR><FONT face="Courier New">I get a
kernel access of bad area, sig: 11 fault. However, if I change to an
unsigned char ie. unsigned char *pbase = (unsigned char
*)ioremap64(0x8F000000,<BR>0x1000000); The system doesn't crash. I need to
write using an unsigned. Does any one have any ideas what I am doing
wrong?</FONT></DIV>
<DIV><FONT face="Courier New"></FONT> </DIV>
<DIV><FONT face="Courier New">I am using 2.6.24 Xenomai Denx. 4.2.
</FONT><FONT face="Courier New">I am porting a working 2.6.14 project that
was developed with FSM Labs RT Linux (now owned by WindRiver).</FONT></DIV>
<DIV><FONT face="Courier New"><BR></FONT></DIV>
<DIV><FONT face="Courier New"></FONT> </DIV>
<DIV><FONT size=2><FONT face="Courier New"><FONT
size=3></FONT></FONT></FONT> </DIV>
<DIV><FONT size=2><FONT face="Courier New"><FONT
size=3>//-----------------------------------------------------------------------<BR>//
initialize module -- this what is called when you do insmod
./ubus.ko<BR>//-----------------------------------------------------------------------<BR>static
int __init ubus_init_module (void) <BR>{<BR> int i;<BR> unsigned
ofs[20]
=<BR>{0x400000,0x400100,0x500000,0x500100,0x600000,0x600100,0x700000,0x700100,<BR><BR>0x608000,0x608100,0x708000,0x708100,0x610000,0x610100,0x710000,0x710100,<BR>
0x618000,0x618100,0x718000,0x718100};<BR> unsigned *pbase =
(unsigned *)ioremap64(0x8F000000,<BR>0x1000000);<BR> unsigned
*p;<BR> for( i = 0; i < 20;i++)<BR> {<BR> p =
pbase + ofs[i] + 0x34;<BR> *p = 0x25500;<BR>
printk(KERN_ALERT "p = %X\r\n",p);<BR> }<BR>
iounmap(pbase);<BR> PRINTK("initializing module ubus\n");<BR> i =
register_chrdev (UBUS_MAJOR, UBUS_NAME, &ubus_fops);<BR> if (i != 0)
return - EIO;<BR><BR> return 0;<BR>}<BR><BR><BR>-bash-3.2#
insmod<BR>ubus.ko
<BR>Oops: kernel access of bad area, sig:
11<BR>[#1]
<BR>NIP: d1068054 LR: d1068038
CTR:<BR>00000000
<BR>REGS: cf489d70 TRAP: 0300 Not
tainted<BR>(2.6.24.2)
<BR>MSR: 00029000 <EE,ME> CR: 08004022
XER:<BR>00000004
<BR>DEAR: d61000d0,
ESR:<BR>00800000
<BR>TASK = cf45c410[309] 'insmod'
THREAD:<BR>cf488000
<BR>GPR00: d1068038 cf489e20 cf45c410 d5100000 d6100000 00000000
00000000<BR>cf4467f8
<BR>GPR08: 000007f8 d1060000 8ffff000 00000000 28004028 1004950c
00000000<BR>d509c1e4
<BR>GPR16: cffe1ce0 d5093a04 00000000 00000036 00000036 d5093310
c003cb00<BR>d5081000
<BR>GPR24: 00000026 00000026 d5093464 cf489e28 d1<BR><BR><BR>0664c4 00025500
00000026
d1066a60
<BR>NIP [d1068054]
ubus_init_module+0x54/0x190<BR>[ubus]
<BR>LR [d1068038]
ubus_init_module+0x38/0x190<BR>[ubus]
<BR>Call<BR>Trace:
<BR>[cf489e20] [d1068038] ubus_init_module+0x38/0x190
[ubus]<BR>(unreliable)
<BR>[cf489e90] [c003df74]
sys_init_module<BR>+0x174/0x15e0
<BR>[cf489f40] [c0001ac4]
ret_from_syscall<BR>+0x0/0x3c
<BR>Instruction<BR>dump:
<BR>480000cd 3c808f00 3ca00100 38600000 480000cd 80810008
3fa00002<BR>5484103a
<BR>7c841a14 3d20d106 63bd5500 3b8964c4 <93a400d0> 7c7e1b78
388400d0<BR>7f83e378
<BR>Segmentation fault <BR><BR><BR>-bash-3.2#
insmod<BR>ubus.ko
<BR>p =
D5500034
<BR>p =
D5500134
<BR>p =
D5600034
<BR>p =
D5600134
<BR>p =
D5700034
<BR>p =
D5700134
<BR>p =
D5800034
<BR>p =
D5800134
<BR>p =
D5708034
<BR>p =
D5708134
<BR>p =
D5808034
<BR>p =
D5808134
<BR>p =
D5710034
<BR>p =
D5710134
<BR>p =
D5810034
<BR>p =
D5810134
<BR>p =
D5718034
<BR>p =
D5718134
<BR>p =
D5818034
<BR>p =
D5818134
<BR>initializing module ubus </FONT><BR></DIV></FONT></FONT></BODY></HTML>