VIM2 UEFI U-boot download?

Hi, I recently got a VIM2 board to work on development for Panfrost, and I’ve been trying to get Fedora running on it. Unfortunately, it appears that the uboot that ships with the vim2 is quite ancient and doesn’t appear to have any kind of support for UEFI booting. I’ve been looking all over for a simple download of a uboot image that I can flash with UEFI support with no luck. Would anyone be able to help?

1 Like

There is a new version of u-boot-2018 for VIM2. Do you have a UART console ? Are you familiar with the Amlogic multi-boot system ?

Do you have a link to an image with Fedora for aarch64 ? I can build a ready-made image (for writing to external media) for a quick initial run of Fedora on VIM2. Further, you can easily change it to suit your needs.

1 Like

As mentioned here, I’d appreciate some detail information, i.e. the offset to be used when writing the new firmware via dd.

If I understand your question correctly. No offset is made, the file with u-boot-2018 is written from the beginning of eMMC.

You may compare the output of

sudo dd if=/dev/mmcblk1 | hd | less

to the output of

hd u-boot-v2015.01_VIM2_Ubuntu_20180712.bin | less

I’ve noticed that the first 512 bytes (0x200) on the emmc are almost empty (beside of the partition table), the ‘magic string’ “@AML” occurs at 0x210. The firmware file also contains this ‘magic string’ at 0x10.

1 Like

The u-boot file is built from many elements, taking into account its entry from the zero address. If you write it from another address, all links in the assembled file are destroyed.

I know, therefore it’s important to take the right offsets. There is another ‘magic sequence’ starting at 0x1200 on emmc resp. at 0x1000 in the image file. I can see these bytes on the Odroid C2 as well at 0x1200. Either the emmc image isn’t complete (bl1 is usually prepending the u-boot binary) or the update mechanism works differently on emmc targets. The sdcard image seems to come with the right offsets. I haven’t found any reference to this matter in the khadas docs.

Not really; I do have a UART console but I haven’t messed around much with the multi-boot.
As for where you can get a Fedora image, you can find them here https://alt.fedoraproject.org/alt/ , specifically I was looking at https://download.fedoraproject.org/pub/fedora-secondary/releases/28/Spins/aarch64/images/Fedora-Minimal-28-1.1.aarch64.raw.xz

That being said, it would be very nice to actually update the uboot firmware on the eMMC itself

That may not even be necessary apparently, as I just got the bootloader updated on the emmc of this! @umiddelb @balbes150 is right, when I updated it with dd I didn’t use an offset. I did however, do it a bit differently then you’re describing:

From the android image that comes pre-installed:

dd if=uboot.img of=/dev/block/bootloader

Neat, now things seem to be working except for actually getting Fedora to boot. But we’re closer now:

