xref: /qemu/include/hw/rx/rx62n.h (revision da96ad4a6a2ef26c83b15fa95e7fceef5147269c)
10c80f50fSYoshinori Sato /*
20c80f50fSYoshinori Sato  * RX62N MCU Object
30c80f50fSYoshinori Sato  *
40c80f50fSYoshinori Sato  * Datasheet: RX62N Group, RX621 Group User's Manual: Hardware
50c80f50fSYoshinori Sato  *            (Rev.1.40 R01UH0033EJ0140)
60c80f50fSYoshinori Sato  *
70c80f50fSYoshinori Sato  * Copyright (c) 2019 Yoshinori Sato
80c80f50fSYoshinori Sato  *
90c80f50fSYoshinori Sato  * SPDX-License-Identifier: GPL-2.0-or-later
100c80f50fSYoshinori Sato  *
110c80f50fSYoshinori Sato  * This program is free software; you can redistribute it and/or modify it
120c80f50fSYoshinori Sato  * under the terms and conditions of the GNU General Public License,
130c80f50fSYoshinori Sato  * version 2 or later, as published by the Free Software Foundation.
140c80f50fSYoshinori Sato  *
150c80f50fSYoshinori Sato  * This program is distributed in the hope it will be useful, but WITHOUT
160c80f50fSYoshinori Sato  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
170c80f50fSYoshinori Sato  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
180c80f50fSYoshinori Sato  * more details.
190c80f50fSYoshinori Sato  *
200c80f50fSYoshinori Sato  * You should have received a copy of the GNU General Public License along with
210c80f50fSYoshinori Sato  * this program.  If not, see <http://www.gnu.org/licenses/>.
220c80f50fSYoshinori Sato  */
230c80f50fSYoshinori Sato 
24*52581c71SMarkus Armbruster #ifndef HW_RX_RX62N_H
25*52581c71SMarkus Armbruster #define HW_RX_RX62N_H
260c80f50fSYoshinori Sato 
270c80f50fSYoshinori Sato #include "target/rx/cpu.h"
280c80f50fSYoshinori Sato #include "hw/intc/rx_icu.h"
290c80f50fSYoshinori Sato #include "hw/timer/renesas_tmr.h"
300c80f50fSYoshinori Sato #include "hw/timer/renesas_cmt.h"
310c80f50fSYoshinori Sato #include "hw/char/renesas_sci.h"
32db1015e9SEduardo Habkost #include "qom/object.h"
330c80f50fSYoshinori Sato 
340c80f50fSYoshinori Sato #define TYPE_RX62N_MCU "rx62n-mcu"
35db1015e9SEduardo Habkost typedef struct RX62NState RX62NState;
368110fa1dSEduardo Habkost DECLARE_INSTANCE_CHECKER(RX62NState, RX62N_MCU,
378110fa1dSEduardo Habkost                          TYPE_RX62N_MCU)
380c80f50fSYoshinori Sato 
391db2086eSPhilippe Mathieu-Daudé #define TYPE_R5F562N7_MCU "r5f562n7-mcu"
401db2086eSPhilippe Mathieu-Daudé #define TYPE_R5F562N8_MCU "r5f562n8-mcu"
411db2086eSPhilippe Mathieu-Daudé 
42bda19d7bSYoshinori Sato #define EXT_CS_BASE         0x01000000
43bda19d7bSYoshinori Sato #define VECTOR_TABLE_BASE   0xffffff80
44bda19d7bSYoshinori Sato #define RX62N_CFLASH_BASE   0xfff80000
45bda19d7bSYoshinori Sato 
460c80f50fSYoshinori Sato #define RX62N_NR_TMR    2
470c80f50fSYoshinori Sato #define RX62N_NR_CMT    2
480c80f50fSYoshinori Sato #define RX62N_NR_SCI    6
490c80f50fSYoshinori Sato 
50db1015e9SEduardo Habkost struct RX62NState {
510c80f50fSYoshinori Sato     /*< private >*/
520c80f50fSYoshinori Sato     DeviceState parent_obj;
530c80f50fSYoshinori Sato     /*< public >*/
540c80f50fSYoshinori Sato 
550c80f50fSYoshinori Sato     RXCPU cpu;
560c80f50fSYoshinori Sato     RXICUState icu;
570c80f50fSYoshinori Sato     RTMRState tmr[RX62N_NR_TMR];
580c80f50fSYoshinori Sato     RCMTState cmt[RX62N_NR_CMT];
590c80f50fSYoshinori Sato     RSCIState sci[RX62N_NR_SCI];
600c80f50fSYoshinori Sato 
610c80f50fSYoshinori Sato     MemoryRegion *sysmem;
620c80f50fSYoshinori Sato     bool kernel;
630c80f50fSYoshinori Sato 
640c80f50fSYoshinori Sato     MemoryRegion iram;
650c80f50fSYoshinori Sato     MemoryRegion iomem1;
660c80f50fSYoshinori Sato     MemoryRegion d_flash;
670c80f50fSYoshinori Sato     MemoryRegion iomem2;
680c80f50fSYoshinori Sato     MemoryRegion iomem3;
690c80f50fSYoshinori Sato     MemoryRegion c_flash;
701db2086eSPhilippe Mathieu-Daudé 
711db2086eSPhilippe Mathieu-Daudé     /* Input Clock (XTAL) frequency */
721db2086eSPhilippe Mathieu-Daudé     uint32_t xtal_freq_hz;
731db2086eSPhilippe Mathieu-Daudé     /* Peripheral Module Clock frequency */
741db2086eSPhilippe Mathieu-Daudé     uint32_t pclk_freq_hz;
75db1015e9SEduardo Habkost };
760c80f50fSYoshinori Sato 
770c80f50fSYoshinori Sato #endif
78