[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [RFC PATCH 3/6] hw/sd/sdcard: Do not use legal address '0' for INVAL
From: |
Philippe Mathieu-Daudé |
Subject: |
Re: [RFC PATCH 3/6] hw/sd/sdcard: Do not use legal address '0' for INVALID_ADDRESS |
Date: |
Mon, 21 Sep 2020 12:31:21 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.11.0 |
+Paolo & Kevin.
On 9/21/20 10:40 AM, Markus Armbruster wrote:
> Philippe Mathieu-Daudé <f4bug@amsat.org> writes:
>
>> As it is legal to WRITE/ERASE the address/block 0,
>> change the value of this definition to an illegal
>> address: UINT32_MAX.
>>
>> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
>> ---
>> Cc: Dr. David Alan Gilbert <dgilbert@redhat.com>
>> Cc: Markus Armbruster <armbru@redhat.com>
>>
>> Same problem I had with the pflash device last year...
>> This break migration :(
>> What is the best way to do this?
>
> Remind me: did we solve the problem with pflash, and if yes, how?
No we can't. The best I could do is add a comment and as this
is not fixable. See commit aba53a12bd5: ("hw/block/pflash_cfi01:
Document use of non-CFI compliant command '0x00'").
I now consider the device in maintenance-only
mode and won't add any new features.
I started working on a new implementation, hoping it can be a
drop in replacement. Laszlo still has hope that QEMU pflash
device will support sector locking so firmware developers could
test upgrading fw in VMs.
Back to the SDcard, it might be less critical, so a migration
breaking change might be acceptable. I'm only aware of Paolo
and Kevin using this device for testing. Not sure of its
importance in production.
>
>> ---
>> hw/sd/sd.c | 6 +++---
>> 1 file changed, 3 insertions(+), 3 deletions(-)
>>
>> diff --git a/hw/sd/sd.c b/hw/sd/sd.c
>> index 30ae435d669..4c05152f189 100644
>> --- a/hw/sd/sd.c
>> +++ b/hw/sd/sd.c
>> @@ -53,7 +53,7 @@
>>
>> #define SDSC_MAX_CAPACITY (2 * GiB)
>>
>> -#define INVALID_ADDRESS 0
>> +#define INVALID_ADDRESS UINT32_MAX
>>
>> typedef enum {
>> sd_r0 = 0, /* no response */
>> @@ -666,8 +666,8 @@ static int sd_vmstate_pre_load(void *opaque)
>>
>> static const VMStateDescription sd_vmstate = {
>> .name = "sd-card",
>> - .version_id = 1,
>> - .minimum_version_id = 1,
>> + .version_id = 2,
>> + .minimum_version_id = 2,
>> .pre_load = sd_vmstate_pre_load,
>> .fields = (VMStateField[]) {
>> VMSTATE_UINT32(mode, SDState),
>
>
- [RFC PATCH 0/6] hw/sd/sdcard: Do not attempt to erase out of range addresses, Philippe Mathieu-Daudé, 2020/09/18
- [RFC PATCH 3/6] hw/sd/sdcard: Do not use legal address '0' for INVALID_ADDRESS, Philippe Mathieu-Daudé, 2020/09/18
- Re: [RFC PATCH 3/6] hw/sd/sdcard: Do not use legal address '0' for INVALID_ADDRESS, Markus Armbruster, 2020/09/21
- Re: [RFC PATCH 3/6] hw/sd/sdcard: Do not use legal address '0' for INVALID_ADDRESS,
Philippe Mathieu-Daudé <=
- Re: [RFC PATCH 3/6] hw/sd/sdcard: Do not use legal address '0' for INVALID_ADDRESS, Markus Armbruster, 2020/09/21
- Re: [RFC PATCH 3/6] hw/sd/sdcard: Do not use legal address '0' for INVALID_ADDRESS, Dr. David Alan Gilbert, 2020/09/21
- Re: [RFC PATCH 3/6] hw/sd/sdcard: Do not use legal address '0' for INVALID_ADDRESS, Philippe Mathieu-Daudé, 2020/09/21
- Re: [RFC PATCH 3/6] hw/sd/sdcard: Do not use legal address '0' for INVALID_ADDRESS, Markus Armbruster, 2020/09/21
- Re: [RFC PATCH 3/6] hw/sd/sdcard: Do not use legal address '0' for INVALID_ADDRESS, Paolo Bonzini, 2020/09/21
- Re: [RFC PATCH 3/6] hw/sd/sdcard: Do not use legal address '0' for INVALID_ADDRESS, Markus Armbruster, 2020/09/22
- Re: [RFC PATCH 3/6] hw/sd/sdcard: Do not use legal address '0' for INVALID_ADDRESS, Kevin O'Connor, 2020/09/21
[RFC PATCH 6/6] hw/sd/sdcard: Assert if accessing an illegal group, Philippe Mathieu-Daudé, 2020/09/18
[RFC PATCH 2/6] hw/sd/sdcard: Introduce the INVALID_ADDRESS definition, Philippe Mathieu-Daudé, 2020/09/18
[RFC PATCH 5/6] hw/sd/sdcard: Do not attempt to erase out of range addresses, Philippe Mathieu-Daudé, 2020/09/18