diff options
author | Andreas Sandberg <andreas.sandberg@arm.com> | 2015-07-07 10:03:13 +0100 |
---|---|---|
committer | Andreas Sandberg <andreas.sandberg@arm.com> | 2015-07-07 10:03:13 +0100 |
commit | c2740578404b4e46d198de70af1cfd554033d99f (patch) | |
tree | bb97478f7d31251d5b1bb0013b6b06b16ca0712c /ext/nomali/lib/mali_midgard.hh | |
parent | a0cbf5541133e58968919991635797babaad2a18 (diff) | |
download | gem5-c2740578404b4e46d198de70af1cfd554033d99f.tar.xz |
ext: Add the NoMali GPU no-simulation library
Add revision 9adf9d6e2d889a483a92136c96eb8a434d360561 of NoMali-model
from https://github.com/ARM-software/nomali-model. This library
implements the register interface of the Mali T6xx/T7xx series GPUs,
but doesn't do any rendering. It can be used to hide the effects of
software rendering.
Diffstat (limited to 'ext/nomali/lib/mali_midgard.hh')
-rw-r--r-- | ext/nomali/lib/mali_midgard.hh | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/ext/nomali/lib/mali_midgard.hh b/ext/nomali/lib/mali_midgard.hh new file mode 100644 index 000000000..1030b3f49 --- /dev/null +++ b/ext/nomali/lib/mali_midgard.hh @@ -0,0 +1,70 @@ +/* + * Copyright (c) 2014-2015 ARM Limited + * All rights reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Authors: Andreas Sandberg + */ + +#ifndef _LIBNOMALIMODEL_MALI_MIDGARD_HH +#define _LIBNOMALIMODEL_MALI_MIDGARD_HH + +#include "gpu.hh" + +#include "gpucontrol.hh" +#include "jobcontrol.hh" +#include "mmu.hh" + +namespace NoMali { + +/** + * Base class for Midgard based GPUs + */ +class MaliMidgard + : public GPU +{ + public: + MaliMidgard(unsigned gpuType, + unsigned major, unsigned minor, unsigned status); + MaliMidgard(uint32_t gpuId); + virtual ~MaliMidgard(); + + + protected: + class GPUControlSpec + : public GPUControl + { + public: + GPUControlSpec(MaliMidgard &_gpu) + : GPUControl(_gpu), midgard(_gpu) {} + + void reset() override; + + private: + MaliMidgard &midgard; + }; + + virtual void setupControlIdRegisters(RegVector ®s); + + GPUControlSpec gpuControl; + JobControl jobControl; + MMU mmu; + + private: + const uint32_t gpuId; +}; + +} + +#endif // _LIBNOMALIMODEL_MALI_MIDGARD_HH |