eMMC Flash Layout

Hi umiddelb,

Thank you. But I don’t use Initrd because it is not needed on such systems.

Now I understand that the kernel reade fake partition table from reserved partition (see u-boot) and also read normal partition table from MBR. And the 5th partition for u-boot seems like /dev/mmcblk1p1 but kernel decides that this partition is /dev/mmcblk1p5. When I boot from eMMC I use followin scenario:

boot.scr:

mmcinfo
ext4load mmc 1:1 0x13000000 /boot/radix-2CPU-224x96-32bpp.bmp
setenv display_bpp 32
setenv display_color_index 32
setenv display_color_fg 0xffffffff
osd open
osd clear
bmp display 0x13000000
bmp scale
ext4load mmc 1:1 0x11000000 /boot/uImage
ext4load mmc 1:1 0x01000000 /boot/meson64_odroidc2.dtb
setenv bootargs 'console=ttyS0,115200n8 ro root=/dev/mmcblk1p5 rootfstype=ext4 no_console_suspend logo=osd1,loaded,0x3d800000,1080p60hz consoleblank=0 hdmimode=1080p60hz'
bootm 0x11000000 - 0x01000000

and following script to create needed partition table in MBR on user space:

#!/bin/sh

fdisk /dev/mmcblk1 <<EOF
n
p
1
212992

a
p
w
EOF

Unfortunately I have no time to translate this to English Khadas VIM eMMC flash layout.

Best Regards,
Andrey K.

I can help with the translation to English if people are interested.

Hi Andrey,

the use of Initrd is highly recommended if you are using a systemd based init system, and it’s not that much overhead. In this case it helps me to boot the rootfs directly from eMMC with a custom partitioning scheme (MBR instead of u-boot).

I’ve seen that you are using the meson64_odroidc2.dtb device tree binary (which belongs to HK 3.14 kernel for the Odroid C2). How good is the HW support for the kvim with this device tree? Did you even succeed to boot a mainline kernel?

Cheers
Uli

This is the result of the automatic translation by google.

1 Like

Hi Uli,

I don’t use systemd (it is very very very bad practice).

Regarding meson64_odroidc2.dtb: currently I try to boot ODROIDC2 board using u-boot and kernel from Hardkernel (Ubuntu from eMMC is loaded normaly). But faced with problem with custom boot script: U-Boot works normally but kernel doesn’t show any logs and seems freeze:

odroidc2#ext4load mmc 0:1 0x13000000 /boot/radix-2CPU-224x96-32bpp.bmp
86154 bytes read in 60 ms (1.4 MiB/s)
odroidc2#setenv display_bpp 32
odroidc2#setenv display_color_index 32
odroidc2#setenv display_color_fg 0xffffffff
odroidc2#osd open
[CANVAS]addr=0x3f800000 width=5120, height=1440

odroidc2#osd clear
odroidc2#bmp display 0x13000000
odroidc2#bmp scale
odroidc2#ext4load mmc 0:1 0x11000000 /boot/uImage
5707004 bytes read in 319 ms (17.1 MiB/s)
odroidc2#ext4load mmc 0:1 0x01000000 /boot/meson64_odroidc2.dtb
29264 bytes read in 46 ms (621.1 KiB/s)
odroidc2#setenv bootargs 'console=ttyS0,115200n8 ro root=/dev/mmcblk0p1 rootfstype=ext4 no_console_suspend logo=osd1,loaded,0x3d800000,1080p60hz consoleblank=0 hdmimode=1080p60hz'
odroidc2#bootm 0x11000000 - 0x01000000
ee_gate_off ...
## Booting kernel from Legacy Image at 11000000 ...
   Image Name:   3.14.79
   Image Type:   AArch64 Linux Kernel Image (gzip compressed)
   Data Size:    5706940 Bytes = 5.4 MiB
   Load Address: 01080000
   Entry Point:  01080000
   Verifying Checksum ... OK
load dtb from 0x1000000 ......
## Flattened Device Tree blob at 01000000
   Booting using the fdt blob at 0x1000000
   Uncompressing Kernel Image ... OK
   kernel loaded at 0x01080000, end = 0x01d59280
   Loading Device Tree to 000000001fff5000, end 000000001ffff24f ... OK

