Blame sim/bfin/dv-bfin_mmu.h

Packit Service 706eca
/* Blackfin Memory Management Unit (MMU) model.
Packit Service 706eca
Packit Service 706eca
   Copyright (C) 2010-2018 Free Software Foundation, Inc.
Packit Service 706eca
   Contributed by Analog Devices, Inc.
Packit Service 706eca
Packit Service 706eca
   This file is part of simulators.
Packit Service 706eca
Packit Service 706eca
   This program is free software; you can redistribute it and/or modify
Packit Service 706eca
   it under the terms of the GNU General Public License as published by
Packit Service 706eca
   the Free Software Foundation; either version 3 of the License, or
Packit Service 706eca
   (at your option) any later version.
Packit Service 706eca
Packit Service 706eca
   This program is distributed in the hope that it will be useful,
Packit Service 706eca
   but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit Service 706eca
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Packit Service 706eca
   GNU General Public License for more details.
Packit Service 706eca
Packit Service 706eca
   You should have received a copy of the GNU General Public License
Packit Service 706eca
   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
Packit Service 706eca
Packit Service 706eca
#ifndef DV_BFIN_MMU_H
Packit Service 706eca
#define DV_BFIN_MMU_H
Packit Service 706eca
Packit Service 706eca
void mmu_check_addr (SIM_CPU *, bu32 addr, bool write, bool inst, int size);
Packit Service 706eca
void mmu_check_cache_addr (SIM_CPU *, bu32 addr, bool write, bool inst);
Packit Service 706eca
void mmu_process_fault (SIM_CPU *, bu32 addr, bool write, bool inst, bool unaligned, bool miss);
Packit Service 706eca
void mmu_log_ifault (SIM_CPU *);
Packit Service 706eca
Packit Service 706eca
/* MEM_CONTROL */
Packit Service 706eca
#define ENM    (1 << 0)
Packit Service 706eca
#define ENCPLB (1 << 1)
Packit Service 706eca
#define MC     (1 << 2)
Packit Service 706eca
Packit Service 706eca
#define ENDM         ENM
Packit Service 706eca
#define ENDCPLB      ENCPLB
Packit Service 706eca
#define DMC_AB_SRAM      0x0
Packit Service 706eca
#define DMC_AB_CACHE     0xc
Packit Service 706eca
#define DMC_ACACHE_BSRAM 0x8
Packit Service 706eca
Packit Service 706eca
/* CPLB_DATA */
Packit Service 706eca
#define CPLB_VALID   (1 << 0)
Packit Service 706eca
#define CPLB_USER_RD (1 << 2)
Packit Service 706eca
#define CPLB_USER_WR (1 << 3)
Packit Service 706eca
#define CPLB_USER_RW (CPLB_USER_RD | CPLB_USER_WR)
Packit Service 706eca
#define CPLB_SUPV_WR (1 << 4)
Packit Service 706eca
#define CPLB_L1SRAM  (1 << 5)
Packit Service 706eca
#define CPLB_DA0ACC  (1 << 6)
Packit Service 706eca
#define CPLB_DIRTY   (1 << 7)
Packit Service 706eca
#define CPLB_L1_CHBL (1 << 12)
Packit Service 706eca
#define CPLB_WT      (1 << 14)
Packit Service 706eca
#define PAGE_SIZE    (3 << 16)
Packit Service 706eca
#define PAGE_SIZE_1K (0 << 16)
Packit Service 706eca
#define PAGE_SIZE_4K (1 << 16)
Packit Service 706eca
#define PAGE_SIZE_1M (2 << 16)
Packit Service 706eca
#define PAGE_SIZE_4M (3 << 16)
Packit Service 706eca
Packit Service 706eca
/* CPLB_STATUS */
Packit Service 706eca
#define FAULT_CPLB0   (1 << 0)
Packit Service 706eca
#define FAULT_CPLB1   (1 << 1)
Packit Service 706eca
#define FAULT_CPLB2   (1 << 2)
Packit Service 706eca
#define FAULT_CPLB3   (1 << 3)
Packit Service 706eca
#define FAULT_CPLB4   (1 << 4)
Packit Service 706eca
#define FAULT_CPLB5   (1 << 5)
Packit Service 706eca
#define FAULT_CPLB6   (1 << 6)
Packit Service 706eca
#define FAULT_CPLB7   (1 << 7)
Packit Service 706eca
#define FAULT_CPLB8   (1 << 8)
Packit Service 706eca
#define FAULT_CPLB9   (1 << 9)
Packit Service 706eca
#define FAULT_CPLB10  (1 << 10)
Packit Service 706eca
#define FAULT_CPLB11  (1 << 11)
Packit Service 706eca
#define FAULT_CPLB12  (1 << 12)
Packit Service 706eca
#define FAULT_CPLB13  (1 << 13)
Packit Service 706eca
#define FAULT_CPLB14  (1 << 14)
Packit Service 706eca
#define FAULT_CPLB15  (1 << 15)
Packit Service 706eca
#define FAULT_READ    (0 << 16)
Packit Service 706eca
#define FAULT_WRITE   (1 << 16)
Packit Service 706eca
#define FAULT_USER    (0 << 17)
Packit Service 706eca
#define FAULT_SUPV    (1 << 17)
Packit Service 706eca
#define FAULT_DAG0    (0 << 18)
Packit Service 706eca
#define FAULT_DAG1    (1 << 18)
Packit Service 706eca
#define FAULT_ILLADDR (1 << 19)
Packit Service 706eca
Packit Service 706eca
/* DTEST_COMMAND */
Packit Service 706eca
#define TEST_READ       (0 << 1)
Packit Service 706eca
#define TEST_WRITE      (1 << 1)
Packit Service 706eca
#define TEST_TAG_ARRAY  (0 << 2)
Packit Service 706eca
#define TEST_DATA_ARRAY (1 << 2)
Packit Service 706eca
#define TEST_DBANK      (1 << 23)
Packit Service 706eca
#define TEST_DATA_SRAM  (0 << 24)
Packit Service 706eca
#define TEST_INST_SRAM  (1 << 24)
Packit Service 706eca
Packit Service 706eca
#endif