xref: /openbmc/qemu/include/hw/nvram/aspeed_otp.h (revision 12ef88d8cdcd26ee5db3bfb5516c2dddc601aadb)
1*12ef88d8SKane-Chen-AS /*
2*12ef88d8SKane-Chen-AS  *  ASPEED OTP (One-Time Programmable) memory
3*12ef88d8SKane-Chen-AS  *
4*12ef88d8SKane-Chen-AS  *  Copyright (C) 2025 Aspeed
5*12ef88d8SKane-Chen-AS  *
6*12ef88d8SKane-Chen-AS  *  SPDX-License-Identifier: GPL-2.0-or-later
7*12ef88d8SKane-Chen-AS  */
8*12ef88d8SKane-Chen-AS 
9*12ef88d8SKane-Chen-AS #ifndef ASPEED_OTP_H
10*12ef88d8SKane-Chen-AS #define ASPEED_OTP_H
11*12ef88d8SKane-Chen-AS 
12*12ef88d8SKane-Chen-AS #include "system/memory.h"
13*12ef88d8SKane-Chen-AS #include "hw/block/block.h"
14*12ef88d8SKane-Chen-AS #include "system/address-spaces.h"
15*12ef88d8SKane-Chen-AS 
16*12ef88d8SKane-Chen-AS #define TYPE_ASPEED_OTP "aspeed-otp"
17*12ef88d8SKane-Chen-AS OBJECT_DECLARE_SIMPLE_TYPE(AspeedOTPState, ASPEED_OTP)
18*12ef88d8SKane-Chen-AS 
19*12ef88d8SKane-Chen-AS typedef struct AspeedOTPState {
20*12ef88d8SKane-Chen-AS     DeviceState parent_obj;
21*12ef88d8SKane-Chen-AS 
22*12ef88d8SKane-Chen-AS     BlockBackend *blk;
23*12ef88d8SKane-Chen-AS 
24*12ef88d8SKane-Chen-AS     uint64_t size;
25*12ef88d8SKane-Chen-AS 
26*12ef88d8SKane-Chen-AS     AddressSpace as;
27*12ef88d8SKane-Chen-AS 
28*12ef88d8SKane-Chen-AS     MemoryRegion mmio;
29*12ef88d8SKane-Chen-AS 
30*12ef88d8SKane-Chen-AS     uint8_t *storage;
31*12ef88d8SKane-Chen-AS } AspeedOTPState;
32*12ef88d8SKane-Chen-AS 
33*12ef88d8SKane-Chen-AS #endif /* ASPEED_OTP_H */
34