Implement SAM3U Errata 46.2.1.4 about reading Unique Identifier
This commit is contained in:
parent
e236846cf9
commit
0d9de4db67
|
@ -472,6 +472,7 @@ __attribute__ ((section (".ramfunc")))
|
|||
unsigned char FLASHD_ReadUniqueID (unsigned long * uniqueID)
|
||||
{
|
||||
unsigned char error;
|
||||
AT91S_EFC *pEfc = AT91C_BASE_EFC0;
|
||||
|
||||
SANITY_CHECK(uniqueID != NULL);
|
||||
|
||||
|
@ -480,6 +481,9 @@ unsigned char FLASHD_ReadUniqueID (unsigned long * uniqueID)
|
|||
uniqueID[2] = 0;
|
||||
uniqueID[3] = 0;
|
||||
|
||||
/* SAM3U Errata 46.2.1.4 */
|
||||
pEfc->EFC_FMR |= (1 << 16);
|
||||
|
||||
EFC_StartCommand(AT91C_BASE_EFC, AT91C_EFC_FCMD_STUI, 0);
|
||||
|
||||
uniqueID[0] = *(unsigned int *)AT91C_IFLASH;
|
||||
|
@ -488,6 +492,10 @@ unsigned char FLASHD_ReadUniqueID (unsigned long * uniqueID)
|
|||
uniqueID[3] = *(unsigned int *)(AT91C_IFLASH + 12);
|
||||
|
||||
error = EFC_PerformCommand(AT91C_BASE_EFC, AT91C_EFC_FCMD_SPUI, 0);
|
||||
|
||||
/* SAM3U Errata 46.2.1.4 */
|
||||
pEfc->EFC_FMR &= ~(1 << 16);
|
||||
|
||||
if (error) return error;
|
||||
|
||||
return 0;
|
||||
|
|
Loading…
Reference in New Issue