Guus Jansman Posted September 23, 2015 Posted September 23, 2015 First a very big "Thank you", Igor. You create wonderful images. But now the problem. I want to boot the A20 from an eMMC Flash. I use a HAOYU New MarsBoard A20 Dev Board. The reason: the CM-A10/A20 PCB has a footprint for an eMMC. So the 8GB NAND was removed and replaced by a 2GB eMMC. Then I took the Pecovnik Olimex Lime2 Jessie 3.4.108 image and added the fex file from the MarsBoard SD image. After a fex2bin the MarsBoard bootet from SD0. Life was beautiful. The problems start if I wanted to contact the eMMC. I changed "[nand_para] nand_used" to 0. And I changed "[mmc2_para] sdc_used" to 1. Then the kernel gets in serious problems: <6>[mmc-msg] sdc2 set ios: clk 52000000Hz bm PP pm ON vdd 3.3V width 1 timing MMC-HS(SDR20) dt B<6>[mmc-msg] sdc2 set round clock 46153846, src 600000000<6>[mmc-msg] sdc2 set ios: clk 52000000Hz bm PP pm ON vdd 3.3V width 8 timing MMC-HS(SDR20) dt B<3>[mmc-err] smc 2 err, cmd 8, EBE<3>[mmc-err] In data read operation<6>[mmc-msg] found data error, need to send stop command<3>[mmc-err] sdc 2 send stop command failed<6>[mmc-msg] sdc2 set ios: clk 52000000Hz bm PP pm ON vdd 3.3V width 4 timing MMC-HS(SDR20) dt B<6>mmc1: new high speed MMC card at address 0001<6>mmcblk1: mmc1:0001 MMC02G 1.78 GiB<6>mmcblk1boot0: mmc1:0001 MMC02G partition 1 1.00 MiB<6>mmcblk1boot1: mmc1:0001 MMC02G partition 2 1.00 MiB<3>[mmc-err] smc 2 err, cmd 18, RTO<3>[mmc-err] In data read operation<6>[mmc-msg] found data error, need to send stop command<3>mmcblk1: timed out sending r/w cmd command, card status 0x900<3>mmcblk1: not retrying timeout<3>end_request: I/O error, dev mmcblk1, sector 0<3>Buffer I/O error on device mmcblk1, logical block 0<3>[mmc-err] smc 2 err, cmd 18, RTO<3>[mmc-err] In data read operation<6>[mmc-msg] found data error, need to send stop command<3>mmcblk1: timed out sending r/w cmd command, card status 0x900<3>mmcblk1: not retrying timeout<3>end_request: I/O error, dev mmcblk1, sector 0<3>Buffer I/O error on device mmcblk1, logical block 0<3>[mmc-err] smc 2 err, cmd 18, RTO<3>[mmc-err] In data read operation<6>[mmc-msg] found data error, need to send stop command<3>mmcblk1: timed out sending r/w cmd command, card status 0x900<3>mmcblk1: not retrying timeout<3>end_request: I/O error, dev mmcblk1, sector 0<3>Buffer I/O error on device mmcblk1, logical block 0<3>[mmc-err] smc 2 err, cmd 18, RTO<3>[mmc-err] In data read operation<6>[mmc-msg] found data error, need to send stop command<3>mmcblk1: timed out sending r/w cmd command, card status 0x900<3>mmcblk1: not retrying timeout<3>end_request: I/O error, dev mmcblk1, sector 0<3>Buffer I/O error on device mmcblk1, logical block 0<3>[mmc-err] smc 2 err, cmd 18, RTO<3>[mmc-err] In data read operation<6>[mmc-msg] found data error, need to send stop command<3>mmcblk1: timed out sending r/w cmd command, card status 0x900<3>mmcblk1: not retrying timeout<3>end_request: I/O error, dev mmcblk1, sector 0<3>Buffer I/O error on device mmcblk1, logical block 0<3>[mmc-err] smc 2 err, cmd 18, RTO<3>[mmc-err] In data read operation<6>[mmc-msg] found data error, need to send stop command<3>mmcblk1: timed out sending r/w cmd command, card status 0x900<3>mmcblk1: not retrying timeout<3>end_request: I/O error, dev mmcblk1, sector 0<3>Buffer I/O error on device mmcblk1, logical block 0<3>[mmc-err] smc 2 err, cmd 18, RTO<3>[mmc-err] In data read operation<6>[mmc-msg] found data error, need to send stop command<3>mmcblk1: timed out sending r/w cmd command, card status 0x900<3>mmcblk1: not retrying timeout<3>end_request: I/O error, dev mmcblk1, sector 0<3>Buffer I/O error on device mmcblk1, logical block 0Dev mmcblk1: unable to read RDB block 0<3>[mmc-err] smc 2 err, cmd 18, RTO<3>[mmc-err] In data read operation<6>[mmc-msg] found data error, need to send stop command<3>mmcblk1: timed out sending r/w cmd command, card status 0x900<3>mmcblk1: not retrying timeout<3>end_request: I/O error, dev mmcblk1, sector 0<3>Buffer I/O error on device mmcblk1, logical block 0<3>[mmc-err] smc 2 err, cmd 18, RTO<3>[mmc-err] In data read operation<6>[mmc-msg] found data error, need to send stop command<3>mmcblk1: timed out sending r/w cmd command, card status 0x900<3>mmcblk1: not retrying timeout<3>end_request: I/O error, dev mmcblk1, sector 0<3>Buffer I/O error on device mmcblk1, logical block 0<3>[mmc-err] smc 2 err, cmd 18, RTO<3>[mmc-err] In data read operation<6>[mmc-msg] found data error, need to send stop command<3>mmcblk1: timed out sending r/w cmd command, card status 0x900<3>mmcblk1: not retrying timeout<3>end_request: I/O error, dev mmcblk1, sector 0<3>Buffer I/O error on device mmcblk1, logical block 0<3>Dev Sunxi softw311 mmcblk1 header: error reading sector 0<1>Unable to handle kernel NULL pointer dereference at virtual address 00000000<1>pgd = c0004000<1>[00000000] *pgd=00000000<0>Internal error: Oops: 17 [#1] PREEMPT SMP ARM<d>Modules linked in: cpufreq_userspace 8188eu spidev a20_tp 8021q garp stp llc hidp rfcomm hci_uart bluetoothCPU: 1 Not tainted (3.4.108-lime #14)PC is at put_page+0x0/0x48LR is at sunxi_nand311_partition+0x84/0x1f4pc : [<c00b668c>] lr : [<c03dd618>] psr: 600d0013sp : ef05bc68 ip : 0007ffff fp : 00000000r10: 00000000 r9 : 00000000 r8 : 00000000r7 : 00000000 r6 : ee208000 r5 : 00000001 r4 : 00000000r3 : c0a26554 r2 : c0a26554 r1 : 600d0093 r0 : 00000000Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment kernelControl: 10c5387d Table: 6e72006a DAC: 00000015 I must say that it is not 100% sure that soldering was performed correctly: though the person doing it is very capable soldering a BGA by hand is "blind work". OTOH the kernel says "mmcblk1: mmc1:0001 MMC02G 1.78 GiB" which indicates that the eMMC was seen. The line with "LR is at sunxi_nand311_partition" indicates to me that the sunxi nand driver may cause problems so my thought was to build the kernel with the CONFIG_SUNXI_NAND_PARTITION=n and CONFIG_SUNXI_NAND=n. Unfortunately this seems to cause even more problems: even U-Boot does not work anymore. The Olimex Lime2 (with different boot.scr and script.bin) has no problems with the same image. My questions: * Has anybody tried booting an A20 from SD2. * Has anybody tried accessing an eMMC from an A20? Thanks in advance, Guus
Guus Jansman Posted September 23, 2015 Author Posted September 23, 2015 Of course my question came just before I had some progress. I see /dev/mmcblk1 now! I just used some wrong diskimage (I think, I'll have to check). It is not very stable now, maybe due wrong content or timing. Another thing I have to find out. But you may ignore my questions for now. Sorry for the noise. An the next step will be difficult. I want to boot from the eMMC. No idea whether this is really possible but that's what I really want to do. There is a possibility that I'll ask questions about this. I'll try to be more thorough then. I forgot to mention: Using the fex file I misuse a GPIO pin to simulate an SD DETECT line. That's how I can at least boot Linux and it gives me some possibility to check what's happening. Guus
chradev Posted April 4, 2016 Posted April 4, 2016 Hi Guus, Of course my question came just before I had some progress. I see /dev/mmcblk1 now! I just used some wrong diskimage (I think, I'll have to check). It is not very stable now, maybe due wrong content or timing. Another thing I have to find out. But you may ignore my questions for now. Sorry for the noise. An the next step will be difficult. I want to boot from the eMMC. No idea whether this is really possible but that's what I really want to do. There is a possibility that I'll ask questions about this. I'll try to be more thorough then. I forgot to mention: Using the fex file I misuse a GPIO pin to simulate an SD DETECT line. That's how I can at least boot Linux and it gives me some possibility to check what's happening. Guus I am having similar problem while trying to make use of eMMC on A20-Olinuxino-Lime2-eMMC (HW rev. E). I get the same error but using Armbian 4.5 with mainline kernel 4.2.3 (see more details here). Fortunately, Linux boot successfully from SD card MMC0 so I can change dtb and try different configurations. I have also tried to make use of eMMC from Armbian 5.07 with legacy kernel 3.4.111 with no success as well. Could you give me more information about the problem fix especially around 'GPIO pin to simulate an SD DETECT line'? Best regards Chris
phintegrator Posted April 15, 2016 Posted April 15, 2016 Hi Guus, I am having similar problem while trying to make use of eMMC on A20-Olinuxino-Lime2-eMMC (HW rev. E). I get the same error but using Armbian 4.5 with mainline kernel 4.2.3 (see more details here). Fortunately, Linux boot successfully from SD card MMC0 so I can change dtb and try different configurations. I have also tried to make use of eMMC from Armbian 5.07 with legacy kernel 3.4.111 with no success as well. Could you give me more information about the problem fix especially around 'GPIO pin to simulate an SD DETECT line'? Best regards Chris Can you share your current dts? Lets see if all the configuration needed are defined.
Recommended Posts