Variscite VAR-SOM-MX8

(this first entry will be updated over time with summary information about how to use the VAR-SOM-MX8)

The VAR-SOM-MX8 family is i.MX8 SOM from Variscite.

The following image shows initial hookup:

image

SW3 can be used to switch between eMMC and SD boot. When booting from eMMC, you will see Boot: MMC0, with SD Boot: SD1.

To boot Yoe:

  • source your favorite imx8... machine envsetup file

  • build an image (yoe-simple-image, yoe-kiosk-image, etc)

  • Program the build/tmp/deploy/images/<machine>/<image>.wic.xz image to your SD card using etcher or yoe_install_image tool

    yoe_install_image /dev/sdX yoe-kiosk-image
    

    where X is letter that SD card is assigned e.g. /dev/sda or /dev/sdb etc.

  • select SD boot (see image above)

  • insert the SD card and power on

1 Like

Working on VAR-SOM-MX8 support here:

Almost building:

Thanks to @khem for keeping meta-freescale current with Yocto/Yoe master branch.

cc @collinbrake

if we disable updater then then we can build SD card wic image. Updater for imx8 will need some work as it seems, which we expected.

1 Like

I got image (without updater) built for imx8qm-var-som

For a challange I said lets try with

YOE_PROFILE ?= "yoe-musl-systemd-wayland"

and it all came along nicely. Ofcourse I have patches for meta-freescale proposed already for merge.

1 Like

Great progress! Now, to figure out how load up an SD card for this thing …

Loaded yoe-simple-image wic file on a SD card and it boots:

Yoe Linux 2022.08 imx8qxp-var-som ttyLP3
imx8qxp-var-som login: root
root@imx8qxp-var-som:~# 

Next, working on LVGL recipe for their demo app, and trying some other graphical stuff …

Build and installed yoe-kiosk-image, and weston/wayland is working. Also appears egl tests are working:

root@imx8qxp-var-som:~# export XDG_RUNTIME_DIR=/run
root@imx8qxp-var-som:~# export WAYLAND_DISPLAY=wayland-0
root@imx8qxp-var-som:~# weston-simple-dmabuf-egl
root@imx8qxp-var-som:~# weston-simple-egl 
has EGL_EXT_buffer_age and EGL_EXT_swap_buffers_with_damage
302 frames in 5 seconds: 60.400002 fps
301 frames in 5 seconds: 60.200001 fps

The LVGL demo is also running on this device now.

The i.MX8X CPU I’m using here does not have a heatsink installed yet (it came with one). I’m not pushing it hard right now, and the case is warm – just under the threshold of being too hot to keep my finger on it for a long time – probably just under 50degC. MX8 devices will definitely need some thought in the thermal design, unlike the i.MX6UL which runs cool. Heatsinking to a metal case is probably a good option.

I have observed that all arm64 cores based CPUs run hotter compared to 32bit ones and I do agree a better heatsink mechanism would go long way.

VAR-SOM-MX8x support has been merged into yoe/master. @collinbrake give it a try and let us know how it goes. I’ve added instructions for flashing SD card above. Will work on the updater next so we can program eMMC.

1 Like

on my MX8 I am seeing a core is offline and I wonder why

only have 4 cores on unit here:

The original image might still be in flash, you could try booting that and see if you see the same thing.

This is an interesting discussion:

Wifi is brcm

root@imx8qm-var-som:~# dmesg | grep brcm
[    4.766997] brcmfmac: brcmf_fw_map_chip_to_name: using brcm/brcmfmac4339-sdio.bin for chip 0x004339(17209) rev 0x000002
[    5.006553] brcmfmac mmc2:0001:1: Falling back to user helper
[    5.016806] brcmfmac: brcmf_c_process_clm_blob: no clm_blob available(err=-11), device may have limited channels available
[    5.027290] brcmfmac: brcmf_c_preinit_dcmds: Firmware version = wl0: Jun 26 2018 01:58:05 version 6.37.39.94 (r692107 CY)
root@imx8qm-var-som:~# lsmod
Module                  Size  Used by
rfcomm                 49152  16
hci_uart               20480  1
bnep                   20480  2
brcmfmac              253952  0
cfg80211              307200  1 brcmfmac
brcmutil               16384  1 brcmfmac
bluetooth             372736  38 hci_uart,bnep,rfcomm
ecdh_generic           24576  1 bluetooth
cdns3                  49152  0
xhci_hcd              135168  1 cdns3
ci_hdrc_imx            20480  0
ci_hdrc                61440  1 ci_hdrc_imx
phy_generic            16384  1
ehci_hcd               57344  1 ci_hdrc
udc_core               28672  2 cdns3,ci_hdrc
leds_gpio              16384  0
led_class              16384  1 leds_gpio
gpio_keys              20480  0
flexcan                24576  0
usbcore               245760  4 xhci_hcd,cdns3,ehci_hcd,ci_hdrc
fec                    61440  0
usbmisc_imx            24576  1 ci_hdrc_imx
usb_common             16384  4 usbcore,cdns3,ci_hdrc,udc_core
mousedev               20480  0
can_dev                24576  1 flexcan
extcon_ptn5150         16384  0
ads7846                20480  0
spidev                 20480  0
galcore               430080  23
ipv6                  376832  50
autofs4                36864  0

Firmware

/lib/firmware/brcm
/lib/firmware/brcm/brcmfmac4339-sdio.txt
/lib/firmware/brcm/brcmfmac4339-sdio.bin
/lib/firmware/LICENCE.broadcom_bcm43xx
/lib/firmware/imx
/lib/firmware/imx/sdma
/lib/firmware/imx/sdma/sdma-imx7d.bin
/lib/firmware/imx/sdma/sdma-imx6q.bin
/lib/firmware/vpu
/lib/firmware/vpu/vpu_fw_imx8_dec.bin
/lib/firmware/vpu/vpu_fw_imx8_enc.bin
/lib/firmware/bcm
/lib/firmware/bcm/bcm4339.hcd
/lib/firmware/LICENSE.QualcommAtheros_ath10k
/lib/firmware/ath10k

ath10k firmware is unused I think on symphony board.

kernel modules

/lib/modules/4.14.98-imx8qm+g3405fb6/kernel/drivers/net/wireless/broadcom/brcm80211/brcmfmac/brcmfmac.ko
/lib/modules/4.14.98-imx8qm+g3405fb6/kernel/drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil.ko
/lib/modules/4.14.98-imx8qm+g3405fb6/kernel/net/wireless/cfg80211.ko/lib/modules/4.14.98-imx8qm+g3405fb6/kernel/net/wireless/cfg80211.ko

Thanks for capturing this – so brcm is Broadcom …

EGL performance is looking good.

1 Like

The Yoe distribution now supports three of the Variscite i.MX8 SOMs:

  • VAR-SOM-MX8
  • VAR-SOM-MX8X
  • VAR-SOM-MX8M-NANO (will be merged shortly)

Below is the nano running qtwebengine with Weston keyboard:

awesome work with Nano @cbrake !!

We can start weston with kiosk-shell. Follow these steps.

On a booted system

sed -e 's|^[#]shell=.*$|shell=kiosk-shell.so|g' /etc/xdg/weston/weston.ini
systemctl daemon-reload
systemctl restart weston

Now you can launch any app from ssh shell.

If you want to start an application and it will be in fullscreen mode.

1 Like