Jump to content

Pine64 H64 does not boot from eMMC [solved]


__Dirk__

Recommended Posts

Hi all,

 

I hope someone can help me with an annoying but not pressing eMMC boot problem.

 

Recently I bought myself a Pin64 H64 3GB SBC  and an 32GB eMMC module (actually ordered a 16GB but got a 32GB :-) )  I have a Waveshare 7" TFT touchscreen attached.  SBC and Screen are powered either a 5V/3A PSU or a batterypack.

 

Now the board boots fine and fast! from a Samsung EVO sd card .. no problems there, but I cannot get the board to boot from the eMMC module.

 

What I have done so far:

 

1) Flash an Armbian Buster image to the eMMC (using a USB_eMMC converter) with Etcher on Linux Mint...  Boot the board from eMMC WITHOUT sd card installed.  The system hangs when the kernel is started.. see attached picture and u-boot output.

2) Wipe the whole eMMC clean, format as ext4.  Install it on the board, insert sd card .. boot the board.. OK..  try 'nand-sata-install' from cli  or armbian-config->system->install ...   both methods just hang instantly.

 

Apart from these boot attempts I tried to access the (ext4 formatted) eMMC module after bootup from sd.  But I do not see the device in the 'mount'  output or /dev/disk/by-uuid  listing.

 

Is there anything else I can verify/try ?   The eMMC module 'seems' to be functioning fine in the USB_eMMC converter ? 

 

 

Best regards and a big thank you to the dev team for Armbian.. it's running very swiftly !  Well worth my (first) donation :-)

 

Dirk,

Netherlands

20191218_122211.jpg

Armbian_boot_eMMC.txt

Link to comment
Share on other sites

4 minutes ago, martinayotte said:

Do you mean a third one ? I don't know, but I don't think so.


Yes. This is the second time that someone pops up with a problem that the board doesn't boot. But A boots for me and B boots for you ... That's strange.

Link to comment
Share on other sites

26 minutes ago, __Dirk__ said:

Thank you for your reply.  I have a pine_H64_MODEL_B revision board.  Production date? 2018-12-12

So, it looks identical as mine...

If you wish, you can try out my own DEV 5.4.2 image that I've built on Dec 12th !

https://mega.nz/#!DXIBmYDS!Wm6XQC0TKWL1uGyyyZJ98c56i_CGqaeK4NLaJ5pYu9s

Link to comment
Share on other sites

14 minutes ago, __Dirk__ said:

Btw.. probably not related.. but on the site of Pine64.. there is no 32GB related eMMC product.. only the 16GB and 64GB...coincidence? Since I have the 32GB..

When I received some eMMC modules recently, TL shipped me one 16GB and one 32GB, my PineH64 is currently using the 32GB.

Link to comment
Share on other sites

Martin,

 

I gave your image a try on the eMMC module.. unfortunately.. same behavior.. it hangs after: Begin: Running /script/local-block .. done..

 

