S3C2440: SD-Card access fails

Ben Dooks ben-linux at fluff.org
Fri Oct 16 01:48:56 EDT 2009


On Thu, Oct 15, 2009 at 08:14:50PM +0200, Juergen Beisert wrote:
> Hi list,
> 
> I'm using an S3C2440 based custom made board with a 2.6.31.3 kernel (with a
> few modifications to add the boards specific file). When I do some traffic on
> the SD card (1GiB SD type), for example untaring an archive I get a failure
> like this one:

Is your platform data marked __initdata?
 
> Unable to handle kernel paging request at virtual address 4b856104
> pgd = c0004000
> [4b856104] *pgd=00000000
> Internal error: Oops: 5 [#1]
> Modules linked in:
> CPU: 0    Not tainted  (2.6.31.3jbe #6)
> PC is at s3c2410_gpio_getpin+0x18/0x2c
> LR is at s3cmci_card_present+0x28/0x44
> pc : [<c002cf10>]    lr : [<c0199290>]    psr: a0000013
> sp : c1db9df8  ip : c1db9e08  fp : c1db9e04
> r10: c1d33ae4  r9 : c1db9e78  r8 : 00000001
> r7 : c1d61e00  r6 : c1db9e78  r5 : c1c3b000  r4 : c001d8d8
> r3 : 4b856100  r2 : c1db9eb8  r1 : c1db9e78  r0 : a10ac21a
> Flags: NzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
> Control: c000717f  Table: 3034c000  DAC: 00000017
> Process mmcqd (pid: 375, stack limit = 0xc1db8270)
> Stack: (0xc1db9df8 to 0xc1dba000)
> 9de0:                                                       c1db9e1c c1db9e08
> 9e00: c0199290 c002cf08 c1d33ae4 c1c3b140 c1db9e3c c1db9e20 c0199960 c0199278
> 9e20: c1d33ae4 c1db9e78 c1c3b000 c1d26708 c1db9e64 c1db9e40 c0190418 c019993c
> 9e40: c0196718 00000000 c1db9e48 c1db9e48 c1d26708 c1d33ae4 c1db9f94 c1db9e68
> 9e60: c01962b8 c019031c c02c01c0 c02c0100 c1db9e8c 00000000 c1db9e8c c1db9ee4
> 9e80: c1db9eb8 c1db9e44 c01904a8 00000012 08074600 00000000 00000000 00000000
> 9ea0: 00000000 000000b5 00000000 00000000 c1db9ee4 c1db9e78 0000000c 00000000
> 9ec0: 00000000 00000000 00000000 00000000 0000049d 00000000 00000000 00000000
> 9ee0: c1db9e78 05f5e100 00000000 00000200 00000008 00000000 00000200 00000000
> 9f00: c1db9eb8 c1db9e78 00000001 c1ceb800 c1c3d830 c1daac00 c1db9f44 c1db9f28
> 9f20: c1c6e01c c1daac00 00000017 c1daac00 00000000 c1d34438 00000000 c1d34438
> 9f40: 00000000 c1db9f5c c1db9f7c c1db9f58 c0115740 c1d26708 c1db9f7c c1db9f68
> 9f60: c0114ea4 c0119fcc c1db8000 c1d26708 c1d33ae4 c1db8000 c1d33aec c1d34438
> 9f80: 00000000 c1d34540 c1db9fc4 c1db9f98 c0196b50 c01960f4 c1db9fc4 c1db9fcc
> 9fa0: c1c3fd3c c1d33ae4 c0196a68 00000000 00000000 00000000 c1db9ff4 c1db9fc8
> 9fc0: c0048cb4 c0196a78 00000000 00000000 c1db9fd0 c1db9fd0 00000000 00000000
> 9fe0: 00000000 00000000 00000000 c1db9ff8 c00386e8 c0048c40 00000000 00000000
> Backtrace:
> [<c002cef8>] (s3c2410_gpio_getpin+0x0/0x2c) from [<c0199290>] 
> (s3cmci_card_present+0x28/0x44)
> [<c0199268>] (s3cmci_card_present+0x0/0x44) from [<c0199960>] 
> (s3cmci_request+0x34/0x6c)
>  r4:c1c3b140
> [<c019992c>] (s3cmci_request+0x0/0x6c) from [<c0190418>] 
> (mmc_wait_for_req+0x10c/0x124)
>  r6:c1d26708 r5:c1c3b000 r4:c1db9e78
> [<c019030c>] (mmc_wait_for_req+0x0/0x124) from [<c01962b8>] 
> (mmc_blk_issue_rq+0x1d4/0x550)
>  r5:c1d33ae4 r4:c1d26708
> [<c01960e4>] (mmc_blk_issue_rq+0x0/0x550) from [<c0196b50>] 
> (mmc_queue_thread+0xe8/0xec)
> [<c0196a68>] (mmc_queue_thread+0x0/0xec) from [<c0048cb4>] (kthread+0x84/0x8c)
> [<c0048c30>] (kthread+0x0/0x8c) from [<c00386e8>] (do_exit+0x0/0x21c)
>  r7:00000000 r6:00000000 r5:00000000 r4:00000000
> Code: e24cb004 e3c0301f e1a030a3 e28334fb (e5933004)
> ---[ end trace 969be95693003e89 ]---
> 
> This failure at adress 0xc002cf10 is the last line in function
> s3c2410_gpio_getpin in arch/arm/plat-s3c24xx/gpio.c:
> 
>     return __raw_readl(base + 0x04) & (1<< offs);
> 
> But it doesn't fails always at this location. I saw various location when I 
> try
> to find the cause of the failure. Another failure was:
> 
> mmc0: card b368 removed
> Unable to handle kernel paging request at virtual address 00001000
> pgd = c0004000
> [00001000] *pgd=00000000
> Internal error: Oops: 0 [#1]
> Modules linked in:
> CPU: 0    Not tainted  (2.6.31.3jbe #4)
> PC is at 0x1000
> LR is at s3cmci_set_ios+0xf0/0x1f0
> pc : [<00001000>]    lr : [<c01993d8>]    psr: 20000013
> [...]
> Backtrace:
> [<c01992e8>] (s3cmci_set_ios+0x0/0x1f0) from [<c018f9e8>] 
> (mmc_power_off+0x54/0x58)
> [<c018f994>] (mmc_power_off+0x0/0x58) from [<c018fc74>] 
> (mmc_detach_bus+0x6c/0xcc)
> [<c018fc08>] (mmc_detach_bus+0x0/0xcc) from [<c0192a80>] 
> (mmc_sd_detect+0x78/0x8c)
> [...]
> 
> But: It does not happen immediately when the traffic starts. It always happens
> a few seconds after the traffic starts. And it fails more often when I run a
> kernel with CONFIG_KALLSYMS=n instead of =y.
> And currently the system only fails if I use the SD card. While running from
> NFS root and doing some action in the system it seems to run stable.
> 
> Any idea what is going on here? 
> 
> Regards,
> Juergen
> 
> -- 
> Pengutronix e.K.                              | Juergen Beisert             |
> Linux Solutions for Science and Industry      | Phone: +49-8766-939 228     |
> Vertretung Sued/Muenchen, Germany             | Fax:   +49-5121-206917-5555 |
> Amtsgericht Hildesheim, HRA 2686              | http://www.pengutronix.de/  |
> 
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

-- 
-- 
Ben

Q:      What's a light-year?
A:      One-third less calories than a regular year.




More information about the linux-arm-kernel mailing list