Hi, It's great that you are adding support for a new SoC/Board!
On Tue, Mar 21, 2023 at 11:25 AM <qianfangui...@163.com> wrote: > > From: qianfan Zhao <qianfangui...@163.com> > > *** history *** > > # v1: 2023-03-21 > > The first version which add allwinner-r40 support, supported features: > > + ccu > + dram controller > + uart > + i2c and pmic(axp221) > + sdcard > + emac/gmac > > Also provide a test case under avocado, running quickly test: > > $ AVOCADO_ALLOW_LARGE_STORAGE=yes tests/venv/bin/avocado \ > --verbose --show=app,console run -t machine:bpim2u \ > ../tests/avocado/boot_linux_console.py I tried running this on the latest QEMU source and compilation fails with [1758/2912] Compiling C object libqemu-arm-softmmu.fa.p/hw_arm_bananapi_m2u.c.o FAILED: libqemu-arm-softmmu.fa.p/hw_arm_bananapi_m2u.c.o cc -m64 -mcx16 -Ilibqemu-arm-softmmu.fa.p -I. -I../.. -Itarget/arm -I../../target/arm -Iqapi -Itrace -Iui -Iui/shader -I/usr/include/pixman-1 -I/usr/include/capstone -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -fdiagnostics-color=auto -Wall -Winvalid-pch -Werror -std=gnu11 -O2 -g -isystem /home/strahinja/work/qemu/linux-headers -isystem linux-headers -iquote . -iquote /home/strahinja/work/qemu -iquote /home/strahinja/work/qemu/include -iquote /home/strahinja/work/qemu/tcg/i386 -pthread -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fno-strict-aliasing -fno-common -fwrapv -Wundef -Wwrite-strings -Wmissing-prototypes -Wstrict-prototypes -Wredundant-decls -Wold-style-declaration -Wold-style-definition -Wtype-limits -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wempty-body -Wnested-externs -Wendif-labels -Wexpansion-to-defined -Wimplicit-fallthrough=2 -Wmissing-format-attribute -Wno-missing-include-dirs -Wno-shift-negative-value -Wno-psabi -fstack-protector-strong -fPIE -isystem../../linux-headers -isystemlinux-headers -DNEED_CPU_H '-DCONFIG_TARGET="arm-softmmu-config-target.h"' '-DCONFIG_DEVICES="arm-softmmu-config-devices.h"' -MD -MQ libqemu-arm-softmmu.fa.p/hw_arm_bananapi_m2u.c.o -MF libqemu-arm-softmmu.fa.p/hw_arm_bananapi_m2u.c.o.d -o libqemu-arm-softmmu.fa.p/hw_arm_bananapi_m2u.c.o -c ../../hw/arm/bananapi_m2u.c ../../hw/arm/bananapi_m2u.c: In function ‘mmc_attach_drive’: ../../hw/arm/bananapi_m2u.c:41:9: error: implicit declaration of function ‘error_report’; did you mean ‘error_report_err’? [-Werror=implicit-function-declaration] 41 | error_report("No SD bus found in SOC object"); | ^~~~~~~~~~~~ | error_report_err ../../hw/arm/bananapi_m2u.c:41:9: error: nested extern declaration of ‘error_report’ [-Werror=nested-externs] cc1: all warnings being treated as errors After adding #include "qemu/error-report.h" to hw/arm/bananapi_m2u.c, it passed and I was able to run avocado tests for this board, as well as for cubieboard and orangepi-pc. * Bananapi AVOCADO_ALLOW_LARGE_STORAGE=yes avocado --verbose --show=app,console run -t machine:bpim2u tests/avocado/boot_linux_console.py Fetching asset from tests/avocado/boot_linux_console.py:BootLinuxConsole.test_arm_bpim2u Fetching asset from tests/avocado/boot_linux_console.py:BootLinuxConsole.test_arm_bpim2u_initrd Fetching asset from tests/avocado/boot_linux_console.py:BootLinuxConsole.test_arm_bpim2u_initrd Fetching asset from tests/avocado/boot_linux_console.py:BootLinuxConsole.test_arm_bpim2u_gmac Fetching asset from tests/avocado/boot_linux_console.py:BootLinuxConsole.test_arm_bpim2u_gmac Fetching asset from tests/avocado/boot_linux_console.py:BootLinuxConsole.test_arm_bpim2u_openwrt_22_03_3 JOB ID : ed47ffc59b1f9ceb8b68a87405040d3af2fb9156 JOB LOG : /home/strahinja/avocado/job-results/job-2023-03-25T15.24-ed47ffc/job.log ... RESULTS : PASS 4 | ERROR 0 | FAIL 0 | SKIP 0 | WARN 0 | INTERRUPT 0 | CANCEL 0 JOB TIME : 70.79 s * Cubieboard AVOCADO_ALLOW_LARGE_STORAGE=yes avocado --verbose --show=app,console run -t machine:cubieboard tests/avocado/boot_linux_console.py Fetching asset from tests/avocado/boot_linux_console.py:BootLinuxConsole.test_arm_cubieboard_initrd Fetching asset from tests/avocado/boot_linux_console.py:BootLinuxConsole.test_arm_cubieboard_initrd Fetching asset from tests/avocado/boot_linux_console.py:BootLinuxConsole.test_arm_cubieboard_sata Fetching asset from tests/avocado/boot_linux_console.py:BootLinuxConsole.test_arm_cubieboard_sata Fetching asset from tests/avocado/boot_linux_console.py:BootLinuxConsole.test_arm_cubieboard_openwrt_22_03_2 JOB ID : 1510a9b5f36b74dc1378d50dbb40553e6fb76316 JOB LOG : /home/strahinja/avocado/job-results/job-2023-03-25T15.27-1510a9b/job.log ... RESULTS : PASS 3 | ERROR 0 | FAIL 0 | SKIP 0 | WARN 0 | INTERRUPT 0 | CANCEL 0 JOB TIME : 42.69 s * OrangePi PC AVOCADO_ALLOW_LARGE_STORAGE=yes avocado --verbose --show=app,console run -t machine:orangepi-pc tests/avocado/boot_linux_console.py Fetching asset from tests/avocado/boot_linux_console.py:BootLinuxConsole.test_arm_orangepi Fetching asset from tests/avocado/boot_linux_console.py:BootLinuxConsole.test_arm_orangepi_initrd Fetching asset from tests/avocado/boot_linux_console.py:BootLinuxConsole.test_arm_orangepi_initrd Fetching asset from tests/avocado/boot_linux_console.py:BootLinuxConsole.test_arm_orangepi_sd Fetching asset from tests/avocado/boot_linux_console.py:BootLinuxConsole.test_arm_orangepi_sd Fetching asset from tests/avocado/boot_linux_console.py:BootLinuxConsole.test_arm_orangepi_bionic_20_08 Fetching asset from tests/avocado/boot_linux_console.py:BootLinuxConsole.test_arm_orangepi_uboot_netbsd9 Fetching asset from tests/avocado/boot_linux_console.py:BootLinuxConsole.test_arm_orangepi_uboot_netbsd9 JOB ID : 6655d0df3c2eecf2181d7fa2d7cd8aee9e4b504c JOB LOG : /home/strahinja/avocado/job-results/job-2023-03-25T15.31-6655d0d/job.log ... RESULTS : PASS 5 | ERROR 0 | FAIL 0 | SKIP 0 | WARN 0 | INTERRUPT 0 | CANCEL 0 JOB TIME : 248.93 s So I can add Tested-by: Strahinja Jankovic <strahinja.p.janko...@gmail.com> I will go through the individual commits during the weekend. Best regards, Strahinja > > qianfan Zhao (11): > hw: arm: Add bananapi M2-Ultra and allwinner-r40 support > hw/arm/allwinner-r40: add Clock Control Unit > hw: allwinner-r40: Complete uart devices > hw: arm: allwinner-r40: Add 5 TWI controllers > hw/misc: AXP221 PMU Emulation > hw/arm/allwinner-r40: add SDRAM controller device > hw: sd: allwinner-sdhost: Add sun50i-a64 SoC support > hw: arm: allwinner-r40: Fix the mmc controller's type > hw: arm: allwinner-r40: Add emac and gmac support > tests: avocado: boot_linux_console: Add test case for bpim2u > docs: system: arm: Introduce bananapi_m2u > > configs/devices/arm-softmmu/default.mak | 1 + > docs/system/arm/bananapi_m2u.rst | 138 ++++++ > hw/arm/Kconfig | 10 + > hw/arm/allwinner-r40.c | 558 ++++++++++++++++++++++++ > hw/arm/bananapi_m2u.c | 131 ++++++ > hw/arm/meson.build | 1 + > hw/misc/Kconfig | 4 + > hw/misc/allwinner-r40-ccu.c | 207 +++++++++ > hw/misc/allwinner-r40-dramc.c | 499 +++++++++++++++++++++ > hw/misc/axp221.c | 196 +++++++++ > hw/misc/meson.build | 3 + > hw/misc/trace-events | 19 + > hw/sd/allwinner-sdhost.c | 70 ++- > include/hw/arm/allwinner-r40.h | 148 +++++++ > include/hw/misc/allwinner-r40-ccu.h | 65 +++ > include/hw/misc/allwinner-r40-dramc.h | 108 +++++ > include/hw/sd/allwinner-sdhost.h | 9 + > tests/avocado/boot_linux_console.py | 173 ++++++++ > 18 files changed, 2337 insertions(+), 3 deletions(-) > create mode 100644 docs/system/arm/bananapi_m2u.rst > create mode 100644 hw/arm/allwinner-r40.c > create mode 100644 hw/arm/bananapi_m2u.c > create mode 100644 hw/misc/allwinner-r40-ccu.c > create mode 100644 hw/misc/allwinner-r40-dramc.c > create mode 100644 hw/misc/axp221.c > create mode 100644 include/hw/arm/allwinner-r40.h > create mode 100644 include/hw/misc/allwinner-r40-ccu.h > create mode 100644 include/hw/misc/allwinner-r40-dramc.h > > -- > 2.25.1 >