mmu.cc revision 10915:71ace17ccb3d
1/* 2 * Copyright (c) 2014-2015 ARM Limited 3 * All rights reserved 4 * 5 * Licensed under the Apache License, Version 2.0 (the "License"); 6 * you may not use this file except in compliance with the License. 7 * You may obtain a copy of the License at 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 * 17 * Authors: Andreas Sandberg 18 */ 19 20#include "mmu.hh" 21 22#include "gpu.hh" 23#include "regutils.hh" 24 25namespace NoMali { 26 27MMU::MMU(GPU &_gpu) 28 : GPUBlockInt(_gpu, 29 RegAddr(MMU_IRQ_RAWSTAT), 30 RegAddr(MMU_IRQ_CLEAR), 31 RegAddr(MMU_IRQ_MASK), 32 RegAddr(MMU_IRQ_STATUS)), 33 regs(BLOCK_NUM_REGS) 34{ 35} 36 37MMU::~MMU() 38{ 39} 40 41void 42MMU::writeReg(RegAddr addr, uint32_t value) 43{ 44 switch (addr.value) { 45 case MMU_IRQ_RAWSTAT: 46 case MMU_IRQ_CLEAR: 47 case MMU_IRQ_MASK: 48 case MMU_IRQ_STATUS: 49 GPUBlockInt::writeReg(addr, value); 50 break; 51 52 default: 53 // Ignore writes by default 54 break; 55 }; 56} 57 58void 59MMU::onInterrupt(int set) 60{ 61 gpu.intMMU(set); 62} 63 64} 65