qemu/hw/misc
Jamin Lin c9afc732e2 hw/misc/aspeed_hace: Ensure HASH_IRQ is always set to prevent firmware hang
Currently, if the program encounters an unsupported algorithm, it does not set
the HASH_IRQ bit in the status register and send an interrupt to indicate
command completion. As a result, the FW gets stuck waiting for a completion
signal from the HACE module.

Additionally, in do_hash_operation, if an error occurs within the conditional
statement, the HASH_IRQ bit is not set in the status register. This causes the
firmware to continuously send HASH commands, as it is unaware that the HACE
model has completed processing the command.

To fix this, the HASH_IRQ bit in the status register must always be set to
ensure that the firmware receives an interrupt from the HACE module, preventing
it from getting stuck or repeatedly sending HASH commands.

Signed-off-by: Jamin Lin <jamin_lin@aspeedtech.com>
Fixes: c5475b3 ("hw: Model ASPEED's Hash and Crypto Engine")
Reviewed-by: Cédric Le Goater <clg@redhat.com>
Link: https://lore.kernel.org/qemu-devel/20250515081008.583578-4-jamin_lin@aspeedtech.com
Signed-off-by: Cédric Le Goater <clg@redhat.com>
(cherry picked from commit fb8e59abbe)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
2025-05-29 10:27:30 +03:00
..
macio hw/misc/macio/gpio: Add constants for register bits 2025-03-05 02:13:27 +01:00
a9scu.c include/hw/qdev-properties: Remove DEFINE_PROP_END_OF_LIST 2024-12-19 19:36:37 +01:00
allwinner-a10-ccm.c hw/arm: Mark Allwinner Technology devices as little-endian 2025-02-16 14:41:46 +01:00
allwinner-a10-dramc.c hw/arm: Mark Allwinner Technology devices as little-endian 2025-02-16 14:41:46 +01:00
allwinner-cpucfg.c hw/arm: Mark Allwinner Technology devices as little-endian 2025-02-16 14:41:46 +01:00
allwinner-h3-ccu.c hw/arm: Mark Allwinner Technology devices as little-endian 2025-02-16 14:41:46 +01:00
allwinner-h3-dramc.c hw/arm: Mark Allwinner Technology devices as little-endian 2025-02-16 14:41:46 +01:00
allwinner-h3-sysctrl.c hw/arm: Mark Allwinner Technology devices as little-endian 2025-02-16 14:41:46 +01:00
allwinner-r40-ccu.c hw/arm: Mark Allwinner Technology devices as little-endian 2025-02-16 14:41:46 +01:00
allwinner-r40-dramc.c hw/arm: Mark Allwinner Technology devices as little-endian 2025-02-16 14:41:46 +01:00
allwinner-sid.c hw/arm: Mark Allwinner Technology devices as little-endian 2025-02-16 14:41:46 +01:00
allwinner-sramc.c hw/arm: Mark Allwinner Technology devices as little-endian 2025-02-16 14:41:46 +01:00
applesmc.c include/hw/qdev-properties: Remove DEFINE_PROP_END_OF_LIST 2024-12-19 19:36:37 +01:00
arm11scu.c include/hw/qdev-properties: Remove DEFINE_PROP_END_OF_LIST 2024-12-19 19:36:37 +01:00
arm_integrator_debug.c arm: Update infocenter.arm.com URLs 2021-02-11 11:50:14 +00:00
arm_l2x0.c include/hw/qdev-properties: Remove DEFINE_PROP_END_OF_LIST 2024-12-19 19:36:37 +01:00
arm_sysctl.c hw/arm_sysctl: fix extracting 31th bit of val 2025-01-13 12:35:32 +00:00
armsse-cpu-pwrctrl.c hw: Use device_class_set_legacy_reset() instead of opencoding 2024-09-13 15:31:44 +01:00
armsse-cpuid.c include/hw/qdev-properties: Remove DEFINE_PROP_END_OF_LIST 2024-12-19 19:36:37 +01:00
armsse-mhu.c hw: Use device_class_set_legacy_reset() instead of opencoding 2024-09-13 15:31:44 +01:00
armv7m_ras.c arm: Move M-profile RAS register block into its own device 2021-09-01 11:08:18 +01:00
aspeed_hace.c hw/misc/aspeed_hace: Ensure HASH_IRQ is always set to prevent firmware hang 2025-05-29 10:27:30 +03:00
aspeed_i3c.c include/hw/qdev-properties: Remove DEFINE_PROP_END_OF_LIST 2024-12-19 19:36:37 +01:00
aspeed_lpc.c include/hw/qdev-properties: Remove DEFINE_PROP_END_OF_LIST 2024-12-19 19:36:37 +01:00
aspeed_peci.c hw: Use device_class_set_legacy_reset() instead of opencoding 2024-09-13 15:31:44 +01:00
aspeed_sbc.c include/hw/qdev-properties: Remove DEFINE_PROP_END_OF_LIST 2024-12-19 19:36:37 +01:00
aspeed_scu.c hw/misc/aspeed_scu: Correct minimum access size for AST2500 / AST2600 2025-04-01 11:29:25 +02:00
aspeed_sdmc.c include/hw/qdev-properties: Remove DEFINE_PROP_END_OF_LIST 2024-12-19 19:36:37 +01:00
aspeed_sli.c aspeed/sli: Add AST2700 support 2024-06-16 21:08:54 +02:00
aspeed_xdma.c hw: Use device_class_set_legacy_reset() instead of opencoding 2024-09-13 15:31:44 +01:00
auxbus.c bulk: Rename TARGET_FMT_plx -> HWADDR_FMT_plx 2023-01-18 11:14:34 +01:00
avr_power.c hw: Use device_class_set_legacy_reset() instead of opencoding 2024-09-13 15:31:44 +01:00
axp2xx.c hw/misc: Constify VMState 2023-12-30 07:38:06 +11:00
bcm2835_cprman.c hw/misc/pll: Do not expose as user-creatable 2025-03-31 21:32:43 +02:00
bcm2835_mbox.c hw: Use device_class_set_legacy_reset() instead of opencoding 2024-09-13 15:31:44 +01:00
bcm2835_mphi.c hw: Use device_class_set_legacy_reset() instead of opencoding 2024-09-13 15:31:44 +01:00
bcm2835_powermgt.c include: Rename sysemu/ -> system/ 2024-12-20 17:44:56 +01:00
bcm2835_property.c Accel & Exec patch queue 2024-12-21 11:07:00 -05:00
bcm2835_rng.c hw: Use device_class_set_legacy_reset() instead of opencoding 2024-09-13 15:31:44 +01:00
bcm2835_thermal.c hw: Use device_class_set_legacy_reset() instead of opencoding 2024-09-13 15:31:44 +01:00
debugexit.c Accel & Exec patch queue 2024-12-21 11:07:00 -05:00
djmemc.c hw, target: Add ResetType argument to hold and exit phase methods 2024-04-25 10:21:06 +01:00
eccmemctl.c include/hw/qdev-properties: Remove DEFINE_PROP_END_OF_LIST 2024-12-19 19:36:37 +01:00
edu.c Remove inclusion of hw/hw.h from files that don't need it 2024-07-02 06:58:48 +02:00
empty_slot.c include/hw/qdev-properties: Remove DEFINE_PROP_END_OF_LIST 2024-12-19 19:36:37 +01:00
exynos4210_clk.c hw: Use device_class_set_legacy_reset() instead of opencoding 2024-09-13 15:31:44 +01:00
exynos4210_pmu.c include: Rename sysemu/ -> system/ 2024-12-20 17:44:56 +01:00
exynos4210_rng.c hw: Use device_class_set_legacy_reset() instead of opencoding 2024-09-13 15:31:44 +01:00
grlib_ahb_apb_pnp.c hw/misc/grlib_ahb_apb_pnp: Support 8 and 16 bit accesses 2022-08-08 23:43:11 +02:00
i2c-echo.c hw/misc/i2c-echo: add tracing 2025-01-31 19:36:44 +01:00
imx6_ccm.c hw/misc: remove break after g_assert_not_reached() 2024-09-13 20:12:16 +02:00
imx6_src.c hw/misc/imx6_src: Convert DPRINTF() to trace events 2025-01-13 17:16:04 +01:00
imx6ul_ccm.c hw: Use device_class_set_legacy_reset() instead of opencoding 2024-09-13 15:31:44 +01:00
imx7_ccm.c hw: Use device_class_set_legacy_reset() instead of opencoding 2024-09-13 15:31:44 +01:00
imx7_gpr.c Clean up inclusion of sysemu/sysemu.h 2019-08-16 13:31:53 +02:00
imx7_snvs.c include: Rename sysemu/ -> system/ 2024-12-20 17:44:56 +01:00
imx7_src.c hw: Use device_class_set_legacy_reset() instead of opencoding 2024-09-13 15:31:44 +01:00
imx8mp_analog.c hw/arm/fsl-imx8mp: Implement clock tree 2025-02-25 17:02:00 +00:00
imx8mp_ccm.c hw/arm/fsl-imx8mp: Implement clock tree 2025-02-25 17:02:00 +00:00
imx25_ccm.c hw: Use device_class_set_legacy_reset() instead of opencoding 2024-09-13 15:31:44 +01:00
imx31_ccm.c hw: Use device_class_set_legacy_reset() instead of opencoding 2024-09-13 15:31:44 +01:00
imx_ccm.c hw: Do not include qemu/log.h if it is not necessary 2021-05-02 17:24:50 +02:00
imx_rngc.c hw: Use device_class_set_legacy_reset() instead of opencoding 2024-09-13 15:31:44 +01:00
iosb.c hw, target: Add ResetType argument to hold and exit phase methods 2024-04-25 10:21:06 +01:00
iotkit-secctl.c include/hw/qdev-properties: Remove DEFINE_PROP_END_OF_LIST 2024-12-19 19:36:37 +01:00
iotkit-sysctl.c Accel & Exec patch queue 2024-12-21 11:07:00 -05:00
iotkit-sysinfo.c include/hw/qdev-properties: Remove DEFINE_PROP_END_OF_LIST 2024-12-19 19:36:37 +01:00
ivshmem-flat.c licenses: Remove SPDX tags not being license identifier for Linaro 2025-01-30 13:01:22 +03:00
ivshmem-pci.c hw/misc/ivshmem: Rename ivshmem to ivshmem-pci 2024-12-31 21:21:34 +01:00
Kconfig hw/misc/pvpanic: Add MMIO interface 2025-03-04 14:45:34 +01:00
lasi.c include: Rename sysemu/ -> system/ 2024-12-20 17:44:56 +01:00
led.c include/hw/qdev-properties: Remove DEFINE_PROP_END_OF_LIST 2024-12-19 19:36:37 +01:00
mac_via.c Accel & Exec patch queue 2024-12-21 11:07:00 -05:00
mchp_pfsoc_dmc.c hw: Remove superfluous includes of hw/hw.h 2021-05-02 17:24:50 +02:00
mchp_pfsoc_ioscb.c hw/{misc, riscv}: pfsoc: add system controller as unimplemented 2023-01-06 10:42:55 +10:00
mchp_pfsoc_sysreg.c hw/{misc, riscv}: pfsoc: add system controller as unimplemented 2023-01-06 10:42:55 +10:00
meson.build hw/misc/pvpanic: Add MMIO interface 2025-03-04 14:45:34 +01:00
mips_cmgcr.c include/hw/qdev-properties: Remove DEFINE_PROP_END_OF_LIST 2024-12-19 19:36:37 +01:00
mips_cpc.c include/hw/qdev-properties: Remove DEFINE_PROP_END_OF_LIST 2024-12-19 19:36:37 +01:00
mips_itu.c include/hw/qdev-properties: Remove DEFINE_PROP_END_OF_LIST 2024-12-19 19:36:37 +01:00
mos6522.c include/hw/qdev-properties: Remove DEFINE_PROP_END_OF_LIST 2024-12-19 19:36:37 +01:00
mps2-fpgaio.c hw/misc: use extract64 instead of 1 << i 2025-03-17 08:53:25 +01:00
mps2-scc.c include/hw/qdev-properties: Remove DEFINE_PROP_END_OF_LIST 2024-12-19 19:36:37 +01:00
msf2-sysreg.c include/hw/qdev-properties: Remove DEFINE_PROP_END_OF_LIST 2024-12-19 19:36:37 +01:00
npcm7xx_mft.c hw/misc: cast rpm to uint64_t 2025-01-13 12:35:32 +00:00
npcm7xx_pwm.c hw, target: Add ResetType argument to hold and exit phase methods 2024-04-25 10:21:06 +01:00
npcm7xx_rng.c hw/misc: Constify VMState 2023-12-30 07:38:06 +11:00
npcm_clk.c hw/misc/pll: Do not expose as user-creatable 2025-03-31 21:32:43 +02:00
npcm_gcr.c hw/misc: Add nr_regs and cold_reset_values to NPCM CLK 2025-02-20 15:22:22 +00:00
nrf51_rng.c include/hw/qdev-properties: Remove DEFINE_PROP_END_OF_LIST 2024-12-19 19:36:37 +01:00
omap_clk.c hw/misc/omap_clk: Remove OMAP2-specifics 2024-10-01 14:57:55 +01:00
pc-testdev.c Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
pci-testdev.c Accel & Exec patch queue 2024-12-21 11:07:00 -05:00
pvpanic-isa.c Accel & Exec patch queue 2024-12-21 11:07:00 -05:00
pvpanic-mmio.c hw/misc/pvpanic: Add MMIO interface 2025-03-04 14:45:34 +01:00
pvpanic-pci.c Accel & Exec patch queue 2024-12-21 11:07:00 -05:00
pvpanic.c include: Rename sysemu/ -> system/ 2024-12-20 17:44:56 +01:00
sbsa_ec.c include: Rename sysemu/ -> system/ 2024-12-20 17:44:56 +01:00
sifive_e_aon.c Accel & Exec patch queue 2024-12-21 11:07:00 -05:00
sifive_e_prci.c hw: Remove superfluous includes of hw/hw.h 2021-05-02 17:24:50 +02:00
sifive_test.c include: Rename sysemu/ -> system/ 2024-12-20 17:44:56 +01:00
sifive_u_otp.c Accel & Exec patch queue 2024-12-21 11:07:00 -05:00
sifive_u_prci.c hw: Use device_class_set_legacy_reset() instead of opencoding 2024-09-13 15:31:44 +01:00
slavio_misc.c include: Rename sysemu/ -> system/ 2024-12-20 17:44:56 +01:00
stm32_rcc.c hw/misc/stm32_rcc: Implement RCC device for STM32F4 SoCs 2024-10-15 11:29:45 +01:00
stm32f2xx_syscfg.c hw: Use device_class_set_legacy_reset() instead of opencoding 2024-09-13 15:31:44 +01:00
stm32f4xx_exti.c hw: Use device_class_set_legacy_reset() instead of opencoding 2024-09-13 15:31:44 +01:00
stm32f4xx_syscfg.c hw: Use device_class_set_legacy_reset() instead of opencoding 2024-09-13 15:31:44 +01:00
stm32l4x5_exti.c hw/misc: In STM32L4x5 EXTI, handle direct interrupts 2024-07-11 11:41:34 +01:00
stm32l4x5_rcc.c hw/misc/pll: Do not expose as user-creatable 2025-03-31 21:32:43 +02:00
stm32l4x5_syscfg.c hw/misc: Create STM32L4x5 SYSCFG clock 2024-10-15 11:29:45 +01:00
trace-events hw/misc: Move NPCM7XX CLK to NPCM CLK 2025-02-20 15:22:22 +00:00
trace.h trace: switch position of headers to what Meson requires 2020-08-21 06:18:24 -04:00
tz-mpc.c include/hw/qdev-properties: Remove DEFINE_PROP_END_OF_LIST 2024-12-19 19:36:37 +01:00
tz-msc.c include/hw/qdev-properties: Remove DEFINE_PROP_END_OF_LIST 2024-12-19 19:36:37 +01:00
tz-ppc.c include/hw/qdev-properties: Remove DEFINE_PROP_END_OF_LIST 2024-12-19 19:36:37 +01:00
unimp.c include/hw/qdev-properties: Remove DEFINE_PROP_END_OF_LIST 2024-12-19 19:36:37 +01:00
virt_ctrl.c include: Rename sysemu/ -> system/ 2024-12-20 17:44:56 +01:00
vmcoreinfo.c hw/misc/vmcoreinfo: Convert to three-phase reset interface 2025-01-13 17:16:04 +01:00
xlnx-cfi-if.c hw/misc: Introduce the Xilinx CFI interface 2023-09-08 16:41:34 +01:00
xlnx-versal-cframe-reg.c include/hw/qdev-properties: Remove DEFINE_PROP_END_OF_LIST 2024-12-19 19:36:37 +01:00
xlnx-versal-cfu.c include/hw/qdev-properties: Remove DEFINE_PROP_END_OF_LIST 2024-12-19 19:36:37 +01:00
xlnx-versal-crl.c hw, target: Add ResetType argument to hold and exit phase methods 2024-04-25 10:21:06 +01:00
xlnx-versal-pmc-iou-slcr.c hw, target: Add ResetType argument to hold and exit phase methods 2024-04-25 10:21:06 +01:00
xlnx-versal-trng.c qdev: Change values of PropertyInfo member @type to be QAPI types 2025-03-06 10:33:05 +01:00
xlnx-versal-xramc.c include/hw/qdev-properties: Remove DEFINE_PROP_END_OF_LIST 2024-12-19 19:36:37 +01:00
xlnx-zynqmp-apu-ctrl.c hw, target: Add ResetType argument to hold and exit phase methods 2024-04-25 10:21:06 +01:00
xlnx-zynqmp-crf.c hw, target: Add ResetType argument to hold and exit phase methods 2024-04-25 10:21:06 +01:00
zynq_slcr.c Accel & Exec patch queue 2024-12-21 11:07:00 -05:00