{{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.}}
[[Category:MISC-AN-TN]]
[[Category:MISC-TN]]
__FORCETOC__
== History ==
{| class="wikitable" border="1"
!Version
!Date
!Notes
|-
|1.0.0
|January 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).
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.
==ResultsTestbed==This section details To a good extent, '''Mito8M is electrically and mechanically compatible with [[:Category:AxelLite|Axel Lite]]'''. For this reason, the results that were achieved by testbed used for this TN is pretty similar to the different benchmarksone 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'''.
===General configuration===
This section illustrates the cofiguration settings common to all the tests performed.
====SDRAM bank organization===={| class="wikitable"|+!!![[File:SBCX-Mito8M!.jpg|-||ARM frequency[MHz]thumb|792center|600px|-||Frequency[MHzMito8M SoM on SBCX carrier board]|1600||-||Bus witdth[bit]|32||}====Software configuration====
* Linux kernel: 4Apart from the SoM, the most relevant difference with SBCX-TN-004 is related to the root file system.14In this case, it was built for the <code>aarch64</code> architecture.98* Architecture: aarch64
GCCThe 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:
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.
====Building====<pre class="board-terminal">git clone https:Welcome to Debian GNU//github.com/jeffhammond/STREAM.gitmake</pre>Linux 10 (buster)!
[ 4.515276] systemd[1]: Set hostname to <syntaxhighlight lang="makefile" lineMito8M>.[ 4.798924] systemd[1]: File /lib/systemd/system/systemd-journald.service:12 configures an IP firewall (IPAddressDeny=any), but the local system does not support BPF/cgroup based firewalling.[ 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)[ 5.198783] random: systemd: uninitialized urandom read (16 bytes read)[ 5.205577] systemd[1]: Reached target Remote File Systems.[ OK ] Reached target Remote File Systems.[ 5.228045] random: systemd: uninitialized urandom read (16 bytes read)[ 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.[ OK ] Listening on Journal Socket (/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... Starting Nameserver information manager...[ OK ] Listening on udev Control Socket. Starting udev Coldplug all Devices...[ OK ] Mounted Kernel Debug File System.[ OK ] Started Journal Service.[ OK ] Started Load Kernel Modules.[ OK ] Started Restore / save the current clock.[ OK ] Mounted Huge Pages File System.[ OK ] Mounted POSIX Message Queue File System.[ OK ] Started Set the console keyboard layout. Starting Apply Kernel Variables... Mounting Kernel Configuration File System...[ OK ] Mounted Kernel Configuration File System.[ OK ] Started Nameserver information manager.[ OK ] Started Apply Kernel Variables.[FAILED] Failed to start Remount Root and Kernel File Systems.See 'linesystemctl status systemd-remount-fs.service'>for details. Starting Create System Users... Starting Flush Journal to Persistent Storage... Starting Load/Save Random Seed...[ 6.095290] systemd-journald[2035]: Received request to flush runtime journal from PID 1[ 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...[ OK ] Started Create Static Device Nodes in /dev. Starting udev Kernel Device Manager...[ OK ] Reached target Local File Systems (Pre). 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.[ OK ] Started Entropy daemon using the HAVEGE 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. Starting Armbian memory supported logging...[ 6.802574] imx-sdma 30bd0000.sdma: external firmware not found, using ROM firmwarearmbian@Mito8M[ 6.804322] imx-sdma 302c0000.sdma:~external firmware not found, using ROM firmware[ OK ] Found device /dev/ttyS0.[ OK ] Found device /sys/subsystem/net/develdevices/STREAM$ cat Makefile eth0.[ OK ] Started Helper to synchronize boot up for ifupdown. Starting Raise network interfaces...CC [ 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= gccPOLL)[ 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/tx[ 9.929973] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready[ OK ] Started Daily rotation of log files.[ OK ] Started Daily Cleanup of Temporary 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. Starting chrony, an NTP client/server...[ OK ] Reached target Network is Online. Starting LSB: Advanced IEEE 802.11 management daemon... Starting Permit User Sessions... Starting OpenBSD Secure Shell server... Starting /etc/rc.local Compatibility...[ OK ] Started Unattended Upgrades Shutdown.[ OK ] Started LSB: Load kernel mcded to enable cpufreq scaling.[ OK ] Started LSB: Advanced IEEE 802.11 management daemon.[ OK ] Started Permit User Sessions.[ OK ] Started /etc/rc.local Compatibility.[ OK ] Started Getty on tty1.[ OK ] Started Serial Getty on ttymxc0.[ OK ] Started Serial Getty on ttyS0.[ OK ] Reached target Login Prompts. Starting LSB: set CPUFreq kernel parameters...[ OK ] Started chrony, an NTP client/server.CFLAGS = [ OK ] Started LSB: set CPUFreq kernel parameters. Starting LSB: Set sysfs variables from /etc/sysfs.conf...[ OK ] Started LSB: Set sysfs variables from /etc/sysfs.conf.[ OK ] Started OpenBSD Secure Shell server.[ OK ] Started Dispatcher daemon for systemd-O2 networkd.[ OK ] Reached target Multi-fopenmpUser System.[ OK ] Reached target Graphical Interface. Starting Update UTMP about System Runlevel Changes...[ OK ] Started Update UTMP about System Runlevel Changes.
FC = gfortran-4Armbian 19.9FFLAGS = -O2 -fopenmp11.6 Buster ttymxc0
====Running====<pre class="board-terminal">armbianroot@Mito8M:~/devel/STREAM$ ./stream_c.exe # lscpu-------------------------------------------------------------Architecture: aarch64STREAM version $RevisionByte Order: 5.10 $ Little Endian-------------------------------------------------------------CPU(s): 4This system uses 8 bytes per array element.---------------On----------------------------------------------Array size = 10000000 line CPU(elementss), Offset = list: 0 -3Thread(elementss)Memory per array = 76.3 MiB (= 0.core: 1 GiB).Total memory required = 228.9 MiB Core(= 0.2 GiBs).per socket: 4Each kernel will be executed 10 times. The *best* time for each kernel Socket(excluding the first iterations) will be used to compute the reported bandwidth.-------------------------------------------------------------Number of Threads requested = 4Number of Threads counted = 4-------------------------------------------------------------Your clock granularity/precision appears to be : 1 microseconds.Each test below will take on the order of 46427 microseconds.NUMA node(= 46427 clock tickss): 1Increase the size of the arrays if this shows thatVendor ID: ARMyou are not getting at least 20 clock ticks per test.Model: 4Model name: Cortex-------------------------------------------------------------A53Stepping: r0p4WARNING -- The above is only a rough guidelineCPU max MHz: 1300.0000For best results, please be sure you know theprecision of your system timerCPU min MHz: 800.0000-------------------------------------------------------------Function Best Rate MB/s Avg time Min time Max timeCopyBogoMIPS: 677016.5 0.024010 0.023632 0.02511766L1d cache: unknown sizeScaleL1i cache: 6093.2 0.027474 0.026259 0.029142unknown sizeAddL2 cache: 5263.5 0.046008 0.045597 0.046230 unknown sizeTriadNUMA node0 CPU(s): 4820.0 0.050297 0.049793 0.050723-------------------------------------------------------------3Solution ValidatesFlags: avg error less than 1.000000e-13 on all three arrays------------------------------------------------------------- fp asimd evtstrm aes pmull sha1 sha2 crc32 cpuid