mirror of
https://github.com/DigitalDevices/dddvb.git
synced 2023-10-10 13:37:43 +02:00
ddtest,ddflash: added Spansion S25FL132K,S25FL164K
This commit is contained in:
parent
b5a44d581d
commit
fa66a70a35
@ -91,6 +91,8 @@ enum {
|
||||
SSTI_SST25VF032B = 3,
|
||||
SSTI_SST25VF064C = 4,
|
||||
SPANSION_S25FL116K = 5,
|
||||
SPANSION_S25FL132K = 6,
|
||||
SPANSION_S25FL164K = 7,
|
||||
};
|
||||
|
||||
static int flashread(int ddb, uint8_t *buf, uint32_t addr, uint32_t len)
|
||||
@ -393,6 +395,8 @@ static int flashwrite(struct ddflash *ddf, int fs, uint32_t addr, uint32_t maxle
|
||||
case SSTI_SST25VF064C:
|
||||
return flashwrite_pagemode(ddf, fs, addr, 0x3c, fw_off);
|
||||
case SPANSION_S25FL116K:
|
||||
case SPANSION_S25FL132K:
|
||||
case SPANSION_S25FL164K:
|
||||
return flashwrite_pagemode(ddf, fs, addr, 0x1c, fw_off);
|
||||
}
|
||||
return -1;
|
||||
@ -467,6 +471,16 @@ static int flash_detect(struct ddflash *ddf)
|
||||
printf("Flash: SPANSION S25FL116K 16 MBit\n");
|
||||
ddf->sector_size = 4096;
|
||||
ddf->size = 0x200000;
|
||||
} else if (id[0] == 0x01 && id[1] == 0x40 && id[2] == 0x16) {
|
||||
ddf->flash_type = SPANSION_S25FL132K;
|
||||
printf("Flash: SPANSION S25FL132K 32 MBit\n");
|
||||
ddf->sector_size = 4096;
|
||||
ddf->size = 0x400000;
|
||||
} else if (id[0] == 0x01 && id[1] == 0x40 && id[2] == 0x17) {
|
||||
ddf->flash_type = SPANSION_S25FL164K;
|
||||
printf("Flash: SPANSION S25FL164K 64 MBit\n");
|
||||
ddf->sector_size = 4096;
|
||||
ddf->size = 0x800000;
|
||||
} else if (id[0] == 0x1F && id[1] == 0x28) {
|
||||
ddf->flash_type = ATMEL_AT45DB642D;
|
||||
printf("Flash: Atmel AT45DB642D 64 MBit\n");
|
||||
|
@ -28,6 +28,8 @@ enum {
|
||||
SSTI_SST25VF032B = 3,
|
||||
SSTI_SST25VF064C = 4,
|
||||
SPANSION_S25FL116K = 5,
|
||||
SPANSION_S25FL132K = 6,
|
||||
SPANSION_S25FL164K = 7,
|
||||
};
|
||||
|
||||
struct SCommand
|
||||
@ -161,6 +163,10 @@ int FlashDetect(int dev)
|
||||
r = SSTI_SST25VF064C;
|
||||
else if ( Id[0] == 0x01 && Id[1] == 0x40 && Id[2] == 0x15 )
|
||||
r = SPANSION_S25FL116K;
|
||||
else if ( Id[0] == 0x01 && Id[1] == 0x40 && Id[2] == 0x16 )
|
||||
r = SPANSION_S25FL132K;
|
||||
else if ( Id[0] == 0x01 && Id[1] == 0x40 && Id[2] == 0x17 )
|
||||
r = SPANSION_S25FL164K;
|
||||
else if ( Id[0] == 0x1F && Id[1] == 0x28)
|
||||
r = ATMEL_AT45DB642D;
|
||||
else
|
||||
@ -185,6 +191,12 @@ int FlashDetect(int dev)
|
||||
case SPANSION_S25FL116K :
|
||||
printf("Flash: SPANSION S25FL116K 16 MBit\n");
|
||||
break;
|
||||
case SPANSION_S25FL132K :
|
||||
printf("Flash: SPANSION S25FL132K 32 MBit\n");
|
||||
break;
|
||||
case SPANSION_S25FL164K :
|
||||
printf("Flash: SPANSION S25FL164K 64 MBit\n");
|
||||
break;
|
||||
}
|
||||
return r;
|
||||
}
|
||||
@ -776,6 +788,8 @@ int FlashProg(int dev,int argc, char* argv[],uint32_t Flags)
|
||||
case SSTI_SST25VF032B: SectorSize = 4096; FlashSize = 0x400000; break;
|
||||
case SSTI_SST25VF064C: SectorSize = 4096; FlashSize = 0x800000; break;
|
||||
case SPANSION_S25FL116K: SectorSize = 4096; FlashSize = 0x200000; break;
|
||||
case SPANSION_S25FL132K: SectorSize = 4096; FlashSize = 0x400000; break;
|
||||
case SPANSION_S25FL164K: SectorSize = 4096; FlashSize = 0x800000; break;
|
||||
}
|
||||
if (SectorSize == 0)
|
||||
return 0;
|
||||
@ -943,6 +957,8 @@ int FlashProg(int dev,int argc, char* argv[],uint32_t Flags)
|
||||
case SSTI_SST25VF064C:
|
||||
err = FlashWritePageMode(dev,FlashOffset,Buffer,BufferSize,0x3C); break;
|
||||
case SPANSION_S25FL116K:
|
||||
case SPANSION_S25FL132K:
|
||||
case SPANSION_S25FL164K:
|
||||
err = FlashWritePageMode(dev,FlashOffset,Buffer,BufferSize,0x1C); break;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user