mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-21 04:42:53 +08:00
f2db709f4f
Pull the model data (register addresses/sizes) out of the different model files and into the machs.h header. The models themselves don't care about where they're mapped, only the mach code does. This allows us to keep the model headers from being included in the mach code which can cause issues with model-specific names colliding. Such as when a newer device model is created, but with incompatible register names/layouts. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
104 lines
3.2 KiB
C
104 lines
3.2 KiB
C
/* Simulator for Analog Devices Blackfin processors.
|
|
|
|
Copyright (C) 2005-2011 Free Software Foundation, Inc.
|
|
Contributed by Analog Devices, Inc.
|
|
|
|
This file is part of simulators.
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation; either version 3 of the License, or
|
|
(at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
|
|
|
#ifndef _BFIN_MACHS_H_
|
|
#define _BFIN_MACHS_H_
|
|
|
|
typedef enum model_type {
|
|
#define P(n) MODEL_BF##n,
|
|
#include "proc_list.def"
|
|
#undef P
|
|
MODEL_MAX
|
|
} MODEL_TYPE;
|
|
|
|
typedef enum mach_attr {
|
|
MACH_BASE,
|
|
MACH_BFIN,
|
|
MACH_MAX
|
|
} MACH_ATTR;
|
|
|
|
#define CPU_MODEL_NUM(cpu) MODEL_NUM (CPU_MODEL (cpu))
|
|
|
|
/* XXX: Some of this probably belongs in CPU_MODEL. */
|
|
struct bfin_board_data {
|
|
unsigned int sirev, sirev_valid;
|
|
const char *hw_file;
|
|
};
|
|
|
|
void bfin_model_cpu_init (SIM_DESC, SIM_CPU *);
|
|
bu32 bfin_model_get_chipid (SIM_DESC);
|
|
bu32 bfin_model_get_dspid (SIM_DESC);
|
|
|
|
enum {
|
|
#define I(insn) BFIN_INSN_##insn,
|
|
#include "insn_list.def"
|
|
#undef I
|
|
BFIN_INSN_MAX
|
|
};
|
|
|
|
#define BFIN_COREMMR_CEC_BASE 0xFFE02100
|
|
#define BFIN_COREMMR_CEC_SIZE (4 * 5)
|
|
#define BFIN_COREMMR_CTIMER_BASE 0xFFE03000
|
|
#define BFIN_COREMMR_CTIMER_SIZE (4 * 4)
|
|
#define BFIN_COREMMR_EVT_BASE 0xFFE02000
|
|
#define BFIN_COREMMR_EVT_SIZE (4 * 16)
|
|
#define BFIN_COREMMR_JTAG_BASE 0xFFE05000
|
|
#define BFIN_COREMMR_JTAG_SIZE (4 * 3)
|
|
#define BFIN_COREMMR_MMU_BASE 0xFFE00000
|
|
#define BFIN_COREMMR_MMU_SIZE 0x2000
|
|
#define BFIN_COREMMR_PFMON_BASE 0xFFE08000
|
|
#define BFIN_COREMMR_PFMON_SIZE 0x108
|
|
#define BFIN_COREMMR_TRACE_BASE 0xFFE06000
|
|
#define BFIN_COREMMR_TRACE_SIZE (4 * 65)
|
|
#define BFIN_COREMMR_WP_BASE 0xFFE07000
|
|
#define BFIN_COREMMR_WP_SIZE 0x204
|
|
|
|
#define BFIN_MMR_DMA_SIZE (4 * 16)
|
|
#define BFIN_MMR_DMAC0_BASE 0xFFC00C00
|
|
#define BFIN_MMR_DMAC1_BASE 0xFFC01C00
|
|
#define BFIN_MMR_EBIU_AMC_SIZE (4 * 3)
|
|
#define BF50X_MMR_EBIU_AMC_SIZE 0x28
|
|
#define BF54X_MMR_EBIU_AMC_SIZE (4 * 7)
|
|
#define BFIN_MMR_EBIU_DDRC_SIZE 0xb0
|
|
#define BFIN_MMR_EBIU_SDC_SIZE (4 * 4)
|
|
#define BFIN_MMR_EMAC_BASE 0xFFC03000
|
|
#define BFIN_MMR_EMAC_SIZE 0x200
|
|
#define BFIN_MMR_EPPI_SIZE 0x40
|
|
#define BFIN_MMR_GPIO_SIZE (17 * 4)
|
|
#define BFIN_MMR_GPTIMER_SIZE (4 * 4)
|
|
#define BFIN_MMR_NFC_SIZE 0x50
|
|
/* XXX: Not exactly true; it's two sets of 4 regs near each other:
|
|
0xFFC03600 0x10 - Control
|
|
0xFFC03680 0x10 - Data */
|
|
#define BFIN_MMR_OTP_SIZE 0xa0
|
|
#define BFIN_MMR_PLL_BASE 0xFFC00000
|
|
#define BFIN_MMR_PLL_SIZE (4 * 6)
|
|
#define BFIN_MMR_PPI_SIZE (4 * 5)
|
|
#define BFIN_MMR_RTC_SIZE (4 * 6)
|
|
#define BFIN_MMR_SIC_BASE 0xFFC00100
|
|
#define BFIN_MMR_SIC_SIZE 0x100
|
|
#define BFIN_MMR_SPI_SIZE (4 * 7)
|
|
#define BFIN_MMR_TWI_SIZE 0x90
|
|
#define BFIN_MMR_WDOG_SIZE (4 * 3)
|
|
#define BFIN_MMR_UART_SIZE 0x30
|
|
#define BFIN_MMR_UART2_SIZE 0x30
|
|
|
|
#endif
|