Starting kernel ...

uboot time: 781080041 us

And then no any message.

It seems like dtb is wrong.

I tried to boot original kernel binary Image from Hardkernel but I have the same result.

Could you give some advise?

Best Regards,
Andrey K.

I think to port the Amlogic’s stuff to the mainline kernel it is a very hard and long task.
Some times ago I tried to boot latest kernel on S805 based board. In that time I’ve seen that there are no needed drivers and DTS’s in the mainline kernel.

Martin and his team are working mainline linux on Khadas VIM, following message got from my email:

Hi Gouwa,

On Mon, Feb 20, 2017 at 1:39 PM, Gouwa <gouwa@szwesion.com> wrote:
> Hi, Martin:
>     Kindly inform us then instructions you created then.
will do!

>     Attached is the S905X pin_mux documents, we've tested on Khadas VIM,
> most of them works on S905X too.
thank you - I had a quick look at this and it seems to be exactly what
I need. I'll be travelling this weekend so I can only try this out
next weekend. I'll keep you updated

>     I'll take a visit to Amlogic Shenzhen office in these days, will talk
> more about open source things.
that would be great! I would feel more comfortable with releasing
upstream pinmux patches if that documentation was public.
Jerome (jbrunet@baylibre.com) and Neil (narmstrong@baylibre.com) from
BayLibre (see below) are also interested in the pinmux documentation.

BayLibre is a French company who is working on open source Mali, HDMI
and audio support on Amlogic SoCs. Neil, one of their developers, will
hold a talk during the ELC (Embedded Linux Conference) this week:
https://openiotelcna2017.sched.com/event/9IuK/mainline-linux-on-amlogic-socs-neil-armstrong-baylibre?iframe=no&w=100%&sidebar=yes&bg=no
if you want a sneak preview of their HDMI and Mali progress you can
watch this: https://www.youtube.com/watch?v=reHY8eT7AFE&feature=youtu.be
so if you're talking about open source things then please consider
that the Amlogic SoCs might be the first which will be able to run
Kodi with an upstream kernel soon - and every public datasheet will
help to make this even more awesome!

PS: here's a little upstream update:
- the SAR ADC driver has just in Linux 4.11:
https://github.com/torvalds/linux/commit/3adbf34273306fc1ee71e34162af28b53b6461fe
- same with the SDIO ID for the brcmfmac (wifi) driver which now
supports the AP6255 chip:
https://github.com/torvalds/linux/commit/a62a77881b1b6708ffeddd9bf0529494f7b199e3
- preparations in the UART driver so we support the bluetooth module
in theory (more work is required though):
https://github.com/torvalds/linux/commit/8c9faa556a37e62799fd22d7409386b1b8ddd4e7
- the GeekBox remote is now also officially supported in Linux 4.11:
https://github.com/torvalds/linux/commit/126f6846cb184d21d2f86e50d0b6459e94cf9428

Martin and his team are working mainline linux on Khadas VIM, following message got from my email:

Hi Gouwa,

On Mon, Feb 20, 2017 at 1:39 PM, Gouwa <gouwa@szwesion.com> wrote:
> Hi, Martin:
>     Kindly inform us then instructions you created then.
will do!

>     Attached is the S905X pin_mux documents, we've tested on Khadas VIM,
> most of them works on S905X too.
thank you - I had a quick look at this and it seems to be exactly what
I need. I'll be travelling this weekend so I can only try this out
next weekend. I'll keep you updated

>     I'll take a visit to Amlogic Shenzhen office in these days, will talk
> more about open source things.
that would be great! I would feel more comfortable with releasing
upstream pinmux patches if that documentation was public.
Jerome (jbrunet@baylibre.com) and Neil (narmstrong@baylibre.com) from
BayLibre (see below) are also interested in the pinmux documentation.

BayLibre is a French company who is working on open source Mali, HDMI
and audio support on Amlogic SoCs. Neil, one of their developers, will
hold a talk during the ELC (Embedded Linux Conference) this week:
https://openiotelcna2017.sched.com/event/9IuK/mainline-linux-on-amlogic-socs-neil-armstrong-baylibre?iframe=no&w=100%&sidebar=yes&bg=no
if you want a sneak preview of their HDMI and Mali progress you can
watch this: https://www.youtube.com/watch?v=reHY8eT7AFE&feature=youtu.be
so if you're talking about open source things then please consider
that the Amlogic SoCs might be the first which will be able to run
Kodi with an upstream kernel soon - and every public datasheet will
help to make this even more awesome!

