diff --git a/libfwupdplugin/fu-cfi-device.c b/libfwupdplugin/fu-cfi-device.c index 11c16f042..1dffdebe2 100644 --- a/libfwupdplugin/fu-cfi-device.c +++ b/libfwupdplugin/fu-cfi-device.c @@ -51,6 +51,8 @@ fu_cfi_device_cmd_to_string(FuCfiDeviceCmd cmd) return "CfiDeviceCmdWriteEn"; if (cmd == FU_CFI_DEVICE_CMD_WRITE_STATUS) return "CfiDeviceCmdWriteStatus"; + if (cmd == FU_CFI_DEVICE_CMD_BLOCK_ERASE) + return "CfiDeviceCmdBlockErase"; return NULL; } @@ -383,6 +385,12 @@ fu_cfi_device_set_quirk_kv(FuDevice *device, const gchar *key, const gchar *valu priv->cmds[FU_CFI_DEVICE_CMD_CHIP_ERASE] = tmp; return TRUE; } + if (g_strcmp0(key, "CfiDeviceCmdBlockErase") == 0) { + if (!fu_common_strtoull_full(value, &tmp, 0, G_MAXUINT8, error)) + return FALSE; + priv->cmds[FU_CFI_DEVICE_CMD_BLOCK_ERASE] = tmp; + return TRUE; + } if (g_strcmp0(key, "CfiDeviceCmdSectorErase") == 0) { if (!fu_common_strtoull_full(value, &tmp, 0, G_MAXUINT8, error)) return FALSE; diff --git a/libfwupdplugin/fu-cfi-device.h b/libfwupdplugin/fu-cfi-device.h index 8c52b0a2e..e574570e5 100644 --- a/libfwupdplugin/fu-cfi-device.h +++ b/libfwupdplugin/fu-cfi-device.h @@ -41,6 +41,7 @@ typedef enum { FU_CFI_DEVICE_CMD_SECTOR_ERASE, FU_CFI_DEVICE_CMD_WRITE_EN, FU_CFI_DEVICE_CMD_WRITE_STATUS, + FU_CFI_DEVICE_CMD_BLOCK_ERASE, /*< private >*/ FU_CFI_DEVICE_CMD_LAST } FuCfiDeviceCmd;