Jump to content

NanoPi NEO Air - Accessing eMMC through FEL mode


JimmyPesto

Recommended Posts

Hello,
 

I'm looking for an efficient way to update the eMMC-memory of multiple NanoPi NEO Air's (roll out a production image).
I was thinking about integrating my own image in to the eflasher from FriendlyElec but then found this possibility to access the integrated memory via USB-OTG and FEL.

https://forum.armbian.com/topic/1580-nanopi-neo-air/?page=9

Wherefore basically two repos are used:
sunxi-tools

fel-mass-storage

 

I tried following the instructions, build and installed the sunxi-tools (sunxi-fel) and used "dd" to copy "fel-sdboot.img" to an empty SD card.

For testing I took a brand new NanoPi NEO Air, connected UART0 with my PC and used "screen" to see the console/debug information.
 

The SD card wont boot, but the pre installed Friendly-Ubuntu starts up. Somewhere I found an even smaller "fel-sdboot.sunxi" file which is also not starting up.
I dont know if there is an error with the Image or a way to force booting from SD card.

Afterwards I decided to initialize FEL through serial console .
Hitting "1" in serial console while booting up the NanoPi.
Output:
 

script config pll_video to 297 Mhz
script config pll_periph0 to 600 Mhz
DRV_DISP_Init end
[disk_read_fs] no the partition
error: open tv_vdid.fex, maybe it is not exist
[disk_read_fs] no the partition
error: open disp_rsl.fex, maybe it is not exist
[disk_read_fs] no the partition
error: open disp_rsl.fex, maybe it is not exist
boot_disp.auto_hpd=1
auto hpd check has 100 times!
auto check no any connected, the output_type is 4
[      1.774]finally, output_type=0x4, output_mode=0x4, screen_id=0x0, disp_para=0x0
try to read logic blk 0 without env partition
*** Warning - bad CRC, using default environment

In:    serial
Out:   serial
Err:   serial
--------fastboot partitions--------
mbr not exist
base bootcmd=run setargs_mmc boot_normal
bootcmd set setargs_mmc
key 0
cant find rcvy value
cant find fstbt value
no misc partition is found
to be run cmd=run setargs_mmc boot_normal
the secure storage map is empty
no item name rootwait storage_type in the map
sunxi storage read fail
no item name selinux in the map
sunxi storage read fail
no item name fsck.repair in the map
sunxi storage read fail
check user data form private
the private part isn't exist
WORK_MODE_BOOT
adver not need show
sunxi_bmp_logo_display
[      1.868][mmc]: blkcnt should not be 0
[      1.881]screen_id =0, screen_width =0, screen_height =0
[      1.887]frame buffer address 46400036
[      1.891]Hit any key to stop autoboot:  0 
sunxi#   

Then I entered "efex" and got this output:

The size of uboot is 000e4000.
sum=2d2c1301
src_sum=2d2c1301
set_mmc_para,sdly 50M 0
set_mmc_para,sdly 25M 0
Succeed in loading uboot from sdmmc flash.
Ready to disable icache.
Jump to secend Boot.
SUNXI_NORMAL_MODE   
[      0.290]e mode

U-Boot 2011.09-rc1-00000-g445b952 (Mar 28 2017 - 10:59:46) Allwinner Technology 

[      0.298]version: 1.1.0
[      0.301]uboot commit : 445b95289941113f1e767532e746774e063a30f3
 
normal mode
[      0.312]pmbus:   ready
not set main pmu id
axp_probe error
gpio value=0x20000
[      0.350]PMU: pll1 1008 Mhz,PLL6=600 Mhz
AXI=336 Mhz,AHB=200 Mhz, APB1=100 Mhz 
sid read already 
fel key new mode
run key detect
no key found
0x32
set next system status
reset cpu
HELLO! BOOT0 is starting!
boot0 version : 4.0.0
boot0 commit : 445b95289941113f1e767532e746774e063a30f3
 
fel_flag = 0x5aa5a55a
rtc[0] value = 0x00000000
rtc[1] value = 0x00000000
rtc[2] value = 0x5aa5a55a
rtc[3] value = 0x00000000
rtc[4] value = 0x00000000
rtc[5] value = 0x00000000
rtc[6] value = 0x00000000
rtc[7] value = 0x00000000
eraly jump fel

This looks different then the example serial output.

Boot1 is not started in my case.

On my development PC neither "lsusb" nor "sunxi-fel version" (ERROR: Allwinner USB FEL device not found!) found a new device.

 

Edit:
I have successfully entered FEL-Mode on the NanoPi by hitting "1" at boot and then "go 0xffff0020".
There is no Output in serial console but "lsusb" recognizes a new device:
"Bus 001 Device 012: ID 1f3a:efe8 Onda (unverified) V972 tablet in flashing mode"
But I'm still not able to access the device on my Linux machine. (Testet on Windows and was able to see 3 partitions on the eMMC)


So there is a problem with sunxi-tools on my Linux PC.

zador-blood-stained/fel-mass-storage -> Preparation: (optional) add udev rule to allow access to USB devices to users belonging to (previously created) "sunxi-fel" group:

- There is no group "sunxi-fel" in "/etc/group"

- Nevertheless I created the rule in "/etc/udev/rules.d/100-my.rules"

 

"sudo sunxi-fel -l"
Outputs: "libusb_open() ERROR -1: Input/Output Error"

- So there seems to be a problem between libusb and sunxi? Maybe I messed something up while I was building and installing it.

I remember that I had trouble building/compiling before installing "pkg-config" and "libusb-1.0-0-dev". After installing these packages I used "make tools" and "make install-tools" to install sunxi-fel.

Does anyone know how to fix "ibusb_open() ERROR -1"?

 

Edit[2]:
Using an other PC I was able to find the NanoPi via "sunxi-fel version" cmd. Seems to be a problem of user rights.


Then i started the mass-storage script from GitHub:

 

/fel-mass-storage# ./start.sh
Connect device in FEL mode and press <Enter>

Unexpected SCTLR (00C5287A)

 

and ended up in a new error.


Thanks for your help,

Jimmy Pesto

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