gowin: Fix status register parse for GW5AST
This commit is contained in:
parent
8007ffe263
commit
01d6244a0f
|
|
@ -460,6 +460,10 @@ void Gowin::displayReadReg(const char *prefix, uint32_t reg)
|
||||||
"Decompression Failed", "OTP Reading Done", "Init Done",
|
"Decompression Failed", "OTP Reading Done", "Init Done",
|
||||||
"Wakeup Done", "Auto Erase",
|
"Wakeup Done", "Auto Erase",
|
||||||
};
|
};
|
||||||
|
/* 20-22 differ */
|
||||||
|
static const char *gw5ast_desc[3] = {
|
||||||
|
"Ser_Ecc_Corr", "Ser_Ecc_Uncorr", "Ser_Ecc_Runing",
|
||||||
|
};
|
||||||
|
|
||||||
/* Bits 26:25 */
|
/* Bits 26:25 */
|
||||||
static const char *gw5a_sync_det_retry[4] = {
|
static const char *gw5a_sync_det_retry[4] = {
|
||||||
|
|
@ -479,8 +483,9 @@ void Gowin::displayReadReg(const char *prefix, uint32_t reg)
|
||||||
|
|
||||||
printf("%s: displayReadReg %08x\n", prefix, reg);
|
printf("%s: displayReadReg %08x\n", prefix, reg);
|
||||||
|
|
||||||
if (_idcode == 0x0001281b) {
|
if (is_gw5a) {
|
||||||
for (unsigned i = 0, bm = 1; i < 32; ++i, bm <<= 1) {
|
uint8_t max_shift = (_idcode == 0x1081b) ? 24 : 32;
|
||||||
|
for (unsigned i = 0, bm = 1; i < max_shift; ++i, bm <<= 1) {
|
||||||
switch (i) {
|
switch (i) {
|
||||||
case 23:
|
case 23:
|
||||||
printf("\t[%d:%d] %s: %s\n", i + 1, i, gw5a_desc[i],
|
printf("\t[%d:%d] %s: %s\n", i + 1, i, gw5a_desc[i],
|
||||||
|
|
@ -495,8 +500,12 @@ void Gowin::displayReadReg(const char *prefix, uint32_t reg)
|
||||||
i++;
|
i++;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
if (reg & bm)
|
if (reg & bm) {
|
||||||
printf("\t [%2d] %s\n", i, gw5a_desc[i]);
|
if (_idcode == 0x1081b && i >= 20)
|
||||||
|
printf("\t [%2d] %s\n", i, gw5ast_desc[i-20]);
|
||||||
|
else
|
||||||
|
printf("\t [%2d] %s\n", i, gw5a_desc[i]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue