mirror of
https://github.com/DigitalDevices/dddvb.git
synced 2023-10-10 13:37:43 +02:00
add support to read unique ids
This commit is contained in:
parent
80e0750c71
commit
154794ac51
@ -145,7 +145,6 @@ int ReadFlash(int ddb, int argc, char *argv[], uint32_t Flags)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int FlashDetect(int dev)
|
int FlashDetect(int dev)
|
||||||
{
|
{
|
||||||
uint8_t Cmd = 0x9F;
|
uint8_t Cmd = 0x9F;
|
||||||
@ -765,7 +764,6 @@ uint32_t GetFPGA_ID(uint8_t * Buffer)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int FlashProg(int dev,int argc, char* argv[],uint32_t Flags)
|
int FlashProg(int dev,int argc, char* argv[],uint32_t Flags)
|
||||||
{
|
{
|
||||||
uint8_t * Buffer = NULL;
|
uint8_t * Buffer = NULL;
|
||||||
@ -1652,6 +1650,60 @@ int lic_erase(int dev, int argc, char* argv[], uint32_t Flags)
|
|||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int read_sfpd(int dev, uint8_t adr, uint8_t *val)
|
||||||
|
{
|
||||||
|
uint8_t cmd[5] = { 0x5a, 0, 0, adr, 00 };
|
||||||
|
int r;
|
||||||
|
|
||||||
|
r = FlashIO(dev, cmd, 5, val, 1);
|
||||||
|
if (r < 0)
|
||||||
|
return r;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int read_sst_id(int dev, uint8_t *id)
|
||||||
|
{
|
||||||
|
uint8_t cmd[2] = { 0x88, 0 };
|
||||||
|
uint8_t buf[9];
|
||||||
|
int r;
|
||||||
|
|
||||||
|
r = FlashIO(dev, cmd, 2, buf, 9);
|
||||||
|
if (r < 0)
|
||||||
|
return r;
|
||||||
|
memcpy(id, buf + 1, 8);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int read_id(int dev, int argc, char* argv[], uint32_t Flags)
|
||||||
|
{
|
||||||
|
int Flash = FlashDetect(dev);
|
||||||
|
uint8_t Cmd;;
|
||||||
|
uint8_t Id[8];
|
||||||
|
uint32_t len, i, adr;
|
||||||
|
|
||||||
|
|
||||||
|
switch(Flash) {
|
||||||
|
case SPANSION_S25FL116K:
|
||||||
|
case SPANSION_S25FL132K:
|
||||||
|
case SPANSION_S25FL164K:
|
||||||
|
for (i = 0; i < 8; i++)
|
||||||
|
read_sfpd(dev, 0xf8 + i, &Id[i]);
|
||||||
|
len = 8;
|
||||||
|
break;
|
||||||
|
case SSTI_SST25VF064C:
|
||||||
|
read_sst_id(dev, Id);
|
||||||
|
len = 8;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
printf("Unsupported Flash\n");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
printf("ID: ");
|
||||||
|
for (i = 0; i < 8; i++)
|
||||||
|
printf("%02x ", Id[i]);
|
||||||
|
printf("\n");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
struct SCommand CommandTable[] =
|
struct SCommand CommandTable[] =
|
||||||
{
|
{
|
||||||
@ -1661,7 +1713,7 @@ struct SCommand CommandTable[] =
|
|||||||
{ "register", GetSetRegister, 1, "Get/Set Register : reg <regname>|<[0x]regnum> [[0x]value(32)]" },
|
{ "register", GetSetRegister, 1, "Get/Set Register : reg <regname>|<[0x]regnum> [[0x]value(32)]" },
|
||||||
|
|
||||||
{ "flashread", ReadFlash, 1, "Read Flash : flashread <start> <count>" },
|
{ "flashread", ReadFlash, 1, "Read Flash : flashread <start> <count>" },
|
||||||
{ "flashio", FlashIO, 1, "Flash IO : flashio <write data>.. <read count>" },
|
{ "flashio", FlashIOC, 1, "Flash IO : flashio <write data>.. <read count>" },
|
||||||
{ "flashprog", FlashProg, 1, "Flash Programming : flashprog <FileName> [<address>]" },
|
{ "flashprog", FlashProg, 1, "Flash Programming : flashprog <FileName> [<address>]" },
|
||||||
{ "flashprog", FlashProg, 1, "Flash Programming : flashprog -SubVendorID <id>" },
|
{ "flashprog", FlashProg, 1, "Flash Programming : flashprog -SubVendorID <id>" },
|
||||||
{ "flashprog", FlashProg, 1, "Flash Programming : flashprog -Jump <address>" },
|
{ "flashprog", FlashProg, 1, "Flash Programming : flashprog -Jump <address>" },
|
||||||
@ -1676,6 +1728,7 @@ struct SCommand CommandTable[] =
|
|||||||
{ "licimport", lic_import, 1, "License Import : licimport" },
|
{ "licimport", lic_import, 1, "License Import : licimport" },
|
||||||
{ "licexport", lic_export, 1, "License Export : licexport" },
|
{ "licexport", lic_export, 1, "License Export : licexport" },
|
||||||
{ "licerase", lic_erase, 1, "License Erase : licerase" },
|
{ "licerase", lic_erase, 1, "License Erase : licerase" },
|
||||||
|
{ "read_id", read_id, 1, "Read Unique ID : read_id" },
|
||||||
{ NULL,NULL,0 }
|
{ NULL,NULL,0 }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user