PS: here's a little upstream update:
- the SAR ADC driver has just in Linux 4.11:
https://github.com/torvalds/linux/commit/3adbf34273306fc1ee71e34162af28b53b6461fe
- same with the SDIO ID for the brcmfmac (wifi) driver which now
supports the AP6255 chip:
https://github.com/torvalds/linux/commit/a62a77881b1b6708ffeddd9bf0529494f7b199e3
- preparations in the UART driver so we support the bluetooth module
in theory (more work is required though):
https://github.com/torvalds/linux/commit/8c9faa556a37e62799fd22d7409386b1b8ddd4e7
- the GeekBox remote is now also officially supported in Linux 4.11:
https://github.com/torvalds/linux/commit/126f6846cb184d21d2f86e50d0b6459e94cf9428

Hi Andrey,

first you may try to boot the kernel in the way HK recommends, i.e. using boot.ini via cfgload. There have been some recent changes in the kernel which require an update of boot.ini as well (otherwise the kernel crashes). If this works you may try to run the contents of your custom boot script inside the boot.ini. Then make sure that your u-boot environment contains all the settings from boot.ini (e.g. fdt_high and initrd_high).

Cheers
Uli

1 Like

Hi Uli,

Thank you. You all right. I have used wrong version of HK u-boot. The U-boot from 2016-10-11 works.

Also it works when I use uImage instead of Image.

Thank You.

Andrey K.

The problem of HK U-Boot more deeply.

This U-Boot can be built only by GCC4 because it is hacked u-boot with binary BL1 loader from HK.

Do you known some other u-boot for HK ODROID-C2 board? I want this only for comparison Mali drivers which we have for C2 and Khadas VIM.

Best Regards,
Andrey K.

Hi Andrey,

You may follow this thread here.

Cheers
Uli

I’m using uImage (bootm) to boot a mainline kernel on the C2 via stock HK u-boot.

I have built latest HK u-boot by 4.9.2 and have manged to load kernel by following script:

ext4load mmc 0:1 0x13000000 /boot/radix-2CPU-224x96-32bpp.bmp
setenv display_bpp 32
setenv display_color_index 32
setenv display_color_fg 0xffffffff
osd open
osd clear
bmp display 0x13000000
bmp scale

setenv m "1080p60hz"
setenv m_bpp "32"
setenv hpd "true"
setenv condev "console=ttyS0,115200n8 console=tty0"
setenv mesontimer "1"
setenv nographics "0"
setenv monitor_onoff "false"
setenv maxcpus "4"
setenv max_freq "1536"

setenv bootargs "root=/dev/mmcblk0p1 rootwait ro ${condev} no_console_suspend hdmimode=${m} ${comde} m_bpp=${m_bpp} vout=${vout} fsck.repair=yes net.ifnames=0 elevator=noop disablehpd=${hpd} max_freq=${max_freq} maxcpus=${maxcpus} monitor_onoff=${monitor_onoff}"
setenv loadaddr "0x11000000"
setenv dtb_loadaddr "0x1000000"

ext4load mmc 0:1 ${loadaddr} /boot/uImage
ext4load mmc 0:1 ${dtb_loadaddr} /boot/meson64_odroidc2.dtb
fdt addr ${dtb_loadaddr}

if test "${mesontimer}" = "0"; then fdt rm /meson_timer; fdt rm /cpus/cpu@0/timer; fdt rm /cpus/cpu@1/timer; fdt rm /cpus/cpu@2/timer; fdt rm /cpus/cpu@3/timer; fi
if test "${mesontimer}" = "1"; then fdt rm /timer; fi

if test "${nographics}" = "1"; then fdt rm /reserved-memory; fdt rm /aocec; fi
if test "${nographics}" = "1"; then fdt rm /meson-fb; fdt rm /amhdmitx; fdt rm /picdec; fdt rm /ppmgr; fi
if test "${nographics}" = "1"; then fdt rm /meson-vout; fdt rm /mesonstream; fdt rm /meson-fb; fi
if test "${nographics}" = "1"; then fdt rm /deinterlace; fdt rm /codec_mm; fi

