mmu.hh revision 10915
110915Sandreas.sandberg@arm.com/*
210915Sandreas.sandberg@arm.com * Copyright (c) 2014-2015 ARM Limited
310915Sandreas.sandberg@arm.com * All rights reserved
410915Sandreas.sandberg@arm.com *
510915Sandreas.sandberg@arm.com * Licensed under the Apache License, Version 2.0 (the "License");
610915Sandreas.sandberg@arm.com * you may not use this file except in compliance with the License.
710915Sandreas.sandberg@arm.com * You may obtain a copy of the License at
810915Sandreas.sandberg@arm.com *
910915Sandreas.sandberg@arm.com *     http://www.apache.org/licenses/LICENSE-2.0
1010915Sandreas.sandberg@arm.com *
1110915Sandreas.sandberg@arm.com * Unless required by applicable law or agreed to in writing, software
1210915Sandreas.sandberg@arm.com * distributed under the License is distributed on an "AS IS" BASIS,
1310915Sandreas.sandberg@arm.com * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1410915Sandreas.sandberg@arm.com * See the License for the specific language governing permissions and
1510915Sandreas.sandberg@arm.com * limitations under the License.
1610915Sandreas.sandberg@arm.com *
1710915Sandreas.sandberg@arm.com * Authors: Andreas Sandberg
1810915Sandreas.sandberg@arm.com */
1910915Sandreas.sandberg@arm.com
2010915Sandreas.sandberg@arm.com#ifndef _LIBNOMALIMODEL_MMU_HH
2110915Sandreas.sandberg@arm.com#define _LIBNOMALIMODEL_MMU_HH
2210915Sandreas.sandberg@arm.com
2310915Sandreas.sandberg@arm.com#include <vector>
2410915Sandreas.sandberg@arm.com
2510915Sandreas.sandberg@arm.com#include "gpublock.hh"
2610915Sandreas.sandberg@arm.com#include "types.hh"
2710915Sandreas.sandberg@arm.com
2810915Sandreas.sandberg@arm.comnamespace NoMali {
2910915Sandreas.sandberg@arm.com
3010915Sandreas.sandberg@arm.comclass GPU;
3110915Sandreas.sandberg@arm.com
3210915Sandreas.sandberg@arm.com/**
3310915Sandreas.sandberg@arm.com * MMU dummy implementation.
3410915Sandreas.sandberg@arm.com *
3510915Sandreas.sandberg@arm.com * This is a dummy implementation of a Midgard GPU MMU block. The only
3610915Sandreas.sandberg@arm.com * features supported by the block is interrupt delivery and registers
3710915Sandreas.sandberg@arm.com * related to interrupt delivery. Writes to unimplemented registers
3810915Sandreas.sandberg@arm.com * (most registers) are discarded and their values are read as zero.
3910915Sandreas.sandberg@arm.com */
4010915Sandreas.sandberg@arm.comclass MMU
4110915Sandreas.sandberg@arm.com    : public GPUBlockInt
4210915Sandreas.sandberg@arm.com{
4310915Sandreas.sandberg@arm.com  public:
4410915Sandreas.sandberg@arm.com    MMU(GPU &_gpu);
4510915Sandreas.sandberg@arm.com    virtual ~MMU();
4610915Sandreas.sandberg@arm.com
4710915Sandreas.sandberg@arm.com    void writeReg(RegAddr idx, uint32_t value) override;
4810915Sandreas.sandberg@arm.com
4910915Sandreas.sandberg@arm.com  protected:
5010915Sandreas.sandberg@arm.com    void onInterrupt(int set) override;
5110915Sandreas.sandberg@arm.com
5210915Sandreas.sandberg@arm.com    RegVector regs;
5310915Sandreas.sandberg@arm.com};
5410915Sandreas.sandberg@arm.com
5510915Sandreas.sandberg@arm.com}
5610915Sandreas.sandberg@arm.com
5710915Sandreas.sandberg@arm.com#endif // _LIBNOMALIMODEL_MMU_HH
58