* [PULL 0/2] SD/MMC patches for 2025-08-12
@ 2025-08-12 16:56 Philippe Mathieu-Daudé
2025-08-12 16:56 ` [PULL 1/2] hw/sd/ssi-sd: Return noise (dummy byte) when no card connected Philippe Mathieu-Daudé
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Philippe Mathieu-Daudé @ 2025-08-12 16:56 UTC (permalink / raw)
To: qemu-devel; +Cc: Philippe Mathieu-Daudé
The following changes since commit 624d7463043c120facfab2b54985fcfb679d5379:
Merge tag 'pull-nvme-20250811' of https://gitlab.com/birkelund/qemu into staging (2025-08-11 12:57:55 -0400)
are available in the Git repository at:
https://github.com/philmd/qemu.git tags/sdmmc-20250812
for you to fetch changes up to 7db162fa013878b06a528686ece79ad99f699c71:
tests/functional: Test SPI-SD adapter without SD card connected (2025-08-12 18:52:12 +0200)
----------------------------------------------------------------
SD/MMC patches queue
- Return noise (dummy byte) when no SD card connected over SPI
----------------------------------------------------------------
Philippe Mathieu-Daudé (2):
hw/sd/ssi-sd: Return noise (dummy byte) when no card connected
tests/functional: Test SPI-SD adapter without SD card connected
hw/sd/ssi-sd.c | 4 ++++
tests/functional/test_riscv64_sifive_u.py | 22 +++++++++++++++++-----
2 files changed, 21 insertions(+), 5 deletions(-)
--
2.49.0
^ permalink raw reply [flat|nested] 6+ messages in thread* [PULL 1/2] hw/sd/ssi-sd: Return noise (dummy byte) when no card connected 2025-08-12 16:56 [PULL 0/2] SD/MMC patches for 2025-08-12 Philippe Mathieu-Daudé @ 2025-08-12 16:56 ` Philippe Mathieu-Daudé 2025-08-13 6:16 ` Michael Tokarev 2025-08-12 17:02 ` [PULL 2/2] tests/functional: Test SPI-SD adapter without SD " Philippe Mathieu-Daudé 2025-08-12 23:36 ` [PULL 0/2] SD/MMC patches for 2025-08-12 Stefan Hajnoczi 2 siblings, 1 reply; 6+ messages in thread From: Philippe Mathieu-Daudé @ 2025-08-12 16:56 UTC (permalink / raw) To: qemu-devel Cc: Philippe Mathieu-Daudé, Guenter Roeck, Alex Bennée, Gustavo Romero, Bin Meng, qemu-block Commit 1585ab9f1ba ("hw/sd/sdcard: Fill SPI response bits in card code") exposed a bug in the SPI adapter: if no SD card is plugged, we are returning "there is a card with an error". This is wrong, we shouldn't return any particular packet response, but the noise shifted on the MISO line. Return the dummy byte, otherwise we get: qemu-system-riscv64: ../hw/sd/ssi-sd.c:160: ssi_sd_transfer: Assertion `s->arglen > 0' failed. Reported-by: Guenter Roeck <linux@roeck-us.net> Fixes: 775616c3ae8 ("Partial SD card SPI mode support") Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Guenter Roeck <linux@roeck-us.net> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Gustavo Romero <gustavo.romero@linaro.org> Tested-by: Alex Bennée <alex.bennee@linaro.org> Message-Id: <20250812140415.70153-2-philmd@linaro.org> --- hw/sd/ssi-sd.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/hw/sd/ssi-sd.c b/hw/sd/ssi-sd.c index 594dead19ee..3aacbd03871 100644 --- a/hw/sd/ssi-sd.c +++ b/hw/sd/ssi-sd.c @@ -89,6 +89,10 @@ static uint32_t ssi_sd_transfer(SSIPeripheral *dev, uint32_t val) SDRequest request; uint8_t longresp[5]; + if (!sdbus_get_inserted(&s->sdbus)) { + return SSI_DUMMY; + } + /* * Special case: allow CMD12 (STOP TRANSMISSION) while reading data. * -- 2.49.0 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PULL 1/2] hw/sd/ssi-sd: Return noise (dummy byte) when no card connected 2025-08-12 16:56 ` [PULL 1/2] hw/sd/ssi-sd: Return noise (dummy byte) when no card connected Philippe Mathieu-Daudé @ 2025-08-13 6:16 ` Michael Tokarev 2025-08-13 7:22 ` Philippe Mathieu-Daudé 0 siblings, 1 reply; 6+ messages in thread From: Michael Tokarev @ 2025-08-13 6:16 UTC (permalink / raw) To: Philippe Mathieu-Daudé, qemu-devel Cc: Guenter Roeck, Alex Bennée, Gustavo Romero, Bin Meng, qemu-block, qemu-stable On 12.08.2025 19:56, Philippe Mathieu-Daudé wrote: > Commit 1585ab9f1ba ("hw/sd/sdcard: Fill SPI response bits in card > code") exposed a bug in the SPI adapter: if no SD card is plugged, > we are returning "there is a card with an error". This is wrong, > we shouldn't return any particular packet response, but the noise > shifted on the MISO line. Return the dummy byte, otherwise we get: > > qemu-system-riscv64: ../hw/sd/ssi-sd.c:160: ssi_sd_transfer: Assertion `s->arglen > 0' failed. > > Reported-by: Guenter Roeck <linux@roeck-us.net> > Fixes: 775616c3ae8 ("Partial SD card SPI mode support") > Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> > Tested-by: Guenter Roeck <linux@roeck-us.net> > Reviewed-by: Alex Bennée <alex.bennee@linaro.org> > Reviewed-by: Gustavo Romero <gustavo.romero@linaro.org> > Tested-by: Alex Bennée <alex.bennee@linaro.org> While the commit which exposed the bug is in 10.1, it looks to me like this is a qemu-stable material (7.2 & 10.0), because the bug is there, it just does not result in qemu assertion failure. Please let me know if it is not. Thanks, /mjt ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PULL 1/2] hw/sd/ssi-sd: Return noise (dummy byte) when no card connected 2025-08-13 6:16 ` Michael Tokarev @ 2025-08-13 7:22 ` Philippe Mathieu-Daudé 0 siblings, 0 replies; 6+ messages in thread From: Philippe Mathieu-Daudé @ 2025-08-13 7:22 UTC (permalink / raw) To: Michael Tokarev, qemu-devel Cc: Guenter Roeck, Alex Bennée, Gustavo Romero, Bin Meng, qemu-block, qemu-stable On 13/8/25 08:16, Michael Tokarev wrote: > On 12.08.2025 19:56, Philippe Mathieu-Daudé wrote: >> Commit 1585ab9f1ba ("hw/sd/sdcard: Fill SPI response bits in card >> code") exposed a bug in the SPI adapter: if no SD card is plugged, >> we are returning "there is a card with an error". This is wrong, >> we shouldn't return any particular packet response, but the noise >> shifted on the MISO line. Return the dummy byte, otherwise we get: >> >> qemu-system-riscv64: ../hw/sd/ssi-sd.c:160: ssi_sd_transfer: >> Assertion `s->arglen > 0' failed. >> >> Reported-by: Guenter Roeck <linux@roeck-us.net> >> Fixes: 775616c3ae8 ("Partial SD card SPI mode support") >> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> >> Tested-by: Guenter Roeck <linux@roeck-us.net> >> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> >> Reviewed-by: Gustavo Romero <gustavo.romero@linaro.org> >> Tested-by: Alex Bennée <alex.bennee@linaro.org> > > While the commit which exposed the bug is in 10.1, it looks to me like > this is a qemu-stable material (7.2 & 10.0), because the bug is there, > it just does not result in qemu assertion failure. Please let me know > if it is not. You are correct! ^ permalink raw reply [flat|nested] 6+ messages in thread
* [PULL 2/2] tests/functional: Test SPI-SD adapter without SD card connected 2025-08-12 16:56 [PULL 0/2] SD/MMC patches for 2025-08-12 Philippe Mathieu-Daudé 2025-08-12 16:56 ` [PULL 1/2] hw/sd/ssi-sd: Return noise (dummy byte) when no card connected Philippe Mathieu-Daudé @ 2025-08-12 17:02 ` Philippe Mathieu-Daudé 2025-08-12 23:36 ` [PULL 0/2] SD/MMC patches for 2025-08-12 Stefan Hajnoczi 2 siblings, 0 replies; 6+ messages in thread From: Philippe Mathieu-Daudé @ 2025-08-12 17:02 UTC (permalink / raw) To: qemu-devel Cc: Philippe Mathieu-Daudé, Guenter Roeck, Gustavo Romero, Alex Bennée, Alistair Francis, Palmer Dabbelt, Weiwei Li, Daniel Henrique Barboza, Liu Zhiwei, qemu-riscv SPI-SD adapter should be usable, even without any SD card wired. Refactor test_riscv64_sifive_u_mmc_spi() to make it more generic and add another test, inspired by this report: https://lore.kernel.org/qemu-devel/5b2dc427-f0db-4332-a997-fe0c82415acd@roeck-us.net/ Inspired-by: Guenter Roeck <linux@roeck-us.net> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Gustavo Romero <gustavo.romero@linaro.org> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Tested-by: Alex Bennée <alex.bennee@linaro.org> Message-Id: <20250812140415.70153-3-philmd@linaro.org> --- tests/functional/test_riscv64_sifive_u.py | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/tests/functional/test_riscv64_sifive_u.py b/tests/functional/test_riscv64_sifive_u.py index dc4cb8a4a96..358ff0d1f60 100755 --- a/tests/functional/test_riscv64_sifive_u.py +++ b/tests/functional/test_riscv64_sifive_u.py @@ -27,25 +27,37 @@ class SifiveU(LinuxKernelTest): 'rootfs.ext2.gz'), 'b6ed95610310b7956f9bf20c4c9c0c05fea647900df441da9dfe767d24e8b28b') - def test_riscv64_sifive_u_mmc_spi(self): + def do_test_riscv64_sifive_u_mmc_spi(self, connect_card): self.set_machine('sifive_u') kernel_path = self.ASSET_KERNEL.fetch() rootfs_path = self.uncompress(self.ASSET_ROOTFS) self.vm.set_console() kernel_command_line = (self.KERNEL_COMMON_COMMAND_LINE + - 'root=/dev/mmcblk0 rootwait ' 'earlycon=sbi console=ttySIF0 ' - 'panic=-1 noreboot') + 'root=/dev/mmcblk0 ') self.vm.add_args('-kernel', kernel_path, - '-drive', f'file={rootfs_path},if=sd,format=raw', '-append', kernel_command_line, '-no-reboot') + if connect_card: + kernel_command_line += 'panic=-1 noreboot rootwait ' + self.vm.add_args('-drive', f'file={rootfs_path},if=sd,format=raw') + pattern = 'Boot successful.' + else: + kernel_command_line += 'panic=0 noreboot ' + pattern = 'Cannot open root device "mmcblk0" or unknown-block(0,0)' + self.vm.launch() - self.wait_for_console_pattern('Boot successful.') + self.wait_for_console_pattern(pattern) os.remove(rootfs_path) + def test_riscv64_sifive_u_nommc_spi(self): + self.do_test_riscv64_sifive_u_mmc_spi(False) + + def test_riscv64_sifive_u_mmc_spi(self): + self.do_test_riscv64_sifive_u_mmc_spi(True) + if __name__ == '__main__': LinuxKernelTest.main() -- 2.49.0 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PULL 0/2] SD/MMC patches for 2025-08-12 2025-08-12 16:56 [PULL 0/2] SD/MMC patches for 2025-08-12 Philippe Mathieu-Daudé 2025-08-12 16:56 ` [PULL 1/2] hw/sd/ssi-sd: Return noise (dummy byte) when no card connected Philippe Mathieu-Daudé 2025-08-12 17:02 ` [PULL 2/2] tests/functional: Test SPI-SD adapter without SD " Philippe Mathieu-Daudé @ 2025-08-12 23:36 ` Stefan Hajnoczi 2 siblings, 0 replies; 6+ messages in thread From: Stefan Hajnoczi @ 2025-08-12 23:36 UTC (permalink / raw) To: Philippe Mathieu-Daudé; +Cc: qemu-devel, Philippe Mathieu-Daudé [-- Attachment #1: Type: text/plain, Size: 116 bytes --] Applied, thanks. Please update the changelog at https://wiki.qemu.org/ChangeLog/10.1 for any user-visible changes. [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 488 bytes --] ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2025-08-13 7:23 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2025-08-12 16:56 [PULL 0/2] SD/MMC patches for 2025-08-12 Philippe Mathieu-Daudé 2025-08-12 16:56 ` [PULL 1/2] hw/sd/ssi-sd: Return noise (dummy byte) when no card connected Philippe Mathieu-Daudé 2025-08-13 6:16 ` Michael Tokarev 2025-08-13 7:22 ` Philippe Mathieu-Daudé 2025-08-12 17:02 ` [PULL 2/2] tests/functional: Test SPI-SD adapter without SD " Philippe Mathieu-Daudé 2025-08-12 23:36 ` [PULL 0/2] SD/MMC patches for 2025-08-12 Stefan Hajnoczi
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).