From: Kane-Chen-AS <kane_chen@aspeedtech.com>
This patch series introduces a QEMU model for the ASPEED OTP (One-Time
Programmable) memory, along with its integration into the Secure Boot
Controller (SBC) and supported SoC (AST2600).
The OTP model emulates a simple fuse array used for secure boot or
device configuration, implemented with internal buffers; external
file/device support not included in this version. It exposes an
AddressSpace to support transaction-based access from controllers
like the SBC.
This series includes:
- OTP memory device implementation
- SBC integration with command decoding (READ/PROG)
- Direct integration in AST2600 SoC without requiring user parameters
**[RFC notice]**
This is an RFC submission. This version is primarily intended to
gather feedback on how the OTP instance is created, connected, and
integrated in the SoC structure.
A more finalized version with any requested changes, documentation,
and test refinements will follow after review.
Any feedback or suggestions are appreciated!
---
ChangeLog
---------
v6:
- remove machine parameter 'otpmem' and BlockBackend
- remove alias relationship between machine parameter and BlockBackend
- simplify to static internal OTP instance with direct connection in SoC
- Submitted as [RFC] to gather feedback on QOM integration approach
v5:
- Switched to notifier-based late binding between SBC and OTP
- Exposed 'otpmem' as a machine parameter using QOM alias mechanism
- Added fallback support when no backend is provided
- Introduced functional test suite covering multiple init configurations
- Submitted as [RFC] to gather feedback on QOM integration approach
v4:
- Replaces blockdev backend with memory-mapped AddressSpace access
- Switches from `-drive` CLI option to `otpmem` machine parameter
- Restructures the OTP device under the SBC in the QOM tree
v3:
- Minor fixes and refinements on top of v2 content
v2:
- Separated the OTP memory into a standalone QEMU device (`aspeed.otpmem`)
- Replaced ad-hoc file handling with standard `-drive` backend integration
- Linked OTP to SBC via QOM property for cleaner abstraction
- Improved memory bounds checking and irreversible programming logic
v1:
- Embedded OTP logic in the SBC model and created the backing file internally.
---
Kane-Chen-AS (3):
hw/misc/aspeed_otp: Add ASPEED OTP memory device model
hw/misc/aspeed_sbc: Connect ASPEED OTP memory device to SBC
hw/arm: Integrate ASPEED OTP memory support into AST2600 SoCs
hw/arm/aspeed_ast2600.c | 2 +-
hw/misc/aspeed_otpmem.c | 85 +++++++++++++++++++++++++++++
hw/misc/aspeed_sbc.c | 94 +++++++++++++++++++++++++++++++++
hw/misc/meson.build | 1 +
hw/misc/trace-events | 7 +++
include/hw/misc/aspeed_otpmem.h | 33 ++++++++++++
include/hw/misc/aspeed_sbc.h | 5 ++
7 files changed, 226 insertions(+), 1 deletion(-)
create mode 100644 hw/misc/aspeed_otpmem.c
create mode 100644 include/hw/misc/aspeed_otpmem.h
--
2.43.0