mirror of
https://github.com/betaflight/betaflight.git
synced 2025-07-14 20:10:18 +03:00
Display FLASH JEDEC ID in status and flash_info (#12051)
This commit is contained in:
parent
103f238eea
commit
bcfe335bd7
3 changed files with 30 additions and 11 deletions
|
@ -2456,8 +2456,8 @@ static void cliFlashInfo(const char *cmdName, char *cmdline)
|
|||
|
||||
const flashGeometry_t *layout = flashGetGeometry();
|
||||
|
||||
cliPrintLinef("Flash sectors=%u, sectorSize=%u, pagesPerSector=%u, pageSize=%u, totalSize=%u",
|
||||
layout->sectors, layout->sectorSize, layout->pagesPerSector, layout->pageSize, layout->totalSize);
|
||||
cliPrintLinef("Flash sectors=%u, sectorSize=%u, pagesPerSector=%u, pageSize=%u, totalSize=%u JEDEC ID=0x%08x",
|
||||
layout->sectors, layout->sectorSize, layout->pagesPerSector, layout->pageSize, layout->totalSize, layout->jedecId);
|
||||
|
||||
for (uint8_t index = 0; index < FLASH_MAX_PARTITIONS; index++) {
|
||||
const flashPartition_t *partition;
|
||||
|
@ -4854,6 +4854,13 @@ static void cliStatus(const char *cmdName, char *cmdline)
|
|||
cliSdInfo(cmdName, "");
|
||||
#endif
|
||||
|
||||
#ifdef USE_FLASH_CHIP
|
||||
const flashGeometry_t *layout = flashGetGeometry();
|
||||
if (layout->jedecId != 0) {
|
||||
cliPrintLinef("FLASH: JEDEC ID=0x%08x %uM", layout->jedecId, layout->totalSize >> 20);
|
||||
}
|
||||
#endif
|
||||
|
||||
cliPrint("Arming disable flags:");
|
||||
armingDisableFlags_e flags = getArmingDisableFlags();
|
||||
while (flags) {
|
||||
|
|
|
@ -121,6 +121,9 @@ static bool flashQuadSpiInit(const flashConfig_t *flashConfig)
|
|||
phase++;
|
||||
} while (phase != BAIL && !detected);
|
||||
|
||||
if (detected) {
|
||||
flashDevice.geometry.jedecId = chipID;
|
||||
}
|
||||
return detected;
|
||||
}
|
||||
#endif // USE_QUADSPI
|
||||
|
@ -134,6 +137,7 @@ void flashPreInit(const flashConfig_t *flashConfig)
|
|||
|
||||
static bool flashSpiInit(const flashConfig_t *flashConfig)
|
||||
{
|
||||
bool detected = false;
|
||||
// Read chip identification and send it to device detect
|
||||
dev = &devInstance;
|
||||
|
||||
|
@ -179,31 +183,38 @@ static bool flashSpiInit(const flashConfig_t *flashConfig)
|
|||
|
||||
#ifdef USE_FLASH_M25P16
|
||||
if (m25p16_detect(&flashDevice, chipID)) {
|
||||
return true;
|
||||
detected = true;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_FLASH_W25M512) || defined(USE_FLASH_W25M)
|
||||
if (w25m_detect(&flashDevice, chipID)) {
|
||||
return true;
|
||||
if (!detected && w25m_detect(&flashDevice, chipID)) {
|
||||
detected = true;
|
||||
}
|
||||
#endif
|
||||
|
||||
// Newer chips
|
||||
chipID = (readIdResponse[1] << 16) | (readIdResponse[2] << 8) | (readIdResponse[3]);
|
||||
if (!detected) {
|
||||
// Newer chips
|
||||
chipID = (readIdResponse[1] << 16) | (readIdResponse[2] << 8) | (readIdResponse[3]);
|
||||
}
|
||||
|
||||
#ifdef USE_FLASH_W25N01G
|
||||
if (w25n01g_detect(&flashDevice, chipID)) {
|
||||
return true;
|
||||
if (!detected && w25n01g_detect(&flashDevice, chipID)) {
|
||||
detected = true;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef USE_FLASH_W25M02G
|
||||
if (w25m_detect(&flashDevice, chipID)) {
|
||||
return true;
|
||||
if (!detected && w25m_detect(&flashDevice, chipID)) {
|
||||
detected = true;
|
||||
}
|
||||
#endif
|
||||
|
||||
if (detected) {
|
||||
flashDevice.geometry.jedecId = chipID;
|
||||
return detected;
|
||||
}
|
||||
|
||||
spiPreinitByTag(flashConfig->csTag);
|
||||
|
||||
return false;
|
||||
|
|
|
@ -45,6 +45,7 @@ typedef struct flashGeometry_s {
|
|||
uint32_t totalSize; // This is just sectorSize * sectors
|
||||
uint16_t pagesPerSector;
|
||||
flashType_e flashType;
|
||||
uint32_t jedecId;
|
||||
} flashGeometry_t;
|
||||
|
||||
void flashPreInit(const flashConfig_t *flashConfig);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue