Bpi-r64 quick start (boot from eMMC)

Two cards solution can have AC2600 (4x4ac + 4x4n) concurrent solution, but one card is dual-band only (work at 4x4ac or 4x4n only). In addition, this card is not standard mpcie size, so it’ll cause another pcie slot cannot plug other cards, thanks.

@moore thnx for clarification. Do you know, does other non standard mpcie size wifi card support concurrent wifi solution? And what about this card, do you know anything about it? https://www.aliexpress.com/item/32842242314.html?spm=a2g0o.cart.0.0.6e813c00kSgUC1&mp=1

As far as I know, only Mediatek MT7615D support dual band concurrent feature.i.e., 5Ghz 4x4ac or 2.4Ghz 4x4n => 5Ghz 2x2ac + 2.4Ghz 2x4n, but there is no standard mpcie size MT7615D card and mt76 mac80211 wifi driver cannot support dual-band concurrent mode at this moment.

@moore thnx for clarification, btw, this is a clear statement from asiaRF:

WS3294 each RF connector is with 2.4GHz and 5GHz traces out. MT7615-GAE is with only 2.4GHz out. MT7615-AAE is with only 5.GHz out.

Can you please discuss this in another (new) thread? This is about booting from emmc and not wifi-hardware :wink:

1 Like

@jglanz i tried your way

first i see your working on mmcblk0 (it’s sd-card in my stretch-image, is it diffent in official-images?)

second after i flash the singleimage i see the special-partitions in gdisk:

root@bpi-r64:~# gdisk /dev/mmcblk1
GPT fdisk (gdisk) version 1.0.1

The protective MBR's 0xEE partition is oversized! Auto-repairing.

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.

