On 03/07/2021 15:19, Philippe Mathieu-Daudé wrote:
Per the DP83932C datasheet from July 1995:1. Functional Description 1.3 DATA WIDTH AND BYTE ORDERING The SONIC can be programmed to operate with either 32-bit or 16-bit wide memory. Restrict the memory bus to reject 8/64-bit accesses. Signed-off-by: Philippe Mathieu-Daudé <[email protected]> --- hw/net/dp8393x.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/hw/net/dp8393x.c b/hw/net/dp8393x.c index d16ade2b198..c9b478c127c 100644 --- a/hw/net/dp8393x.c +++ b/hw/net/dp8393x.c @@ -695,6 +695,8 @@ static const MemoryRegionOps dp8393x_ops = { .write = dp8393x_write, .impl.min_access_size = 2, .impl.max_access_size = 2, + .valid.min_access_size = 2, + .valid.max_access_size = 4, .endianness = DEVICE_NATIVE_ENDIAN, };
The changes to .valid are correct, but I don't think the above reference to the datasheet is. My reading of the sentence in section 1.3 "The SONIC can be programmed to operate with either 32-bit or 16-bit wide memory" (along with subsequent references to the DW bit in the DCR) is that this section is describing bus master transfers as per figure 1-5 instead of register accesses which is what this patch changes.
I think you could simply squash this patch into the previous one since there will already be a behaviour change there.
ATB, Mark.
