2c2
< * Copyright (c) 2010,2013 ARM Limited
---
> * Copyright (c) 2010,2013,2015 ARM Limited
45a46
> #include "params/RealViewOsc.hh"
52a54,84
> public:
> enum DeviceFunc {
> FUNC_OSC = 1,
> FUNC_VOLT = 2,
> FUNC_AMP = 3,
> FUNC_TEMP = 4,
> FUNC_RESET = 5,
> FUNC_SCC = 6,
> FUNC_MUXFPGA = 7,
> FUNC_SHUTDOWN = 8,
> FUNC_REBOOT = 9,
> FUNC_DVIMODE = 11,
> FUNC_POWER = 12,
> FUNC_ENERGY = 13,
> };
>
> class Device
> {
> public:
> Device(RealViewCtrl &parent, DeviceFunc func,
> uint8_t site, uint8_t pos, uint8_t dcc, uint16_t dev)
> {
> parent.registerDevice(func, site, pos, dcc, dev, this);
> }
>
> virtual ~Device() {}
>
> virtual uint32_t read() const = 0;
> virtual void write(uint32_t value) = 0;
> };
>
98a131,142
> BitUnion32(CfgCtrlReg)
> Bitfield<11, 0> dev;
> Bitfield<15, 12> pos;
> Bitfield<17, 16> site;
> Bitfield<25, 20> func;
> Bitfield<29, 26> dcc;
> Bitfield<30> wr;
> Bitfield<31> start;
> EndBitUnion(CfgCtrlReg)
>
> static const uint32_t CFG_CTRL_ADDR_MASK = 0x3fffffffUL;
>
130c174
< virtual Tick read(PacketPtr pkt);
---
> Tick read(PacketPtr pkt) M5_ATTR_OVERRIDE;
137c181
< virtual Tick write(PacketPtr pkt);
---
> Tick write(PacketPtr pkt) M5_ATTR_OVERRIDE;
140a185,192
>
> public:
> void registerDevice(DeviceFunc func, uint8_t site, uint8_t pos,
> uint8_t dcc, uint16_t dev,
> Device *handler);
>
> protected:
> std::map<uint32_t, Device *> devices;
142a195,207
> /**
> * This is an implementation of a programmable oscillator on the that
> * can be configured through the RealView/Versatile Express
> * configuration interface.
> *
> * See ARM DUI 0447J (ARM Motherboard Express uATX -- V2M-P1).
> */
> class RealViewOsc
> : public ClockDomain, RealViewCtrl::Device
> {
> public:
> RealViewOsc(RealViewOscParams *p);
> virtual ~RealViewOsc() {};
143a209,222
> void startup() M5_ATTR_OVERRIDE;
>
> void serialize(CheckpointOut &cp) const M5_ATTR_OVERRIDE;
> void unserialize(CheckpointIn &cp) M5_ATTR_OVERRIDE;
>
> public: // RealViewCtrl::Device interface
> uint32_t read() const M5_ATTR_OVERRIDE;
> void write(uint32_t freq) M5_ATTR_OVERRIDE;
>
> protected:
> void clockPeriod(Tick clock_period);
> };
>
>