riscv-compliance: fix compile errors and whitespace
This commit is contained in:
parent
ef684c2e68
commit
30e1dbdc6b
|
@ -281,7 +281,7 @@ static void decode_dmi(char *text, unsigned address, unsigned data)
|
||||||
{ DMI_DMCONTROL, DMI_DMCONTROL_HASEL, "hasel" },
|
{ DMI_DMCONTROL, DMI_DMCONTROL_HASEL, "hasel" },
|
||||||
{ DMI_DMCONTROL, ((1L<<10)-1) << DMI_DMCONTROL_HARTSELLO_OFFSET, "hartsello" },
|
{ DMI_DMCONTROL, ((1L<<10)-1) << DMI_DMCONTROL_HARTSELLO_OFFSET, "hartsello" },
|
||||||
/* TODO: hartsellhi */
|
/* TODO: hartsellhi */
|
||||||
{ DMI_DMCONTROL, DMI_DMCONTROL_NDMRESET, "ndmreset" },
|
{ DMI_DMCONTROL, DMI_DMCONTROL_NDMRESET, "ndmreset" },
|
||||||
{ DMI_DMCONTROL, DMI_DMCONTROL_DMACTIVE, "dmactive" },
|
{ DMI_DMCONTROL, DMI_DMCONTROL_DMACTIVE, "dmactive" },
|
||||||
|
|
||||||
{ DMI_DMSTATUS, DMI_DMSTATUS_IMPEBREAK, "impebreak" },
|
{ DMI_DMSTATUS, DMI_DMSTATUS_IMPEBREAK, "impebreak" },
|
||||||
|
@ -3006,7 +3006,7 @@ int riscv013_test_compliance(struct target *target)
|
||||||
/* This bit is not actually readable according to the spec, so nothing to check.*/
|
/* This bit is not actually readable according to the spec, so nothing to check.*/
|
||||||
|
|
||||||
/* DMSTATUS */
|
/* DMSTATUS */
|
||||||
uint32_t dmstatus, dmstatus_read;
|
uint32_t dmstatus, dmstatus_read;
|
||||||
dmi_read(target, &dmstatus, DMI_DMSTATUS);
|
dmi_read(target, &dmstatus, DMI_DMSTATUS);
|
||||||
dmi_write(target, DMI_DMSTATUS, ~dmstatus);
|
dmi_write(target, DMI_DMSTATUS, ~dmstatus);
|
||||||
dmi_read(target, &dmstatus_read, DMI_DMSTATUS);
|
dmi_read(target, &dmstatus_read, DMI_DMSTATUS);
|
||||||
|
@ -3032,11 +3032,11 @@ int riscv013_test_compliance(struct target *target)
|
||||||
/* $dscratch CSRs */
|
/* $dscratch CSRs */
|
||||||
uint32_t nscratch = get_field(hartinfo, DMI_HARTINFO_NSCRATCH);
|
uint32_t nscratch = get_field(hartinfo, DMI_HARTINFO_NSCRATCH);
|
||||||
for (unsigned int d = 0; d < nscratch; d++) {
|
for (unsigned int d = 0; d < nscratch; d++) {
|
||||||
riscv_reg_t testval, testval_read;
|
riscv_reg_t testval, testval_read;
|
||||||
/* Because DSCRATCH is not guaranteed to last across PB executions, need to put
|
/* Because DSCRATCH is not guaranteed to last across PB executions, need to put
|
||||||
this all into one PB execution. Which may not be possible on all implementations.*/
|
this all into one PB execution. Which may not be possible on all implementations.*/
|
||||||
if (info->progbufsize >= 5) {
|
if (info->progbufsize >= 5) {
|
||||||
for (testval = 0x0011223300112233;
|
for (testval = 0x0011223300112233;
|
||||||
testval != 0xDEAD;
|
testval != 0xDEAD;
|
||||||
testval = testval == 0x0011223300112233 ? ~testval : 0xDEAD) {
|
testval = testval == 0x0011223300112233 ? ~testval : 0xDEAD) {
|
||||||
COMPLIANCE_TEST(register_write_direct(target, GDB_REGNO_S0, testval) == ERROR_OK,
|
COMPLIANCE_TEST(register_write_direct(target, GDB_REGNO_S0, testval) == ERROR_OK,
|
||||||
|
@ -3059,7 +3059,7 @@ int riscv013_test_compliance(struct target *target)
|
||||||
"All DSCRATCH registers in HARTINFO must be R/W.");
|
"All DSCRATCH registers in HARTINFO must be R/W.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* TODO: dataaccess */
|
/* TODO: dataaccess */
|
||||||
if (get_field(hartinfo, DMI_HARTINFO_DATAACCESS)) {
|
if (get_field(hartinfo, DMI_HARTINFO_DATAACCESS)) {
|
||||||
|
@ -3177,17 +3177,16 @@ int riscv013_test_compliance(struct target *target)
|
||||||
/* Basic Abstract Commands */
|
/* Basic Abstract Commands */
|
||||||
for (unsigned int i = 1; i < 32; i = i << 1) {
|
for (unsigned int i = 1; i < 32; i = i << 1) {
|
||||||
riscv_reg_t testval = i | ((i + 1ULL) << 32);
|
riscv_reg_t testval = i | ((i + 1ULL) << 32);
|
||||||
riscv_reg_t testval_read;
|
riscv_reg_t testval_read;
|
||||||
COMPLIANCE_TEST(ERROR_OK == register_write_direct(target, GDB_REGNO_ZERO + i, testval),
|
COMPLIANCE_TEST(ERROR_OK == register_write_direct(target, GDB_REGNO_ZERO + i, testval),
|
||||||
"GPR Writes should be supported.");
|
"GPR Writes should be supported.");
|
||||||
write_abstract_arg(target, 0, 0xDEADBEEFDEADBEEF, 64);
|
write_abstract_arg(target, 0, 0xDEADBEEFDEADBEEF, 64);
|
||||||
COMPLIANCE_TEST(ERROR_OK == register_read_direct(target, &testval_read, GDB_REGNO_ZERO + i),
|
COMPLIANCE_TEST(ERROR_OK == register_read_direct(target, &testval_read, GDB_REGNO_ZERO + i),
|
||||||
"GPR Reads should be supported.");
|
"GPR Reads should be supported.");
|
||||||
if (riscv_xlen(target) > 32) {
|
if (riscv_xlen(target) > 32) {
|
||||||
COMPLIANCE_TEST(testval == testval_read, "GPR Reads and writes should be supported.");
|
COMPLIANCE_TEST(testval == testval_read, "GPR Reads and writes should be supported.");
|
||||||
} else {
|
} else {
|
||||||
COMPLIANCE_TEST((testval & 0xFFFFFFFF) == testval_read, "GPR Reads and writes should be supported.");
|
COMPLIANCE_TEST((testval & 0xFFFFFFFF) == testval_read, "GPR Reads and writes should be supported.");
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3203,7 +3202,7 @@ int riscv013_test_compliance(struct target *target)
|
||||||
a true compliance requirement. */
|
a true compliance requirement. */
|
||||||
if (info->progbufsize >= 3) {
|
if (info->progbufsize >= 3) {
|
||||||
|
|
||||||
testvar = 0;
|
testvar = 0;
|
||||||
COMPLIANCE_TEST(ERROR_OK == register_write_direct(target, GDB_REGNO_S0, 0),
|
COMPLIANCE_TEST(ERROR_OK == register_write_direct(target, GDB_REGNO_S0, 0),
|
||||||
"Need to be able to write S0 to test ABSTRACTAUTO");
|
"Need to be able to write S0 to test ABSTRACTAUTO");
|
||||||
struct riscv_program program;
|
struct riscv_program program;
|
||||||
|
@ -3250,9 +3249,8 @@ int riscv013_test_compliance(struct target *target)
|
||||||
|
|
||||||
COMPLIANCE_TEST(testvar == value,
|
COMPLIANCE_TEST(testvar == value,
|
||||||
"ABSTRACTAUTO should cause COMMAND to run the expected number of times.");
|
"ABSTRACTAUTO should cause COMMAND to run the expected number of times.");
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
|
||||||
|
|
||||||
/* Single-Step each hart. */
|
/* Single-Step each hart. */
|
||||||
for (int hartsel = 0; hartsel < riscv_count_harts(target); hartsel++) {
|
for (int hartsel = 0; hartsel < riscv_count_harts(target); hartsel++) {
|
||||||
|
|
Loading…
Reference in New Issue