bootm ${loadaddr} - ${dtb_loadaddr}

I think it enough for me today. Next step FB initialization, X.org driver and testing how Mali-450 works on C2.

Thank you for help.
Andrey K.

This is really great Topic and can help to understand eMMC layout. Still I am not quite sure how to calculate start offset to re-partition eMCC storage. Android u-boot and Linux u-boot don’t use same eMMC layout!

android u-boot:

kvim#version

U-Boot 2015.01-g8d3f947 (Jun 03 2017 - 17:55:30)
aarch64-linux-gnu-gcc (Ubuntu/Linaro 4.8.4-2ubuntu1~14.04.1) 4.8.4
GNU ld (GNU Binutils for Ubuntu) 2.24
kvim#


MMC: aml_priv->desc_buf = 0x0000000073ecc6b0
aml_priv->desc_buf = 0x0000000073ece9d0
SDIO Port B: 0, SDIO Port C: 1
emmc/sd response timeout, cmd8, status=0x1ff2800
emmc/sd response timeout, cmd55, status=0x1ff2800
[mmc_startup] mmc refix success
[mmc_init] mmc init success
mmc read lba=0x14000, blocks=0x400
start dts,buffer=0000000073ed1270,dt_addr=0000000073ed1270
parts: 11
00: logo 0000000002000000 1
01: recovery 0000000002000000 1
02: rsv 0000000000800000 1
03: tee 0000000000800000 1
04: crypt 0000000002000000 1
05: misc 0000000002000000 1
06: instaboot 0000000020000000 1
07: boot 0000000002000000 1
08: system 0000000040000000 1
09: cache 0000000020000000 2
10: data ffffffffffffffff 4
get_dtb_struct: Get emmc dtb OK!
overide_emmc_partition_table: overide cache
[mmc_get_partition_table] skip partition cache.
Partition table get from SPL is :
name offset size flag

0: bootloader 0 400000 0
1: reserved 2400000 4000000 0
2: cache 6c00000 20000000 2
3: env 27400000 800000 0
4: logo 28400000 2000000 1
5: recovery 2ac00000 2000000 1
6: rsv 2d400000 800000 1
7: tee 2e400000 800000 1
8: crypt 2f400000 2000000 1
9: misc 31c00000 2000000 1
10: instaboot 34400000 20000000 1
11: boot 54c00000 2000000 1
12: system 57400000 40000000 1
13: data 97c00000 30c200000 4
mmc read lba=0x12000, blocks=0x2
mmc read lba=0x12002, blocks=0x2
mmc_read_partition_tbl: mmc read partition OK!
eMMC/TSD partition table have been checked OK!
mmc env offset: 0x27400000

Ubuntu u-boot:
kvim#version

U-Boot 2015.01-g7861c5a (Jun 04 2017 - 15:40:09)
aarch64-linux-gnu-gcc (Ubuntu/Linaro 4.8.4-2ubuntu1~14.04.1) 4.8.4
GNU ld (GNU Binutils for Ubuntu) 2.24
kvim#


MMC: aml_priv->desc_buf = 0x0000000073ecf6b0
aml_priv->desc_buf = 0x0000000073ed19d0
SDIO Port B: 0, SDIO Port C: 1
emmc/sd response timeout, cmd8, status=0x1ff2800
emmc/sd response timeout, cmd55, status=0x1ff2800
[mmc_startup] mmc refix success
[mmc_init] mmc init success
mmc read lba=0x14000, blocks=0x400
start dts,buffer=0000000073ed4270,dt_addr=0000000073ed4270
parts: 3
00: logo 0000000002000000 1
01: ramdisk 0000000002000000 1
02: rootfs ffffffffffffffff 4
get_dtb_struct: Get emmc dtb OK!
Partition table get from SPL is :
name offset size flag

0: bootloader 0 400000 0
1: reserved 2400000 4000000 0
2: env 6c00000 800000 0
3: logo 7c00000 2000000 1
4: ramdisk a400000 2000000 1
5: rootfs cc00000 397200000 4
mmc read lba=0x12000, blocks=0x2
mmc read lba=0x12002, blocks=0x2
mmc_read_partition_tbl: mmc read partition OK!
eMMC/TSD partition table have been checked OK!
mmc env offset: 0x6c00000

