No idea what check_mem_region or request_mem_region are? You give code.
There is example code for doing memory based I/O on the files section of
this group, and Technologics give sample code.
This sort of has a look of x86 type code!
This app note maybe of use...
http://www.simtec.co.uk/appnotes/AN0014/
On Mon, 20 Aug 2007, chaisc97 wrote:
> when i try to write a dac driver there are some error, the source code
> is
>
> static volatile unsigned char *Address=NULL;
> unsigned long bankcfg = 0x1000ffe0;
>
> error_io=check_mem_region(SMCBCR3,4);
>
> if(error_io<0)
> {
> return error_io;
> }
> request_mem_region(SMCBCR3,4,"smcbcr");
>
> Address=(unsigned char *)ioremap(SMCBCR3,4);
> printk("address=%x v_address=%x\n",SMCBCR3,Address);
> outw(bankcfg,Address);
>
> the output is
>
> Using dac.o
> address=8008000c v_address=c604000c
> Unable to handle kernel paging request at virtual address 2604000c
> pgd = c43f4000
> [2604000c] *pgd=00000000, *pmd = 00000000
> Internal error: Oops: 805
> CPU: 0
> pc : [<c603c178>] lr : [<c603c164>] Not tainted
> sp : c16dbee0 ip : a0000013 fp : c16dbf10
> r10: 00189f80 r9 : c16da000 r8 : ffffffea
> r7 : 00000060 r6 : c5692000 r5 : c603c000 r4 : c603c4f0
> r3 : 0000ffe0 r2 : 2604000c r1 : 00000000 r0 : 00000024
> Flags: nZCv IRQs on FIQs on Mode SVC_32 Segment user
> Control: C000317F Table: 043F4000 DAC: 00000015
> Process busybox (pid: 90, stack limit = 0xc16da378)
> Stack: (0xc16dbee0 to 0xc16dc000)
> bee0: 00000000 c604000c 00000004 8008000c 1000ffe0 00000000 c5692000
> 00000060
> bf00: 00000000 c446aa40 c16dbf14 c0234b14 c603c0c0 00000003 c5692000
> c1690000
> bf20: c603e000 00000060 c0388d1c c603c060 00000578 00000000 00000000
> 00000000
> bf40: 00000000 00000000 00000000 00000000 00000000 00000000 00000000
> 00000000
> bf60: 00000000 00000000 00000000 00000000 00000000 00000000 00000000
> 00000000
> bf80: 00000000 00000030 00000578 00189f80 00000080 c02277ac c16da000
> 00000578
> bfa0: 7ffffe2c c0227580 00000578 00189f80 00900080 0017f3f8 00189f80
> 00000000
> bfc0: 00000030 00000578 00189f80 c603c000 0017f3f8 0008b0a0 00000578
> 7ffffe2c
> bfe0: 7fffda24 7fffda18 0006aecc 2ac3f130 60000010 00900080 00000a62
> 00000a64
> Backtrace: not available
> Code: e59f3044 e5933000 e0822003 e15b32b0 (e1c230b0)
> Segmentation fault
>
>
Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/ts-7000/
<*> Your email settings:
Individual Email | Traditional
<*> To change settings online go to:
http://groups.yahoo.com/group/ts-7000/join
(Yahoo! ID required)
<*> To change settings via email:
<*> To unsubscribe from this group, send an email to:
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
|