33#ifndef __DEV_AMDGPU_INTERRUPT_HANDLER__
34#define __DEV_AMDGPU_INTERRUPT_HANDLER__
46#include "params/AMDGPUInterruptHandler.hh"
150 return "AMDGPUInterruptHandler Dma";
177 uint32_t client_id, uint32_t source_id,
unsigned node_id);
Defines global host-dependent types: Counter, Tick, and (indirectly) {int,uint}{8,...
Device model for an AMD GPU.
DmaEvent(AMDGPUInterruptHandler *deviceIh, uint32_t data, uint8_t *_dataPtr)
AMDGPUInterruptHandler * deviceIh
void setData(uint32_t _data)
const char * description() const
Return a C string describing the event.
void setGPUDevice(AMDGPUDevice *gpu_device)
void setCntl(const uint32_t &data)
void setRptr(const uint32_t &data)
void setWptrAddrLo(const uint32_t &data)
AMDGPUInterruptHandler::DmaEvent * dmaEvent
uint32_t getDoorbellOffset() const
Tick read(PacketPtr pkt) override
Pure virtual function that the device must implement.
AddrRangeList getAddrRanges() const override
Every PIO device is obliged to provide an implementation that returns the address ranges the device r...
void unserialize(CheckpointIn &cp) override
Unserialize an object.
void setWptrAddrHi(const uint32_t &data)
void setBase(const uint32_t &data)
void serialize(CheckpointOut &cp) const override
Serialize an object.
void submitWritePointer()
void setDoorbellOffset(const uint32_t &data)
void updateRptr(const uint32_t &data)
void setBaseHi(const uint32_t &data)
void setWptr(const uint32_t &data)
Tick write(PacketPtr pkt) override
Pure virtual function that the device must implement.
std::queue< AMDGPUInterruptCookie * > interruptQueue
void submitInterruptCookie()
void prepareInterruptCookie(ContextID cntxtId, uint32_t ring_id, uint32_t client_id, uint32_t source_id, unsigned node_id)
void writeMMIO(PacketPtr pkt, Addr mmio_offset)
Methods for setting the values of interrupt handler MMIO registers.
static const FlagsType AutoDelete
void setFlags(Flags _flags)
A Packet is used to encapsulate a transfer between two objects in the memory system (e....
Copyright (c) 2024 Arm Limited All rights reserved.
std::ostream CheckpointOut
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
soc15_ih_clientid
Defines from driver code.
@ SOC15_IH_CLIENTID_SDMA3
@ SOC15_IH_CLIENTID_SDMA4
@ SOC15_IH_CLIENTID_SDMA0
@ SOC15_IH_CLIENTID_GRBM_CP
@ SOC15_IH_CLIENTID_SDMA1
@ SOC15_IH_CLIENTID_SDMA5
@ SOC15_IH_CLIENTID_SDMA2
@ SOC15_IH_CLIENTID_SDMA6
@ SOC15_IH_CLIENTID_SDMA7
uint64_t Tick
Tick count type.
constexpr uint32_t INTR_COOKIE_SIZE
MSI-style interrupts.
int ContextID
Globally unique thread context ID.
Struct to contain all interrupt handler related registers.
SenderState(Packet::SenderState *sender_state, Addr addr)
Packet::SenderState * saved
A virtual base opaque structure used to hold state associated with the packet (e.g....