dando Posted June 21, 2018 Posted June 21, 2018 Hello, I am trying to boot Armbian on a stock Orange Pi Plus 2 which has stock Android installed to its eMMC. I perform the following steps: 1. Download the Armbian Stretch mainline kernel 4.14.y (https://dl.armbian.com/orangepiplus/Debian_stretch_next.7z). 2. Unzip the archive uzing p7zip (on Arch Linux, using "7z e Armbian_5.38_Orangepiplus_Debian_stretch_next_4.14.14.7z"). 3. Verify that the sha256sum of Armbian_5.38_Orangepiplus_Debian_stretch_next_4.14.14.img is 7ac1896ca4ea8f518d41d23ee07b05aedd1db23fbbeab2056865ae5a3c45e5c9. 4. Burn the image with Etcher to a brand new and genuine Samsung Evo Plus 32 GB. (It was used for writing a couple of older Armbian versions today, but to no avail). 5. Insert the SD card in the Orange Pi Plus 2's SD card slot. 6. Plug in Ethernet and UART debug. 7. Power on with a tested 5V, 2A power supply and no unnecessary USB devices connected to the Pi. 8. The power-on green LED on the board is steadily lit, the green LED on the Ethernet port flashes quickly. The CPU is warm to the touch, but kernel doesn't boot properly. 9. No DHCP entries for new devices pop up in the router table. Here is the UART output: U-Boot SPL 2017.11-armbian (Jan 25 2018 - 07:58:02) DRAM: 2048 MiB Trying to boot from MMC1 U-Boot 2017.11-armbian (Jan 25 2018 - 07:58:02 +0100) Allwinner Technology CPU: Allwinner H3 (SUN8I 1680) Model: Xunlong Orange Pi Plus / Plus 2 DRAM: 2 GiB MMC: SUNXI SD/MMC: 0, SUNXI SD/MMC: 1 *** Warning - bad CRC, using default environment In: serial Out: serial Err: serial Net: phy interface7 eth0: ethernet@1c30000 starting USB... USB0: USB EHCI 1.00 USB1: USB EHCI 1.00 scanning bus 0 for devices... 2 USB Device(s) found scanning bus 1 for devices... Device NOT ready Request Sense returned 02 3A 00 2 USB Device(s) found scanning usb for storage devices... 0 Storage Device(s) found Autoboot in 1 seconds, press <Space> to stop switch to partitions #0, OK mmc0 is current device Scanning mmc 0:1... Found U-Boot script /boot/boot.scr 3708 bytes read in 212 ms (16.6 KiB/s) ## Executing script at 43100000 U-boot loaded from SD Boot script loaded from mmc 152 bytes read in 172 ms (0 Bytes/s) 5070044 bytes read in 520 ms (9.3 MiB/s) 6968976 bytes read in 626 ms (10.6 MiB/s) Found mainline kernel configuration 33781 bytes read in 1019 ms (32.2 KiB/s) 4179 bytes read in 708 ms (4.9 KiB/s) Applying kernel provided DT fixup script (sun8i-h3-fixup.scr) ## Executing script at 44000000 ## Loading init Ramdisk from Legacy Image at 43300000 ... Image Name: uInitrd Image Type: ARM Linux RAMDisk Image (gzip compressed) Data Size: 5069980 Bytes = 4.8 MiB Load Address: 00000000 Entry Point: 00000000 Verifying Checksum ... OK ## Flattened Device Tree blob at 43000000 Booting using the fdt blob at 0x43000000 Loading Ramdisk to 49b2a000, end 49fffc9c ... OK reserving fdt memory region: addr=43000000 size=6e000 Loading Device Tree to 49ab9000, end 49b29fff ... OK Starting kernel ... After waiting for around 5 minutes, I tried to power cycle the board. The result was identical. I can boot up the stock Android from the eMMC successfully. Nicely work also a Debian and Raspbian official images. Nevertheless, they cannot access the eMMC so that I can install Armbian on it. I tried a few different versions of Armbian on the same and on an older but tested 4GB microSD card: Armbian_5.25_Orangepiplus_Debian_jessie_default_3.4.113.img. The board does not boot properly: U-Boot SPL 2017.01-armbian (Feb 02 2017 - 03:04:04) DRAM: 2048 MiB Trying to boot from MMC1 U-Boot 2017.01-armbian (Feb 02 2017 - 03:04:04 +0100) Allwinner Technology CPU: Allwinner H3 (SUN8I 1680) Model: Xunlong Orange Pi Plus / Plus 2 I2C: ready DRAM: 2 GiB MMC: SUNXI SD/MMC: 0, SUNXI SD/MMC: 1 *** Warning - bad CRC, using default environment In: serial Out: serial Err: serial Net: phy interface7 eth0: ethernet@1c30000 Hit any key to stop autoboot: 0 6944 bytes read in 156 ms (43 KiB/s) switch to partitions #0, OK mmc0 is current device Scanning mmc 0:1... Found U-Boot script /boot/boot.scr 2652 bytes read in 192 ms (12.7 KiB/s) ## Executing script at 43100000 U-boot loaded from SD Boot script loaded from mmc 123 bytes read in 132 ms (0 Bytes/s) 3789961 bytes read in 591 ms (6.1 MiB/s) 4754648 bytes read in 687 ms (6.6 MiB/s) ** File not found /boot/.next ** ** File not found .next ** 36128 bytes read in 514 ms (68.4 KiB/s) ## Loading init Ramdisk from Legacy Image at 43300000 ... Image Name: uInitrd Image Type: ARM Linux RAMDisk Image (gzip compressed) Data Size: 3789897 Bytes = 3.6 MiB Load Address: 00000000 Entry Point: 00000000 Verifying Checksum ... OK Using machid 0x1029 from environment Starting kernel ... [sun8i_fixup]: From boot, get meminfo: Start: 0x40000000 Size: 2048MB ion_carveout reserve: 160m@0 256m@0 130m@1 200m@1 ion_reserve_select: ion chipid [0x2c00081! ion_reserve_common: ion reserve: [0xb0000000, 0xc0000000]! I also tried to mount the eMMC directly under Arch Linux using FEL using https://github.com/zador-blood-stained/fel-mass-storage. This did not work properly and I saw no devices using fdisk -l: U-Boot SPL 2016.09-armbian-fel-mass-storage-dirty (Sep 28 2016 - 12:21:11) DRAM: 2048 MiB Trying to boot from FEL U-Boot 2016.09-armbian-fel-mass-storage-dirty (Sep 28 2016 - 12:21:11 +0300) Allwinner Technology CPU: Allwinner H3 (SUN8I 1680) Model: Xunlong Orange Pi One DRAM: 2 GiB Using default environment In: serial Out: serial Err: serial Net: No ethernet found. Hit any key to stop autoboot: 0 (FEL boot) ## Executing script at 43100000 ## Loading init Ramdisk from Legacy Image at 43300000 ... Image Name: uInitrd Image Type: ARM Linux RAMDisk Image (gzip compressed) Data Size: 2229486 Bytes = 2.1 MiB Load Address: 00000000 Entry Point: 00000000 Verifying Checksum ... OK Using machid 0x1029 from environment Starting kernel ... [sun8i_fixup]: From boot, get meminfo: Start: 0x40000000 Size: 2048MB ion_carveout reserve: 160m@0 256m@0 130m@1 200m@1 ion_reserve_select: ion chipid [0x2004620! ion_reserve_common: ion reserve: [0xb0000000, 0xc0000000]! What am I doing wrong? Thank you in advance! Kind regards, Nikolay
dando Posted June 26, 2018 Author Posted June 26, 2018 Hi again, Today I build from source the latest Debian Stretch with mainline kernel for the Orange Pi Plus (2). I flashed the resulting image Armbian_5.48_Orangepiplus_Debian_stretch_next_4.14.52.img using etcher to a uSD card and tried to boot the SBC. Unfortunately, the result was negative again: U-Boot SPL 2017.11-armbian (Jun 26 2018 - 13:51:31) DRAM: 2048 MiB Trying to boot from MMC1 It was a cold boot and the network and UART ports were reconnected before powering the board. After a power cycle, the boot went a bit further, but not enough: U-Boot 2017.11-armbian (Jun 26 2018 - 13:51:31 +0300) Allwinner Technology CPU: Allwinner H3 (SUN8I 1680) Model: Xunlong Orange Pi Plus / Plus 2 DRAM: 2 GiB MMC: SUNXI SD/MMC: 0, SUNXI SD/MMC: 1 *** Warning - bad CRC, using default environment In: serial Out: serial Err: serial Net: phy interface7 eth0: ethernet@1c30000 starting USB... USB0: USB EHCI 1.00 USB1: USB EHCI 1.00 scanning bus 0 for devices... And that's it, basically. I booted up the Arch Linux install from the eMMC, inserted the uSD card anew and here is the respective dmesg output: [Tue Jun 26 12:42:45 2018] [mmc]: mmc 0 detect change, present 1 [Tue Jun 26 12:42:46 2018] [mmc]: sdc0 set ios: clk 0Hz bm PP pm UP vdd 3.3V width 1 timing LEGACY(SDR12) dt B [Tue Jun 26 12:42:46 2018] [mmc]: sdc0 power_supply is null [Tue Jun 26 12:42:46 2018] [mmc]: sdc0 set ios: clk 400000Hz bm PP pm ON vdd 3.3V width 1 timing LEGACY(SDR12) dt B [Tue Jun 26 12:42:46 2018] [mmc]: *** sunxi_mci_dump_errinfo(L826): smc 0 err, cmd 52, RTO !! [Tue Jun 26 12:42:46 2018] [mmc]: *** sunxi_mci_dump_errinfo(L826): smc 0 err, cmd 52, RTO !! [Tue Jun 26 12:42:46 2018] [mmc]: sdc0 set ios: clk 400000Hz bm PP pm ON vdd 3.3V width 1 timing LEGACY(SDR12) dt B [Tue Jun 26 12:42:46 2018] [mmc]: sdc0 set ios: clk 400000Hz bm PP pm ON vdd 3.3V width 1 timing LEGACY(SDR12) dt B [Tue Jun 26 12:42:46 2018] *******************Try sdio******************* [Tue Jun 26 12:42:46 2018] [mmc]: *** sunxi_mci_dump_errinfo(L826): smc 0 err, cmd 5, RTO !! [Tue Jun 26 12:42:46 2018] [mmc]: *** sunxi_mci_dump_errinfo(L826): smc 0 err, cmd 5, RTO !! [Tue Jun 26 12:42:46 2018] [mmc]: *** sunxi_mci_dump_errinfo(L826): smc 0 err, cmd 5, RTO !! [Tue Jun 26 12:42:46 2018] [mmc]: *** sunxi_mci_dump_errinfo(L826): smc 0 err, cmd 5, RTO !! [Tue Jun 26 12:42:46 2018] *******************Try sd ******************* [Tue Jun 26 12:42:46 2018] [mmc]: sdc0 set ios: clk 400000Hz bm PP pm ON vdd 3.3V width 1 timing LEGACY(SDR12) dt B [Tue Jun 26 12:42:46 2018] [mmc]: sdc0 set ios: clk 400000Hz bm PP pm ON vdd 3.3V width 1 timing LEGACY(SDR12) dt B [Tue Jun 26 12:42:46 2018] [mmc]: sdc0 set ios: clk 400000Hz bm PP pm ON vdd 3.3V width 1 timing LEGACY(SDR12) dt B [Tue Jun 26 12:42:46 2018] [mmc]: sdc0 set ios: clk 25000000Hz bm PP pm ON vdd 3.3V width 1 timing LEGACY(SDR12) dt B [Tue Jun 26 12:42:46 2018] [mmc]: sdc0 set ios: clk 25000000Hz bm PP pm ON vdd 3.3V width 1 timing LEGACY(SDR12) dt B [Tue Jun 26 12:42:46 2018] [mmc]: sdc0 set ios: clk 25000000Hz bm PP pm ON vdd 3.3V width 4 timing LEGACY(SDR12) dt B [Tue Jun 26 12:42:46 2018] mmc0: new SDHC card at address e624 [Tue Jun 26 12:42:46 2018] mmcblk1: mmc0:e624 SU04G 3.69 GiB [Tue Jun 26 12:42:46 2018] mmcblk1: p1 [Tue Jun 26 12:42:46 2018] *******************sd init ok******************* fdisk -l also gave a presumably correct result: Disk /dev/mmcblk1: 3.7 GiB, 3965190144 bytes, 7744512 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x088172d7 Device Boot Start End Sectors Size Id Type /dev/mmcblk1p1 8192 1966079 1957888 956M 83 Linux And the file system was clean: e2fsck /dev/mmcblk1p1 e2fsck 1.42.13 (17-May-2015) /dev/mmcblk1p1: clean, 37676/61184 files, 224010/244736 blocks I had no success in booting any Armbian release (incl. with legacy kernel) on this board so far. On the other hand, Debian Jessie and Arch Linux from the official releases (by loboris) are running fine, even install correctly on the eMMC. As far as I can tell, the uSD card slot microswitch is operating properly. The power supply is running steadily and the uSD card works properly. I am currently trying with an older Sandisk 4GB uSD card which worked really well with the official images. Etcher writes the image to the card and verifies it successfully. I am out of ideas currently I would be very thankful if anybody has any clue on what could be wrong with my setup. Thanks in advance!
Igor Posted June 26, 2018 Posted June 26, 2018 26 minutes ago, dando said: I had not success in booting any Armbian release That is expected. We use the same u-boot with the same settings on all releases. You have one of those boards, which can probably be booted only with a stock Allwinner bootloader, which we don't use for many reasons. What can you do to run a modern and supported OS? Play with u-boot settings (recompile and write u-boot to SD card), especially with a different DRAM speed. I have a pile of boards around and not a single is affected by this problem, but I saw a few people bump into this. 1
dando Posted June 26, 2018 Author Posted June 26, 2018 @Igor,thank you very much for the informative and fast response! Because of it, I managed to build U-Boot with 408MHz DRAM frequency and to make the board boot successfully the latest Armbian. I also tried to install it on the eMMC. The nand-sata-install script ran fine and did not report any errors. Nevertheless, the board could not boot fully from the eMMC - it behaved similarly as it was before lowering the DRAM frequency. Once I copied the U-Boot binary to the eMMC via dd: dd if=u-boot-sunxi-with-spl.bin of=/dev/mmcblk0 bs=1024 seek=8 the board booted properly. It seems that the configuration was not applied properly at first or something like that. Looking at the results and recommendations here, I also compiled U-Boot with 600MHz DRAM frequency and the board booted successfully again. Thank you very much for your support! I also have a few side questions. I tried to compile sunxi-meminfo as described here. It compiled without errors, but once I tried to execute it, I got: ./sunxi-meminfo Error: unknown or unhandled Soc: 0x1680 Looking at the source code, it seems that it was not updated for the past year and a half. However, a SoC with ID 0x1680 is already defined here. Am I missing something or is there an alternative for checking the current DRAM parameters? Second, it seems that the Lima-memtester is well supported only under legacy kernel. Is there any tweak to get it running under mainline, or is there some viable alternative? I would like to make sure that with all these DRAM configuration changes, the system will be stable enough in the long run. And last, armbianmonitor seems to not display the current CPU temp: root@orangepiplus:~/sunxi-tools# armbianmonitor -m Stop monitoring using [ctrl]-[c] Time CPU load %cpu %sys %usr %nice %io %irq C.St. 21:41:28: 1296MHz 0.39 3% 1% 1% 0% 0% 0% 0/9 Is it supposed to be like this in the latest sources? Thank you once again for the great OS and support!
Recommended Posts