OpenCores
URL https://opencores.org/ocsvn/w11/w11/trunk

Subversion Repositories w11

[/] [w11/] [tags/] [w11a_V0.74/] [tools/] [src/] [librw11/] [Rw11CntlRK11.cpp] - Diff between revs 30 and 31

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 30 Rev 31
Line 1... Line 1...
// $Id: Rw11CntlRK11.cpp 669 2015-04-26 21:20:32Z mueller $
// $Id: Rw11CntlRK11.cpp 686 2015-06-04 21:08:08Z mueller $
//
//
// Copyright 2013-2015 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
// Copyright 2013-2015 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
// Other credits: 
// Other credits: 
//   the boot code is from the simh project and Copyright Robert M Supnik
//   the boot code is from the simh project and Copyright Robert M Supnik
// 
// 
Line 13... Line 13...
// or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
// or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
// for complete details.
// for complete details.
// 
// 
// Revision History: 
// Revision History: 
// Date         Rev Version  Comment
// Date         Rev Version  Comment
 
// 2015-06-04   686   2.0.2  check for spurious lams
// 2015-02-17   647   2.0.1  use Nwrd2Nblk(); BUGFIX: revise RdmaPostExecCB()
// 2015-02-17   647   2.0.1  use Nwrd2Nblk(); BUGFIX: revise RdmaPostExecCB()
// 2015-01-04   628   2.0    use Rw11RdmaDisk
// 2015-01-04   628   2.0    use Rw11RdmaDisk
// 2014-12-30   625   1.2    adopt to Rlink V4 attn logic
// 2014-12-30   625   1.2    adopt to Rlink V4 attn logic
// 2014-12-25   621   1.1    adopt to 4k word ibus window
// 2014-12-25   621   1.1    adopt to 4k word ibus window
// 2014-06-14   562   1.0.1  Add stats
// 2014-06-14   562   1.0.1  Add stats
Line 24... Line 25...
// 2013-02-10   485   0.1    First draft
// 2013-02-10   485   0.1    First draft
// ---------------------------------------------------------------------------
// ---------------------------------------------------------------------------
 
 
/*!
/*!
  \file
  \file
  \version $Id: Rw11CntlRK11.cpp 669 2015-04-26 21:20:32Z mueller $
  \version $Id: Rw11CntlRK11.cpp 686 2015-06-04 21:08:08Z mueller $
  \brief   Implemenation of Rw11CntlRK11.
  \brief   Implemenation of Rw11CntlRK11.
*/
*/
 
 
#include "boost/bind.hpp"
#include "boost/bind.hpp"
#include "boost/foreach.hpp"
#include "boost/foreach.hpp"
Line 96... Line 97...
const uint16_t Rw11CntlRK11::kRKCS_M_MAINT;
const uint16_t Rw11CntlRK11::kRKCS_M_MAINT;
const uint16_t Rw11CntlRK11::kRKCS_M_IBA;
const uint16_t Rw11CntlRK11::kRKCS_M_IBA;
const uint16_t Rw11CntlRK11::kRKCS_M_FMT;
const uint16_t Rw11CntlRK11::kRKCS_M_FMT;
const uint16_t Rw11CntlRK11::kRKCS_M_RWA;
const uint16_t Rw11CntlRK11::kRKCS_M_RWA;
const uint16_t Rw11CntlRK11::kRKCS_M_SSE;
const uint16_t Rw11CntlRK11::kRKCS_M_SSE;
 
const uint16_t Rw11CntlRK11::kRKCS_M_RDY;
const uint16_t Rw11CntlRK11::kRKCS_M_MEX;
const uint16_t Rw11CntlRK11::kRKCS_M_MEX;
const uint16_t Rw11CntlRK11::kRKCS_V_MEX;
const uint16_t Rw11CntlRK11::kRKCS_V_MEX;
const uint16_t Rw11CntlRK11::kRKCS_B_MEX;
const uint16_t Rw11CntlRK11::kRKCS_B_MEX;
const uint16_t Rw11CntlRK11::kRKCS_V_FUNC;
const uint16_t Rw11CntlRK11::kRKCS_V_FUNC;
const uint16_t Rw11CntlRK11::kRKCS_B_FUNC;
const uint16_t Rw11CntlRK11::kRKCS_B_FUNC;
Line 370... Line 372...
         << "," << RosPrintf(se,"d",2)
         << "," << RosPrintf(se,"d",2)
         << " la,nw=" << RosPrintf(lba,"d",4)
         << " la,nw=" << RosPrintf(lba,"d",4)
         << "," << RosPrintf(nwrd,"d",5);
         << "," << RosPrintf(nwrd,"d",5);
  }
  }
 
 
 
  // check for spurious interrupts (either RDY=1 or RDY=0 and rdma busy)
 
  if ((rkcs & kRKCS_M_RDY) || fRdma.IsActive()) {
 
    RlogMsg lmsg(LogFile());
 
    lmsg << "-E RK11   err "
 
         << " cr=" << RosPrintBvi(rkcs,8)
 
         << " spurious lam: "
 
         << (fRdma.IsActive() ? "RDY=0 and Rdma busy" : "RDY=1");
 
    return 0;
 
  }
 
 
  // check for general abort conditions
  // check for general abort conditions
  if (fu != kFUNC_CRESET &&                 // function not control reset
  if (fu != kFUNC_CRESET &&                 // function not control reset
      (!unit.Virt())) {                     //   and drive not attached
      (!unit.Virt())) {                     //   and drive not attached
    rker = kRKER_M_NXD;                     //   --> abort with NXD error
    rker = kRKER_M_NXD;                     //   --> abort with NXD error
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.