Google
  Web www.spinics.net

Re: something wrong when I read infomation from portG ,s3c44b0

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]


#define PCONC   (unsigned int *)0x01D20010
#define PUPC      (unsigned int *)0x01D20018
#define PCONG   (unsigned int *)0x01D20040
#define PUPG      (unsigned int *)0x01D20048

I also tried to do like this:
u32 save_C __attribute__((aligned(4)));
u16 save_G __attribute__((aligned(4)));
but it seems ineffective .

2007/3/28, Zhu Tom-a2289c <ling.zhu@xxxxxxxxxxxx>:
It seems that the address of PCONC or PUPC is not in a word alignment.

Say, 0x.....2 or 0x...6 etc.

Tom

-----Original Message-----
From: zhang guocheng [mailto:gczh1006@xxxxxxxxx]
Sent: 2007年3月27日 22:52
To: Zhu Tom-a2289c
Subject: Re: something wrong when I read infomation from portG ,s3c44b0

thanks

the register PCONG[0:15] , R/W

sorry,maybe I didn't discribe clearly
when I read PUPC,PCONC
save_C=inl(PCONC);
save_PC=inw(PUPC);

it looks well, just when the driver initiaization runs to reading the configuration of PCONG,the error  occures.


2007/3/28, Zhu Tom-a2289c <ling.zhu@xxxxxxxxxxxx>:
> Looks like the PCONG/PCONC/PUPC is not aligned in word?
>
> Tom
>
> -----Original Message-----
> From: linux-arm-bounces@xxxxxxxxxxxxxxxxxxxxxx
> [mailto:linux-arm-bounces@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of zhang
> guocheng
> Sent: 2007年3月27日 21:29
> To: linux-arm
> Subject: something wrong when I read infomation from portG ,s3c44b0
>
> hi,everyone
>      first ,please excuse my poor english,these is one problem that has confused me for a few days,so I hope these is someone could help me.
>      first I introduce some infomation about my board. the cpu is s3c44b0.
>      when I read the configuration register of portG(PCONG),which is a output/input port of 8bit.
>   save_G=inw(PCONG);
> the initialization of my driver will be wrong, while everything is ok when I read the configuration register of portC(PCONC),or PUPC,etc.
>   save_C=inl(PCONC);
>   save_PC=inw(PUPC);
>
> the error happened when I execute the conmand  #insmod abc (abc is a module , my driver) the log will be at the end.
> #lsmod
> module                           size      used by        not tainted
> abc                                3300     1(initializing)
>
> log:
> Unhandled fault: alignment exception (93) at 0x00000001
> fault-common.c(97): start_code=0xc5c0040, start_stack=0xc5fff84)
> Internal error: Oops: 0
> CPU: 0
> pc : [<0c01ee6c>] lr : [<00030001>] Not tainted sp : 0c607e1c ip :
> 00000004 fp : 0c607eb0
> r10: 0c5ad000 r9 : 20000013 r8 : 00000060
> r7 : ffffffea r6 : 0c5a6000 r5 : e1d230b0 r4 : 20000013
> r3 : 00000000 r2 : 0c60601c r1 : 0c607e1c r0 : 00000004
> Flags: nZCv IRQs off FIQs on Mode SVC_32 Segment user
> Control: 0
> Process insmod (pid: 25, stackpage=0c607000)
> Stack:
> 0c607e00: 00030001 0c01ee6c 60000093 ffffffff 00000004
> 0c607e20: 00000000 00030001 0c050678 0c050118 00000000 0000102b
> 0c33a740 0c31a800
> 0c607e40: 0c5b7460 ffffffea 00000000 20000013 0c2c62b8 00000000
> 00000003 00000001
> 0c607e60: 00000001 000001f0 0c2c60fc 0c607eb0 0c607e7c 0c037758
> 0c037000 0c63aee0
> 0c607e80: 0c2c62b4 0c5b74cc 00000000 20000013 0c2c62b8 00000000
> 00000003 e1d230b0
> 0c607ea0: 0c607ee8 0c607f10 0c607eb4 0c01fc98 0c01ee3c 00000000
> 0c5accb8 000000ff
> 0c607ec0: 01d20040 0c5acc30 00000000 0c5a6000 ffffffea 00000060
> 00000004 0c5ad000
> 0c607ee0: 0c607f10 0c5acc34 0c607efc 0c5acbe8 0c5aca38 20000013
> ffffffff 00000000
> 0c607f00: 0c5ac000 0c607fac 0c607f14 0c02466c 0c5ac9d0 0c5a6000
> 0c5a7000 0c5ae560
> 0c607f20: 0c647ce0 00000060 0c2c55c8 0c5ac060 00000d20 00000000
> 00000000 00000000
> 0c607f40: 00000000 00000000 00000000 00000000 00000000 00000000
> 00000000 00000000
> 0c607f60: 00000000 00000000 00000000 00000000 00000000 00000000
> 00000000 00000000
> 0c607f80: 00000000 0c5feee8 0c66d000 0c5e1f54 0c606000 0c01ab20
> 00000080 00000d20
> 0c607fa0: 00000000 0c607fb0 0c01a980 0c024000 0c5feee8 0c01b1b4
> 0c5feee8 0c5ad000
> 0c607fc0: 00000000 0c5acc30 0c5feee8 0c66d000 0c5e1f54 0c5ac000
> 0c5feee8 00000002
> 0c607fe0: 00000d20 00000000 0c5accc0 0c5fbd2c 0c5c22f0 0c5d68e4
> 60000010 0c5feee8
> Backtrace:
> Function entered at [<0c01ee2c>] from [<0c01fc98>]
> r5 = 0C607EE8 r4 = E1D230B0
> Function entered at [<0c5ac9c0>] from [<0c02466c>]
> r5 = 0C5AC000 r4 = 00000000
> Function entered at [<0c023ff0>] from [<0c01a980>]
> Code: e50be08c e3cd2d7f (e594303c) e3c2203f e50b3088 pid 25: failed 11
>
> -------------------------------------------------------------------
> List admin: http://lists.arm.linux.org.uk/mailman/listinfo/linux-arm
> FAQ:        http://www.arm.linux.org.uk/mailinglists/faq.php
> Etiquette:  http://www.arm.linux.org.uk/mailinglists/etiquette.php
>

-------------------------------------------------------------------
List admin: http://lists.arm.linux.org.uk/mailman/listinfo/linux-arm
FAQ:        http://www.arm.linux.org.uk/mailinglists/faq.php
Etiquette:  http://www.arm.linux.org.uk/mailinglists/etiquette.php

[Site Home]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux ARM Kernel]     [Linux MIPS]     [ECOS]     [Tools]     [DDR & Rambus]     [Monitors]

Powered by Linux