Fix SRAM loading on invalid flash

This commit is contained in:
jgroman 2024-02-02 12:54:17 +01:00
parent f9c1aa4eed
commit eba9c37027
1 changed files with 12 additions and 1 deletions

View File

@ -883,8 +883,19 @@ void Gowin::sendClkUs(unsigned us)
bool Gowin::eraseSRAM()
{
printInfo("Erase SRAM ", false);
uint32_t status = readStatusReg();
if (_verbose)
displayReadReg("before erase sram", readStatusReg());
displayReadReg("before erase sram", status);
// If flash is invalid, send extra cmd 0x3F before SRAM erase
// This is required on GW5A-25
bool auto_boot_2nd_fail = (status & 0x8) >> 3;
if ((_idcode == 0x0001281B) && auto_boot_2nd_fail)
{
disableCfg();
send_command(0x3F);
send_command(NOOP);
}
if (!enableCfg()) {
printError("FAIL");