xref: /qemu/include/hw/misc/allwinner-sid.h (revision db1015e92e04835c9eb50c29625fe566d1202dbd)
16556617cSNiek Linnenbank /*
26556617cSNiek Linnenbank  * Allwinner Security ID emulation
36556617cSNiek Linnenbank  *
46556617cSNiek Linnenbank  * Copyright (C) 2019 Niek Linnenbank <nieklinnenbank@gmail.com>
56556617cSNiek Linnenbank  *
66556617cSNiek Linnenbank  * This program is free software: you can redistribute it and/or modify
76556617cSNiek Linnenbank  * it under the terms of the GNU General Public License as published by
86556617cSNiek Linnenbank  * the Free Software Foundation, either version 2 of the License, or
96556617cSNiek Linnenbank  * (at your option) any later version.
106556617cSNiek Linnenbank  *
116556617cSNiek Linnenbank  * This program is distributed in the hope that it will be useful,
126556617cSNiek Linnenbank  * but WITHOUT ANY WARRANTY; without even the implied warranty of
136556617cSNiek Linnenbank  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
146556617cSNiek Linnenbank  * GNU General Public License for more details.
156556617cSNiek Linnenbank  *
166556617cSNiek Linnenbank  * You should have received a copy of the GNU General Public License
176556617cSNiek Linnenbank  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
186556617cSNiek Linnenbank  */
196556617cSNiek Linnenbank 
206556617cSNiek Linnenbank #ifndef HW_MISC_ALLWINNER_SID_H
216556617cSNiek Linnenbank #define HW_MISC_ALLWINNER_SID_H
226556617cSNiek Linnenbank 
236556617cSNiek Linnenbank #include "qom/object.h"
246556617cSNiek Linnenbank #include "hw/sysbus.h"
256556617cSNiek Linnenbank #include "qemu/uuid.h"
266556617cSNiek Linnenbank 
276556617cSNiek Linnenbank /**
286556617cSNiek Linnenbank  * Object model
296556617cSNiek Linnenbank  * @{
306556617cSNiek Linnenbank  */
316556617cSNiek Linnenbank 
326556617cSNiek Linnenbank #define TYPE_AW_SID    "allwinner-sid"
33*db1015e9SEduardo Habkost typedef struct AwSidState AwSidState;
346556617cSNiek Linnenbank #define AW_SID(obj) \
356556617cSNiek Linnenbank     OBJECT_CHECK(AwSidState, (obj), TYPE_AW_SID)
366556617cSNiek Linnenbank 
376556617cSNiek Linnenbank /** @} */
386556617cSNiek Linnenbank 
396556617cSNiek Linnenbank /**
406556617cSNiek Linnenbank  * Allwinner Security ID object instance state
416556617cSNiek Linnenbank  */
42*db1015e9SEduardo Habkost struct AwSidState {
436556617cSNiek Linnenbank     /*< private >*/
446556617cSNiek Linnenbank     SysBusDevice parent_obj;
456556617cSNiek Linnenbank     /*< public >*/
466556617cSNiek Linnenbank 
476556617cSNiek Linnenbank     /** Maps I/O registers in physical memory */
486556617cSNiek Linnenbank     MemoryRegion iomem;
496556617cSNiek Linnenbank 
506556617cSNiek Linnenbank     /** Control register defines how and what to read */
516556617cSNiek Linnenbank     uint32_t control;
526556617cSNiek Linnenbank 
536556617cSNiek Linnenbank     /** RdKey register contains the data retrieved by the device */
546556617cSNiek Linnenbank     uint32_t rdkey;
556556617cSNiek Linnenbank 
566556617cSNiek Linnenbank     /** Stores the emulated device identifier */
576556617cSNiek Linnenbank     QemuUUID identifier;
586556617cSNiek Linnenbank 
59*db1015e9SEduardo Habkost };
606556617cSNiek Linnenbank 
616556617cSNiek Linnenbank #endif /* HW_MISC_ALLWINNER_SID_H */
62