qemu/hw/misc
Tan Siewert 10d1b6231b hw/misc/aspeed_scu: Handle AST2600 protection key registers correctly
The AST2600 SCU has two protection key registers (0x00 and 0x10) that
both need to be unlocked. (Un-)locking 0x00 modifies both protection key
registers, while modifying 0x10 only modifies itself.

This commit updates the SCU write logic to reject writes unless both
protection key registers are unlocked, matching the behaviour of
real hardware.

Signed-off-by: Tan Siewert <tan@siewert.io>
Reviewed-by: Jamin Lin <jamin_lin@aspeedtech.com>
Link: https://lore.kernel.org/qemu-devel/20250619085329.42125-1-tan@siewert.io
Signed-off-by: Cédric Le Goater <clg@redhat.com>
2025-07-03 13:41:57 +02:00
..
macio qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
a9scu.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
allwinner-a10-ccm.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
allwinner-a10-dramc.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
allwinner-cpucfg.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
allwinner-h3-ccu.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
allwinner-h3-dramc.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
allwinner-h3-sysctrl.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
allwinner-r40-ccu.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
allwinner-r40-dramc.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
allwinner-sid.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
allwinner-sramc.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
applesmc.c qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
arm11scu.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
arm_integrator_debug.c arm: Update infocenter.arm.com URLs 2021-02-11 11:50:14 +00:00
arm_l2x0.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
arm_sysctl.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
armsse-cpu-pwrctrl.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
armsse-cpuid.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
armsse-mhu.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
armv7m_ras.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
aspeed_hace.c hw/misc/aspeed_hace: skip automatic zero-init of large array 2025-06-12 13:40:15 -04:00
aspeed_i3c.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
aspeed_lpc.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
aspeed_peci.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
aspeed_sbc.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
aspeed_scu.c hw/misc/aspeed_scu: Handle AST2600 protection key registers correctly 2025-07-03 13:41:57 +02:00
aspeed_sdmc.c hw/misc/aspeed_sdmc: Skipping dram_init in u-boot for AST2700 2025-07-03 13:41:57 +02:00
aspeed_sli.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
aspeed_xdma.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
auxbus.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
avr_power.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
axp2xx.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
bcm2835_cprman.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
bcm2835_mbox.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
bcm2835_mphi.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
bcm2835_powermgt.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
bcm2835_property.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
bcm2835_rng.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
bcm2835_thermal.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
debugexit.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
djmemc.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
eccmemctl.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
edu.c qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
empty_slot.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
exynos4210_clk.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
exynos4210_pmu.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
exynos4210_rng.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
grlib_ahb_apb_pnp.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
i2c-echo.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
imx6_ccm.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
imx6_src.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
imx6ul_ccm.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
imx7_ccm.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
imx7_gpr.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
imx7_snvs.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
imx7_src.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
imx8mp_analog.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
imx8mp_ccm.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
imx25_ccm.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
imx31_ccm.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02: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 qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
iosb.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
iotkit-secctl.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
iotkit-sysctl.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
iotkit-sysinfo.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
ivshmem-flat.c treewide: update docs file extensions (.txt -> .rst) in comments 2025-07-02 18:26:27 +02:00
ivshmem-pci.c qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
Kconfig hw/misc/pvpanic: Add MMIO interface 2025-03-04 14:45:34 +01:00
lasi.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
led.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
mac_via.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
mchp_pfsoc_dmc.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
mchp_pfsoc_ioscb.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
mchp_pfsoc_sysreg.c hw/misc: Add MPFS system reset support 2025-05-19 13:30:24 +10:00
meson.build hw/misc/pvpanic: Add MMIO interface 2025-03-04 14:45:34 +01:00
mips_cmgcr.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
mips_cpc.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
mips_itu.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
mos6522.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
mps2-fpgaio.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
mps2-scc.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
msf2-sysreg.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
npcm7xx_mft.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
npcm7xx_pwm.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
npcm7xx_rng.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
npcm_clk.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
npcm_gcr.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
nrf51_rng.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
omap_clk.c hw/arm: Replace TABs for spaces in OMAP board and device code 2025-05-14 14:29:47 +01:00
pc-testdev.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
pci-testdev.c pci-testdev.c: Add membar-backed option for backing membar 2025-05-14 05:39:14 -04:00
pvpanic-isa.c qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
pvpanic-mmio.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
pvpanic-pci.c qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
pvpanic.c include: Rename sysemu/ -> system/ 2024-12-20 17:44:56 +01:00
sbsa_ec.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
sifive_e_aon.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02: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 qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
sifive_u_prci.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
slavio_misc.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
stm32_rcc.c hw/misc/stm32_rcc: Fix stm32_rcc_write() arguments order 2025-06-10 12:59:09 +02:00
stm32f2xx_syscfg.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
stm32f4xx_exti.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
stm32f4xx_syscfg.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
stm32l4x5_exti.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
stm32l4x5_rcc.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
stm32l4x5_syscfg.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
trace-events hw/misc/aspeed_hace: Support to dump plaintext and digest for better debugging 2025-05-25 23:39:11 +02:00
trace.h trace: switch position of headers to what Meson requires 2020-08-21 06:18:24 -04:00
tz-mpc.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
tz-msc.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
tz-ppc.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
unimp.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
virt_ctrl.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
vmcoreinfo.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02: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 qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
xlnx-versal-cfu.c qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
xlnx-versal-crl.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
xlnx-versal-pmc-iou-slcr.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
xlnx-versal-trng.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
xlnx-versal-xramc.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
xlnx-zynqmp-apu-ctrl.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
xlnx-zynqmp-crf.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
zynq_slcr.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00