summary refs log tree commit diff stats
path: root/hw/sd/sd.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* hw/sd/sdcard: Generate random RCA valuePhilippe Mathieu-Daudé2024-07-051-3/+8
| | | | | | | | | | | Rather than using the obscure 0x4567 magic value, use a real random one. Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Tested-by: Andrew Jeffery <andrew@codeconstruct.com.au> Message-Id: <20240702140842.54242-5-philmd@linaro.org>
* hw/sd/sdcard: Add sd_acmd_SEND_SCR handler (ACMD51)Philippe Mathieu-Daudé2024-07-021-11/+8
| | | | | | | Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-75-philmd@linaro.org>
* hw/sd/sdcard: Add sd_acmd_SET_CLR_CARD_DETECT handler (ACMD42)Philippe Mathieu-Daudé2024-07-021-12/+13
| | | | | | | Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-74-philmd@linaro.org>
* hw/sd/sdcard: Add sd_acmd_SD_APP_OP_COND handler (ACMD41)Philippe Mathieu-Daudé2024-07-021-37/+45
| | | | | | | Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-73-philmd@linaro.org>
* hw/sd/sdcard: Add sd_acmd_SET_WR_BLK_ERASE_COUNT handler (ACMD23)Philippe Mathieu-Daudé2024-07-021-11/+11
| | | | | | | Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-72-philmd@linaro.org>
* hw/sd/sdcard: Add sd_acmd_SEND_NUM_WR_BLOCKS handler (ACMD22)Philippe Mathieu-Daudé2024-07-021-13/+10
| | | | | | | Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-71-philmd@linaro.org>
* hw/sd/sdcard: Add sd_acmd_SD_STATUS handler (ACMD13)Philippe Mathieu-Daudé2024-07-021-13/+9
| | | | | | | Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-70-philmd@linaro.org>
* hw/sd/sdcard: Add sd_acmd_SET_BUS_WIDTH handler (ACMD6)Philippe Mathieu-Daudé2024-07-021-13/+15
| | | | | | | Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-69-philmd@linaro.org>
* hw/sd/sdcard: Add spi_cmd_CRC_ON_OFF handler (CMD59)Philippe Mathieu-Daudé2024-07-021-3/+7
| | | | | | | Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-68-philmd@linaro.org>
* hw/sd/sdcard: Add spi_cmd_READ_OCR handler (CMD58)Philippe Mathieu-Daudé2024-07-021-3/+7
| | | | | | | Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-67-philmd@linaro.org>
* hw/sd/sdcard: Add sd_cmd_APP_CMD handler (CMD55)Philippe Mathieu-Daudé2024-07-021-25/+28
| | | | | | | Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-65-philmd@linaro.org>
* hw/sd/sdcard: Add sd_cmd_LOCK_UNLOCK handler (CMD42)Philippe Mathieu-Daudé2024-07-021-5/+8
| | | | | | | Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-64-philmd@linaro.org>
* hw/sd/sdcard: Add sd_cmd_ERASE handler (CMD38)Philippe Mathieu-Daudé2024-07-021-21/+20
| | | | | | | Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-63-philmd@linaro.org>
* hw/sd/sdcard: Add sd_cmd_ERASE_WR_BLK_START/END handlers (CMD32 & CMD33)Philippe Mathieu-Daudé2024-07-021-23/+24
| | | | | | | Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-62-philmd@linaro.org>
* hw/sd/sdcard: Add sd_cmd_SEND_WRITE_PROT handler (CMD30)Philippe Mathieu-Daudé2024-07-021-22/+25
| | | | | | | Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-61-philmd@linaro.org>
* hw/sd/sdcard: Add sd_cmd_SET/CLR_WRITE_PROT handler (CMD28 & CMD29)Philippe Mathieu-Daudé2024-07-021-45/+46
| | | | | | | Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-60-philmd@linaro.org>
* hw/sd/sdcard: Add sd_cmd_PROGRAM_CSD handler (CMD27)Philippe Mathieu-Daudé2024-07-021-4/+9
| | | | | | | Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-59-philmd@linaro.org>
* hw/sd/sdcard: Add sd_cmd_WRITE_SINGLE_BLOCK handler (CMD24)Philippe Mathieu-Daudé2024-07-021-27/+30
| | | | | | | Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-58-philmd@linaro.org>
* hw/sd/sdcard: Add sd_cmd_READ_SINGLE_BLOCK handler (CMD17)Philippe Mathieu-Daudé2024-07-021-17/+20
| | | | | | | Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-57-philmd@linaro.org>
* hw/sd/sdcard: Add sd_cmd_SET_BLOCKLEN handler (CMD16)Philippe Mathieu-Daudé2024-07-021-18/+19
| | | | | | | Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-56-philmd@linaro.org>
* hw/sd/sdcard: Add sd_cmd_GO_INACTIVE_STATE handler (CMD15)Philippe Mathieu-Daudé2024-07-021-12/+25
| | | | | | | Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-55-philmd@linaro.org>
* hw/sd/sdcard: Add sd_cmd_SEND_STATUS handler (CMD13)Philippe Mathieu-Daudé2024-07-021-12/+28
| | | | | | | Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-54-philmd@linaro.org>
* hw/sd/sdcard: Add sd_cmd_STOP_TRANSMISSION handler (CMD12)Philippe Mathieu-Daudé2024-07-021-18/+20
| | | | | | | Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-53-philmd@linaro.org>
* hw/sd/sdcard: Add spi_cmd_SEND_CSD/CID handlers (CMD9 & CMD10)Philippe Mathieu-Daudé2024-07-021-30/+20
| | | | | | | Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-52-philmd@linaro.org>
* hw/sd/sdcard: Add sd_cmd_SEND_CSD/CID handlers (CMD9 & CMD10)Philippe Mathieu-Daudé2024-07-021-14/+22
| | | | | | | Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-51-philmd@linaro.org>
* hw/sd/sdcard: Add sd_cmd_SEND_IF_COND handler (CMD8)Philippe Mathieu-Daudé2024-07-021-19/+24
| | | | | | | Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-50-philmd@linaro.org>
* hw/sd/sdcard: Add sd_cmd_DE/SELECT_CARD handler (CMD7)Philippe Mathieu-Daudé2024-07-021-38/+47
| | | | | | | Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-49-philmd@linaro.org>
* hw/sd/sdcard: Add sd_cmd_SWITCH_FUNCTION handler (CMD6)Philippe Mathieu-Daudé2024-07-021-12/+17
| | | | | | | | Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-48-philmd@linaro.org>
* hw/sd/sdcard: Register Security Extension optional handlersPhilippe Mathieu-Daudé2024-07-021-4/+13
| | | | | | | | | See "Advanced Security SD Extension Specification" v2.00. Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-47-philmd@linaro.org>
* hw/sd/sdcard: Register SDIO optional handlersPhilippe Mathieu-Daudé2024-07-021-2/+6
| | | | | | | | | See "SD Input/Output Card Specification" v1.00. Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-46-philmd@linaro.org>
* hw/sd/sdcard: Register optional handlers from spec v6.00Philippe Mathieu-Daudé2024-07-021-5/+10
| | | | | | | Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-45-philmd@linaro.org>
* hw/sd/sdcard: Register generic optional handlers (CMD11 and CMD20)Philippe Mathieu-Daudé2024-07-021-2/+12
| | | | | | | Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-44-philmd@linaro.org>
* hw/sd/sdcard: Remove SEND_DSR dead case (CMD4)Philippe Mathieu-Daudé2024-07-021-12/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The CSD::CSR_IMP bit defines whether the Driver Stage Register (DSR) is implemented or not. We do not set this bit in CSD: static void sd_set_csd(SDState *sd, uint64_t size) { ... if (size <= SDSC_MAX_CAPACITY) { /* Standard Capacity SD */ ... sd->csd[6] = 0xe0 | /* Partial block for read allowed */ ((csize >> 10) & 0x03); ... } else { /* SDHC */ ... sd->csd[6] = 0x00; ... } ... } The sd_normal_command() switch case for the SEND_DSR command do nothing and fallback to "illegal command". Since the command is mandatory (although the register isn't...) call the sd_cmd_unimplemented() handler. Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-43-philmd@linaro.org>
* hw/sd/sdcard: Store command class in SDProtoPhilippe Mathieu-Daudé2024-07-021-17/+19
| | | | | | | | | | Store the command class altogether with the other command fields (handler, name and type). Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-42-philmd@linaro.org>
* hw/sd/sdcard: Store command type in SDProtoPhilippe Mathieu-Daudé2024-07-021-24/+20
| | | | | | | | | Store the command type altogether with the command handler and name. Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-41-philmd@linaro.org>
* hw/sd/sdcard: Store command name in SDProtoPhilippe Mathieu-Daudé2024-07-021-13/+22
| | | | | | | | | | We already have a const array where command handlers are listed. Store the command name there too. Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-40-philmd@linaro.org>
* hw/sd/sdcard: Prepare SDProto to contain more fieldsPhilippe Mathieu-Daudé2024-07-021-14/+15
| | | | | | | | | | | Convert array of command handlers to array of structures. The structure contains the command handler. No logical change intended. Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-39-philmd@linaro.org>
* hw/sd/sdcard: Pass SDState as argument to sd_[a]cmd_name()Philippe Mathieu-Daudé2024-07-021-4/+4
| | | | | | | | | | In order to access SDState::SDProto from sd_[a]cmd_name(), pass SDState as argument. Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-38-philmd@linaro.org>
* hw/sd/sdcard: Move sd_[a]cmd_name() methods to sd.cPhilippe Mathieu-Daudé2024-07-021-0/+62
| | | | | | | | | | | Merge sdmmc-internal.c into sd.c by moving sd_cmd_name() and sd_acmd_name() and updating meson.build. Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-37-philmd@linaro.org>
* hw/sd/sdcard: Convert LOCK_UNLOCK to generic_write_byte (CMD42)Philippe Mathieu-Daudé2024-07-021-13/+2
| | | | | | | Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-35-philmd@linaro.org>
* hw/sd/sdcard: Convert PROGRAM_CSD to generic_write_byte (CMD27)Philippe Mathieu-Daudé2024-07-021-13/+2
| | | | | | | Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-34-philmd@linaro.org>
* hw/sd/sdcard: Convert PROGRAM_CID to generic_write_byte (CMD26)Philippe Mathieu-Daudé2024-07-021-13/+2
| | | | | | | | Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-33-philmd@linaro.org>
* hw/sd/sdcard: Convert WRITE_SINGLE_BLOCK to generic_write_byte (CMD24)Philippe Mathieu-Daudé2024-07-021-9/+2
| | | | | | | | Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-32-philmd@linaro.org>
* hw/sd/sdcard: Duplicate WRITE_SINGLE_BLOCK / WRITE_MULTIPLE_BLOCK casesPhilippe Mathieu-Daudé2024-07-021-0/+29
| | | | | | | | | | In order to modify the WRITE_SINGLE_BLOCK case in the next commit, duplicate it first. Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-31-philmd@linaro.org>
* hw/sd/sdcard: Introduce sd_cmd_to_receivingdata / sd_generic_write_bytePhilippe Mathieu-Daudé2024-07-021-0/+29
| | | | | | | | | | | | | | All commands switching from TRANSFER state to (receiving)DATA do the same: receive stream of data from the DAT lines. Instead of duplicating the same code many times, introduce 2 helpers: - sd_cmd_to_receivingdata() on the I/O line setup the data to be received on the data[] buffer, - sd_generic_write_byte() on the DAT lines to push the data. Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-30-philmd@linaro.org>
* hw/sd/sdcard: Convert SEND_SCR to generic_read_byte (ACMD51)Philippe Mathieu-Daudé2024-07-021-11/+2
| | | | | | | | Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-29-philmd@linaro.org>
* hw/sd/sdcard: Convert SEND_NUM_WR_BLOCKS to generic_read_byte (ACMD22)Philippe Mathieu-Daudé2024-07-021-12/+4
| | | | | | | Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-28-philmd@linaro.org>
* hw/sd/sdcard: Convert SD_STATUS to generic_read_byte (ACMD13)Philippe Mathieu-Daudé2024-07-021-11/+4
| | | | | | | | Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-27-philmd@linaro.org>
* hw/sd/sdcard: Convert SEND_WRITE_PROT to generic_read_byte (CMD30)Philippe Mathieu-Daudé2024-07-021-13/+4
| | | | | | | Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-25-philmd@linaro.org>
* hw/sd/sdcard: Convert SEND_TUNING_BLOCK to generic_read_byte (CMD19)Philippe Mathieu-Daudé2024-07-021-29/+19
| | | | | | | | Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-24-philmd@linaro.org>