Skip to content

Commit d340c91

Browse files
committed
Revert "Fix idf chip revision"
This reverts commit e5cb367.
1 parent e5cb367 commit d340c91

File tree

1 file changed

+59
-46
lines changed

1 file changed

+59
-46
lines changed

Diff for: tasmota/tasmota_support/support_esp.ino

+59-46
Original file line numberDiff line numberDiff line change
@@ -855,17 +855,15 @@ String GetDeviceHardware(void) {
855855
// https://www.espressif.com/en/products/socs
856856

857857
/*
858-
Source: esp-idf esp_system.h or arduino core esp_chip_info.h and esptool
858+
Source: esp-idf esp_system.h and esptool
859859
860860
typedef enum {
861861
CHIP_ESP32 = 1, //!< ESP32
862862
CHIP_ESP32S2 = 2, //!< ESP32-S2
863863
CHIP_ESP32S3 = 9, //!< ESP32-S3
864864
CHIP_ESP32C3 = 5, //!< ESP32-C3
865+
CHIP_ESP32H2 = 6, //!< ESP32-H2
865866
CHIP_ESP32C2 = 12, //!< ESP32-C2
866-
CHIP_ESP32C6 = 13, //!< ESP32-C6
867-
CHIP_ESP32H2 = 16, //!< ESP32-H2
868-
CHIP_POSIX_LINUX = 999, //!< The code is running on POSIX/Linux simulator
869867
} esp_chip_model_t;
870868
871869
// Chip feature flags, used in esp_chip_info_t
@@ -876,12 +874,13 @@ typedef enum {
876874
#define CHIP_FEATURE_IEEE802154 BIT(6) //!< Chip has IEEE 802.15.4
877875
#define CHIP_FEATURE_EMB_PSRAM BIT(7) //!< Chip has embedded psram
878876
877+
879878
// The structure represents information about the chip
880879
typedef struct {
881880
esp_chip_model_t model; //!< chip model, one of esp_chip_model_t
882881
uint32_t features; //!< bit mask of CHIP_FEATURE_x feature flags
883-
uint16_t revision; //!< chip revision number (in format MXX; where M - wafer major version, XX - wafer minor version)
884882
uint8_t cores; //!< number of CPU cores
883+
uint8_t revision; //!< chip revision number
885884
} esp_chip_info_t;
886885
887886
*/
@@ -1006,8 +1005,20 @@ typedef struct {
10061005
- Rich set of peripheral interfaces and GPIOs, ideal for various scenarios and complex applications
10071006
*/
10081007
#ifdef CONFIG_IDF_TARGET_ESP32C3
1008+
/* esptool:
1009+
def get_pkg_version(self):
1010+
num_word = 3
1011+
block1_addr = self.EFUSE_BASE + 0x044
1012+
word3 = self.read_reg(block1_addr + (4 * num_word))
1013+
pkg_version = (word3 >> 21) & 0x0F
1014+
return pkg_version
1015+
*/
10091016
uint32_t chip_ver = REG_GET_FIELD(EFUSE_RD_MAC_SPI_SYS_3_REG, EFUSE_PKG_VERSION);
10101017
uint32_t pkg_version = chip_ver & 0x7;
1018+
// uint32_t pkg_version = esp_efuse_get_pkg_ver();
1019+
1020+
// AddLog(LOG_LEVEL_DEBUG_MORE, PSTR("HDW: ESP32 Model %d, Revision %d, Core %d, Package %d"), chip_info.model, chip_revision, chip_info.cores, chip_ver);
1021+
10111022
switch (pkg_version) {
10121023
case 0: return F("ESP32-C3"); // Max 160MHz, Single core, QFN 5*5, ESP32-C3-WROOM-02, ESP32-C3-DevKitC-02
10131024
case 1: return F("ESP32-C3FH4"); // Max 160MHz, Single core, QFN 5*5, 4MB embedded flash, ESP32-C3-MINI-1, ESP32-C3-DevKitM-1
@@ -1019,6 +1030,25 @@ typedef struct {
10191030
return F("ESP32-S3");
10201031
}
10211032
else if (7 == chip_model) { // ESP32-C6(beta)
1033+
#ifdef CONFIG_IDF_TARGET_ESP32C6
1034+
/* esptool:
1035+
def get_pkg_version(self):
1036+
num_word = 3
1037+
block1_addr = self.EFUSE_BASE + 0x044
1038+
word3 = self.read_reg(block1_addr + (4 * num_word))
1039+
pkg_version = (word3 >> 21) & 0x0F
1040+
return pkg_version
1041+
*/
1042+
uint32_t chip_ver = REG_GET_FIELD(EFUSE_RD_MAC_SPI_SYS_3_REG, EFUSE_PKG_VERSION);
1043+
uint32_t pkg_version = chip_ver & 0x7;
1044+
// uint32_t pkg_version = esp_efuse_get_pkg_ver();
1045+
1046+
// AddLog(LOG_LEVEL_DEBUG_MORE, PSTR("HDW: ESP32 Model %d, Revision %d, Core %d, Package %d"), chip_info.model, chip_revision, chip_info.cores, chip_ver);
1047+
1048+
switch (pkg_version) {
1049+
case 0: return F("ESP32-C6");
1050+
}
1051+
#endif // CONFIG_IDF_TARGET_ESP32C6
10221052
return F("ESP32-C6");
10231053
}
10241054
else if (9 == chip_model) { // ESP32-S3
@@ -1032,16 +1062,30 @@ typedef struct {
10321062
- Reliable security features ensured by RSA-based secure boot, AES-XTS-based flash encryption, the innovative digital signature and the HMAC peripheral, “World Controller”
10331063
*/
10341064
#ifdef CONFIG_IDF_TARGET_ESP32S3
1035-
// chip-debug-report.cpp
1036-
uint32_t chip_ver = REG_GET_FIELD(EFUSE_RD_MAC_SPI_SYS_3_REG, EFUSE_PKG_VERSION);
1037-
uint32_t pkg_version = chip_ver & 0x7;
1038-
switch (pkg_version) {
1039-
case 0: return F("ESP32-S3");
1040-
}
1065+
// no variants for now
10411066
#endif // CONFIG_IDF_TARGET_ESP32S3
10421067
return F("ESP32-S3"); // Max 240MHz, Dual core, QFN 7*7, ESP32-S3-WROOM-1, ESP32-S3-DevKitC-1
10431068
}
10441069
else if (10 == chip_model) { // ESP32-H2(beta1)
1070+
#ifdef CONFIG_IDF_TARGET_ESP32H2
1071+
/* esptool:
1072+
def get_pkg_version(self):
1073+
num_word = 3
1074+
block1_addr = self.EFUSE_BASE + 0x044
1075+
word3 = self.read_reg(block1_addr + (4 * num_word))
1076+
pkg_version = (word3 >> 21) & 0x0F
1077+
return pkg_version
1078+
*/
1079+
uint32_t chip_ver = REG_GET_FIELD(EFUSE_RD_MAC_SPI_SYS_3_REG, EFUSE_PKG_VERSION);
1080+
uint32_t pkg_version = chip_ver & 0x7;
1081+
// uint32_t pkg_version = esp_efuse_get_pkg_ver();
1082+
1083+
// AddLog(LOG_LEVEL_DEBUG_MORE, PSTR("HDW: ESP32 Model %d, Revision %d, Core %d, Package %d"), chip_info.model, chip_revision, chip_info.cores, chip_ver);
1084+
1085+
switch (pkg_version) {
1086+
case 0: return F("ESP32-H2");
1087+
}
1088+
#endif // CONFIG_IDF_TARGET_ESP32H2
10451089
return F("ESP32-H2");
10461090
}
10471091
else if (12 == chip_model) { // ESP32-C2 = ESP8684
@@ -1053,15 +1097,7 @@ typedef struct {
10531097
- 576 KB ROM, 272 KB SRAM (16 KB for cache) on the chip
10541098
- 14 programmable GPIOs: SPI, UART, I2C, LED PWM controller, General DMA controller (GDMA), SAR ADC, Temperature sensor
10551099
*/
1056-
#ifdef CONFIG_IDF_TARGET_ESP32C2
1057-
// chip-debug-report.cpp
1058-
uint32_t chip_ver = REG_GET_FIELD(EFUSE_RD_BLK2_DATA1_REG, EFUSE_PKG_VERSION);
1059-
uint32_t pkg_version = chip_ver & 0x7;
10601100

1061-
switch (pkg_version) {
1062-
case 0: return F("ESP32-C2");
1063-
}
1064-
#endif // CONFIG_IDF_TARGET_ESP32C2
10651101
return F("ESP32-C2");
10661102
}
10671103
else if (13 == chip_model) { // ESP32-C6
@@ -1073,30 +1109,12 @@ typedef struct {
10731109
- 320 KB ROM, 512 KB SRAM, 16 KB Low-power SRAM on the chip, and works with external flash
10741110
- 30 (QFN40) or 22 (QFN32) programmable GPIOs, with support for SPI, UART, I2C, I2S, RMT, TWAI and PWM
10751111
*/
1076-
#ifdef CONFIG_IDF_TARGET_ESP32C6
1077-
// chip-debug-report.cpp
1078-
uint32_t chip_ver = REG_GET_FIELD(EFUSE_RD_MAC_SPI_SYS_3_REG, EFUSE_PKG_VERSION);
1079-
uint32_t pkg_version = chip_ver & 0x7;
1080-
switch (pkg_version) {
1081-
case 0: return F("ESP32-C6");
1082-
}
1083-
#endif // CONFIG_IDF_TARGET_ESP32C6
1112+
10841113
return F("ESP32-C6");
10851114
}
10861115
else if (14 == chip_model) { // ESP32-H2(beta2)
10871116
return F("ESP32-H2");
10881117
}
1089-
else if (16 == chip_model) { // ESP32-H2
1090-
#ifdef CONFIG_IDF_TARGET_ESP32H2
1091-
// chip-debug-report.cpp
1092-
uint32_t chip_ver = REG_GET_FIELD(EFUSE_RD_MAC_SYS_4_REG, EFUSE_PKG_VERSION);
1093-
uint32_t pkg_version = chip_ver & 0x7;
1094-
switch (pkg_version) {
1095-
case 0: return F("ESP32-H2");
1096-
}
1097-
#endif // CONFIG_IDF_TARGET_ESP32H2
1098-
return F("ESP32-H2");
1099-
}
11001118
return F("ESP32");
11011119
}
11021120

@@ -1109,16 +1127,11 @@ String GetDeviceHardwareRevision(void) {
11091127

11101128
esp_chip_info_t chip_info;
11111129
esp_chip_info(&chip_info);
1112-
char revision[16] = { 0 };
1130+
char revision[10] = { 0 };
11131131
if (chip_info.revision) {
1114-
// idf5 efuse_hal_chip_revision(void)
1115-
if(chip_info.revision >= 100){
1116-
snprintf_P(revision, sizeof(revision), PSTR(" rev %d.%d"), chip_info.revision / 100, chip_info.revision % 100);
1117-
} else {
1118-
snprintf_P(revision, sizeof(revision), PSTR(" rev %d"), chip_info.revision);
1119-
}
1132+
snprintf_P(revision, sizeof(revision), PSTR(" rev.%d"), chip_info.revision);
11201133
}
1121-
result += revision; // ESP32-C3 rev 3
1134+
result += revision; // ESP32-C3 rev.3
11221135

11231136
return result;
11241137
}

0 commit comments

Comments
 (0)