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