#include "mem/packet_access.hh"
RealViewCtrl::RealViewCtrl(Params *p)
- : BasicPioDevice(p)
+ : BasicPioDevice(p), flags(0)
{
pioSize = 0xD4;
}
case Lock:
pkt->set<uint32_t>(sysLock);
break;
+ case Flags:
+ pkt->set<uint32_t>(flags);
+ break;
default:
panic("Tried to read RealView I/O at offset %#x that doesn't exist\n", daddr);
break;
case Lock:
sysLock.lockVal = pkt->get<uint16_t>();
break;
+ case Flags:
+ flags = pkt->get<uint32_t>();
+ break;
default:
panic("Tried to write RVIO at offset %#x that doesn't exist\n", daddr);
break;
void
RealViewCtrl::serialize(std::ostream &os)
{
+ SERIALIZE_SCALAR(flags);
}
void
RealViewCtrl::unserialize(Checkpoint *cp, const std::string §ion)
{
+ UNSERIALIZE_SCALAR(flags);
}
RealViewCtrl *
SysLockReg sysLock;
+ /** This register is used for smp booting.
+ * The primary cpu writes the secondary start address here before
+ * sends it a soft interrupt. The secondary cpu reads this register and if
+ * it's non-zero it jumps to the address
+ */
+ uint32_t flags;
+
public:
typedef RealViewCtrlParams Params;
const Params *