# HG changeset patch # User Jeandet Alexis # Date 2016-12-08 23:04:10 # Node ID f17adb028d26760e81d6c96a1ea4181f0f9395e9 # Parent 78d6f055c6344c477a0ed3fc9e89cbc56a92a366 dsu3plugin: Added automatic Stack Pointer setting. Skip on unknown memory controller. diff --git a/dsu3plugin/dsu3plugin.cpp b/dsu3plugin/dsu3plugin.cpp --- a/dsu3plugin/dsu3plugin.cpp +++ b/dsu3plugin/dsu3plugin.cpp @@ -97,8 +97,8 @@ bool dsu3plugin::configureTarget() } if(MCTRLBASEADDRESS == (unsigned int)-1) { - SocExplorerEngine::message(this,"Can't any compatible memory controller",1); - return false; + SocExplorerEngine::message(this,"Can't find any compatible memory controller",1); + // return false; } @@ -137,9 +137,12 @@ bool dsu3plugin::configureTarget() WriteRegs(uIntlist()<<0<<0<<0<<0,(unsigned int)DSUBASEADDRESS+0x400060); WriteRegs(uIntlist()<<0x0000FFFF,(unsigned int)DSUBASEADDRESS+0x24); + unsigned int ramSize=SocExplorerEngine::self()->memMeasureSize(this->parentPlugin(),0x40000000); + SocExplorerEngine::message(this,QString("Measured memory size=%1").arg(ramSize),0); + memSet(DSUBASEADDRESS+0x300000,0,1567); WriteRegs(uIntlist()<<0<<0xF30000E0<<0x00000002<<0x40000000<<0x40000000<<0x40000004<<0x1000000,(unsigned int)DSUBASEADDRESS+0x400000); - WriteRegs(uIntlist()<<0<<0<<0<<0<<0<<0<<0x403ffff0<<0<<0<<0<<0<<0<<0<<0<<0<<0<<0<<0<<0<<0<<0<<0<<0<<0,(unsigned int)DSUBASEADDRESS+0x300020); + WriteRegs(uIntlist()<<0<<0<<0<<0<<0<<0<<0x40000000+ramSize-16<<0<<0<<0<<0<<0<<0<<0<<0<<0<<0<<0<<0<<0<<0<<0<<0<<0,(unsigned int)DSUBASEADDRESS+0x300020); WriteRegs(uIntlist()<<0x000002EF,(unsigned int)DSUBASEADDRESS); //Disable interrupts