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