qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v5 00/10] aspeed: OTP model, SBC integration, tests, and docs
@ 2025-08-12  9:39 Kane Chen via
  2025-08-12  9:39 ` [PATCH v5 01/10] hw/nvram/aspeed_otp: Add ASPEED OTP memory device model Kane Chen via
                   ` (10 more replies)
  0 siblings, 11 replies; 20+ messages in thread
From: Kane Chen via @ 2025-08-12  9:39 UTC (permalink / raw)
  To: Cédric Le Goater, Peter Maydell, Steven Lee, Troy Lee,
	Jamin Lin, Andrew Jeffery, Joel Stanley, open list:ASPEED BMCs,
	open list:All patches CC here
  Cc: troy_lee, Kane-Chen-AS

From: Kane-Chen-AS <kane_chen@aspeedtech.com>

This patch series extends the QEMU model for the ASPEED OTP (One-Time
Programmable) memory device with block backend support and tighter
integration with the SoC and machine configuration.

The OTP model simulates a simple fuse array used in ASPEED SoCs for
secure boot, configuration, key storage, and user-programmable data.
The updated model adds support for loading initial OTP content from a
file via the QEMU CLI.

Example usage:
  ./qemu-system-arm \
    -machine ast2600-evb \
    -blockdev driver=file,filename=otpmem.img,node-name=otp \
    -global aspeed-otp.drive=otp \
    ...

Any feedback or suggestions are appreciated!

Kane
---

ChangeLog
---------
v5:
- Add OTP programming semantics and tracing
- Integrate OTP into AST1030 SoC
- Add CAMP2 register support for reading both DWORDs of OTP data
  entries
- Handle voltage mode write commands to avoid misreporting valid
  requests as "Unknown command"
- Add functional test to verify firmware boot with a pre-configured
  OTP image
- Add documentation for OTP memory options in QEMU

v4:
- Add a 'drive' property to allow backing OTP data with a block device
- Expose a machine parameter (`-machine otpmem=XXX`) for convenient
  aliasing of the OTP drive via QOM path

v3:
- Switched to object_property_set_int() for setting "size"
- Simplified qdev_realize() error handling by passing errp directly
- Added "drive" property to OTP model for future extensibility

v2:
- Rename device from 'aspeed_otpmem' to 'aspeed_otp' and move it to hw/nvram/
- Move OTP device realization from instance_init to the realize function
- Improve error logging with qemu_log_mask() and remove unused error propagation

v1:
- Initial version

---

Kane-Chen-AS (10):
  hw/nvram/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/nvram/aspeed_otp: Add 'drive' property to support block backend
  hw/nvram/aspeed_otp: Add OTP programming semantics and tracing
  hw/arm: Integrate ASPEED OTP memory support into AST1030 SoCs
  hw/misc/aspeed_sbc: Add CAMP2 support for OTP data reads
  hw/misc/aspeed_sbc: Handle OTP write command for voltage mode
    registers
  tests/function/aspeed: Add OTP functional test
  docs/system/arm/aspeed: Document OTP memory options

 docs/system/arm/aspeed.rst              |  31 ++++
 include/hw/misc/aspeed_sbc.h            |   6 +
 include/hw/nvram/aspeed_otp.h           |  33 ++++
 hw/arm/aspeed_ast10x0.c                 |   2 +-
 hw/arm/aspeed_ast2600.c                 |   2 +-
 hw/misc/aspeed_sbc.c                    | 196 ++++++++++++++++++++++++
 hw/nvram/aspeed_otp.c                   | 190 +++++++++++++++++++++++
 hw/misc/trace-events                    |   6 +
 hw/nvram/meson.build                    |   4 +
 hw/nvram/trace-events                   |   5 +
 tests/functional/meson.build            |   2 +
 tests/functional/test_arm_aspeed_otp.py |  55 +++++++
 12 files changed, 530 insertions(+), 2 deletions(-)
 create mode 100644 include/hw/nvram/aspeed_otp.h
 create mode 100644 hw/nvram/aspeed_otp.c
 create mode 100644 tests/functional/test_arm_aspeed_otp.py

-- 
2.43.0



^ permalink raw reply	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2025-09-02  6:06 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-08-12  9:39 [PATCH v5 00/10] aspeed: OTP model, SBC integration, tests, and docs Kane Chen via
2025-08-12  9:39 ` [PATCH v5 01/10] hw/nvram/aspeed_otp: Add ASPEED OTP memory device model Kane Chen via
2025-08-12  9:39 ` [PATCH v5 02/10] hw/misc/aspeed_sbc: Connect ASPEED OTP memory device to SBC Kane Chen via
2025-08-12  9:40 ` [PATCH v5 03/10] hw/arm: Integrate ASPEED OTP memory support into AST2600 SoCs Kane Chen via
2025-08-12  9:40 ` [PATCH v5 04/10] hw/nvram/aspeed_otp: Add 'drive' property to support block backend Kane Chen via
2025-08-12  9:40 ` [PATCH v5 05/10] hw/nvram/aspeed_otp: Add OTP programming semantics and tracing Kane Chen via
2025-09-02  5:32   ` [SPAM] " Cédric Le Goater
2025-08-12  9:40 ` [PATCH v5 06/10] hw/arm: Integrate ASPEED OTP memory support into AST1030 SoCs Kane Chen via
2025-09-02  5:32   ` [SPAM] " Cédric Le Goater
2025-08-12  9:40 ` [PATCH v5 07/10] hw/misc/aspeed_sbc: Add CAMP2 support for OTP data reads Kane Chen via
2025-09-02  5:32   ` [SPAM] " Cédric Le Goater
2025-08-12  9:40 ` [PATCH v5 08/10] hw/misc/aspeed_sbc: Handle OTP write command for voltage mode registers Kane Chen via
2025-09-02  5:32   ` [SPAM] " Cédric Le Goater
2025-08-12  9:40 ` [PATCH v5 09/10] tests/function/aspeed: Add OTP functional test Kane Chen via
2025-09-02  5:41   ` [SPAM] " Cédric Le Goater
2025-09-02  5:48     ` Kane Chen
2025-08-12  9:40 ` [PATCH v5 10/10] docs/system/arm/aspeed: Document OTP memory options Kane Chen via
2025-09-02  5:41   ` [SPAM] " Cédric Le Goater
2025-09-02  5:44 ` [SPAM] [PATCH v5 00/10] aspeed: OTP model, SBC integration, tests, and docs Cédric Le Goater
2025-09-02  6:05   ` Kane Chen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).