MPC106: self-registration with the device registry.

This commit is contained in:
Maxim Poliakovski 2022-07-17 05:33:06 +02:00
parent cb68b70d52
commit 97b3b9a6f8
2 changed files with 12 additions and 1 deletions

View File

@ -23,6 +23,7 @@ along with this program. If not, see <https://www.gnu.org/licenses/>.
#include <devices/common/hwcomponent.h>
#include <devices/common/mmiodevice.h>
#include <devices/deviceregistry.h>
#include <devices/memctrl/memctrlbase.h>
#include <devices/memctrl/mpc106.h>
#include <memaccess.h>
@ -233,3 +234,9 @@ void MPC106::setup_ram() {
LOG_F(ERROR, "MPC106 RAM allocation failed! \n");
}
}
static const DeviceDescription Grackle_Descriptor = {
MPC106::create, {}, {}
};
REGISTER_DEVICE(Grackle, Grackle_Descriptor);

View File

@ -40,14 +40,18 @@ along with this program. If not, see <https://www.gnu.org/licenses/>.
#include <devices/memctrl/memctrlbase.h>
#include <cinttypes>
#include <memory>
#include <unordered_map>
class MPC106 : public MemCtrlBase, public PCIDevice, public PCIHost {
public:
MPC106();
~MPC106() = default;
static std::unique_ptr<HWComponent> create() {
return std::unique_ptr<MPC106>(new MPC106());
}
uint32_t read(uint32_t reg_start, uint32_t offset, int size);
void write(uint32_t reg_start, uint32_t offset, uint32_t value, int size);