diff options
author | Bin Meng <bin.meng@windriver.com> | 2020-10-24 09:49:54 +0800 |
---|---|---|
committer | Philippe Mathieu-Daudé <f4bug@amsat.org> | 2020-10-26 09:23:47 +0100 |
commit | 89c6700fe7eed9195f10055751edbc6d5e7ab940 (patch) | |
tree | ad5edc1709cb49b4dc82f65257fa2f5537afbd9b /hw/sd | |
parent | 692fb0ef31af680632c84bc18bc639cba4a0e24b (diff) | |
download | qemu-89c6700fe7eed9195f10055751edbc6d5e7ab940.zip qemu-89c6700fe7eed9195f10055751edbc6d5e7ab940.tar.gz qemu-89c6700fe7eed9195f10055751edbc6d5e7ab940.tar.bz2 |
hw/sd/sdcard: Zero out function selection fields before being populated
The function selection fields (399:376) should be zeroed out to
prevent leftover from being or'ed into the switch function status
data structure.
This fixes the boot failure as seen in the acceptance testing on
the orangepi target.
Fixes: b638627c723a ("hw/sd: Fix incorrect populated function switch status data structure")
Reported-by: Michael Roth <mdroth@linux.vnet.ibm.com>
Signed-off-by: Bin Meng <bin.meng@windriver.com>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Message-Id: <20201024014954.21330-1-bmeng.cn@gmail.com>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Diffstat (limited to 'hw/sd')
-rw-r--r-- | hw/sd/sd.c | 1 |
1 files changed, 1 insertions, 0 deletions
@@ -827,6 +827,7 @@ static void sd_function_switch(SDState *sd, uint32_t arg) sd->data[12] = 0x80; /* Supported group 1 functions */ sd->data[13] = 0x03; + memset(&sd->data[14], 0, 3); for (i = 0; i < 6; i ++) { new_func = (arg >> (i * 4)) & 0x0f; if (mode && new_func != 0x0f) |