[Arm-netbook] SD card issue

Luke Kenneth Casson Leighton luke.leighton at googlemail.com
Tue Mar 30 12:41:19 BST 2010


On Tue, Mar 30, 2010 at 6:20 AM, Frans Pop <elendil at planet.nl> wrote:
> On Monday 29 March 2010, Ben Dooks wrote:
>> IIRC, it isn't really a NAND chip, it is a board-mounted SD style
>> device, and it may be that the system is sharing the card-detect lines.
>
> I don't think so as it all does work correctly with the original ChiTech kernel.

 ( it's definitely an SD card device, though. )

> AFAICT there is simply something miscoded in the kernel. Look at this:
>
> Mar 30 05:29:16 kernel: [s3c_hsmmc_probe]: s3c-hsmmc.0: at 0xcfe00000 with irq 56. clk src: sclk_DOUTmpll_mmc0
> Mar 30 05:29:16 kernel: [s3c_hsmmc_probe]: s3c-hsmmc.1: at 0xd0000000 with irq 57. clk src: sclk_DOUTmpll_mmc1
> Mar 30 05:29:16 kernel: mmc1: host does not support reading read-only switch. assuming write-enable.
> Mar 30 05:29:16 kernel: mmc1: new SD card at address 8879
> [...]
> Mar 30 05:29:16 kernel: mmc0: host does not support reading read-only switch. assuming write-enable.
> Mar 30 05:29:16 kernel: mmc0: new high speed SD card at address c971
> Mar 30 05:29:16 kernel: mmcblk0: mmc0:c971 SE02G 1931264KiB
> Mar 30 05:29:16 kernel:  mmcblk0: p1 p2
> [... I remove the external card ...]
> Mar 30 05:31:44 kernel: s3c-hsmmc: card removed.
> Mar 30 05:31:45 kernel: mmc0: card c971 removed
> Mar 30 05:31:50 kernel: Buffer I/O error on device mmcblk0p2, logical block 1
>
> "Address 8879" is the same address I get when I insert the SD card in my
> HP laptop. So, the initial identification is correct.
>
> But when I remove the external card (i.e. 8879) on mmc1, the kernel thinks
> that the internal one with address c971 on mmc0 was removed.
>
>
> Initially we had the two devices reversed: the external card was assigned
> to mmc0 and the internal one to mmc1. To fix this, Luke made the following
> change in arch/arm/mach-s3c6410/mach-ctpc89e.c ("our" machine definition,
> based on the one for SMDK6410):
>
>  static struct platform_device *pc89e_devices[] __initdata = {
> [...]
> -       &s3c_device_hsmmc1, /* INAND initialize before SD card */
>        &s3c_device_hsmmc0,
> +       &s3c_device_hsmmc1,
> -       &s3c_device_hsmmc2,
> +       //&s3c_device_hsmmc2,

 ahh yes, i'd forgotten about that.  yes - turning them round was
necessary, to make the NAND be the 1st device.  btw yes this is
exactly what naijing aka mid-fun software engineers did (it's not
chitech, chitech are just the factory making the hardware).

l.



More information about the Arm-netbook mailing list