@@ -98,8 +98,18 @@ void Sca::checkChannelSet()
9898
9999void Sca::reset ()
100100{
101- barWrite (sc_regs::SC_RESET.index , 0x1 );
102- barWrite (sc_regs::SC_RESET.index , 0x0 );
101+ barWrite (sc_regs::SCA_WR_CTRL.index , 0x1 );
102+ barWrite (sc_regs::SCA_WR_CTRL.index , 0x0 );
103+ /* DO I NEED THIS?
104+ waitOnBusyClear(); */
105+ }
106+
107+ void Sca::connect ()
108+ {
109+ barWrite (sc_regs::SCA_WR_CTRL.index , 0x2 );
110+ barWrite (sc_regs::SCA_WR_CTRL.index , 0x0 );
111+ /* DO I NEED THIS?
112+ waitOnBusyClear(); */
103113}
104114
105115Sca::CommandData Sca::executeCommand (uint32_t command, uint32_t data, bool lock)
@@ -286,6 +296,12 @@ std::vector<std::pair<Sca::Operation, Sca::Data>> Sca::executeSequence(const std
286296 }
287297 std::this_thread::sleep_for (std::chrono::milliseconds (waitTime));
288298 ret.push_back ({ operation, waitTime });
299+ } else if (operation == Operation::Reset) {
300+ reset ();
301+ ret.push_back ({ Operation::Reset, {} });
302+ } else if (operation == Operation::Connect) {
303+ connect ();
304+ ret.push_back ({ Operation::Connect, {} });
289305 } else {
290306 BOOST_THROW_EXCEPTION (ScaException () << ErrorInfo::Message (" SCA operation type unknown" ));
291307 }
@@ -297,6 +313,10 @@ std::vector<std::pair<Sca::Operation, Sca::Data>> Sca::executeSequence(const std
297313 meaningfulMessage = (boost::format (" SCA_SEQUENCE cmd=0x%08x data=0x%08x serialId=%s link=%d error='%s'" ) % boost::get<CommandData>(data).command % boost::get<CommandData>(data).data % mLink .serialId % mLink .linkId % e.what ()).str ();
298314 } else if (operation == Operation::Wait) {
299315 meaningfulMessage = (boost::format (" SCA_SEQUENCE WAIT waitTime=%d serialId=%s link=%d error='%s'" ) % boost::get<WaitTime>(data) % mLink .serialId % mLink .linkId % e.what ()).str ();
316+ } else if (operation == Operation::Reset) {
317+ meaningfulMessage = (boost::format (" SCA_SEQUENCE RESET serialId=%s link=%d error='%s'" ) % mLink .serialId % mLink .linkId % e.what ()).str ();
318+ } else if (operation == Operation::Connect) {
319+ meaningfulMessage = (boost::format (" SCA_SEQUENCE CONNECT serialId=%s link=%d error='%s'" ) % mLink .serialId % mLink .linkId % e.what ()).str ();
300320 } else {
301321 meaningfulMessage = (boost::format (" SCA_SEQUENCE UNKNOWN serialId=%s link=%d error='%s'" ) % mLink .serialId % mLink .linkId % e.what ()).str ();
302322 }
@@ -325,6 +345,10 @@ std::string Sca::writeSequence(const std::vector<std::pair<Operation, Data>>& op
325345 resultBuffer << data << " \n " ; // "[cmd],[data]\n"
326346 } else if (operation == Operation::Wait) {
327347 resultBuffer << std::dec << data << " \n " ; // "[time]\n"
348+ } else if (operation == Operation::Reset) {
349+ /* DO NOTHING */
350+ } else if (operation == Operation::Connect) {
351+ resultBuffer << " connect\n " ; // echo
328352 } else if (operation == Operation::Error) {
329353 resultBuffer << data; // "[error_msg]"
330354 Logger::get ().err () << data << endm;
0 commit comments