So if using Ubuntu u-boot what is start sector for fdisk? Ubunt u-boot have ext4load so there is no need for that ramdisk partition right? If so then one could create new partition from ramdisk offset a400000 ?

@Andrey how did you came to this start sector: 212992

Plan is currently to create an eMMC partition, but not to break u-boot, to install [ArchLinuxArm] (Installing ArchLinuxARM on Khadas VIM Pro device - #3 by vrabac) and boot from that partition. Currently I boot ArchLinuxArm from micro SD card and that works fine, but is a bit slow and not enough capacity.

Here the number 212992 defines start sector of rootfs, because sector size is 512 bytes, the number 212992 can be calculate by divide offset to sectorsize:

212992 = 0x6800000 / 512;

here 212992 - decimal number
512 - decimal number
0x6800000 - hexadecimal of cource

please translate the page [https://radix.pro/devices/khadas-vim/] by google

@Andrey thank you, now it is clear. The sector start size 212992 is for my Ubuntu u-boot wrong and if I get your right this is right value:

Can I assume the ramdisk ist “/boot” partition and can be safely deleted? Ubunt u-boot have ext4load command so there is no need for separate FAT partition.

Of course!

You can remove FAT /boot partition, create /boot directory in ext4 rootfs, copy uImage and boot scripts into /boot directory and load kernel using

ext4load mmc 0:1 ${loadaddr} /boot/uImage

To be sure that it works you can try to load kernel manually from u-boot console before removing FAT partition.

1 Like

experts just wondering how smooth this bootup went after recovering a bricked edge-v max (with ubuntu_bionic_4.4)

DDR Version 1.24 20191016
In
channel 0
CS = 0
MR0=0x19
MR4=0x3
MR5=0x6
MR8=0x8
MR12=0x72
MR14=0x72
MR18=0x0
MR19=0x0
MR24=0x8
MR25=0xFF
CS = 1
MR0=0x19
MR4=0x3
MR5=0x6
MR8=0x8
MR12=0x72
MR14=0x72
MR18=0x0
MR19=0x0
MR24=0x8
MR25=0xFF
channel 1
CS = 0
MR0=0x19
MR4=0x3
MR5=0x6
MR8=0x8
MR12=0x72
MR14=0x72
MR18=0x0
MR19=0x0
MR24=0x8
MR25=0xFF
CS = 1
MR0=0x19
MR4=0x3
MR5=0x6
MR8=0x8
MR12=0x72
MR14=0x72
MR18=0x0
MR19=0x0
MR24=0x8
MR25=0xAF
channel 0 training pass!
channel 1 training pass!
change freq to 416MHz 0,1
Channel 0: LPDDR4,416MHz
Bus Width=32 Col=10 Bank=8 Row=15/15 CS=2 Die Bus-Width=16 Size=2048MB
Channel 1: LPDDR4,416MHz
Bus Width=32 Col=10 Bank=8 Row=15/15 CS=2 Die Bus-Width=16 Size=2048MB
256B stride
channel 0
CS = 0
MR0=0x19
MR4=0x3
MR5=0x6
MR8=0x8
MR12=0x72
MR14=0x72
MR18=0x0
MR19=0x0
MR24=0x8
MR25=0xFF
CS = 1
MR0=0x19
MR4=0x3
MR5=0x6
MR8=0x8
MR12=0x72
MR14=0x72
MR18=0x0
MR19=0x0
MR24=0x8
MR25=0xFF
channel 1
CS = 0
MR0=0x19
MR4=0x3
MR5=0x6
MR8=0x8
MR12=0x72
MR14=0x72
MR18=0x0
MR19=0x0
MR24=0x8
MR25=0xFF
CS = 1
MR0=0x19
MR4=0x3
MR5=0x6
MR8=0x8
MR12=0x72
MR14=0x72
MR18=0x0
MR19=0x0
MR24=0x8
MR25=0xAF
channel 0 training pass!
channel 1 training pass!
channel 0, cs 0, advanced training done
channel 0, cs 1, advanced training done
channel 1, cs 0, advanced training done
channel 1, cs 1, advanced training done
change freq to 856MHz 1,0
ch 0 ddrconfig = 0x101, ddrsize = 0x2020
ch 1 ddrconfig = 0x101, ddrsize = 0x2020
pmugrf_os_reg[2] = 0x3AA1FAA1, stride = 0xD
ddr_set_rate to 328MHZ
ddr_set_rate to 666MHZ
ddr_set_rate to 416MHZ, ctl_index 0
ddr_set_rate to 856MHZ, ctl_index 1
support 416 856 328 666 MHz, current 856MHz
OUT
Boot1 Release Time: Dec 24 2019 18:00:26, version: 1.24
CPUId = 0x0
ChipType = 0x10, 339
SdmmcInit=2 0
BootCapSize=100000
UserCapSize=119276MB
FwPartOffset=2000 , 100000
mmc0:cmd8,20
mmc0:cmd5,20
mmc0:cmd55,20
mmc0:cmd1,20
mmc0:cmd8,20
mmc0:cmd5,20
mmc0:cmd55,20
mmc0:cmd1,20
mmc0:cmd8,20
mmc0:cmd5,20
mmc0:cmd55,20
mmc0:cmd1,20
SdmmcInit=0 1
StorageInit ok = 68971
SecureMode = 0
SecureInit read PBA: 0x4
SecureInit read PBA: 0x404
SecureInit read PBA: 0x804
SecureInit read PBA: 0xc04
SecureInit read PBA: 0x1004
SecureInit read PBA: 0x1404
SecureInit read PBA: 0x1804
SecureInit read PBA: 0x1c04
SecureInit ret = 0, SecureMode = 0
atags_set_bootdev: ret:(0)
GPT part: 0, name: loader1, start:0x40, size:0x1f80
GPT part: 1, name: uboot, start:0x4000, size:0x2000
GPT part: 2, name: trust, start:0x6000, size:0x2000
GPT part: 3, name: misc, start:0x8000, size:0x2000
GPT part: 4, name: resource, start:0xa000, size:0x8000
GPT part: 5, name: kernel, start:0x12000, size:0x2e000
GPT part: 6, name: rootfs, start:0x40000, size:0xe8b5fdf
find part:uboot OK. first_lba:0x4000.
find part:trust OK. first_lba:0x6000.
LoadTrust Addr:0x6000
No find bl30.bin
Load uboot, ReadLba = 4000
Load OK, addr=0x200000, size=0xfc0d0
RunBL31 0x40000 @ 112870 us
NOTICE: BL31: v1.3(debug):734d84297
NOTICE: BL31: Built : 15:30:40, Dec 12 2019
NOTICE: BL31: Rockchip release version: v1.1
INFO: GICv3 with legacy support detected. ARM GICV3 driver initialized in EL3
INFO: Using opteed sec cpu_context!
INFO: boot cpu mask: 0
INFO: plat_rockchip_pmu_init(1190): pd status 3e
INFO: BL31: Initializing runtime services
INFO: BL31: Initializing BL32
INF [0x0] TEE-CORE:init_primary_helper:337: Initializing (1.1.0-230-g6c76e8a9 #191 Mon Nov 18 07:00:24 UTC 2019 aarch64)

INF [0x0] TEE-CORE:init_primary_helper:338: Release version: 1.2

INF [0x0] TEE-CORE:init_teecore:83: teecore inits done
INFO: BL31: Preparing for EL3 exit to normal world
INFO: Entry point address = 0x200000
INFO: SPSR = 0x3c9

U-Boot 2017.09 (Jun 25 2021 - 16:20:23 +0800)

Model: Khadas Edge
PreSerial: 2
DRAM: 3.8 GiB
Sysmem: init
Relocation Offset: f5bd3000, fdt: f3dbbc68
I2c4 speed: 400000Hz
PMIC: RK808
vdd_center 900000 uV
vdd_cpu_l 900000 uV
vdd_log init 950000 uV
MMC: dwmmc@fe320000: 1, sdhci@fe330000: 0
Using default environment

Model: Khadas Edge
Bootdev(atags): mmc 0
MMC0: HS400, 150Mhz
PartType: EFI
SARADC: 1023
boot mode: None
512 bytes read in 173 ms (2 KiB/s)
1080138 bytes read in 180 ms (5.7 MiB/s)
Rockchip UBOOT DRM driver version: v1.0.1
Using display timing dts
Detailed mode clock 120000 kHz, flags[a]
H: 1080 1184 1188 1315
V: 1920 1924 1926 1929
bus_format: 100e
final DSI-Link bandwidth: 996 Mbps x 4
CLK: (uboot. arml: enter 816000 KHz, init 816000 KHz, kernel 0N/A)
CLK: (uboot. armb: enter 24000 KHz, init 24000 KHz, kernel 0N/A)
aplll 816000 KHz
apllb 24000 KHz
dpll 856000 KHz
cpll 24000 KHz
gpll 800000 KHz
npll 600000 KHz
vpll 120000 KHz
aclk_perihp 133333 KHz
hclk_perihp 66666 KHz
pclk_perihp 33333 KHz
aclk_perilp0 266666 KHz
hclk_perilp0 88888 KHz
pclk_perilp0 44444 KHz
hclk_perilp1 100000 KHz
pclk_perilp1 50000 KHz
Net: eth0: ethernet@fe300000
Setting bus to 8
I2c8 speed: 100000Hz
normal power off
boot wol: disable
Hit any key to stop autoboot: 0
Card did not respond to voltage select!
mmc_init: -95, time 9
switch to partitions #0, OK
mmc0(part 0) is current device
Failed to mount ext2 filesystem…
** Unrecognized filesystem type **
Scanning mmc 0:7…
Found U-Boot script /boot/boot.scr
6225 bytes read in 46 ms (131.8 KiB/s)

Executing script at 00500000

Run Khadas boot script
board type = Edge-V (2)
Uboot loaded from eMMC.
1382 bytes read in 50 ms (26.4 KiB/s)
Import env.txt
DTB: /boot/dtb/rk3399-khadas-edgev-linux.dtb
mac address: 00:00:00:00:00:00
Found custom ethmac: ca:3c:3b:37:e2:25, overwrite eth_mac!
Scanning mmc 0:6…
Failed to mount ext2 filesystem…
** Unrecognized filesystem type **
Scanning mmc 0:7…
6904683 bytes read in 120 ms (54.9 MiB/s)
20154376 bytes read in 196 ms (98.1 MiB/s)
98856 bytes read in 67 ms (1.4 MiB/s)
Apply dtbo i2c2
223 bytes read in 77 ms (2 KiB/s)
Apply dtbo spi3
223 bytes read in 84 ms (2 KiB/s)
Apply dtbo i2s0
223 bytes read in 79 ms (2 KiB/s)
Apply dtbo onewire
226 bytes read in 81 ms (2 KiB/s)

Loading init Ramdisk from Legacy Image at 0a200000 …

Image Name: uInitrd
Image Type: AArch64 Linux RAMDisk Image (uncompressed)
Data Size: 6904619 Bytes = 6.6 MiB
Load Address: 00000000
Entry Point: 00000000
Verifying Checksum … OK

Flattened Device Tree blob at 08300000

Booting using the fdt blob at 0x8300000
reserving fdt memory region: addr=8300000 size=7e000
‘reserved-memory’ region@110000: addr=110000 size=f0000
Loading Ramdisk to f3722000, end f3db7b2b … OK
Loading Device Tree to 00000000f36a1000, end 00000000f3721fff … OK
512 bytes read in 173 ms (2 KiB/s)
1080138 bytes read in 180 ms (5.7 MiB/s)
Adding bank: 0x00200000 - 0x08400000 (size: 0x08200000)
Adding bank: 0x0a200000 - 0xf8000000 (size: 0xede00000)
Total: 4809.329 ms

Starting kernel …

[ 2.410792] rockchip-pcie f8000000.pcie: PCIe link training gen1 timeout!
[ 2.411413] rockchip-pcie f8000000.pcie: deferred probe failed
[ 2.414474] rk-vcodec ff650000.vpu_service: could not find power_model node
[ 2.416391] rk-vcodec ff660000.rkvdec: could not find power_model node
[ 2.429560] mali ff9a0000.gpu: Failed to get regulator
[ 2.430020] mali ff9a0000.gpu: Power control initialization failed
[ 2.441010] rk_gmac-dwmac fe300000.ethernet: cannot get clock clk_mac_speed
[ 2.587745] rockchip-dwc3 usb0: failed to get drvdata dwc3
[ 2.593055] rockchip-dwc3 usb1: fail to get drvdata hcd
[ 2.685322] rockchip-pinctrl pinctrl: pin gpio1-18 already requested by ff350000.spi; cannot claim for 4-001b
[ 2.686197] rockchip-pinctrl pinctrl: pin-50 (4-001b) status -22
[ 2.686764] rockchip-pinctrl pinctrl: could not request pin 50 (gpio1-18) from group pmic-dvs2 on device rockchip-pinctrl
[ 2.687736] rk808 4-001b: Error applying setting, reverse things back
[ 4.266918] cw201x 8-0062: design_capacity missing!
[ 4.329246] rk_tsadcv2_temp_to_code: Invalid conversion table: code=1023, temperature=2147483647
[ 4.359010] cpu cpu0: failed to find power_model node
[ 4.361986] cpu cpu4: failed to find power_model node
[ 4.365861] vccio_sd: unsupportable voltage range: 3300000-3000000uV
[ 4.428586] rockchip-dmc dmc: unable to get devfreq-event device : dfi
[ 4.450543] Error: Driver ‘ov4689’ is already registered, aborting…
[ 4.451161] Error: Driver ‘ov7750’ is already registered, aborting…
[ 4.451741] Error: Driver ‘ov13850’ is already registered, aborting…
[ 4.452513] Error: Driver ‘sc031gs’ is already registered, aborting…
[ 4.461281] zswap: default zpool zbud not available
[ 4.461728] zswap: pool creation failed
[ 4.472546] rockchip-vop ff900000.vop: missing rockchip,grf property
[ 4.473698] rockchip-vop ff8f0000.vop: missing rockchip,grf property
[ 4.475746] i2c i2c-9: of_i2c: modalias failure on /hdmi@ff940000/ports
[ 4.481129] i2c i2c-10: of_i2c: modalias failure on /dp@fec00000/ports
[ 4.483274] rockchip-drm display-subsystem: connector[HDMI-A-1] can’t found any modes
[ 4.484239] rockchip-drm display-subsystem: failed to show loader logo
[ 4.605353] hub 8-0:1.0: config failed, hub doesn’t have any ports! (err -19)
[ 4.686110] rockchip-dmc dmc: Failed to get leakage
[ 4.686885] rockchip-dmc dmc: Failed to get pvtm
[ 4.688030] rockchip-dmc dmc: failed to get vop pn to msch rl
[ 4.689146] rockchip-dmc dmc: could not find power_model node
[ 4.694551] rk-hdmi-dp-sound hdmi-dp-sound: control 3:0:0:ELD:0 is already present
[ 4.695308] hdmi-audio-codec hdmi-audio-codec.7.auto: ASoC: Failed to add ELD: -16
ROOTFS: recovering journal
ROOTFS: clean, 133241/7492688 files, 1342602/30501883 blocks
[ 5.627694] cgroup: cgroup2: unknown option “nsdelegate”
[ 8.192568] [drm:dw_hdmi_rockchip_set_property] ERROR failed to set rockchip hdmi connector property
[ 8.193404] [drm:dw_hdmi_rockchip_set_property] ERROR failed to set rockchip hdmi connector property
[ 8.194245] [drm:dw_hdmi_rockchip_set_property] ERROR failed to set rockchip hdmi connector property
[ 8.195205] [drm:dw_hdmi_rockchip_set_property] ERROR failed to set rockchip hdmi connector property
[ 8.196035] [drm:dw_hdmi_rockchip_set_property] ERROR failed to set rockchip hdmi connector property
[ 8.196862] [drm:dw_hdmi_rockchip_set_property] ERROR failed to set rockchip hdmi connector property
[ 8.881058] CONFIG-ERROR) dhd_conf_set_intiovar: txbf setting failed -23

Ubuntu 18.04.6 LTS Khadas ttyFIQ0

Khadas login:

am wondering why i dont have bluetooth tried to see if some drivers are missing. no bluetooth controller/adapter.