Bin, Philippe,
On 7/7/26 16:05, Cédric Le Goater wrote:
This breaks the test_arm_emcraft_sf2 functional test:
not ok 1 test_emcraft_sf2.EmcraftSf2Machine.test_arm_emcraft_sf2
No problem on my side.
Sorry. you are right ! It fails too.
So we have a machine using a Spansion flash.
spi_flash = qdev_new("s25sl12801"); /* Spansion S25FL128SDPBHICO */
C.
Here is the fix. Feel free to merge in patch 4.
Thanks,
C.
From 17ae23e5bc3629a5a301f14f47125f6f685ca9d9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= <[email protected]>
Date: Tue, 7 Jul 2026 16:23:29 +0200
Subject: [PATCH] hw/arm/msf2-som: Fix spansion-cr2nv value for S25FL128S
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
The emcraft-sf2 board set spansion-cr2nv to 1, which the old m25p80
code treated as a byte count. With the dummy cycle to byte conversion
fix, CR2V=1 at SPI x1 is 1 bit, not byte-aligned, and triggers an
assertion. Use the S25FL128S default of 0x8 (8 cycles = 1 byte at
SPI x1), preserving the same runtime behavior.
Signed-off-by: Cédric Le Goater <[email protected]>
---
hw/arm/msf2-som.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/hw/arm/msf2-som.c b/hw/arm/msf2-som.c
index caf6e7e1ad7d..1ada1a136130 100644
--- a/hw/arm/msf2-som.c
+++ b/hw/arm/msf2-som.c
@@ -84,7 +84,7 @@ static void emcraft_sf2_s2s010_init(MachineState *machine)
/* Attach SPI flash to SPI0 controller */
spi_bus = qdev_get_child_bus(dev, "spi0");
spi_flash = qdev_new("s25sl12801"); /* Spansion S25FL128SDPBHICO */
- qdev_prop_set_uint8(spi_flash, "spansion-cr2nv", 1);
+ qdev_prop_set_uint8(spi_flash, "spansion-cr2nv", 0x8);
if (dinfo) {
qdev_prop_set_drive_err(spi_flash, "drive",
blk_by_legacy_dinfo(dinfo), &error_fatal);
--
2.54.0