xref: /qemu/include/hw/misc/allwinner-sid.h (revision 6556617ce1a3c4a2ad91e5c5d1c936ee9134ed04)
1*6556617cSNiek Linnenbank /*
2*6556617cSNiek Linnenbank  * Allwinner Security ID emulation
3*6556617cSNiek Linnenbank  *
4*6556617cSNiek Linnenbank  * Copyright (C) 2019 Niek Linnenbank <nieklinnenbank@gmail.com>
5*6556617cSNiek Linnenbank  *
6*6556617cSNiek Linnenbank  * This program is free software: you can redistribute it and/or modify
7*6556617cSNiek Linnenbank  * it under the terms of the GNU General Public License as published by
8*6556617cSNiek Linnenbank  * the Free Software Foundation, either version 2 of the License, or
9*6556617cSNiek Linnenbank  * (at your option) any later version.
10*6556617cSNiek Linnenbank  *
11*6556617cSNiek Linnenbank  * This program is distributed in the hope that it will be useful,
12*6556617cSNiek Linnenbank  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13*6556617cSNiek Linnenbank  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14*6556617cSNiek Linnenbank  * GNU General Public License for more details.
15*6556617cSNiek Linnenbank  *
16*6556617cSNiek Linnenbank  * You should have received a copy of the GNU General Public License
17*6556617cSNiek Linnenbank  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
18*6556617cSNiek Linnenbank  */
19*6556617cSNiek Linnenbank 
20*6556617cSNiek Linnenbank #ifndef HW_MISC_ALLWINNER_SID_H
21*6556617cSNiek Linnenbank #define HW_MISC_ALLWINNER_SID_H
22*6556617cSNiek Linnenbank 
23*6556617cSNiek Linnenbank #include "qom/object.h"
24*6556617cSNiek Linnenbank #include "hw/sysbus.h"
25*6556617cSNiek Linnenbank #include "qemu/uuid.h"
26*6556617cSNiek Linnenbank 
27*6556617cSNiek Linnenbank /**
28*6556617cSNiek Linnenbank  * Object model
29*6556617cSNiek Linnenbank  * @{
30*6556617cSNiek Linnenbank  */
31*6556617cSNiek Linnenbank 
32*6556617cSNiek Linnenbank #define TYPE_AW_SID    "allwinner-sid"
33*6556617cSNiek Linnenbank #define AW_SID(obj) \
34*6556617cSNiek Linnenbank     OBJECT_CHECK(AwSidState, (obj), TYPE_AW_SID)
35*6556617cSNiek Linnenbank 
36*6556617cSNiek Linnenbank /** @} */
37*6556617cSNiek Linnenbank 
38*6556617cSNiek Linnenbank /**
39*6556617cSNiek Linnenbank  * Allwinner Security ID object instance state
40*6556617cSNiek Linnenbank  */
41*6556617cSNiek Linnenbank typedef struct AwSidState {
42*6556617cSNiek Linnenbank     /*< private >*/
43*6556617cSNiek Linnenbank     SysBusDevice parent_obj;
44*6556617cSNiek Linnenbank     /*< public >*/
45*6556617cSNiek Linnenbank 
46*6556617cSNiek Linnenbank     /** Maps I/O registers in physical memory */
47*6556617cSNiek Linnenbank     MemoryRegion iomem;
48*6556617cSNiek Linnenbank 
49*6556617cSNiek Linnenbank     /** Control register defines how and what to read */
50*6556617cSNiek Linnenbank     uint32_t control;
51*6556617cSNiek Linnenbank 
52*6556617cSNiek Linnenbank     /** RdKey register contains the data retrieved by the device */
53*6556617cSNiek Linnenbank     uint32_t rdkey;
54*6556617cSNiek Linnenbank 
55*6556617cSNiek Linnenbank     /** Stores the emulated device identifier */
56*6556617cSNiek Linnenbank     QemuUUID identifier;
57*6556617cSNiek Linnenbank 
58*6556617cSNiek Linnenbank } AwSidState;
59*6556617cSNiek Linnenbank 
60*6556617cSNiek Linnenbank #endif /* HW_MISC_ALLWINNER_SID_H */
61