GDB + openOCD successfully connect !
This commit is contained in:
parent
75f6b78daf
commit
8dddc7e334
|
@ -105,57 +105,57 @@ object TopLevel {
|
||||||
val configFull = VexRiscvConfig(
|
val configFull = VexRiscvConfig(
|
||||||
plugins = List(
|
plugins = List(
|
||||||
new PcManagerSimplePlugin(0x00000000l, false),
|
new PcManagerSimplePlugin(0x00000000l, false),
|
||||||
// new IBusSimplePlugin(
|
new IBusSimplePlugin(
|
||||||
// interfaceKeepData = true,
|
interfaceKeepData = true,
|
||||||
// catchAccessFault = true
|
catchAccessFault = true
|
||||||
|
),
|
||||||
|
// new IBusCachedPlugin(
|
||||||
|
// config = InstructionCacheConfig(
|
||||||
|
// cacheSize = 4096,
|
||||||
|
// bytePerLine =32,
|
||||||
|
// wayCount = 1,
|
||||||
|
// wrappedMemAccess = true,
|
||||||
|
// addressWidth = 32,
|
||||||
|
// cpuDataWidth = 32,
|
||||||
|
// memDataWidth = 32,
|
||||||
|
// catchIllegalAccess = true,
|
||||||
|
// catchAccessFault = true,
|
||||||
|
// catchMemoryTranslationMiss = true,
|
||||||
|
// asyncTagMemory = false,
|
||||||
|
// twoStageLogic = true
|
||||||
// ),
|
// ),
|
||||||
new IBusCachedPlugin(
|
// askMemoryTranslation = true,
|
||||||
config = InstructionCacheConfig(
|
// memoryTranslatorPortConfig = MemoryTranslatorPortConfig(
|
||||||
cacheSize = 4096,
|
// portTlbSize = 4
|
||||||
bytePerLine =32,
|
// )
|
||||||
wayCount = 1,
|
// ),
|
||||||
wrappedMemAccess = true,
|
new DBusSimplePlugin(
|
||||||
addressWidth = 32,
|
catchAddressMisaligned = true,
|
||||||
cpuDataWidth = 32,
|
catchAccessFault = true
|
||||||
memDataWidth = 32,
|
|
||||||
catchIllegalAccess = true,
|
|
||||||
catchAccessFault = true,
|
|
||||||
catchMemoryTranslationMiss = true,
|
|
||||||
asyncTagMemory = false,
|
|
||||||
twoStageLogic = true
|
|
||||||
),
|
|
||||||
askMemoryTranslation = true,
|
|
||||||
memoryTranslatorPortConfig = MemoryTranslatorPortConfig(
|
|
||||||
portTlbSize = 4
|
|
||||||
)
|
|
||||||
),
|
|
||||||
// new DBusSimplePlugin(
|
|
||||||
// catchAddressMisaligned = true,
|
|
||||||
// catchAccessFault = true
|
|
||||||
// ),
|
|
||||||
new DBusCachedPlugin(
|
|
||||||
config = new DataCacheConfig(
|
|
||||||
cacheSize = 4096,
|
|
||||||
bytePerLine = 32,
|
|
||||||
wayCount = 1,
|
|
||||||
addressWidth = 32,
|
|
||||||
cpuDataWidth = 32,
|
|
||||||
memDataWidth = 32,
|
|
||||||
catchAccessError = true,
|
|
||||||
catchIllegal = true,
|
|
||||||
catchUnaligned = true,
|
|
||||||
catchMemoryTranslationMiss = true
|
|
||||||
),
|
|
||||||
askMemoryTranslation = true,
|
|
||||||
memoryTranslatorPortConfig = MemoryTranslatorPortConfig(
|
|
||||||
portTlbSize = 6
|
|
||||||
)
|
|
||||||
),
|
|
||||||
new MemoryTranslatorPlugin(
|
|
||||||
tlbSize = 32,
|
|
||||||
virtualRange = _(31 downto 28) === 0xC,
|
|
||||||
ioRange = _(31 downto 28) === 0xF
|
|
||||||
),
|
),
|
||||||
|
// new DBusCachedPlugin(
|
||||||
|
// config = new DataCacheConfig(
|
||||||
|
// cacheSize = 4096,
|
||||||
|
// bytePerLine = 32,
|
||||||
|
// wayCount = 1,
|
||||||
|
// addressWidth = 32,
|
||||||
|
// cpuDataWidth = 32,
|
||||||
|
// memDataWidth = 32,
|
||||||
|
// catchAccessError = true,
|
||||||
|
// catchIllegal = true,
|
||||||
|
// catchUnaligned = true,
|
||||||
|
// catchMemoryTranslationMiss = true
|
||||||
|
// ),
|
||||||
|
// askMemoryTranslation = true,
|
||||||
|
// memoryTranslatorPortConfig = MemoryTranslatorPortConfig(
|
||||||
|
// portTlbSize = 6
|
||||||
|
// )
|
||||||
|
// ),
|
||||||
|
// new MemoryTranslatorPlugin(
|
||||||
|
// tlbSize = 32,
|
||||||
|
// virtualRange = _(31 downto 28) === 0xC,
|
||||||
|
// ioRange = _(31 downto 28) === 0xF
|
||||||
|
// ),
|
||||||
new DecoderSimplePlugin(
|
new DecoderSimplePlugin(
|
||||||
catchIllegalInstruction = true
|
catchIllegalInstruction = true
|
||||||
),
|
),
|
||||||
|
|
|
@ -715,6 +715,12 @@ public:
|
||||||
top->debugReset = 0;
|
top->debugReset = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void connectionReset(){
|
||||||
|
printf("CONNECTION RESET\n");
|
||||||
|
shutdown(clientHandle,SHUT_RDWR);
|
||||||
|
clientHandle = -1;
|
||||||
|
}
|
||||||
|
|
||||||
bool readRsp = false;
|
bool readRsp = false;
|
||||||
virtual void preCycle(){
|
virtual void preCycle(){
|
||||||
if(clientHandle == -1){
|
if(clientHandle == -1){
|
||||||
|
@ -729,7 +735,7 @@ public:
|
||||||
}
|
}
|
||||||
if(readRsp){
|
if(readRsp){
|
||||||
if(clientHandle != -1){
|
if(clientHandle != -1){
|
||||||
send(clientHandle,&top->debug_bus_rsp_data,4,0);
|
if(send(clientHandle,&top->debug_bus_rsp_data,4,0) == -1) connectionReset();
|
||||||
}
|
}
|
||||||
readRsp = false;
|
readRsp = false;
|
||||||
}
|
}
|
||||||
|
@ -766,14 +772,15 @@ public:
|
||||||
timeSpacer = 50;
|
timeSpacer = 50;
|
||||||
} else {
|
} else {
|
||||||
bool dummy;
|
bool dummy;
|
||||||
|
printf("wr=%d size=%d address=%x data=%x\n",wr,size,address,data);
|
||||||
ws->dBusAccess(address,wr,size,0xFFFFFFFF, &data, &dummy);
|
ws->dBusAccess(address,wr,size,0xFFFFFFFF, &data, &dummy);
|
||||||
if(!wr){
|
if(!wr){
|
||||||
send(clientHandle,&data,4,0);
|
if(-1 == send(clientHandle,&data,4,0)) connectionReset();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
} else if(n == 0){
|
} else {
|
||||||
printf("Socket read error");
|
connectionReset();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
timeSpacer--;
|
timeSpacer--;
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
IBUS=IBUS_CACHED
|
IBUS=IBUS_SIMPLE
|
||||||
DBUS=DBUS_CACHED
|
DBUS=DBUS_SIMPLE
|
||||||
TRACE=yes
|
TRACE?=no
|
||||||
TRACE_ACCESS=yes
|
TRACE_ACCESS=no
|
||||||
TRACE_START=0
|
TRACE_START=0
|
||||||
CSR=yes
|
CSR=yes
|
||||||
MMU=yes
|
MMU=yes
|
||||||
|
|
Loading…
Reference in New Issue