q800: add djMEMC memory controller

The djMEMC controller is used to store information related to the physical memory
configuration.

Co-developed-by: Laurent Vivier <laurent@vivier.eu>
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-ID: <20231004083806.757242-3-mark.cave-ayland@ilande.co.uk>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
This commit is contained in:
Mark Cave-Ayland 2023-10-04 09:37:48 +01:00 committed by Laurent Vivier
parent d43e967f69
commit e2fd695e9d
9 changed files with 188 additions and 0 deletions

30
include/hw/misc/djmemc.h Normal file
View file

@ -0,0 +1,30 @@
/*
* djMEMC, macintosh memory and interrupt controller
* (Quadra 610/650/800 & Centris 610/650)
*
* SPDX-License-Identifier: GPL-2.0-or-later
*/
#ifndef HW_MISC_DJMEMC_H
#define HW_MISC_DJMEMC_H
#include "hw/sysbus.h"
#define DJMEMC_SIZE 0x2000
#define DJMEMC_NUM_REGS (0x38 / sizeof(uint32_t))
#define DJMEMC_MAXBANKS 10
struct DJMEMCState {
SysBusDevice parent_obj;
MemoryRegion mem_regs;
/* Memory controller */
uint32_t regs[DJMEMC_NUM_REGS];
};
#define TYPE_DJMEMC "djMEMC"
OBJECT_DECLARE_SIMPLE_TYPE(DJMEMCState, DJMEMC);
#endif