{{WarningMessage|text=This technical note was validated against specific versions of hardware and software. It What is described here may not work with other versions.}}
|1.0.0|ARM frequency[MHz]|792||-||Frequency[MHz]|1600||-||Bus witdth[bit]|32January 2020|First public release
|}
==Introduction==
Mito8M is the first DAVE Embedded Systems' product based on a core implementing the [https://en.wikipedia.org/wiki/ARM_architecture#64/32-bit_architecture ARMv8-A] architecture.
Specifically, it is built upon the [https://www.nxp.com/products/processors-and-microcontrollers/arm-processors/i.mx-applications-processors/i.mx-8-processors/i.mx-8m-family-armcortex-a53-cortex-m4-audio-voice-video:i.MX8M NXP i.MX8M] system-on-chip (SoC).
==Test programs=====STREAM===This Technical Note (TN) describes how to run [https://www.armbian.com Armbian Buster] distribution on this platform. For the sake of completeness, it is worth remembering that Armbian Buster is based on Debian 10.
==Testbed==Building====To a good extent, '''Mito8M is electrically and mechanically compatible with [[:Category:AxelLite|Axel Lite]]'''. For this reason, the testbed used for this TN is pretty similar to the one described [[SBCX-TN-004:_Running_Armbian_Buster_(Debian_10)|here]]. Even though the SBCX carrier board is designed to host Axel Lite, in fact, '''it supports Mito8M as well'''. [[File:SBCX-Mito8M.jpg|thumb|center|600px|Mito8M SoM on SBCX carrier board]] Apart from the SoM, the most relevant difference with SBCX-TN-004 is related to the root file system. In this case, it was built for the <code>aarch64</code> architecture. The root file system was stored on a partition of the microSD card inserted in the slot J26. This partition is associated with the <code>/dev/mmcblk1p2</code> device file:
<pre class="board-terminal">
git clone httpsarmbian@Mito8M://github~$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTmmcblk0 179:0 0 7.3G 0 disk `-mmcblk0p1 179:1 0 7.3G 0 part mmcblk0boot0 179:32 0 4M 1 disk mmcblk0boot1 179:64 0 4M 1 disk mmcblk0rpmb 179:96 0 4M 0 disk mmcblk1 179:128 0 14.com/jeffhammond/STREAM6G 0 disk |-mmcblk1p1 179:129 0 42.git9M 0 part make`-mmcblk1p2 179:130 0 14.4G 0 part /
</pre>
==Bootstrap process==This section shows the complete bootstrap log retrieved from the serial console. To expand the box, please click on the ''Expand'' link on the top right corner.<syntaxhighlight langpre class="makefileboard-terminal mw-collapsible mw-collapsed" line='line'>armbian@Mito8MU-Boot SPL 2018.03-08018-g59e59e6f85-dirty (Nov 29 2019 - 12:42:~/devel/STREAM$ cat Makefile 16 +0100)CC PMIC: PFUZE100 ID= gcc0x10DDRINFO: start lpddr4 ddr initCFLAGS = DRAM PHY training for 3200MTScheck ddr4_pmu_train_imem codecheck ddr4_pmu_train_imem code passcheck ddr4_pmu_train_dmem codecheck ddr4_pmu_train_dmem code passTraining PASSDRAM PHY training for 667MTScheck ddr4_pmu_train_imem codecheck ddr4_pmu_train_imem code passcheck ddr4_pmu_train_dmem codecheck ddr4_pmu_train_dmem code passTraining PASSDRAM PHY training for 3200MTScheck ddr4_pmu_train_imem codecheck ddr4_pmu_train_imem code passcheck ddr4_pmu_train_dmem codecheck ddr4_pmu_train_dmem code passTraining PASSDDRINFO:ddrphy calibration doneDDRINFO: ddrmix config doneNormal BootTrying to boot from MMC1 U-Boot 2018.03-08018-g59e59e6f85-O2 dirty (Nov 29 2019 -fopenmp12:42:16 +0100)
FC CPU: Freescale i.MX8MQ rev2.0 1300 MHz (running at 800 MHz)CPU: Industrial temperature grade (-40C to 105C)CPU Temperature test bypass!!!!CPU Temperature = (23000C), alert = gfortran-4(85000C), critical = (95000C) at 23CReset cause: PORModel: DAVE iMX8MQ MitoDRAM: 3 GiBMMC: FSL_SDHC: 0, FSL_SDHC: 1Loading Environment from MMC...9OKNo panel detected: default to HDMIDisplay: HDMI (1280x720)In: serialOut: serialFFLAGS = -O2 -fopenmpErr: serial
all BuildInfo: stream_c - ATF bac189b - U-Boot 2018.exe03-08018-g59e59e6f85-dirty
stream_fswitch to partitions #0, OKmmc0(part 0) is current deviceflash target is MMC:0Net: eth0: ethernet@30be0000Fastboot: NormalNormal Bootu-boot=> edit mmcrootedit: /dev/mmcblk1p2 rootwait rwu-boot=> run net_mmcswitch to partitions #0, OKmmc1 is current deviceUsing ethernet@30be0000 deviceTFTP from server 192.exe168.0.23; our IP address is 192.168.0.81Filename 'mito/Image.msil'.Load address: 0x40480000Loading: stream#################################################################..f mysecond.o $ ################################################# 1.7 MiB/sdoneBytes transferred = 23542272 (CC) $(CFLAGS1673a00 hex) Using ethernet@30be0000 deviceTFTP from server 192.168.0.23; our IP address is 192.168.0.81Filename 'mito/imx8mq-c mysecondmito.dtb'.c $(FC) $(FFLAGS) -c streamLoad address: 0x43000000Loading: ####### 619.f1 KiB/sdone $Bytes transferred = 34885 (FC8845 hex) $(FFLAGS) stream.o mysecond.o -o stream_f.exe## Flattened Device Tree blob at 43000000 Booting using the fdt blob at 0x43000000 Using Device Tree in place at 0000000043000000, end 000000004300b844
# an example of a more complex build line for the Intel icc compilerstream.icc: stream.c icc -O3 -xCORE-AVX2 -ffreestanding -qopenmp -DSTREAM_ARRAY_SIZE=80000000 -DNTIMES=20 stream.c -o stream.omp.AVX2.80M.20x.icc<Welcome to Debian GNU/syntaxhighlight>Linux 10 (buster)!
====Running====[ 4.515276] systemd[1]: Set hostname to <pre class="board-terminal"Mito8M>.armbian@Mito8M[ 4.798924] systemd[1]:~File /lib/systemd/develsystem/STREAM$ systemd-journald.service:12 configures an IP firewall (IPAddressDeny=any), but the local system does not support BPF/stream_ccgroup based firewalling.exe -------------------------------------------------------------[ 4.816132] systemd[1]: Proceeding WITHOUT firewalling in effect! (This warning is only shown for the first loaded unit using IP firewalling.)[ 5.184210] random: systemd: uninitialized urandom read (16 bytes read)STREAM version $Revision[ 5.198783] random: systemd: uninitialized urandom read (16 bytes read)[ 5.10 $205577] systemd[1]: Reached target Remote File Systems.-------------------------------------------------------------[ OK ] Reached target Remote File Systems.This system uses 8 [ 5.228045] random: systemd: uninitialized urandom read (16 bytes per array elementread)[ 5.235082] systemd[1]: Listening on Syslog Socket.[ OK ] Listening on Syslog Socket.[ 5.252714] systemd[1]: Listening on initctl Compatibility Named Pipe.[ OK ] Listening on initctl Compatibility Named Pipe.[ 5.276050] systemd[1]: Reached target System Time Synchronized.[ OK ] Reached target System Time Synchronized.[ 5.300434] systemd[1]: Reached target Swap.[ OK ] Reached target Swap.[ OK ] Created slice system-------------------------------------------------------------serial\x2dgetty.slice.[ OK ] Started Forward Password Rcuests to Wall Directory Watch.[ OK ] Listening on Journal Audit Socket.[ OK ] Started Dispatch Password cts to Console Directory Watch.[ OK ] Reached target Local Encrypted Volumes.[ OK ] Listening on Journal Socket. Mounting Kernel Debug File System... Starting Load Kernel Modules... Starting Restore / save the current clock... Starting Set the console keyboard layout... Mounting Huge Pages File System...[ OK ] Reached target Paths.[ OK ] Listening on fsck to fsckd communication Socket.Array size = 10000000 [ OK ] Listening on Journal Socket (elements), Offset = 0 (elements/dev/log). Starting Journal Service...[ OK ] Listening on udev Kernel Socket. Mounting POSIX Message Queue File System...[ OK ] Created slice system-getty.slice.[ OK ] Created slice User and Session Slice.[ OK ] Reached target Slices. Starting Remount Root and Kernel File Systems...Memory per array = 76 Starting Nameserver information manager..3 MiB (= 0.1 GiB)[ OK ] Listening on udev Control Socket.Total memory required = 228 Starting udev Coldplug all Devices...9 MiB (= 0[ OK ] Mounted Kernel Debug File System.2 GiB)[ OK ] Started Journal Service.Each kernel will be executed 10 times[ OK ] Started Load Kernel Modules.[ OK The *best* time for each kernel (excluding ] Started Restore / save the first iteration)current clock.[ OK ] Mounted Huge Pages File System.[ OK ] Mounted POSIX Message Queue File System.[ OK will be used to compute ] Started Set the reported bandwidthconsole keyboard layout. Starting Apply Kernel Variables...------------------------------------------------------------- Mounting Kernel Configuration File System...[ OK ] Mounted Kernel Configuration File System.[ OK ] Started Nameserver information manager.Number of Threads requested = 4[ OK ] Started Apply Kernel Variables.Number of Threads counted = 4[FAILED] Failed to start Remount Root and Kernel File Systems.See 'systemctl status systemd-remount------------------------------------------------------------fs.service' for details. Starting Create System Users... Starting Flush Journal to Persistent Storage...Your clock granularity Starting Load/precision appears Save Random Seed...[ 6.095290] systemd-journald[2035]: Received request to be flush runtime journal from PID 1 microseconds[ OK ] Started udev Coldplug all Devices. Starting Helper to synchronize boot up for ifupdown...[ OK ] Started Create System Users.[ OK ] Started Flush Journal to Persistent Storage.[ OK ] Started Load/Save Random Seed. Starting Create Static Device Nodes in /dev...Each test below will take on the order of 46427 microseconds[ OK ] Started Create Static Device Nodes in /dev. Starting udev Kernel Device Manager...[ OK ] Reached target Local File Systems (= 46427 clock ticksPre). Mounting /tmp...[ OK ] Mounted /tmp.[ OK ] Reached target Local File Systems. Starting Set console font and keymap... Starting Create Volatile Files and Directories... Starting Armbian ZRAM config...[ OK ] Started Set console font and keymap.[ OK ] Started Create Volatile Files and Directories.Increase [ OK ] Started Entropy daemon using the size of the arrays if this shows thatHAVEGE algorithm. Starting Update UTMP about System Boot/Shutdown...[ OK ] Started udev Kernel Device Manager.[ OK ] Started Update UTMP about System Boot/Shutdown.[ OK ] Started Armbian ZRAM config.[ OK ] Found device /dev/ttymxc0.you are not getting at least 20 clock ticks per test Starting Armbian memory supported logging...[ 6.802574] imx-sdma 30bd0000.sdma: external firmware not found, using ROM firmware[ 6.804322] imx-sdma 302c0000.sdma: external firmware not found, using ROM firmware[ OK ] Found device /dev/ttyS0.[ OK ] Found device /sys/subsystem/net/devices/eth0.[ OK ] Started Helper to synchronize boot up for ifupdown. Starting Raise network interfaces...[ OK ] Started ifup for eth0.[ 7.868653] Micrel KSZ9031 Gigabit PHY 30be0000.ethernet-1:07: attached PHY driver [Micrel KSZ9031 Gigabit PHY] (mii_bus:phy_addr=30be0000.ethernet-1:07, irq=POLL)[ 7.883969] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready[ OK ] Started Raise network interfaces.[ OK ] Started Armbian memory supported logging.[ OK ] Reached target System Initialization. Starting Armbian hardware monitoring...[ 9.921638] fec 30be0000.ethernet eth0: Link is Up -100Mbps/Full --------------------------------------------------------flow control rx/txWARNING -- The above is only a rough guideline[ 9.929973] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes readyFor best results, please be sure you know the[ OK ] Started Daily rotation of log files.precision [ OK ] Started Daily Cleanup of your system timerTemporary Directories.[ OK ] Listening on D-Bus System Message Bus Socket.[ OK ] Reached target Sockets. Starting Armbian hardware optimization...[ OK ] Started Daily man-db regeneration.[ OK ] Started Daily apt download activities.[ OK ] Started Daily apt upgrade and clean activities.[ OK ] Reached target Timers.[ OK ] Started Armbian hardware monitoring.[ OK ] Started Armbian hardware optimization.[ OK ] Reached target Basic System. Starting System Logging Service...[ OK ] Started D-Bus System Message Bus. Starting LSB: Load kernel cd to enable cpufreq scaling... Starting WPA supplicant... Starting Resets System Activity Data Collector... Starting rng-tools.service... Starting Dispatcher daemon for systemd-networkd... Starting Login Service...[ OK ] Started Regular background program processing daemon.[ 13.697766] random: crng init done[ 13.701351] random: 7 urandom warning(s) missed due to ratelimiting[ 19.415996] nr_pdflush_threads exported in /proc is scheduled for removal[ OK ] Started System Logging Service.[ OK ] Started Resets System Activity Data Collector.[ OK ] Started rng--------------------------------------------------------tools.service.[ OK ] Started Login Service.[ OK ] Started WPA supplicant.[ OK ] Reached target Network.Function Best Rate MB Starting chrony, an NTP client/s server...[ OK Avg time Min time Max time] Reached target Network is Online.Copy Starting LSB: 6770Advanced IEEE 802.11 management daemon... Starting Permit User Sessions... Starting OpenBSD Secure Shell server... Starting /etc/rc.local Compatibility..5 0.024010 0[ OK ] Started Unattended Upgrades Shutdown.023632 0[ OK ] Started LSB: Load kernel mcded to enable cpufreq scaling.025117Scale[ OK ] Started LSB: 6093Advanced IEEE 802.11 management daemon.[ OK ] Started Permit User Sessions.[ OK ] Started /etc/rc.local Compatibility.[ OK ] Started Getty on tty1.2 0[ OK ] Started Serial Getty on ttymxc0.027474 0[ OK ] Started Serial Getty on ttyS0.026259 0[ OK ] Reached target Login Prompts.029142Add Starting LSB: 5263set CPUFreq kernel parameters..5 0.046008 0[ OK ] Started chrony, an NTP client/server.045597 0[ OK ] Started LSB: set CPUFreq kernel parameters.046230Triad Starting LSB: 4820Set sysfs variables from /etc/sysfs.conf...0 0[ OK ] Started LSB: Set sysfs variables from /etc/sysfs.050297 0conf.049793 0[ OK ] Started OpenBSD Secure Shell server.050723[ OK ] Started Dispatcher daemon for systemd-networkd.[ OK ] Reached target Multi-User System.[ OK ] Reached target Graphical Interface. Starting Update UTMP about System Runlevel Changes...[ OK ] Started Update UTMP about System Runlevel Changes. Armbian 19.11.6 Buster ttymxc0 Mito8M login: rootPassword:Last login: Tue Jan 14 16:57:06 CET 2020 on ttymxc0 __ __ _ _ ___ __ __ | \/ (_) |_ ___ ( _ )| \/ || |\/| | | __/ _ \ / _ \| |\/| || | | | | || (_) | (_) | | | ||_| |_|_|\__\___/ \___/|_| |_| Welcome to Armbian buster with Linux 4.14.98-----------------------------------------------------------g4c94e1dbaec2 Solution ValidatesSystem load: avg error less than 0.55 1.000000e02 0.50 Up time: 3 minMemory usage: 11 % of 2997MB IP: 192.168.0.81CPU temp: 39‹CUsage of /: 10% of 15G [ General system configuration (beta): armbian-13 on all three arraysconfig ] root@Mito8M:~# lscpuArchitecture: aarch64Byte Order: Little EndianCPU(s): 4On-line CPU(s) list: 0-3Thread(s) per core: 1Core(s) per socket: 4Socket(s): 1NUMA node(s): 1Vendor ID: ARMModel: 4Model name: Cortex-A53Stepping: r0p4CPU max MHz: 1300.0000CPU min MHz: 800.0000BogoMIPS: 16.66L1d cache: unknown sizeL1i cache: unknown sizeL2 cache: unknown sizeNUMA node0 CPU(s): 0----------------------------------------------------------3Flags: fp asimd evtstrm aes pmull sha1 sha2 crc32 cpuid