some generic devices has other sizes of flash

This commit is contained in:
iceman1001 2023-02-18 22:02:20 +01:00
commit 475bbe183d
2 changed files with 22 additions and 9 deletions

View file

@ -350,11 +350,25 @@ void Flashmem_print_status(void) {
if (!Flash_ReadID_90(&device_type)) {
DbpString(" Device ID............... " _RED_(" --> Not Found <--"));
} else {
if ((device_type.manufacturer_id == WINBOND_MANID) && (device_type.device_id == WINBOND_DEVID)) {
DbpString(" Memory size............. " _GREEN_("2 mbits / 256 kb"));
if (device_type.manufacturer_id == WINBOND_MANID) {
switch (device_type.device_id) {
case WINBOND_2MB_DEVID:
DbpString(" Memory size............. " _YELLOW_("2 mbits / 256 kb"));
break;
case WINBOND_1MB_DEVID:
DbpString(" Memory size..... ....... " _YELLOW_("1 mbits / 128 kb"));
break;
case WINBOND_512KB_DEVID:
DbpString(" Memory size............. " _YELLOW_("512 kbits / 64 kb"));
break;
default:
break;
}
} else {
Dbprintf(" Device ID............... " _YELLOW_("%02X / %02X (unknown)"),
device_type.manufacturer_id, device_type.device_id);
device_type.manufacturer_id,
device_type.device_id
);
}
}
@ -578,10 +592,6 @@ bool Flash_CheckBusy(uint32_t timeout) {
StartCountUS();
uint32_t _time = GetCountUS();
#ifndef AS_BOOTROM
if (g_dbglevel > 3) Dbprintf("Checkbusy in...");
#endif // AS_BOOTROM
do {
if (!(Flash_ReadStat1() & BUSY)) {
return false;

View file

@ -54,8 +54,11 @@
// Flash busy timeout: 20ms is the strict minimum when writing 256kb
#define BUSY_TIMEOUT 200000L
#define WINBOND_MANID 0xEF
#define WINBOND_DEVID 0x11
#define WINBOND_MANID 0xEF
#define WINBOND_2MB_DEVID 0x11
#define WINBOND_1MB_DEVID 0x10
#define WINBOND_512KB_DEVID 0x05
#define PAGESIZE 0x100
#define WINBOND_WRITE_DELAY 0x02