EFI stub: EFI_RNG_PROTOCOL unavailable, no randomness supplied
EFI stub: Using DTB from configuration table
EFI stub: Exiting boot services and installing virtual address map…
[ 0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
[ 0.000000] Linux version 4.16.3-301.fc28.aarch64 (mockbuild@buildvm-aarch64-02.arm.fedoraproject.org) (gcc version 8.0.1 20180324 (Red Hat 8.0.1-0.20) (GCC)) #1 SMP Mon Apr 23 21:45:59 UTC 2018
[ 0.000000] Machine model: Khadas VIM2
[ 0.000000] efi: Getting EFI parameters from FDT:
[ 0.000000] efi: EFI v2.70 by Das U-Boot
[ 0.000000] efi: SMBIOS=0x7cf4c000
[ 0.000000] Reserved memory: incorrect alignment of CMA region
[ 0.000000] cma: Reserved 64 MiB at 0x000000006d000000
[ 0.000000] earlycon: meson0 at MMIO 0x00000000c81004c0 (options ‘115200n8’)
[ 0.000000] bootconsole [meson0] enabled
[ 0.000000] NUMA: No NUMA configuration found
[ 0.000000] NUMA: Faking a node at [mem 0x0000000000000000-0x000000007fffffff]
[ 0.000000] NUMA: NODE_DATA [mem 0x7ffde500-0x7ffebfff]
[ 0.000000] Zone ranges:
[ 0.000000] DMA32 [mem 0x0000000001610000-0x000000007fffffff]
[ 0.000000] Normal empty
[ 0.000000] Movable zone start for each node
[ 0.000000] Early memory node ranges
[ 0.000000] node 0: [mem 0x0000000001610000-0x0000000004ffffff]
[ 0.000000] node 0: [mem 0x0000000005300000-0x0000000007ff7fff]
[ 0.000000] node 0: [mem 0x0000000007ff8000-0x0000000008007fff]
[ 0.000000] node 0: [mem 0x0000000008009000-0x000000000fffffff]
[ 0.000000] node 0: [mem 0x0000000010200000-0x000000007cf49fff]
[ 0.000000] node 0: [mem 0x000000007cf4a000-0x000000007cf54fff]
[ 0.000000] node 0: [mem 0x000000007cf55000-0x000000007ffc5fff]
[ 0.000000] node 0: [mem 0x000000007ffc6000-0x000000007ffc6fff]
[ 0.000000] node 0: [mem 0x000000007ffc7000-0x000000007fffffff]
[ 0.000000] Initmem setup node 0 [mem 0x0000000001610000-0x000000007fffffff]
[ 0.000000] psci: probing for conduit method from DT.
[ 0.000000] psci: PSCIv0.2 detected in firmware.
[ 0.000000] psci: Using standard PSCI v0.2 function IDs
[ 0.000000] psci: Trusted OS migration not required
[ 0.000000] random: fast init done
[ 0.000000] percpu: Embedded 23 pages/cpu @ (ptrval) s55448 r8192 d30568 u94208
[ 0.000000] Detected VIPT I-cache on CPU0
[ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 509255
[ 0.000000] Policy zone: DMA32
[ 0.000000] Kernel command line: BOOT_IMAGE=/vmlinuz-4.16.3-301.fc28.aarch64 root=UUID=9a926ac9-5938-4539-bb79-72f87b36095f ro LANG=en_US.UTF-8 earlycon= console=
[ 0.000000] Memory: 1714932K/2069436K available (9532K kernel code, 1838K rwdata, 4084K rodata, 5568K init, 965K bss, 288968K reserved, 65536K cma-reserved)
[ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=8, Nodes=1
[ 0.000000] ftrace: allocating 35959 entries in 141 pages
[ 0.000000] Hierarchical RCU implementation.
[ 0.000000] RCU restricting CPUs from NR_CPUS=256 to nr_cpu_ids=8.
[ 0.000000] Tasks RCU enabled.
[ 0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=8
[ 0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[ 0.000000] GIC: Using split EOI/Deactivate mode
[ 0.000000] irq_meson_gpio: 110 to 8 gpio interrupt mux initialized
[ 0.000000] arch_timer: cp15 timer(s) running at 24.00MHz (phys).
[ 0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x588fe9dc0, max_idle_ns: 440795202592 ns
[ 0.000003] sched_clock: 56 bits at 24MHz, resolution 41ns, wraps every 4398046511097ns
[ 0.008550] Console: colour dummy device 80x25
[ 0.012606] Calibrating delay loop (skipped), value calculated using timer frequency… 48.00 BogoMIPS (lpj=240000)
[ 0.022939] pid_max: default: 32768 minimum: 301
[ 0.027745] Security Framework initialized
[ 0.031676] Yama: becoming mindful.
[ 0.035196] SELinux: Initializing.
[ 0.039676] Dentry cache hash table entries: 262144 (order: 9, 2097152 bytes)
[ 0.046297] Inode-cache hash table entries: 131072 (order: 8, 1048576 bytes)
[ 0.053001] Mount-cache hash table entries: 4096 (order: 3, 32768 bytes)
[ 0.059694] Mountpoint-cache hash table entries: 4096 (order: 3, 32768 bytes)
[ 0.068247] ASID allocator initialised with 32768 entries
[ 0.072383] Hierarchical SRCU implementation.
[ 0.078982] Remapping and enabling EFI services.
[ 0.081317] EFI remap 0x0000000007fff000 => (ptrval)
[ 0.087204] EFI remap 0x0000000008007000 => (ptrval)
[ 0.093013] EFI remap 0x000000007cf4c000 => (ptrval)
[ 0.098882] EFI remap 0x000000007ffc6000 => (ptrval)
[ 0.105266] smp: Bringing up secondary CPUs …
[ 0.109863] Detected VIPT I-cache on CPU1
[ 0.109921] CPU1: Booted secondary processor 0x0000000001 [0x410fd034]
[ 0.110536] Detected VIPT I-cache on CPU2
[ 0.110588] CPU2: Booted secondary processor 0x0000000002 [0x410fd034]
[ 0.111204] Detected VIPT I-cache on CPU3
[ 0.111253] CPU3: Booted secondary processor 0x0000000003 [0x410fd034]
[ 0.111864] Detected VIPT I-cache on CPU4
[ 0.111925] CPU4: Booted secondary processor 0x0000000100 [0x410fd034]
[ 0.112536] Detected VIPT I-cache on CPU5
[ 0.112564] CPU5: Booted secondary processor 0x0000000101 [0x410fd034]
[ 0.113131] Detected VIPT I-cache on CPU6
[ 0.113158] CPU6: Booted secondary processor 0x0000000102 [0x410fd034]
[ 0.113729] Detected VIPT I-cache on CPU7
[ 0.113756] CPU7: Booted secondary processor 0x0000000103 [0x410fd034]
[ 0.113855] smp: Brought up 1 node, 8 CPUs
[ 0.187512] SMP: Total of 8 processors activated.
[ 0.192239] CPU features: detected feature: 32-bit EL0 Support
[ 0.198107] CPU features: detected feature: Kernel page table isolation (KPTI)
[ 0.220189] CPU: All CPU(s) started at EL2
[ 0.220237] alternatives: patching kernel code
[ 0.224484] devtmpfs: initialized
[ 0.231243] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[ 0.236411] futex hash table entries: 2048 (order: 6, 262144 bytes)
[ 0.244494] pinctrl core: initialized pinctrl subsystem
[ 0.248642] SMBIOS 3.0 present.
[ 0.251013] DMI: amlogic khadas-vim2/khadas-vim2, BIOS 2018.07-rc2-armbian 09/11/2018
[ 0.259384] NET: Registered protocol family 16
[ 0.263769] audit: initializing netlink subsys (disabled)
[ 0.268985] audit: type=2000 audit(0.230:1): state=initialized audit_enabled=0 res=1
[ 0.276596] cpuidle: using governor menu
[ 0.280668] vdso: 2 pages (1 code @ 00000000227f89fa, 1 data @ 000000003f97074a)
[ 0.287940] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
[ 0.298863] DMA: preallocated 256 KiB pool for atomic allocations
[ 0.301179] Serial: AMBA PL011 UART driver
[ 0.317393] HugeTLB registered 2.00 MiB page size, pre-allocated 0 pages
[ 0.318842] cryptd: max_cpu_qlen set to 1000
[ 0.323627] ACPI: Interpreter disabled.
[ 0.327859] vgaarb: loaded
[ 0.329787] SCSI subsystem initialized
[ 0.333498] usbcore: registered new interface driver usbfs
[ 0.338606] usbcore: registered new interface driver hub
[ 0.344008] usbcore: registered new device driver usb
[ 0.349453] EDAC MC: Ver: 3.0.0
[ 0.352690] Registered efivars operations
[ 0.356197] efivars: get_next_variable: status=8000000000000007
[ 0.362782] NetLabel: Initializing
[ 0.365530] NetLabel: domain hash size = 128
[ 0.369918] NetLabel: protocols = UNLABELED CIPSOv4 CALIPSO
[ 0.375642] NetLabel: unlabeled traffic allowed by default
[ 0.381724] clocksource: Switched to clocksource arch_sys_counter
[ 0.439638] VFS: Disk quotas dquot_6.6.0
[ 0.439743] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[ 0.445273] pnp: PnP ACPI: disabled
[ 0.453751] NET: Registered protocol family 2
[ 0.454347] tcp_listen_portaddr_hash hash table entries: 1024 (order: 2, 16384 bytes)
[ 0.460660] TCP established hash table entries: 16384 (order: 5, 131072 bytes)
[ 0.468039] TCP bind hash table entries: 16384 (order: 6, 262144 bytes)
[ 0.474682] TCP: Hash tables configured (established 16384 bind 16384)
[ 0.481214] UDP hash table entries: 1024 (order: 3, 32768 bytes)
[ 0.487140] UDP-Lite hash table entries: 1024 (order: 3, 32768 bytes)
[ 0.493908] NET: Registered protocol family 1
[ 0.498131] Unpacking initramfs…
[ 1.908211] Freeing initrd memory: 38184K
[ 1.909232] hw perfevents: enabled with armv8_cortex_a53 PMU driver, 7 counters available
[ 1.915211] kvm [1]: 8-bit VMID
[ 1.919087] kvm [1]: vgic interrupt IRQ1
[ 1.922087] kvm [1]: Hyp mode initialized successfully
[ 1.999569] Initialise system trusted keyrings
[ 1.999626] Key type blacklist registered
[ 2.002610] workingset: timestamp_bits=37 max_order=19 bucket_order=0
[ 2.013152] zbud: loaded
[ 2.599026] NET: Registered protocol family 38
[ 2.599061] Key type asymmetric registered
[ 2.601951] Asymmetric key parser ‘x509’ registered
[ 2.607083] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 249)
[ 2.614448] io scheduler noop registered
[ 2.618209] io scheduler deadline registered
[ 2.622800] io scheduler cfq registered (default)
[ 2.627222] io scheduler mq-deadline registered
[ 2.632097] atomic64_test: passed
[ 2.642506] soc soc0: Amlogic Meson GXM (Unknown) Revision 22:a (82:2) Detected
[ 2.645510] Serial: 8250/16550 driver, 32 ports, IRQ sharing enabled
[ 2.656748] meson_uart c11084c0.serial: could not find pctldev for node /soc/periphs@c8834000/pinctrl@4b0/uart_a, deferring probe
[ 2.662894] meson_uart c81004c0.serial: could not find pctldev for node /soc/bus@c8100000/pinctrl@14/uart_ao_a, deferring probe
[ 2.674394] meson_uart c81004e0.serial: could not find pctldev for node /soc/bus@c8100000/pinctrl@14/uart_ao_b, deferring probe
[ 2.686162] msm_serial: driver initialized
[ 2.693232] libphy: Fixed MDIO Bus: probed
[ 2.694346] ehci_hcd: USB 2.0 ‘Enhanced’ Host Controller (EHCI) Driver
[ 2.700694] ehci-pci: EHCI PCI platform driver
[ 2.705229] ohci_hcd: USB 1.1 ‘Open’ Host Controller (OHCI) Driver
[ 2.711367] ohci-pci: OHCI PCI platform driver
[ 2.715855] uhci_hcd: USB Universal Host Controller Interface driver
[ 2.722426] usbcore: registered new interface driver usbserial_generic
[ 2.728789] usbserial: USB Serial support registered for generic
[ 2.734978] mousedev: PS/2 mouse device common for all mice
[ 2.742050] device-mapper: uevent: version 1.0.3
[ 2.745384] device-mapper: ioctl: 4.37.0-ioctl (2017-09-20) initialised: dm-devel@redhat.com
[ 2.754759] ledtrig-cpu: registered to indicate activity on CPUs
[ 2.759864] meson-sm: secure-monitor enabled
[ 2.763886] EFI Variables Facility v0.08 2004-May-17
[ 2.768863] efivars: get_next_variable: status=8000000000000007
[ 2.774903] hidraw: raw HID events driver (C) Jiri Kosina
[ 2.780376] usbcore: registered new interface driver usbhid
[ 2.785833] usbhid: USB HID core driver
[ 2.790423] drop_monitor: Initializing network drop monitor service
[ 2.796346] Initializing XFRM netlink socket
[ 2.800906] NET: Registered protocol family 10
[ 2.813286] Segment Routing with IPv6
[ 2.813368] mip6: Mobile IPv6
[ 2.814266] NET: Registered protocol family 17
[ 2.819418] registered taskstats version 1
[ 2.822907] Loading compiled-in X.509 certificates
[ 2.994560] Loaded X.509 cert ‘Fedora kernel signing key: 08b5a89a8b561e2d9fc6be2d70263e432a621b2e’
[ 2.998182] zswap: loaded using pool lzo/zbud
[ 3.010529] Key type big_key registered
[ 3.018089] Key type encrypted registered
[ 3.024451] meson_uart c11084c0.serial: could not find pctldev for node /soc/periphs@c8834000/pinctrl@4b0/uart_a, deferring probe
[ 3.030706] meson_uart c81004c0.serial: could not find pctldev for node /soc/bus@c8100000/pinctrl@14/uart_ao_a, deferring probe
[ 3.042331] meson_uart c81004e0.serial: could not find pctldev for node /soc/bus@c8100000/pinctrl@14/uart_ao_b, deferring probe
[ 3.054280] hctosys: unable to open rtc device (rtc0)
[ 3.064584] VCC_3V3: disabling
[ 3.064609] VDDIO_AO18: disabling
[ 3.065300] VDDIO_BOOT: disabling
[ 3.068625] VDDAO_3V3: disabling
[ 3.071956] Warning: unable to open an initial console.
[ 3.083068] Freeing unused kernel memory: 5568K
[ 3.083985] Checked W+X mappings: passed, no W+X pages found
[ 3.087638] rodata_test: all tests were successful
[ 3.120747] systemd[1]: System time before build time, advancing clock.
[ 3.128736] efivars: get_next_variable: status=8000000000000007
[ 3.131561] systemd[1]: systemd 238 running in system mode. (+PAM +AUDIT +SELINUX +IMA -APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD +IDN2 -IDN +PCRE2 default-hierarchy=hybrid)
[ 3.151226] systemd[1]: Detected architecture arm64.
[ 3.155478] systemd[1]: Running in initial RAM disk.
[ 3.169648] systemd[1]: No hostname configured.
[ 3.169694] systemd[1]: Set hostname to .
[ 3.173758] systemd[1]: Initializing machine ID from random generator.
[ 3.404895] systemd[1]: Listening on Journal Audit Socket.
[ 3.405319] systemd[1]: Reached target Timers.
[ 3.409493] systemd[1]: Listening on udev Kernel Socket.
[ 3.414680] systemd[1]: Reached target Slices.
[ 3.471978] systemd[242]: dracut-cmdline-ask.service: Failed to set up standard input: No such device
[ 3.479615] audit: type=1130 audit(1520288197.350:2): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=kernel msg=‘unit=dracut-cmdline-ask comm=“systemd” exe=“/usr/lib/systemd/systemd” hostname=? addr=? terminal=? res=success’
[ 3.496562] audit: type=1130 audit(1520288197.370:3): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=kernel msg=‘unit=systemd-journald comm=“systemd” exe=“/usr/lib/systemd/systemd” hostname=? addr=? terminal=? res=success’
[ 3.515950] audit: type=1130 audit(1520288197.390:4): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=kernel msg=‘unit=systemd-tmpfiles-setup-dev comm=“systemd” exe=“/usr/lib/systemd/systemd” hostname=? addr=? terminal=? res=success’
[ 3.835722] audit: type=1130 audit(1520288197.710:5): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=kernel msg=‘unit=dracut-cmdline comm=“systemd” exe=“/usr/lib/systemd/systemd” hostname=? addr=? terminal=? res=success’
[ 3.934216] alua: device handler registered
[ 3.947387] emc: device handler registered
[ 3.960550] rdac: device handler registered
[ 4.033388] audit: type=1130 audit(1520288197.910:6): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=kernel msg=‘unit=dracut-pre-udev comm=“systemd” exe=“/usr/lib/systemd/systemd” hostname=? addr=? terminal=? res=success’
[ 4.078120] audit: type=1130 audit(1520288197.950:7): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=kernel msg=‘unit=systemd-udevd comm=“systemd” exe=“/usr/lib/systemd/systemd” hostname=? addr=? terminal=? res=success’
[ 4.495423] audit: type=1130 audit(1520288198.370:8): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=kernel msg=‘unit=dracut-pre-trigger comm=“systemd” exe=“/usr/lib/systemd/systemd” hostname=? addr=? terminal=? res=success’
[ 4.749068] audit: type=1130 audit(1520288198.620:9): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=kernel msg=‘unit=systemd-udev-trigger comm=“systemd” exe=“/usr/lib/systemd/systemd” hostname=? addr=? terminal=? res=success’
[ 4.811652] audit: type=1130 audit(1520288198.680:10): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=kernel msg=‘unit=plymouth-start comm=“systemd” exe=“/usr/lib/systemd/systemd” hostname=? addr=? terminal=? res=success’
[ 4.815513] meson-pwm c11086c0.pwm: could not find pctldev for node /soc/periphs@c8834000/pinctrl@4b0/pwm_e, deferring probe
[ 4.837988] meson-pwm c8100550.pwm: could not find pctldev for node /soc/bus@c8100000/pinctrl@14/pwm_ao_a_3, deferring probe
[ 4.839464] meson-i2c c1108500.i2c: could not find pctldev for node /soc/periphs@c8834000/pinctrl@4b0/i2c_a, deferring probe
[ 4.855611] meson-gx-mmc d0070000.mmc: could not find pctldev for node /soc/periphs@c8834000/pinctrl@4b0/sdio, deferring probe
[ 4.860938] meson-i2c c11087c0.i2c: could not find pctldev for node /soc/periphs@c8834000/pinctrl@4b0/i2c_b, deferring probe
[ 4.871624] meson-gx-mmc d0072000.mmc: could not find pctldev for node /soc/periphs@c8834000/pinctrl@4b0/sdcard, deferring probe
[ 4.894594] meson-gx-mmc d0074000.mmc: could not find pctldev for node /soc/periphs@c8834000/pinctrl@4b0/emmc, deferring probe

Judging by the conclusion, you have an outdated kernel 4.16. It is advisable to replace it with fresh 4.18. Alternatively, you can simply take the pre-built kernel files, modules, and firmware and copy it to your image on the media.

Unfortunately this block device is not present on my vim2:

ubuntu@kvim2:~$ ls -l /dev/block/
total 0
lrwxrwxrwx 1 root root 10 Feb 11  2016 179:0 -> ../mmcblk1
lrwxrwxrwx 1 root root 12 Feb 11  2016 179:1 -> ../mmcblk1p1
lrwxrwxrwx 1 root root 15 Feb 11  2016 179:32 -> ../mmcblk1boot0
lrwxrwxrwx 1 root root 15 Feb 11  2016 179:64 -> ../mmcblk1boot1
ubuntu@kvim2:~$ ls -l /dev/mmcblk1*
brw-rw---- 1 root disk 179,  0 Feb 11  2016 /dev/mmcblk1  
brw-rw---- 1 root disk 179, 32 Feb 11  2016 /dev/mmcblk1boot0
brw-rw---- 1 root disk 179, 64 Feb 11  2016 /dev/mmcblk1boot1
brw-rw---- 1 root disk 179,  1 Feb 11  2016 /dev/mmcblk1p1
crw------- 1 root root 238,  0 Feb 11  2016 /dev/mmcblk1rpmb

The stock fedora kernel is unable to find the emmc / sd storage of your vim2.

It executed this command from regular Android.
To install from Linux, you must use a different device name (eMMC).

Interesting results of trying to run Fedora on VIM. For tests, I used images from the latest version 29 from here (it uses the 4.18 kernel). If you write an “iso” image (for example, an aarch64 server) to the media, the primary UEFI system starts and gives the UART console a menu to select (installation, etc.). If you use the aarch64 server as a raw archive, UEFI immediately generates an error at the first stages and does not work. If you take an armhfp " raw " image of a workstation (Workstation), extlinux.conf normally starts, tries to load the kernel and Initrd, but does not find the DTB. I looked at the composition of the DTB files, there are no files for Khadas. It would be interesting to build an image with the addition of DTB for Khadas. How difficult is it to build a Fedora image with changes (add dtb Khadas) ?

https://mirror.yandex.ru/fedora/linux/development/29/

emmc is /dev/mmcblk1 but the firmware should be written starting with the second sector.