I guess I have to go to the reseller and verify the working of either the eMMC module or the board.. :-(

 

Thanks for your effort though!

 

Regards and happy holidays!

Dirk

Link to comment
Share on other sites

26 minutes ago, __Dirk__ said:

the ext4 or FAT32 formatted eMMC should show up in /dev/disk/by-uuid ..when the board fully booted from SD card... right?

 


No, Armbian doesn't use windows file system. No need.

Link to comment
Share on other sites

2 hours ago, __Dirk__ said:

Btw.. the ext4 or FAT32 formatted eMMC should show up in /dev/disk/by-uuid ..when the board fully booted from SD card... right?

 

Dirk

It should show up as a /dev/mmcblk device; if you're booting off an SD card and have the eMMC module installed, you should see two, one for the SD card and one for the eMMC module. If you don't see two, check dmesg for any failures to attach or even detect the eMMC module.

Link to comment
Share on other sites

4 hours ago, __Dirk__ said:

Btw.. the ext4 or FAT32 formatted eMMC should show up in /dev/disk/by-uuid ..when the board fully booted from SD card... right?

In fact, yes, but only if kernel was able to read partition table and create a symbolic link accordingly, as shown here on my PineH64 :

lrwxrwxrwx 1 root root 15 Dec 13 08:33 /dev/disk/by-uuid/b946f914-a80f-4551-abe3-68afa0b85b03 -> ../../mmcblk2p1

But, as @Neko May said, check "dmesg | grep mmc" to see if you have such things :

[    4.921793] sunxi-mmc 4022000.mmc: initialized, max. request size: 2048 KB, uses new timings mode
[    5.140450] mmc2: new DDR MMC card at address 0001
[    5.146020] mmcblk2: mmc2:0001 DA4032 29.1 GiB 
[    5.150955] mmcblk2boot0: mmc2:0001 DA4032 partition 1 4.00 MiB
[    5.157231] mmcblk2boot1: mmc2:0001 DA4032 partition 2 4.00 MiB
[    5.164534]  mmcblk2: p1

If not, your eMMC module is maybe defective. (The only thing I see in your picture of the module is that mine is blue while your is green)

Link to comment
Share on other sites

I just tried with my H64 model b. Disco Server 5.3 from download page on 32GB eMMC module.
The eMMC module looks almost identical to the one in the picture. Except mine has a few caps less. There's nothing soldered to those pads. It is the same pad arrangement otherwise. 
All works fine for me. 

Link to comment
Share on other sites

Gents,

 

Giving it a 2nd, 3rd, 4th .... try...   dmesg show trouble with reading the eMMC module (mmcblk2) on startup.  When the system is booted there is no trace of the mmcblk2 block device and running "fdisk -l "  just never returns.. whereas it does when the eMMC is not installed. 

 

Edit: The dmesg output is from the EMMC module installed and formatted as ext4 without any further content. SBC booting from SD.

 

The eMMC does work from the USB2eMMC converter... so the question is.. is the board broken or incompatible with the eMMC module ?   I can ask the seller for support.. but I am not expecting to much from them..

 

@NicoD ,

 

Would it be an option to send my board and eMMC module to you so you can filter out the culprit with your "know to be working"  hardware ? 

 

 

[    3.320856] libphy: stmmac: probed
[    3.476407] mmc2: new DDR MMC card at address 0001
[    3.477631] mmcblk2: mmc2:0001 NCard  28.9 GiB 
[    3.478413] mmcblk2boot0: mmc2:0001 NCard  partition 1 4.00 MiB
[    3.479158] mmcblk2boot1: mmc2:0001 NCard  partition 2 4.00 MiB
[    3.480389] sunxi-mmc 4022000.mmc: data error, sending stop command
[    3.480690] sunxi-mmc 4022000.mmc: data error, sending stop command
[    3.480957] sunxi-mmc 4022000.mmc: data error, sending stop command
[    3.481223] sunxi-mmc 4022000.mmc: data error, sending stop command
[    3.481488] sunxi-mmc 4022000.mmc: data error, sending stop command
[    3.509232] EXT4-fs (mmcblk0p1): mounted filesystem with writeback data mode. Opts: (null)
[    3.596826] sunxi-mmc 4022000.mmc: data error, sending stop command
[    3.596887] blk_update_request: I/O error, dev mmcblk2, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0
[    3.596897] Buffer I/O error on dev mmcblk2, logical block 0, async page read
[    3.597218] sunxi-mmc 4022000.mmc: data error, sending stop command
[    3.597491] sunxi-mmc 4022000.mmc: data error, sending stop command
[    3.597758] sunxi-mmc 4022000.mmc: data error, sending stop command
[    3.598024] sunxi-mmc 4022000.mmc: data error, sending stop command
[    3.598291] sunxi-mmc 4022000.mmc: data error, sending stop command
[    3.598559] sunxi-mmc 4022000.mmc: data error, sending stop command
[    3.598598] blk_update_request: I/O error, dev mmcblk2, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0
[    3.598604] Buffer I/O error on dev mmcblk2, logical block 0, async page read
[    3.598623]  mmcblk2: unable to read partition table

 

Regards and thank you in advance,

 

__dirk__

Netherlands

compare_NoEMMC_vs_EMMC.PNG

Edited by __Dirk__
Additional info
Link to comment
Share on other sites

You are not the only one who is having trouble to get the eMMC card working.
I've got several H64B in 2GB and 3GB all got a date stamp 2018-12-12 and I also have several 16GB eMMC Modules with an Foresee NCEMAM8B-16G Chip on them and Armbian has trouble to recognise the Modules which results in the exact behaviour as _Dirk_ described.
The armbian-config tool offers to copy the OS onto the Module but as soon as that option is selected it reports file not found and is unable to complete the task.
Copying armbian directly onto the module via etcher results in a kernel hung at boot as shown in the opening post.
On the other hand the AOSC image works straight out of the box, so there must be an issue with armbian and how the eMMc is handled by the OS.
At some point I was able to get armbian to boot from eMMC and working even through reboots, but then I switched off the board for a couple of days only to be greeted again with a hung kernel at boot and eMMC not initialised/recognised.
:-(
Update: even with the image Armbian_20.02.1_Pineh64-b_buster_current_5.4.20 I get the exact same behaviour. Whilst booting from SD-Card it shows both eMMC and SD-Card with "lsblk" so it could be an issue with uboot i think.

JK

Edited by _JK_
Update, result with latest image.
Link to comment
Share on other sites

I did some further testing and it turns out the the script within Ambian-Config for copying the OS from SD-Card onto eMMC card does not work as intended, because instead of formatting the eMMC Card it formats the SD-Card instead and therefore is unable to copy any file in the next step and creating a continues loop of error messages which can only be stopped by pressing the reset button on the H64B twice.

 

But there is also some good news, if the image gets flashed onto the eMMC card with etcher and SD-Card and eMMC card are installed at the same time on the H64B it will boot from SD-Card of course but then in Armbian-Config in the install submodule the second option can be used to update the bootloader on the eMMC (uboot?) and then the board can be shutdown and the SD-Card can be removed and the board will boot from the eMMC Card as long as power is connected and the green LED is lit.
Once power is disrupted or disconnected the H64B will not boot from eMMC anymore and hang with the same error as in the opening post.

JK

Link to comment
Share on other sites

JK,

 

Thanks for sharing your findings!  :-)    I was looking into compiling Armbian with an older version of u-boot (same as the AOSC)  but the extended compile options for armbian do not support this... as far as I can see..  Armbian dev's do not seem to care for the few boards that do not work out of the box either.

 

So for now I chucked the Pine aside and switched to a Raspberry 4.. just costs me to much time to get all things I want running on the H64 B   

 

Regards,

__Dirk__

Link to comment
Share on other sites

4 hours ago, __Dirk__ said:

 Armbian dev's do not seem to care for the few boards that do not work out of the box either.

 

Resources are limited and support generate costs which you and board maker doesn't cover. Go here: https://forum.armbian.com/forum/22-board-bring-up/ and reasons why would we need to invest into this hardware? And add your own time & cash. Then you will have some rights to complain ...

 

- budget for R&D is exactly zero. Its developers private cost.

- budget for dealing with you is the same, zero. Its developers private cost.

- I work from 10 - 16h per day on this project. Its my private cost. There are 5-10 people in similar, perhaps less dramatic situation

- there is around 15 EUR of donations from you per day for whole project. Its not enough to pay for the download costs you create.

- not a single EUR ever came from this board makers.

 

That zero budget will not be used on a board from this topic. Personally I don't even have this board and certainly no time to deal with it more then I already did: https://github.com/armbian/documentation/issues/49

Link to comment
Share on other sites

Igor,

 

Thank you for your reply.  I did not mean to insult anybody by stating  'Armbian dev's do not seem to care for the few boards that do not work out of the box either.'   but it's a fact and an understandable one as you already noted .. budget, time , etc.. 

 

Another fact is that there seems to be a bug in the Armbian build for certain eMMC modules... the hardware (Pine64 H64-B and eMMC I have) are verified to be working... it's running on AOSC without any problems.

 

I am happy to put time in investigating why.. (although my knowledge about SBC's in not by far as extended as your's)...  

From the thread all I got from my questions is..   it works for me ... that is not helpful .. and I understand that if you don't have the board you can't test anything.. even if you DO have the board.. if you can't reproduce the problem, it's difficult to help.

But you do have the knowledge to give me a hint on where to start, it's somewhere in the booting process.. so is it u-boot not setting up the environment correctly, or is it the kernel , or the board config files? ... or.. .?

I think I posted all the logs (Console output, dmesg) to give me some hint on where to start looking... older kernel, older u-boot ... kernel patch .. any other hints.. 

 

That's what I was looking for.. a hint to continue.. not asking anybody to solve my problem..  

 

To end this reply... A big thank you for developing Armbian and sharing it with the community! 

 

Kind regards,

__Dirk__

Link to comment
Share on other sites

1 hour ago, __Dirk__ said:

But you do have the knowledge to give me a hint on where to start

 

Use search engine. You will be surprised how much know-how is accumulated in this forum.


There are also other people that needs attention and I have to (try to) share my time in a fair manner.

Once we might hire people to be able to attach to your problems - if you are willing to pay them, we will educate them. But until then, waiting time is measured in months and years and most of the support cases are simply ignored. Because we have to eat, sleep, ...

 

 

Link to comment
Share on other sites

Dear all,

 

Finally managed to get my Pine64 H64 model-B to boot from the Foresee 32GB eMMC module after applying the next patch that adds HS200 and HS400 support to the device tree. 

 

--- a/arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dts    2020-03-30 11:24:41.176470382 +0200
+++ b/arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dts    2020-03-30 11:24:41.176470382 +0200
@@ -127,8 +127,10 @@
     pinctrl-0 = <&mmc2_pins>;
     vmmc-supply = <&reg_vcc3v3>;
     vqmmc-supply = <&reg_vcc1v8>;
-    non-removable;
     cap-mmc-hw-reset;
+        mmc-hs200-1_8v;
+        mmc-hs400-1_8v;
+        mmc-hs400-enhanced-strobe;
     status = "okay";
 };

 

Don know how this patch will impact other brand/type eMMC modules... but for me this now works!!!!!

 

@martinayotte,

 

I guess your remark pushed me in the correct way :-D

 

Regards,

 

__Dirk__

 

Link to comment
Share on other sites

Many thanks to _Dirk_ for figuring that out and resolving a long-standing issue in Armbian.

I am a User, I am able find my way around the Terminal and resolve a dependency issue whilst using cmake and so on, but applying a patch to the device tree is beyond my competency.

@Igor @martinayotte Is there any chance that this patch can be put into one of the next image builds of Armbian? That would be greatly appreciated. :thumbup:

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines