Jump to content

Flashing to and booting from eMMC problem


dfwBrawler

Recommended Posts

We have an H2+ based board that is very similar to the Orange Pi Zero. Basically it is equivalent to a Zero board with a different Wi-Fi chip and adding an eMMC chip. The SD card is on the SDC0 bus and the eMMC chip is on the SDC2 bus. The SDC1 bus isn't connected.

 

We have been using the stock Orange Pi Zero Jessie images on SD card and they work pretty well (thanks to you guys for your hard work)

 

We want to put a Jessie image on the eMMC but we are having trouble.

 

First we tried the nand-sata-install script but it wouldn't run without the eMMC device.  We edited the lib/config/fex/orangepizero.fex file and changed sdc_used for mmc2 to 1 from 0 and rebuit the SD image. This gave me the eMMC device and nand-sata-install ran withtout errors.

 

Now SD and eMMC both appear in /dev/mmc*

root@orangepizero:~# ls /dev/mmc*
/dev/mmcblk0    /dev/mmcblk1       /dev/mmcblk1boot1
/dev/mmcblk0p1  /dev/mmcblk1boot0  /dev/mmcblk1p1

Unfortunately when the board reboots it only displays the following:

U-Boot SPL 2017.03-armbian (May 03 2017 - 15:25:24)
DRAM: 512 MiB
Trying to boot from MMC2
MMC Device 1 not found
spl: could not find mmc device. error: -19
SPL: failed to boot from all boot devices
### ERROR ### Please RESET the board ###

We also tried putting an Orange Pi Plus image on the eMMC, but it had a number of errors when it booted from eMMC plus it seemed to be missing the Ethernet device.

 

So the question is, what are we missing to get the eMMC working correctly?

 

Link to comment
Share on other sites

Ran a quick test with Armbian_5.27_Orangepizeroplus2-h3_Ubuntu_xenial_default_3.4.113.img

 

It boots from SD with a minimum of errors. The eMMC device is available and nand-sata-install runs without errors.

 

The board then boots from eMMC (whoo hoo we are making progress).  We don't see an Ethernet device.

 

So two new questions.

1) Is there a simple fix to turn on Ethernet?

2) What are the chances of getting Jessie to work?

 

Thanks.

Link to comment
Share on other sites

You are saying :

Quote

equivalent to a Zero board with a different Wi-Fi chip and adding an eMMC chip

So, what are this WiFi ?

Quote

We don't see an Ethernet device.

Is it exactly connected the same way as the original board ?

Link to comment
Share on other sites

Ran a few more tests.

1) tried Armbian_5.27.170508_Orangepizeroplus2-h3_Ubuntu_xenial_dev_4.11.0.img - there's an Ethernet device, but no eMMC device

2) tried building an SD image by selecting Jessie instead of Xenial - it built ok, there's an eMMC device, but no Ethernet

3) tried building an SD image but patched using these instructions:

https://forum.armbian.com/index.php?/topic/4186-orange-pi-zero-ethernet-disabled-in-mainline-411/

  there's an eMMC device but still no Ethernet device.

 

 

Link to comment
Share on other sites

4 minutes ago, martinayotte said:

So, what are this WiFi ?

Is it exactly connected the same way as the original board ?

We have our own WiFi device and it works fine with the drivers we build and install.

 

The Ethernet works fine with the original Zero board image. The Ethernet on the board we are using is wired exactly the same way to the H2 as the original Zero.

Link to comment
Share on other sites

5 hours ago, martinayotte said:

You are talking about OPiZeroPlus2-H3, right ?

But those board doesn't have any Ethernet, so I don't understand the case ...

Let me try to clarify.

 

The board we have is electrically very similar to the Pi Zero, except that it also has eMMC. We used Igor's suggestion of using the image for the Zero Plus 2-H3 and that worked to get eMMC working on the board we have.

 

I understand that the Zero Plus2-H3 doesn't have an Ethernet port. When we use the Zero image on the board we have, the Ethernet works well.

 

What I'm trying to figure out is how to enable the Ethernet drivers within the Zero Plus2-H3 image such that it will behave exactly like the Ethernet drivers in the Zero image.

 

Link to comment
Share on other sites

You mean that your board is not an OrangePi, neither Zero or ZeroPlus-H3 ? Which brand it is ? Or is it a custom one ?

To get both eth and emmc, you will have to merge DT and resulting dts compiled into dtb.

 

Link to comment
Share on other sites

2 hours ago, martinayotte said:

You mean that your board is not an OrangePi, neither Zero or ZeroPlus-H3 ? Which brand it is ? Or is it a custom one ?

To get both eth and emmc, you will have to merge DT and resulting dts compiled into dtb.

 

The board we are using is not commercially available.  As best I can tell it was primarily based on a Zero and has an added eMMC.

 

Can you elaborate on what you mean by "merge DT and resulting dts compiled into dtb"?

Link to comment
Share on other sites

That is a bit strange that the manufacturer of this board doesn't provide you support ...

Quote

"merge DT and resulting dts compiled into dtb"

This is quite dummy job that should be done by the manufacturer if he wish to sell his boards...

 

EDIT :  the manufacturer can send us few sample, and we will look if it worth to do the task for free ...

 

Link to comment
Share on other sites

We have done some more testing.  The device tree stuff seems confusing.  We did two builds. 1) h3-orangepi-zeroplus, 4.11.0 Xenial, mainline 2) h3-orangepi-zeroplus, 3.4.113, xenial legacy

 

1) h3-orangepi-zeroplus, 4.11.0 Xenial, mainline.  

This build gives Ethernet: yes and eMMC: no. 


Doing a diff of 

sources/linux-sun8i-mainline/orange-pi-4.11/arc/arm/boot/dts/sun8i-h3-orangepi-zeroplus.dts
vs 
sources/linux-sun8i-mainline/orange-pi-4.11/arc/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts
shows only title string differences
<       model = "Xunlong Orange Pi Zero";
<       compatible = "xunlong,orangepi-zero", "allwinner,sun8i-h2-plus";
---
>       model = "Xunlong Orange Pi Zero Plus";
>       compatible = "xunlong,orangepi-zeroplus", "allwinner,sun8i-h3";

 

This looks like the Zero plus dts file was accidentally just copied from the Zero dts file without making the necessary changes.

 

2) zero plus 2 h3 3.4.113, xenial legacy
This give eMMC: yes and Ethernet: no

 

Doing a diff of 
source/u-boot/v2017.05/arch/arm/dts/sun8i-h3-orangepi-zeroplus.dts
vs
source/u-boot/v2017.05/arch/arm/dts/sun8i-h2-plus-orangepi-zero.dts

 

shows both include the same dtsi file
#include "sun8i-h3.dtsi"

 

and they both have the same emac section

&emac {
    phy = <&phy1>;
    phy-mode = "mii";
    allwinner,use-internal-phy;
    allwinner,leds-active-low;
    status = "okay";
    phy1: ethernet-phy@1 {
        reg = <1>;
    };
};

 

Also neither lib/config/fex/orangepizeroplus2-h3.fex nor lib/config/fex/orangepizero.fex shows any mention of emac or phy or ethernet
 

Lastly we did notice is that we tried to comment out the "disabled" line in the emac section of the sun8i-h3.dtsi file, but after doing the build, the line was no longer commented. Could that be part of why we aren't getting Ethernet?

 

Link to comment
Share on other sites

Quote

This looks like the Zero plus dts file was accidentally just copied from the Zero dts file without making the necessary changes.

It is me that did the integraton of the new ZeroPlus-H3 DT two weeks ago, but I don' t see why I missed in your comment.

(I will check again tomorrow since it it late tonight ...)

 

Quote

2) zero plus 2 h3 3.4.113, xenial legacy

Did you tried Mainline ?

Because in Legacy doesn' t look at DT at all, it is using hte old FEX with script.bin.

I didn' t managed any FEX changes since I hate Legacy ... I' m strickly work with Mainline.

 

 

 

 

Link to comment
Share on other sites

2 hours ago, martinayotte said:

BTW, during migration from 4.10 to 4.11, there were lot of missings for ZeroPlus2-H3, including the eMMC and USB missings ...

I've updated the patches and now DT looks better.

 

That works great now. I pulled down the updates and built a dev 4.11 release. eMMC works and so does Ethernet.

 

I want to thank everyone for your help getting this problem solved.  Without this dedicated group of people there wouldn't be a working Linux release for Allwinner boards.

 

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