git clone --depth 1 --branch linux-6.12.y https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git linux-6.12
cd linux-6.12
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- multi_v7_defconfig
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j$(nproc) zImageqemu-system-arm -M virt -m 1024 -smp 2 -display sdl -kernel linux-6.12-out/zImage -append "root=/dev/vda1 rw rootwait loglevel=8 console=ttyAMA0 console=tty0" -drive if=none,file=A20-OLinuXino-bookworm-base-20260323-113959.img,format=raw,id=hd -device virtio-blk-device,drive=hd -netdev user,id=net0 -device virtio-net-device,netdev=net0 -device virtio-gpu-device -device virtio-tablet-device -device virtio-keyboard-device -monitor none -serial telnet:127.0.0.1:4444,server,nowait
QuoteQuoting from ...
Quotepossible for Open Printer to fit it in their design?
Quotedoes not run GNU/Linux.
QuoteAll three of the boards that you mentioned can run completely open source software.
sdmmc@58007000 {
....
mmc-ddr-3_3v; <--- Just this
};[ 0.213409] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 6144 bytes, linear)
[ 4.363104] mmci-pl18x 58007000.sdmmc: mmc2: PL180 manf 53 rev1 at 0x58007000 irq 57,0 (pio)
[ 4.424492] mmc1: new high speed SDXC card at address aaaa
[ 4.489070] mmc2: new DDR MMC card at address 0001 < ----------- HERE
[ 4.494029] mmcblk2: mmc2:0001 BJTD4R 29.1 GiB
[ 4.497895] mmcblk2boot0: mmc2:0001 BJTD4R partition 1 4.00 MiB
[ 4.503835] mmcblk2boot1: mmc2:0001 BJTD4R partition 2 4.00 MiB
[ 4.509571] mmcblk2rpmb: mmc2:0001 BJTD4R partition 3 4.00 MiB, chardev (245:0)
actual clock: 49500000 Hz
vdd: 21 (3.3 ~ 3.4 V)
bus mode: 2 (push-pull)
chip select: 0 (don't care)
power mode: 2 (on)
bus width: 3 (8 bits)
timing spec: 8 (mmc DDR52) <--------- NOTE HERE
signal voltage: 0 (3.30 V)
driver type: 0 (driver type B)
Compared with your earlier non-DDR / MMC high-speed raw results
Test Before: MMC high-speed SDR After: DDR52 Change
Less-severe sequential write ~27.1 MiB/s 36.6 MiB/s +35%
Less-severe sequential read ~27.5 MiB/s 34.4 MiB/s +25%
Less-severe random write ~1730 IOPS 1934 IOPS +12%
Less-severe random read ~2481 IOPS 2726 IOPS +10%
Severe sequential write ~12.8 MiB/s 13.3 MiB/s +4%
Severe sequential read ~27.4 MiB/s 35.0 MiB/s +28%
Severe random write ~1001 IOPS 1021 IOPS +2%
Severe random read ~2600 IOPS 2862 IOPS +10%
# FIO Severe test
#!/bin/sh
set -eu
# Raw block target.
# WARNING: write tests will overwrite data on this device/partition.
# Change this in one place if needed.
TARGET_DEV="/dev/mmcblk2p1"
# Output directory for logs.
LOG_DIR="/tmp"
# Common fio settings.
COMMON_OPTS="--ioengine=psync \
--iodepth=1 \
--numjobs=1 \
--runtime=30 \
--time_based \
--direct=1 \
--group_reporting \
--lat_percentiles=1 \
--percentile_list=50:90:95:99:99.9:99.99"
echo "Target device: $TARGET_DEV"
echo "Logs written to: $LOG_DIR"
echo
echo "WARNING: write tests will overwrite data on $TARGET_DEV"
echo "Make sure the target is unmounted before running write tests."
echo
sync
echo 3 | tee /proc/sys/vm/drop_caches >/dev/null
fio --name=seqwrite_raw_sync \
--filename="$TARGET_DEV" \
--rw=write \
--bs=1M \
--sync=1 \
$COMMON_OPTS \
--output="$LOG_DIR/seqwrite_raw_sync_test.txt"
sync
echo 3 | tee /proc/sys/vm/drop_caches >/dev/null
fio --name=seqread_raw_direct_severe \
--filename="$TARGET_DEV" \
--readonly=1 \
--rw=read \
--bs=1M \
$COMMON_OPTS \
--output="$LOG_DIR/seqread_raw_direct_severe_test.txt"
sync
echo 3 | tee /proc/sys/vm/drop_caches >/dev/null
fio --name=randwrite_raw_sync \
--filename="$TARGET_DEV" \
--rw=randwrite \
--bs=4k \
--sync=1 \
$COMMON_OPTS \
--output="$LOG_DIR/randwrite_raw_sync_test.txt"
sync
echo 3 | tee /proc/sys/vm/drop_caches >/dev/null
fio --name=randread_raw_direct_severe \
--filename="$TARGET_DEV" \
--readonly=1 \
--rw=randread \
--bs=4k \
$COMMON_OPTS \
--output="$LOG_DIR/randread_raw_direct_severe_test.txt"
echo
echo "Done. Logs:"
echo " $LOG_DIR/seqwrite_raw_sync_test.txt"
echo " $LOG_DIR/seqread_raw_direct_severe_test.txt"
echo " $LOG_DIR/randwrite_raw_sync_test.txt"
echo " $LOG_DIR/randread_raw_direct_severe_test.txt"
# FIO less Severe setting test
#!/bin/sh
set -eu
# Raw block target.
# WARNING: write tests will overwrite data on this device/partition.
# Change this in one place if needed.
TARGET_DEV="/dev/mmcblk2p1"
# Output directory for logs.
LOG_DIR="/tmp"
# Common fio settings.
COMMON_OPTS="--ioengine=psync \
--iodepth=1 \
--numjobs=1 \
--runtime=30 \
--time_based \
--direct=1 \
--group_reporting \
--lat_percentiles=1 \
--percentile_list=50:90:95:99:99.9:99.99"
echo "Target device: $TARGET_DEV"
echo "Logs written to: $LOG_DIR"
echo
echo "WARNING: write tests will overwrite data on $TARGET_DEV"
echo "Make sure the target is unmounted before running write tests."
echo
sync
echo 3 | tee /proc/sys/vm/drop_caches >/dev/null
fio --name=seqwrite_raw_direct \
--filename="$TARGET_DEV" \
--rw=write \
--bs=1M \
--end_fsync=1 \
$COMMON_OPTS \
--output="$LOG_DIR/seqwrite_raw_direct_test.txt"
sync
echo 3 | tee /proc/sys/vm/drop_caches >/dev/null
fio --name=seqread_raw_direct_less_severe \
--filename="$TARGET_DEV" \
--readonly=1 \
--rw=read \
--bs=1M \
$COMMON_OPTS \
--output="$LOG_DIR/seqread_raw_direct_less_severe_test.txt"
sync
echo 3 | tee /proc/sys/vm/drop_caches >/dev/null
fio --name=randwrite_raw_direct \
--filename="$TARGET_DEV" \
--rw=randwrite \
--bs=4k \
--end_fsync=1 \
$COMMON_OPTS \
--output="$LOG_DIR/randwrite_raw_direct_test.txt"
sync
echo 3 | tee /proc/sys/vm/drop_caches >/dev/null
fio --name=randread_raw_direct_less_severe \
--filename="$TARGET_DEV" \
--readonly=1 \
--rw=randread \
--bs=4k \
$COMMON_OPTS \
--output="$LOG_DIR/randread_raw_direct_less_severe_test.txt"
echo
echo "Done. Logs:"
echo " $LOG_DIR/seqwrite_raw_direct_test.txt"
echo " $LOG_DIR/seqread_raw_direct_less_severe_test.txt"
echo " $LOG_DIR/randwrite_raw_direct_test.txt"
echo " $LOG_DIR/randread_raw_direct_less_severe_test.txt"