xref: /qemu/include/hw/misc/djmemc.h (revision f7294103560260ff09ffdf316cf6ba6d4e368d85)
1*e2fd695eSMark Cave-Ayland /*
2*e2fd695eSMark Cave-Ayland  * djMEMC, macintosh memory and interrupt controller
3*e2fd695eSMark Cave-Ayland  * (Quadra 610/650/800 & Centris 610/650)
4*e2fd695eSMark Cave-Ayland  *
5*e2fd695eSMark Cave-Ayland  * SPDX-License-Identifier: GPL-2.0-or-later
6*e2fd695eSMark Cave-Ayland  */
7*e2fd695eSMark Cave-Ayland 
8*e2fd695eSMark Cave-Ayland #ifndef HW_MISC_DJMEMC_H
9*e2fd695eSMark Cave-Ayland #define HW_MISC_DJMEMC_H
10*e2fd695eSMark Cave-Ayland 
11*e2fd695eSMark Cave-Ayland #include "hw/sysbus.h"
12*e2fd695eSMark Cave-Ayland 
13*e2fd695eSMark Cave-Ayland #define DJMEMC_SIZE        0x2000
14*e2fd695eSMark Cave-Ayland #define DJMEMC_NUM_REGS    (0x38 / sizeof(uint32_t))
15*e2fd695eSMark Cave-Ayland 
16*e2fd695eSMark Cave-Ayland #define DJMEMC_MAXBANKS    10
17*e2fd695eSMark Cave-Ayland 
18*e2fd695eSMark Cave-Ayland struct DJMEMCState {
19*e2fd695eSMark Cave-Ayland     SysBusDevice parent_obj;
20*e2fd695eSMark Cave-Ayland 
21*e2fd695eSMark Cave-Ayland     MemoryRegion mem_regs;
22*e2fd695eSMark Cave-Ayland 
23*e2fd695eSMark Cave-Ayland     /* Memory controller */
24*e2fd695eSMark Cave-Ayland     uint32_t regs[DJMEMC_NUM_REGS];
25*e2fd695eSMark Cave-Ayland };
26*e2fd695eSMark Cave-Ayland 
27*e2fd695eSMark Cave-Ayland #define TYPE_DJMEMC "djMEMC"
28*e2fd695eSMark Cave-Ayland OBJECT_DECLARE_SIMPLE_TYPE(DJMEMCState, DJMEMC);
29*e2fd695eSMark Cave-Ayland 
30*e2fd695eSMark Cave-Ayland #endif
31