qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v5 01/11] hw: arm: Add bananapi M2-Ultra and allwinner-r40 su


From: Guenter Roeck
Subject: Re: [PATCH v5 01/11] hw: arm: Add bananapi M2-Ultra and allwinner-r40 support
Date: Fri, 23 Jun 2023 12:33:42 -0700
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.11.0

On 6/23/23 10:44, Peter Maydell wrote:
On Sat, 17 Jun 2023 at 17:29, Guenter Roeck <linux@roeck-us.net> wrote:

Hi,

On Tue, May 23, 2023 at 06:04:58PM +0800, qianfanguijin@163.com wrote:
From: qianfan Zhao <qianfanguijin@163.com>

Allwinner R40 (sun8i) SoC features a Quad-Core Cortex-A7 ARM CPU,
and a Mali400 MP2 GPU from ARM. It's also known as the Allwinner T3
for In-Car Entertainment usage, A40i and A40pro are variants that
differ in applicable temperatures range (industrial and military).

Signed-off-by: qianfan Zhao <qianfanguijin@163.com>
Reviewed-by: Niek Linnenbank <nieklinnenbank@gmail.com>

I tried this in mainline linux with the following command.

qemu-system-arm -M bpim2u \
         -kernel arch/arm/boot/zImage -no-reboot \
         -snapshot -drive file=rootfs-armv7a.ext2,format=raw,if=sd \
         -nic user \
         --append "root=/dev/mmcblk0 rootwait console=ttyS0,115200" \
         -dtb arch/arm/boot/dts/sun8i-r40-bananapi-m2-ultra.dtb \
         -nographic -monitor null -serial stdio

Main problem is that the SD card gets instantiated randomly to
mmc0, mmc1, or mmc2, making it all but impossible to specify a
root file system device. The non-instantiated cards are always
reported as non-removable, including mmc0. Example:

mmc0: Failed to initialize a non-removable card

Do you mean that QEMU randomly connects the SD card to
a different MMC controller each time, or that Linux is
randomly assigning mmc0 to a different MMC controller each
time ?


Good question. Given the workaround (fix ?) I suggested is
in the devicetree file, I would assume it is the latter. I suspect
that Linux assigns drive names based on hardware detection order,
and that this is not deterministic for some reason. It is odd
because I have never experienced that with any other emulation.

A secondary problem may be that Linux thinks that the first
drive is not removable, even though it is a SD drive. I  think
that is a problem with qemu, but I don't understand the qemu
code well enough to understand why. It seems that the mmc
capability register always has bit 8 set, even for the first
drive, but I don't know where/how that is set and how to
change it. SDHCI has the capareg property, but that isn't
used here (or I don't know how to use/set it).

Guenter




reply via email to

[Prev in Thread] Current Thread [Next in Thread]