riscv-collab / riscv-openocd

Fork of OpenOCD that has RISC-V support
Other
438 stars 319 forks source link

the version check for the version in dtmcs and in dmstatus #485

Closed gxflying closed 4 years ago

gxflying commented 4 years ago

Now the openOCD get version check info from dtmcs, but i think the version in dmstatus is what actully matrers and imply the actual feature(in spec) the DM supporting. So what do we need to do to fully use both of the versions(in dtmcs and in dmstatus) ?

timsifive commented 4 years ago

OpenOCD checks dmstatus version in dmstatus_read_timeout().

I don't understand what problem you are having.

gxflying commented 4 years ago

@timsifive something more detail below The version in dtmcs is used to cllaim the dtm protocal which consists of "idcode" "dmi" and so on The version in dmstatus is used to claim all the features a DM supports. Am I right?

then comes the question that how should I use OpenOCD when my DM complies with the 0.14 spec? In this situation ,the dmstatus should be set to 2 ,right? But the 0.14 spec says the dmstatus version should be 3 to be compliant. actually this issue is not about a problem but about a sugestion for version control implementation in openocd. the two versions should have two layers in source code for each one to be managed. You can think it will be very difficult to maintain if the dtmcs & dmstatus version both going on with different number 0.15 0.16 0.17 ....

timsifive commented 4 years ago

You're right. OpenOCD mostly implements 0.14, so it should accept both 2 and 3 in the dmversion field.