Hi,
first, please be more verbose on telling what you want to do, it's hard to understand you. (After deciphering the text, I stripped out those nasty HTML tags in the this reply.)
On Wed Sep 20, 2006 at 10:31:31 +0900, ±è±¤½Ä wrote:
IO peripheral Address region in my platform is 0xfffb0000 - 0xfffeffff
I want to add device driver in L4linux.
in L4linux device driver
*(volatile unsigned char *)0xfffb0000 = 'c';
following case made error
result error e0 l4lx | Invalid source for request: 2f.3f result error e0 l4lx | Invalid source for request: 2f.3f result error e0 l4lx | Invalid source for request: 2f.3f result error e0 l4lx | Invalid source for request: 2f.3f result error e0 l4lx | Invalid source for request: 2f.3f 0000003600000037 failed CLI: 0000000c.00000004
How can I access IO Address?
You cannot access arbitrary addresses until configured so and additionally not above 0xd0000000 as this is kernel land.
One of the simpler ways is the following with those steps to be taken:
Edit pkg/sigma0/server/src/ARCH-arm/main.cc and add the following line to the other ones occurences of Region_instance: static Region_instance< 0xfffb0000, 0x004000, 12 > devs_fffb;
Then, add memmap.add_region(&devs_fffb); to the other memmap.add_region calls.
Recompile sigma0.
I don't know how your driver looks like but you have to map your device memory somewhere in the L4Linux address space. One possible way is to use base = ioremap(0xfffb0000, 0x4000) before accesses this area. Then use 'base' to access your device memory.
Adam