Command (? for help): p
Disk /dev/mmcblk1: 15269888 sectors, 7.3 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 9C040E2D-2415-47A1-9193-CB5BD2C34E82
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 14609966
Partitions will be aligned on 512-sector boundaries
Total free space is 14565901 sectors (6.9 GiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            1024            1535   256.0 KiB   8300  tee1
   2            1536            2559   512.0 KiB   8300  lk
   3            2560            3583   512.0 KiB   8300  nvram
   4            3584            4095   256.0 KiB   8300  rf
   5            4096           45055   20.0 MiB    8300  boot

but i can’t add new partition with parted (btw. the commands are for R2)

root@bpi-r64:~# parted -s /dev/mmcblk1 unit MiB mkpart primary fat32 -- 100MiB 356MiB
Error: Both the primary and backup GPT tables are corrupt.  Try making a fresh table, and using Parted's rescue feature to recover partitions.

googled a bit around…as p(rint) looks ok, i tried v(eryfy), it shows this:

Command (? for help): v

Problem: The secondary header's self-pointer indicates that it doesn't reside
at the end of the disk. If you've added a disk to a RAID array, use the 'e'
option on the experts' menu to adjust the secondary header's and partition
table's locations.

Problem: GPT claims the disk is larger than it is! (Claimed last usable
sector is 14609966, but backup header is at
1 and disk size is 15269888 sectors.
The 'e' option on the experts' menu will probably fix this problem

Identified 2 problems!

then used w(rite) to write the partitiontable again and fix problems

Command (? for help): w
Warning! Secondary header is placed too early on the disk! Do you want to
correct this problem? (Y/N): y
Have moved second header and partition table to correct location.

Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!

Do you want to proceed? (Y/N): y
OK; writing new GUID partition table (GPT) to /dev/mmcblk1.
[ 1348.931288]  mmcblk1: p1 p2 p3 p4 p5
The operation has completed successfully.

now i was able to create the partitions on emmc

root@bpi-r64:~# parted -s /dev/mmcblk1 unit MiB mkpart primary fat32 -- 100MiB 356MiB                                                                                                    
root@bpi-r64:~# parted -s /dev/mmcblk1 unit MiB mkpart primary ext2 -- 356MiB 7295MiB                                                                                                    
root@bpi-r64:~# 

till this point i see emmc-uboot, which i now try to reflash with my emmc/rtl8367-variant…works so far :wink: can i clean the openwrt-part anyhow? or can i export the partitiontable and ATF?

i expect that i can dd the first ~1.1MB (uboot is located at 768k and ~300kb in size) or 768k without uboot…atf is before this point (512kb), also the first 4 partitions (tee1,lk,nvram,rf). the 20MB boot-partiton overlaps uboot…maybe thats the cause i can’t mount it

have uploaded both to my gdrive…

https://drive.google.com/open?id=1SRUhYQqs5Jg_lKqgMfUlwSX4dG5T6qPZ

basicly r64_emmc_bootsect*.bin needs to be written to emmc (/dev/mmcblkX) and after reread partitiontable you need to create fs on BPI-BOOT (vfat) and BPI-ROOT

root@bpi-r64:~# partprobe /dev/mmcblk1
root@bpi-r64:~# apt install dosfstools
root@bpi-r64:~# mkfs.vfat /dev/mmcblk1p6 -I -n BPI-BOOT
root@bpi-r64:~# mkfs.ext4 -O ^has_journal -E stride=2,stripe-width=1024 -b 4096 /dev/mmcblk1p7 -L BPI-ROOT

i try to get kernel booted on my machine before create a basic image (without the openwrt-stuff which imho still lays somewhere on my emmc)…

can you tell me whats on the 20MB boot-partition? is this the openwrt-data? which filesystem is it? gdisk says it’s 8300=linux filesystem, but i cannot mount it without mount options

@frank-w the latest boards have mmcblk0 as the eMMC

I’m still prepping an image - you are on the correct track - I actually started using the preloader named forsdcard-0k

I’m pretty close - when I get it locked i’ll update everything - AND YES - u just need the openwrt partition table if you use the preloader u mentioned

@frank-w one more note - mmcblk0boot is where you write the preloader to on the new boards - ONE MORE update - sorry super busy and scatter brained today - you basically want to copy all of the vfat partition + 100MB from the SD - that will include, tee, lk, etc (I used the sector count method you explained in another post)

it’s depend on kernel…i use my own kernel where i swapped mmc to be same as official debian image and r2

preloader has to be written to boot0. with tee/lk,…you mean that i should copy the first 100MB? then i have also the openwrt-stuff still in…

what about boot-partition (is this needed)? if i copy all till there (first2M) i should have all stuff i need, right?

Hello! Could you explain how to not only build kernel BIN-file but also make IMG-file containing all necessary components as u-boot, preload, root.squashfs etc.? So this IMG-file could be written to the SD/MMC.

This topic is for emmc-boot…

@moore : do you have some benchmark of this 5Ghz Wifi card? Can it do 80-90MB/s

Can you please discuss this in another thread because it is off-topic?

tried accessing emmc with own uboot and got this:

BPI-R64> printenv partition                                                     
partition=0:1                                                                   
BPI-R64> ls mmc ${partition}                                                    
** Bad device size - mmc 0 **                                                   
BPI-R64> mmc init                                                               
raise: Signal # 8 caught                                                        
ret2 = 1                                                                        
raise: Signal # 8 caught                                                        
ret2 = 1                                                                        
<= [mmc1 block 0] =>                                                            
[0x00000000] 00 00 00 00 b8 29 f3 46                                            
[0x00000008] d8 1c f3 44 04 00 00 00                                            
[0x00000010] 03 00 00 00 06 00 00 00                                            
[0x00000018] 32 17 f3 44 02 00 00 00                                            
[0x00000020] ff ff ff ff 72 6e f6 46                                            
[0x00000028] ff ff ff ff c4 cc f2 44                                            
[0x00000030] 0a 00 00 00 c0 c2 f5 46                                            
[0x00000038] 0a 00 00 00 ff ff ff ff                                            
[0x00000040] ff ff ff ff 02 00 00 00                                            
[0x00000048] 14 00 00 00 f0 a4 f5 46                                            
[0x00000050] 5c e2 f6 46 5c 18 f4 46                                            
[0x00000058] 18 14 f3 44 28 14 f3 44                                            
[0x00000060] 00 00 00 00 54 87 fa 46                                            
[0x00000068] 18 14 f3 44 1c 1c f4 46                                            
[0x00000070] 28 14 f3 44 19 14 f3 44                                            
[0x00000078] 00 87 fa 46 fc 1d f4 46                                            
[0x00000080] 0e a1 f6 46 00 87 fa 46                                            
[0x00000088] 38 14 f3 44 3c 20 f4 46                                            
[0x00000090] 01 00 00 00 28 14 f3 44                                            
[0x00000098] 94 17 f3 44 3b 14 f3 44                                            
[0x000000a0] 94 17 f3 44 a8 c3 f3 46                                            
[0x000000a8] 78 17 f3 44 30 17 f3 44                                            
[0x000000b0] 00 0c f3 44 58 18 f3 44                                            
[0x000000b8] 78 17 f3 44 00 0c f3 44                                            
[0x000000c0] 58 18 f3 44 90 7b f3 46                                            
[0x000000c8] 8c 75 f3 46 00 0c f3 44                                            
[0x000000d0] 27 0a f3 44 26 0a f3 44                                            
[0x000000d8] 30 17 f3 44 62 6f 6f 74                                            
[0x000000e0] 6d 65 6e 75 5f 33 00 46                                            
[0x000000e8] 30 26 f7 46 00 00 00 00                                            
[0x000000f0] 03 00 00 00 00 00 00 00                                            
[0x000000f8] 00 00 00 00 48 14 f3 44                                            
[0x00000100] 03 00 00 00 04 88 f7 46                                            
[0x00000108] 08 14 f3 44 68 1a f5 46                                            
[0x00000110] 01 00 00 00 38 14 f3 44                                            
[0x00000118] 03 00 00 00 48 14 f3 44                                            
[0x00000120] 00 00 00 00 48 14 f3 44                                            
[0x00000128] 03 00 00 00 f0 1d f5 46                                            
[0x00000130] 48 14 f3 44 cc 29 f7 46                                            
[0x00000138] 00 00 00 00 30 99 f3 46                                            
[0x00000140] 00 00 00 00 00 00 00 00                                            
[0x00000148] 03 00 00 00 e0 25 f3 46                                            
[0x00000150] 04 88 f7 46 00 00 00 00                                            
[0x00000158] 68 13 f3 44 00 00 00 00                                            
[0x00000160] 00 00 00 00 48 14 f3 44                                            
[0x00000168] 60 14 f3 44 e0 3d f3 46                                            
[0x00000170] 00 00 00 00 68 ee f3 46                                            
[0x00000178] 14 00 00 00 14 00 00 00                                            
[0x00000180] 00 00 00 00 00 00 00 00                                            
[0x00000188] 00 00 00 00 a8 14 f3 44                                            
[0x00000190] 00 00 00 00 b8 29 f3 46                                            
[0x00000198] 68 13 f3 44 02 00 00 00                                            
[0x000001a0] 00 00 00 00 03 00 00 00                                            
[0x000001a8] 24 ce f2 44 01 00 00 00                                            
[0x000001b0] 00 00 00 00 00 00 00 00                                            
[0x000001b8] 68 13 f3 44 24 ce f2 44                                            
[0x000001c0] 01 00 00 00 7c 44 f3 46                                            
[0x000001c8] 50 ce f2 44 04 00 f3 46                                            
[0x000001d0] 00 00 00 00 00 00 00 00                                            
[0x000001d8] 00 00 00 00 00 00 00 00                                            
[0x000001e0] 00 00 00 00 c0 14 f3 44                                            
[0x000001e8] 68 13 f3 44 a8 14 f3 44                                            
[0x000001f0] 00 00 00 00 00 00 00 00                                            
[0x000001f8] 00 00 00 00 05 00 00 00                                            
raise: Signal # 8 caught                                                        
## Unknown partition table                                                      
No MMC card found                                                               
BPI-R64> ls mmc 1:1                                                             
** Bad device size - mmc 1 **                                                   
BPI-R64> ls mmc 0:1                                                             
** Bad device size - mmc 0 **                                                   
BPI-R64> 

seems uboot cannot read gpt-partition table…@jglanz have you an idea? tried also setting CONFIG_EFI_PARTITION in mt7622_evb.h in emmc-block without success (to test for efi/gpt-partitions)

also tried to enable CMD_GPT, which also fails because of missing define

 #error CONFIG_PARTITION_UUIDS must be enabled for CONFIG_CMD_GPT to be enabled

seems like i need to only define it without value…but how to handle it?

BPI-R64> gpt
gpt - GUID Partition Table

Usage:
gpt <command> <interface> <dev> <partitions_list>
 - GUID partition table restoration
 Restore GPT information on a device connected
 to interface

BPI-R64>

@Jackzeng @sinovoip have you anywhere a emmc-preloader for r64 which can handle mbr or can guide me to get gpt working in uboot?

maybe uboot looks on wrong hw-partitions? it needs to look on the user-partitions and not e.g. boot0

how can i define that?

i also used mmc-utils to verify PARTCONF

root@bpi-r64:~# ./mmc extcsd read /dev/mmcblk1 | grep PARTITION_CONFIG                                                                                              
Boot configuration bytes [PARTITION_CONFIG: 0x48]

maybe emmc-driver is broken in uboot?

BPI-R64> mmc device 0                                                                                                                                               
mmc0 is current device                                                                                                                                              
BPI-R64> mmcinfo                                                                                                                                                    
dev_num = 0                                                                                                                                                         
Device: emmc                                                                                                                                                        
Manufacturer ID: 11                                                                                                                                                 
OEM: 100                                                                                                                                                            
Name: 008G3                                                                                                                                                         
Tran Speed: 52000000                                                                                                                                                
Rd Block Len: 512                                                                                                                                                   
SD version 1.0                                                                                                                                                      
High Capacity: Yes                                                                                                                                                  
Capacity: 7.3 GiB                                                                                                                                                   
Bus Width: 0-bit                                      <<<<<<<<<<<<<                                                                                                              
BPI-R64> mmc read 0x0 8                                                                                                                                             
mmc0 operation                                     <<<<<<<<<<<<<                                                                                                                 
BPI-R64> 

looks strange

Found this:

https://github.com/BPI-SINOVOIP/BPI-R64-BSP/blob/95b2edeed3a54529b0cf8598d52a2badd2069c8a/mt-pack/mtk/bpi-r64/configs/default/linux/preloader_evb7622_64_foremmc.bin

as it is in “normal” linux-kernel-repo i guess it is working for ubuntu/debian-images. i made a diff and it’s not the same preloader as above…

currently flashing official debian to my emmc :wink:

unfortunately offical uboot from debian-image prints similar errors on trying to access emmc. played also a bit with switch near reset which seems to be the mmc-selection-switch, results are the same

it seems that uboot always access the same mmc-device (regardless i add device-number 0/1). if i insert sd-card i can show mmc1 (also if requested mmc0), but if i remove sd-card i cannot access both

also if i boot from emmc (till uboot) and try to boot from sdcard (the one acessable) kernel gets loaded, but boot hangs after ATF

Partition Map for MMC device 1  --   Partition Type: DOS                        
                                                                                
Part    Start Sector    Num Sectors     UUID            Type                    
  1     204800          524288          349e4233-01     0c                      
  2     729088          14211072        349e4233-02     83                      
mmc1 is available                                                               
Interface:  MMC                                                                 
  Device 1: Vendor: Man 000003 Snr 2f115901 Rev: 11.3 Prod: ABLCD�              
            Type: Removable Hard Disk                                           
            Capacity: 30436.5 MB = 29.7 GB (62333952 x 512)                     
Filesystem: FAT16 "BPI-BOOT   "                                                 
Boot from SD                                                                    
reading bananapi/bpi-r64/linux/uEnv.txt                                         
** Unable to read file bananapi/bpi-r64/linux/uEnv.txt **                       
reading uEnv.txt                                                                
3726 bytes read in 2 ms (1.8 MiB/s)                                             
Loaded environment from uEnv.txt                                                
## Error: "uenvcmd" not defined                                                 
reading bananapi/bpi-r64/linux/uImage_5.3.0-rc5-r64-phylink-v2.7.3              
FAT: Misaligned buffer address (4007ff28)                                       
FAT: Misaligned buffer address (40081f28)                                       
FAT: Misaligned buffer address (408fcf28)                                       
9064520 bytes read in 4319 ms (2 MiB/s)                                         
bootm flag=0, states=70f                                                        
## Booting kernel from Legacy Image at 4007ff28 ...                             
   Image Name:   Linux Kernel 5.3.0-rc5-r64-phyli                               
   Image Type:   ARM Linux Kernel Image (uncompressed)                          
   Data Size:    9064456 Bytes = 8.6 MiB                                        
   Load Address: 40080000                                                       
   Entry Point:  40080000                                                       
   Verifying Checksum ... OK                                                    
   Loading Kernel Image ... OK                                                  
                                                                                
Starting kernel ...                                                             
                                                                                
[ATF][   388.984564]save kernel info                                            
[ATF][   388.987766]Kernel_EL2                                                  
[ATF][   388.990523]Kernel is 64Bit                                             
[ATF][   388.993711]pc=0x40080000, r0=0x0, r1=0x0                               
INFO:    BL3-1: Preparing for EL3 exit to normal world, Kernel                  
INFO:    BL3-1: Next image address = 0x40080000                                 
INFO:    BL3-1: Next image spsr = 0x3c9                                         
[ATF][   389.011374]el3_exit

@sinovoip @Jackzeng can you help us getting emmc working with debian/ubuntu?

Both 4.4 kernel and 4.19 have been updated to support eMMC startup, please re-burn preloader

please see this log:

Sd card preloader version number is different from emmc version number

I used preloader from my last post (changed/uploaded also on oct 2nd) and official debian buster

Maybe i need to replace uboot with emmc-version to get emmc-driver buildin?

Have you changed anything there i have not yet in bpi-r64 uboot ?

emmc preloader version number : [BLDR] Build Time: 20190927-141930

You can use this option way to take TFTP burn just use we preloader,Because we talent supports both GPT and msdos partition formats

ok here complete bootlog (same buildtime of preloader in boot0-block)

[BLDR] Build Time: 20190927-141930

full log:

F0: 102B 0000
F5: 480A 0031
F5: 480A 0031
F3: 0000 0000
V0: 0000 0000 [0001]
00: 0000 0000
BP: 0000 0041 [0000]
G0: 0190 0000
T0: 0000 0396 [000F]
Jump to BL

UNIVPLL_CON0 = 0xFE000000!!!
mt_pll_init: Set pll frequency for 25M crystal
[PMIC_WRAP]wrap_init pass,the return value=0.
[pmic_init] Preloader Start..................                                   
[pmic_init] MT6380 CHIP Code, reg_val = 0, 1:E2  0:E3                           
[pmic_init] Done...................                                             
Chip part number:7622A                                                          
MT7622 Version: 1.2.7, (iPA)                                                    
SSC OFF                                                                         
mt_pll_post_init: mt_get_cpu_freq = 1350000Khz                                  
mt_pll_post_init: mt_get_mem_freq = 1600000Khz                                  
mt_pll_post_init: mt_get_bus_freq = 1119920Khz                                  
[PLFM] Init I2C: OK(0)                                                          
                                                                                
[BLDR] Build Time: 20190927-141930                                              
==== Dump RGU Reg ========                                                      
RGU MODE:     4D                                                                
RGU LENGTH:   FFE0                                                              
RGU STA:      0                                                                 
RGU INTERVAL: FFF                                                               
RGU SWSYSRST: 8000                                                              
==== Dump RGU Reg End ====                                                      
RGU: g_rgu_satus:0                                                              
 mtk_wdt_mode_config  mode value=10, tmp:22000010                               
PL P ON                                                                         
WDT does not trigger reboot                                                     
WDT NONRST=0x20000000                                                           
WDT IRQ_EN=0x340003                                                             
RGU mtk_wdt_init:MTK_WDT_DEBUG_CTL(590200F3)                                    
[EMI] MDL number = 2                                                            
[EMI] DRAMC calibration start                                                   
                                                                                
[EMI] DRAMC calibration end                                                     
                                                                                
[EMI]rank0 size: 0x40000000                                                     
[MEM] complex R/W mem test pass                                                 
RAM_CONSOLE wdt status (0x0)=0x0                                                
[mmc_init]: msdc0 start mmc_init_host() in PL...                                
[msdc_init]: msdc0 Host controller intialization start                          
[SD0] Pins mode(1), none(0), down(1), up(2), keep(3)                            
[SD0] Pins mode(2), none(0), down(1), up(2), keep(3)                            
[info][msdc_set_startbit 1127] read data start bit at rising edge               
[info][msdc_config_clksrc] input clock is 400000kHz                             
[SD0] Bus Width: 1                                                              
[info][msdc_config_clksrc] input clock is 400000kHz                             
[info][msdc_set_startbit 1127] read data start bit at rising edge               
[SD0] SET_CLK(260kHz): SCLK(259kHz) MODE(0) DDR(0) DIV(385) DS(0) RS(0)         
[msdc_init]: msdc0 Host controller intialization done                           
[mmc_init]: msdc0 start mmc_init_card() in PL...                                
[mmc_init_card]: start                                                          
[info][msdc_config_clksrc] input clock is 400000kHz                             
[info][msdc_set_startbit 1127] read data start bit at rising edge               
[SD0] SET_CLK(260kHz): SCLK(259kHz) MODE(0) DDR(0) DIV(385) DS(0) RS(0)         
[SD0] Bus Width: 8                                                              
[SD0] Switch to High-Speed mode!                                                
[info][msdc_config_clksrc] input clock is 400000kHz                             
[info][msdc_set_startbit 1127] read data start bit at rising edge               
[SD0] SET_CLK(260kHz): SCLK(259kHz) MODE(2) DDR(1) DIV(192) DS(0) RS(0)         
[SD0] Bus Width: 8                                                              
[SD0] Size: 7456 MB, Max.Speed: 52000 kHz, blklen(512), nblks(15269888), ro(0)  
[mmc_init_mem_card 3140][SD0] Initialized, eMMC50                               
before host->cur_bus_clk(259740)                                                
[info][msdc_config_clksrc] input clock is 400000kHz                             
[info][msdc_set_startbit 1127] read data start bit at rising edge               
[SD0] SET_CLK(52000kHz): SCLK(50000kHz) MODE(2) DDR(1) DIV(1) DS(0) RS(0)       
host->cur_bus_clk(50000000)                                                     
[mmc_init_card]: finish successfully                                            
[PLFM] Init Boot Device: OK(0)                                                  
[GPT_PL](BPI)Parsing Primary GPT now...                                         
[GPT_PL]check header, err(signature 0x00000054594C5242!=0x5452415020494645)     
[GPT_PL]Success to find valid GPT.                                              
                                                                                
[PART] blksz: 512B                                                              
[PART] [0x0000000000020000-0x000000000007FFFF] "preloader" (768 blocks)         
[PART] [0x0000000000080000-0x00000000000BFFFF] "tee1" (512 blocks)              
[PART] [0x00000000000C0000-0x000000000013FFFF] "lk" (1024 blocks)               
                                                                                
Device APC domain init setup:                                                   
                                                                                
Domain Setup (0x0)                                                              
Domain Setup (0x0)                                                              
Device APC domain after setup:                                                  
Domain Setup (0x0)                                                              
Domain Setup (0x0)                                                              
[get_part] part->nr_sects=768, part->info->name=preloader                       
[get_part] part->nr_sects=512, part->info->name=tee1                            
[get_part] part->nr_sects=1024, part->info->name=lk                             
[PART] Image with part header                                                   
[PART] name : LK                                                                
[PART] addr : FFFFFFFFh mode : -1                                               
[PART] size : 364756                                                            
[PART] magic: 58881688h                                                         
                                                                                
[PART] load "lk" from 0x00000000000C0200 (dev) to 0x41E00000 (mem) [SUCCESS]    
[PART] load speed: 11490KB/s, 364756 bytes, 31ms                                
load lk (ret=0)                                                                 
[get_part] part->nr_sects=768, part->info->name=preloader                       
[get_part] part->nr_sects=512, part->info->name=tee1                            
[PART] Image with part header                                                   
[PART] name : atf                                                               
[PART] addr : FFFFFFFFh mode : -1                                               
[PART] size : 62032                                                             
[PART] magic: 58881688h                                                         
                                                                                
[PART] load "tee1" from 0x0000000000080200 (dev) to 0x43000DC0 (mem) [SUCCESS]  
[PART] load speed: 6730KB/s, 62032 bytes, 9ms                                   
load tee1 (ret=0)                                                               
[BLDR] bldr load tee part ret=0x0, addr=0x43001000                              
[get_part] part->nr_sects=768, part->info->name=preloader                       
[get_part] part->nr_sects=512, part->info->name=tee1                            
[get_part] part->nr_sects=1024, part->info->name=lk                             
[BLDR] boot part. not found                                                     
[BLDR] part_load_images ret=0x0                                                 
[BLDR] Others, jump to ATF                                                      
                                                                                
[BLDR] jump to 0x41E00000                                                       
[BLDR] <0x41E00000>=0xEA00000F                                                  
[BLDR] <0x41E00004>=0xE59FF014                                                  
                                                                                
                                                                                
U-Boot  (Aug 21 2019 - 15:58:07)                                                
                                                                                
DRAM:  1008 MiB                                                                 
WARNING: Caches not enabled                                                     
NAND:  Recognize SNAND: ID [ef aa ], Device Name [Winbond 1Gb], Page Size [2048B
[mtk_snand] probe successfully!                                                 
128 MiB                                                                         
dev_num = 1                                                                     
raise: Signal # 8 caught                                                        
raise: Signal # 8 caught                                                        
***size=4096, offset=1310720, blk_start=0, blk_cnt=0                            
*** Warning - bad CRC, using default environment                                
                                                                                
In:    serial                                                                   
Out:   serial                                                                   
Err:   serial                                                                   
dev_num = 1                                                                     
raise: Signal # 8 caught                                                        
raise: Signal # 8 caught                                                        
***size=4096, offset=1310720, blk_start=0, blk_cnt=0                            
*** Warning - bad CRC, using default environment                                
                                                                                
Net:   mtk_eth                                                                  
Uip activated                                                                   


  *** U-Boot SD CARD ***

     1. System Load Linux to SDRAM via TFTP.
     2. System Load Linux Kernel then write to Flash via TFTP.
     3. Boot Linux from SD.
     4. System Load U-Boot then write to Flash via TFTP.
     5. System Load U-Boot then write to Flash via Serial.
     6. System Load ATF then write to Flash via TFTP.
     7. System Load Preloader then write to Flash via TFTP.
     8. System Load ROM header then write to Flash via TFTP.
     9. System Load CTP then write to Flash via TFTP.
     a. System Load CTP then Boot to CTP (via Flash).
     b. System Load flashimage then write to Flash via TFTP.
     c. System Load partition table then write to Flash via TFTP.
     U-Boot console


  Press UP/DOWN to move or Press 1~9,a~b to choose, ENTER to select





raise: Signal # 8 caught
ret2 = 1
raise: Signal # 8 caught
ret2 = 1
<= [mmc1 block 0] =>
[0x00000000] a4 ba f1 7c 74 82 f4 7e
[0x00000008] 06 00 00 00 ac df f2 7e
[0x00000010] cc be f1 7c 1b 5b 31 3b
[0x00000018] 31 48 00 7e 00 00 00 00
[0x00000020] 0a 00 00 00 30 cb f2 7e
[0x00000028] 00 00 00 00 00 00 00 00
[0x00000030] d4 ba f1 7c 74 82 f4 7e
[0x00000038] 07 00 00 00 ac df f2 7e
[0x00000040] 01 00 00 00 58 01 00 00
[0x00000048] 00 00 00 00 00 00 00 00
[0x00000050] f4 ba f1 7c 74 82 f4 7e
[0x00000058] 0e 00 00 00 ac df f2 7e
[0x00000060] 1c bf f1 7c 55 69 70 20
[0x00000068] 61 63 74 69 76 61 74 65
[0x00000070] 64 0a 00 70 43 70 54 e5
[0x00000078] 26 50 c2 e6 67 8c 42 e6
[0x00000080] 95 bb 82 04 1e 71 6f a8
[0x00000088] 20 28 84 e8 8d 2b 85 64
[0x00000090] 04 01 e1 20 00 84 20 44                                            
[0x00000098] d1 1e 90 38 d8 7e f8 1c                                            
[0x000000a0] 45 c0 0e c2 2c d8 8a 3d                                            
[0x000000a8] a5 e0 02 48 c1 1c 14 c4                                            
[0x000000b0] 21 7a 43 d2 cd 22 b6 4a                                            
[0x000000b8] 3a 94 2b ac 04 09 44 b9                                            
[0x000000c0] 2a 0a 41 98 65 48 c0 b5                                            
[0x000000c8] 1d 31 0e 90 9a f3 00 86                                            
[0x000000d0] ca 22 11 0a 00 96 68 70                                            
[0x000000d8] 69 a3 66 62 6f 23 0e 89                                            
[0x000000e0] 80 d5 00 bc 09 e0 26 ec                                            
[0x000000e8] ea 26 d0 3b 24 cc 96 40                                            
[0x000000f0] 82 04 0f 29 f5 eb b4 35                                            
[0x000000f8] 0d 48 db 58 08 51 1d 41                                            
[0x00000100] 20 01 1f 2f c2 22 10 43                                            
[0x00000108] 06 30 4a 04 b8 22 50 49                                            
[0x00000110] 01 46 93 80 90 01 88 0d                                            
[0x00000118] 32 05 f7 22 f4 60 03 98                                            
[0x00000120] 1c 21 12 df 2e c0 a7 af                                            
[0x00000128] 18 01 90 14 12 48 a1 35                                            
[0x00000130] b5 72 2c 87 63 43 03 51                                            
[0x00000138] 5b 8b 04 2e 03 d0 20 e9                                            
[0x00000140] 01 97 11 54 03 55 56 d0                                            
[0x00000148] 0b 26 87 d2 2d 93 85 52                                            
[0x00000150] 88 88 11 30 d1 69 6a 72                                            
[0x00000158] 01 15 a2 51 00 21 98 a3                                            
[0x00000160] 6e 4b b0 c5 84 40 20 52                                            
[0x00000168] 24 f8 cf d0 30 20 e0 93                                            
[0x00000170] c2 49 52 4e c4 48 01 02                                            
[0x00000178] 6b d2 09 3d cc 8a 25 41                                            
[0x00000180] 4d 97 65 b1 06 30 81 11                                            
[0x00000188] 02 0e 40 50 96 50 90 54                                            
[0x00000190] 20 74 cc 20 84 ea 41 c1                                            
[0x00000198] 6b 6d 34 76 91 49 ac 49                                            
[0x000001a0] 9b 70 1c 10 9c da 54 d0                                            
[0x000001a8] 61 14 c0 00 c6 31 24 56                                            
[0x000001b0] 12 30 08 76 42 30 f6 18                                            
[0x000001b8] 04 a7 c1 20 a0 a8 42 08                                            
[0x000001c0] 60 22 10 20 31 33 93 26                                            
[0x000001c8] 09 9e 5a 57 e2 9a 62 9f                                            
[0x000001d0] 24 fa 48 3c c0 ab 21 f2                                            
[0x000001d8] 20 bb cf 20 f0 f0 19 b4                                            
[0x000001e0] 56 0a 0a d4 43 a4 ac 50                                            
[0x000001e8] 8a 30 2b d5 41 62 22 81                                            
[0x000001f0] 34 08 55 a6 94 c0 80 30                                            
[0x000001f8] 00 ec 44 3b 4d 8a 2c f8                                            
raise: Signal # 8 caught                                                        
## Unknown partition table                                                      
No MMC card found                                                               
** Bad device size - mmc 1 **                                                   
Boot from eMMC                                                                  
raise: Signal # 8 caught                                                        
ret2 = 1                                                                        
raise: Signal # 8 caught                                                        
ret2 = 1                                                                        
<= [mmc1 block 0] =>                                                            
[0x00000000] 9d f8 b1 65 ab 00 c3 86                                            
[0x00000008] c2 82 8c cf b9 ed 0d 10                                            
[0x00000010] 27 e4 0c b1 b2 85 08 a8                                            
[0x00000018] 00 00 00 00 00 00 00 00                                            
[0x00000020] 00 00 00 00 00 00 00 00                                            
[0x00000028] a4 e5 f6 7e 00 00 00 00                                            
[0x00000030] 30 3f f2 7c 00 f9 f1 7e                                            
[0x00000038] 00 00 00 00 00 00 00 00                                            
[0x00000040] 70 3e f2 7c 30 3f f2 7c                                            
[0x00000048] 48 3f f2 7c 00 00 00 00                                            
[0x00000050] 00 00 00 00 4c 11 f2 7e                                            
[0x00000058] 00 00 00 00 90 f2 f2 7e                                            
[0x00000060] 14 00 00 00 00 00 00 00                                            
[0x00000068] 00 00 00 00 00 00 00 00                                            
[0x00000070] 00 00 00 00 00 00 00 00                                            
[0x00000078] 00 00 00 00 cc fc f1 7e                                            
[0x00000080] 70 3e f2 7c 00 00 00 00                                            
[0x00000088] 03 00 00 00 02 00 00 00                                            
[0x00000090] 2c ba f1 7c 00 00 00 00                                            
[0x00000098] 01 00 00 00 00 00 00 00                                            
[0x000000a0] 00 00 00 00 2c ba f1 7c                                            
[0x000000a8] 00 00 00 00 cc 17 f2 7e                                            
[0x000000b0] 00 00 00 00 04 00 f3 7e                                            
[0x000000b8] 00 00 00 00 00 00 00 00                                            
[0x000000c0] 00 00 00 00 00 00 00 00                                            
[0x000000c8] 00 00 00 00 a8 3f f2 7c                                            
[0x000000d0] 70 3e f2 7c 90 3f f2 7c                                            
[0x000000d8] 00 00 00 00 00 00 00 00                                            
[0x000000e0] 00 00 00 00 05 00 00 00                                            
[0x000000e8] 58 3e f2 7c 05 00 00 00                                            
[0x000000f0] d8 3c f2 7c 9c fb f1 7e                                            
[0x000000f8] d0 04 f2 7e 00 00 00 00                                            
[0x00000100] 00 00 00 00 b0 0a f2 7e                                            
[0x00000108] 58 3e f2 7c 68 3e f2 7c                                            
[0x00000110] 01 00 00 00 01 00 00 00                                            
[0x00000118] 9c fb f1 7e d0 04 f2 7e                                            
[0x00000120] 58 3e f2 7c 00 00 00 00                                            
[0x00000128] d8 3c f2 7c 58 3e f2 7c                                            
[0x00000130] 00 00 00 00 fc 10 f2 7e                                            
[0x00000138] 18 00 00 00 90 f2 f2 7e                                            
[0x00000140] 14 00 00 00 00 00 00 00                                            
[0x00000148] 00 00 00 00 00 00 00 00                                            
[0x00000150] 00 00 00 00 00 00 00 00                                            
[0x00000158] 00 00 00 00 cc fc f1 7e                                            
[0x00000160] d8 3c f2 7c 00 00 00 00                                            
[0x00000168] 03 00 00 00 02 00 00 00                                            
[0x00000170] 0c bb f1 7c 00 00 00 00                                            
[0x00000178] 01 00 00 00 00 00 00 00                                            
[0x00000180] 00 00 00 00 0c bb f1 7c                                            
[0x00000188] 00 00 00 00 cc 17 f2 7e                                            
[0x00000190] 0a 00 00 00 04 00 f2 7e                                            
[0x00000198] 00 00 00 00 00 00 00 00                                            
[0x000001a0] 00 00 00 00 00 00 00 00                                            
[0x000001a8] 00 00 00 00 30 3e f2 7c                                            
[0x000001b0] d8 3c f2 7c 18 3e f2 7c                                            
[0x000001b8] 00 00 00 00 00 00 00 00                                            
[0x000001c0] 00 00 00 00 03 00 00 00                                            
[0x000001c8] a0 2b f2 7c 03 00 00 00                                            
[0x000001d0] b8 3c f2 7c 9c fb f1 7e                                            
[0x000001d8] d0 04 f2 7e 01 00 00 00                                            
[0x000001e0] 03 00 00 00 84 0a f2 7e                                            
[0x000001e8] 00 00 00 00 ce 3c f2 7c                                            
[0x000001f0] 28 36 f2 7c 03 00 00 00                                            
[0x000001f8] 00 00 00 00 01 00 00 00                                            
raise: Signal # 8 caught                                                        
## Unknown partition table                                                      
No MMC card found                                                               
** Bad device size - mmc 0 **                                                   
** Bad device size - mmc 0 **                                                   
## Error: "uenvcmd" not defined                                                 
** Bad device size - mmc 0 **                                                   
bootm flag=0, states=70f                                                        
Wrong Image Format for bootm command                                            
ERROR: can't get kernel image!                                                  
bootm flag=0, states=70f                                                        
Wrong Image Format for bootm command                                            
ERROR: can't get kernel image!                                                  
BPI-IoT> 

used this preloader: https://github.com/BPI-SINOVOIP/BPI-R64-BSP/blob/95b2edeed3a54529b0cf8598d52a2badd2069c8a/mt-pack/mtk/bpi-r64/configs/default/linux/preloader_evb7622_64_foremmc.bin

and this image: 2019-08-23-debian-10-buster-lite-preview-bpi-r64-sd-emmc.img from here: BPI-R64 Ubuntu 16.04 & AArch64 Linux Lite & Debian 10 Buster Lite Demo Images Release 2019-08-23

And wrote them this way to emmc:

echo 0 > /sys/block/mmcblk1boot0/force_ro
dd if=preloader_evb7622_64_foremmc.bin of=/dev/mmcblk1boot0
unzip -p 2019-08-23-debian-10-buster-lite-preview-bpi-r64-sd-emmc.img.zip | dd of=/dev/mmcblk1 bs=1M

from sd-boot i get this when starting gdisk for emmc:

GPT fdisk (gdisk) version 1.0.1                                                 
                                                                                
Caution: invalid main GPT header, but valid backup; regenerating main header    
from backup!                                                                    
                                                                                
Caution! After loading partitions, the CRC doesn't check out!                   
Warning! Main partition table CRC mismatch! Loaded backup partition table       
instead of main partition table!                                                
                                                                                
Warning! One or more CRCs don't match. You should repair the disk!              
                                                                                
Partition table scan:                                                           
  MBR: MBR only                                                                 
  BSD: not present                                                              
  APM: not present                                                              
  GPT: damaged                                                                  
                                                                                
Found valid MBR and corrupt GPT. Which do you want to use? (Using the           
GPT MAY permit recovery of GPT data.)                                           
 1 - MBR                                                                        
 2 - GPT                                                                        
 3 - Create blank GPT                                                           
                                                                                
Your answer:

hi, i see also the raise errors and unknown partitiontable (where i do not know if it is from sd or emmc)

mmc-part of preloader-output looks same as in your log

[mmc_init_mem_card 3140][SD0] Initialized, eMMC50                               
before host->cur_bus_clk(259740)                                                
[info][msdc_config_clksrc] input clock is 400000kHz                             
[info][msdc_set_startbit 1127] read data start bit at rising edge               
[SD0] SET_CLK(52000kHz): SCLK(50000kHz) MODE(2) DDR(1) DIV(1) DS(0) RS(0)       
host->cur_bus_clk(50000000)                                                     
[mmc_init_card]: finish successfully   

i wonder about this (needed for emmc to work?):

NAND: Recognize SNAND: ID [ef aa 21 ], Device Name [Winbond 1Gb], Page Size [2048]B Spare Size [64]B Total Size [128]MB
[mtk_snand] probe successfully!

[BBT] BMT.v2 is found at 0x3ff

also i see you have a newer build of uboot (not the one from the ubuntu-image)

U-Boot  (Oct 02 2019 - 15:01:05)

and you use a ubuntu 18.4 image i have not found yet (only 16.4 for r64). also in your wiki there is only ubuntu 16.4.

i guess you have changes in uboot/image (atf, bootheaders, …) which are not yet public

tried to fix emmc-boot like it’s done here:

using id instead of fixed “1”, but this leads to uboot-crash (maybe unaligned access)

Net:   mtk_eth                                                                                                                                     
Uip activated                                                                                                                                      
Hit any key to stop autoboot:  0                                                                                                                   
raise: Signal # 8 caught                                                                                                                           
ret2 = 1                                                                                                                                           
raise: Signal # 8 caught                                                                                                                           
ret2 = 1                                                                                                                                           
data abort                                                                                                                                         
pc : [<7ef4921c>]          lr : [<7ef494c4>]                                                                                                       
sp : 7cf297b8  ip : 7ef6f614     fp : 7ef39b6c                                                                                                     
r10: 00000002  r9 : 7cf29f40     r8 : 00000001                                                                                                     
r7 : 00000001  r6 : 7ef6f620     r5 : 7ef6f649  r4 : 7ef7a380                                                                                      
r3 : 00000000  r2 : 7ef6f620     r1 : 7ef6856f  r0 : 00000001                                                                                      
Flags: nZCv  IRQs off  FIQs off  Mode SVC_32                                                                                                       
Resetting CPU ...

r64-uboot-emmc.patch (2,1 KB) for patching my bpi-r64 branch

@ray can you please decode the binary uploaded here: https://drive.google.com/open?id=1rLtG_nwjnfrbO0iXg0ezeB9SipUYk1fl to the crash-location