Jump to content

A20 with eMMC on SD2


Recommended Posts

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 0
Dev 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 bluetooth
CPU: 1    Not tainted  (3.4.108-lime #14)
PC is at put_page+0x0/0x48
LR is at sunxi_nand311_partition+0x84/0x1f4
pc : [<c00b668c>]    lr : [<c03dd618>]    psr: 600d0013
sp : ef05bc68  ip : 0007ffff  fp : 00000000
r10: 00000000  r9 : 00000000  r8 : 00000000
r7 : 00000000  r6 : ee208000  r5 : 00000001  r4 : 00000000
r3 : c0a26554  r2 : c0a26554  r1 : 600d0093  r0 : 00000000
Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
Control: 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

 

Link to comment
Share on other sites

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

 

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines