Re: sdhc/mpc8536 - SDCard always detected like read-only
I will try address the issue in details. When I insert the SDCard, the same is detect like read-only: mmcblk0: mmc0:b368 NCard 966 MiB (ro) mmcblk0: mmc0: starting CMD18 arg flags 00b5 mmc0: blksz 512 blocks 8 flags 0200 tsac 100 ms nsac 0 mmc0: CMD12 arg flags 049d sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x0001 sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x000a sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x0001 mmc0: req done (CMD18): 0: 0900 mmc0: 4096 bytes transferred: 0 mmc0: (CMD12): 0: 0b00 p1 So, I just can mount the filesystem read-only. I can read the fat32 without problems. I tested your sugestion. I used sdhci,wp-inverted in my dtb. This changed the behavior. Now the SDCard is detected without the read-only flag: mmcblk0: mmc0:b368 NCard 966 MiB mmcblk0: mmc0: starting CMD18 arg flags 00b5 mmc0: blksz 512 blocks 8 flags 0200 tsac 100 ms nsac 0 mmc0: CMD12 arg flags 049d sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x0001 sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x000a sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x0001 mmc0: req done (CMD18): 0: 0900 mmc0: 4096 bytes transferred: 0 mmc0: (CMD12): 0: 0b00 p1 And, I can mount a rw filesystem: #mount /dev/mmcblock1 /mnt #cat /proc/mounts ... /dev/mmcblock1 /mnt vfat rw,relatime,fmask=,dmask=,allow_utime=0022,codepage=cp437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro 0 0 ... So, I can copy files to the mounted SDCard. But, When I try to umount I see the following error mensagens: #cp /etc/shadow /mnt #ls /mnt shadow #umount /mnt mmc0: Timeout waiting for hardware interrupt. mmcblk0: error -110 transferring data, sector 5944, nr 1, card status 0x900 end_request: I/O error, dev mmcblk0, sector 5944 mmc0: Timeout waiting for hardware interrupt. mmcblk0: error -110 transferring data, sector 5936, nr 1, card status 0x900 end_request: I/O error, dev mmcblk0, sector 5936 Buffer I/O error on device mmcblk0p1, logical block 3888 mmc0: Timeout waiting for hardware interrupt. mmcblk0: error -110 transferring data, sector 2049, nr 1, card status 0x900 end_request: I/O error, dev mmcblk0, sector 2049 Buffer I/O error on device mmcblk0p1, logical block 1 mmc0: Timeout waiting for hardware interrupt. mmcblk0: error -110 transferring data, sector 2080, nr 1, card status 0x900 end_request: I/O error, dev mmcblk0, sector 2080 ... I think I need the sdhci,wp-inverted in my dtb. But, it appears that more something is necessary. Has someone faced this situation? Thanks by the help until here. Regards, Moratelli Em Qua, 2011-04-06 às 01:48 +0200, Wolfram Sang escreveu: sdhci@2e000 { compatible = fsl,mpc8536-esdhc, fsl,esdhc; reg = 0x2e000 0x1000; interrupts = 72 0x2; interrupt-parent = mpic; /* Filled in by U-Boot */ clock-frequency = 0; }; Hmm, I am not too familiar with those SoCs, yet some 83xx needed sdhci,wp-inverted; here. Maybe yours, too? Would fit the symptoms. Regards, Wolfram ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: sdhc/mpc8536 - SDCard always detected like read-only - SOLVED.
Wolfram, Reading the MPC8536E Chip Errata I saw the SDHC_WP signal polarity is reversed to the silicon revision 1.0. Unfortunately my prototype board is using revision 1.0. So, I asked to my hardware team workaround putting an extra inverter for the SDHC_WP signal. Now its working fine! Thanks, Moratelli Em Qua, 2011-04-06 às 14:18 -0300, Carlos Roberto Moratelli escreveu: I will try address the issue in details. When I insert the SDCard, the same is detect like read-only: mmcblk0: mmc0:b368 NCard 966 MiB (ro) mmcblk0: mmc0: starting CMD18 arg flags 00b5 mmc0: blksz 512 blocks 8 flags 0200 tsac 100 ms nsac 0 mmc0: CMD12 arg flags 049d sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x0001 sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x000a sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x0001 mmc0: req done (CMD18): 0: 0900 mmc0: 4096 bytes transferred: 0 mmc0: (CMD12): 0: 0b00 p1 So, I just can mount the filesystem read-only. I can read the fat32 without problems. I tested your sugestion. I used sdhci,wp-inverted in my dtb. This changed the behavior. Now the SDCard is detected without the read-only flag: mmcblk0: mmc0:b368 NCard 966 MiB mmcblk0: mmc0: starting CMD18 arg flags 00b5 mmc0: blksz 512 blocks 8 flags 0200 tsac 100 ms nsac 0 mmc0: CMD12 arg flags 049d sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x0001 sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x000a sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x0001 mmc0: req done (CMD18): 0: 0900 mmc0: 4096 bytes transferred: 0 mmc0: (CMD12): 0: 0b00 p1 And, I can mount a rw filesystem: #mount /dev/mmcblock1 /mnt #cat /proc/mounts ... /dev/mmcblock1 /mnt vfat rw,relatime,fmask=,dmask=,allow_utime=0022,codepage=cp437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro 0 0 ... So, I can copy files to the mounted SDCard. But, When I try to umount I see the following error mensagens: #cp /etc/shadow /mnt #ls /mnt shadow #umount /mnt mmc0: Timeout waiting for hardware interrupt. mmcblk0: error -110 transferring data, sector 5944, nr 1, card status 0x900 end_request: I/O error, dev mmcblk0, sector 5944 mmc0: Timeout waiting for hardware interrupt. mmcblk0: error -110 transferring data, sector 5936, nr 1, card status 0x900 end_request: I/O error, dev mmcblk0, sector 5936 Buffer I/O error on device mmcblk0p1, logical block 3888 mmc0: Timeout waiting for hardware interrupt. mmcblk0: error -110 transferring data, sector 2049, nr 1, card status 0x900 end_request: I/O error, dev mmcblk0, sector 2049 Buffer I/O error on device mmcblk0p1, logical block 1 mmc0: Timeout waiting for hardware interrupt. mmcblk0: error -110 transferring data, sector 2080, nr 1, card status 0x900 end_request: I/O error, dev mmcblk0, sector 2080 ... I think I need the sdhci,wp-inverted in my dtb. But, it appears that more something is necessary. Has someone faced this situation? Thanks by the help until here. Regards, Moratelli Em Qua, 2011-04-06 às 01:48 +0200, Wolfram Sang escreveu: sdhci@2e000 { compatible = fsl,mpc8536-esdhc, fsl,esdhc; reg = 0x2e000 0x1000; interrupts = 72 0x2; interrupt-parent = mpic; /* Filled in by U-Boot */ clock-frequency = 0; }; Hmm, I am not too familiar with those SoCs, yet some 83xx needed sdhci,wp-inverted; here. Maybe yours, too? Would fit the symptoms. Regards, Wolfram ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: sdhc/mpc8536 - SDCard always detected like read-only - SOLVED.
Reading the MPC8536E Chip Errata I saw the SDHC_WP signal polarity is reversed to the silicon revision 1.0. Unfortunately my prototype board is using revision 1.0. So, I asked to my hardware team workaround putting an extra inverter for the SDHC_WP signal. Now its working fine! OK, nice. I fail to see from a glimpse how all this is related to the timeout-errors you were seeing (-110), but if it works now, all is fine, I guess. Regards, Wolfram -- Pengutronix e.K. | Wolfram Sang| Industrial Linux Solutions | http://www.pengutronix.de/ | signature.asc Description: Digital signature ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
sdhc/mpc8536 - SDCard always detected like read-only
Hello, I am working in a MPC8536e custom board. Our custom board has a slot to SDCards conected to the MPC8536e's eSDHC controller. We are using just 4-serial data pins of eSDHC controller. My kernel is 2.6.35.7 and I am using buildroot to build the root system with uClib. I can mount and read the data from SDCards in the slot. But I am facing errors when I try write something in the card. I am testing two SDcards: Kingston and a LG, both with 2GB capacity. I tryed ext3 and fat32 filesystems with the same results. When the card is detected the log is (observe the ro flag in the first line): mmcblk0: mmc0:57f7 SD02G 1.83 GiB (ro) mmcblk0: mmc0: starting CMD18 arg flags 00b5 mmc0: blksz 512 blocks 8 flags 0200 tsac 100 ms nsac 0 mmc0: CMD12 arg flags 049d sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x0001 sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x000a sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x0001 mmc0: req done (CMD18): 0: 0900 mmc0: 4096 bytes transferred: 0 mmc0: (CMD12): 0: 0b00 p1 I am sure the write protection mechanism on SDCard is in the unlock position, but the kernel drivers detects the card like read-only. Has someone idea why this happen? Every idea or tip is apreciated. Regards, Moratelli. ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: sdhc/mpc8536 - SDCard always detected like read-only
Every idea or tip is apreciated. Please post your dts. -- Pengutronix e.K. | Wolfram Sang| Industrial Linux Solutions | http://www.pengutronix.de/ | signature.asc Description: Digital signature ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: sdhc/mpc8536 - SDCard always detected like read-only
Em Ter, 2011-04-05 às 21:02 +0200, Wolfram Sang escreveu: Every idea or tip is apreciated. Please post your dts. /* * MPC8536 DS Device Tree Source * * Copyright 2008-2009 Freescale Semiconductor, Inc. * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. */ /dts-v1/; / { model = fsl,mpc8536ds; compatible = fsl,mpc8536ds; #address-cells = 2; #size-cells = 2; aliases { ethernet0 = enet0; serial0 = serial0; serial1 = serial1; pci1 = pci1; }; cpus { #cpus = 1; #address-cells = 1; #size-cells = 0; PowerPC,8536@0 { device_type = cpu; reg = 0; next-level-cache = L2; }; }; memory { device_type = memory; reg = 0 0 0 0;// Filled by U-Boot }; soc@fffe0 { #address-cells = 1; #size-cells = 1; device_type = soc; compatible = simple-bus; ranges = 0x0 0xf 0xffe0 0x10; bus-frequency = 0;// Filled out by uboot. ecm-law@0 { compatible = fsl,ecm-law; reg = 0x0 0x1000; fsl,num-laws = 12; }; ecm@1000 { compatible = fsl,mpc8536-ecm, fsl,ecm; reg = 0x1000 0x1000; interrupts = 17 2; interrupt-parent = mpic; }; memory-controller@2000 { compatible = fsl,mpc8536-memory-controller; reg = 0x2000 0x1000; interrupt-parent = mpic; interrupts = 18 0x2; }; L2: l2-cache-controller@2 { compatible = fsl,mpc8536-l2-cache-controller; reg = 0x2 0x1000; interrupt-parent = mpic; interrupts = 16 0x2; }; i2c@3000 { #address-cells = 1; #size-cells = 0; cell-index = 0; compatible = fsl-i2c; reg = 0x3000 0x100; interrupts = 43 0x2; interrupt-parent = mpic; dfsrr; hwmon@48 { compatible = national,lm73; reg = 0x49; }; rtc@68 { compatible = rtc-m41t80,m41t82; reg = 0x68; }; lm90@4C { compatible = lm90,adt7461; reg = 0x4C; }; }; i2c@3100 { #address-cells = 1; #size-cells = 0; cell-index = 1; compatible = fsl-i2c; reg = 0x3100 0x100; interrupts = 43 0x2; interrupt-parent = mpic; dfsrr; sfp@50 { compatible = sfp_teste,sfp_teste; reg = 0x50; }; bcm56334@44{ compatible = bcm56334,bcm56334; reg = 0x44; }; }; spi@7000 { cell-index = 0; #address-cells = 1; #size-cells = 0; compatible = fsl,mpc8536-espi; reg = 0x7000 0x1000; interrupts = 59 0x2; interrupt-parent = mpic; fsl,espi-num-chipselects = 4; mode = cpu; }; dma@21300 { #address-cells = 1; #size-cells = 1; compatible = fsl,mpc8536-dma, fsl,eloplus-dma; reg = 0x21300 4; ranges = 0 0x21100 0x200; cell-index = 0; dma-channel@0 { compatible
Re: sdhc/mpc8536 - SDCard always detected like read-only
sdhci@2e000 { compatible = fsl,mpc8536-esdhc, fsl,esdhc; reg = 0x2e000 0x1000; interrupts = 72 0x2; interrupt-parent = mpic; /* Filled in by U-Boot */ clock-frequency = 0; }; Hmm, I am not too familiar with those SoCs, yet some 83xx needed sdhci,wp-inverted; here. Maybe yours, too? Would fit the symptoms. Regards, Wolfram -- Pengutronix e.K. | Wolfram Sang| Industrial Linux Solutions | http://www.pengutronix.de/ | signature.asc Description: Digital signature ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev