feat(targets): Update chip features lists with more info

This commit is contained in:
Radim Karniš
2025-03-13 11:23:30 +01:00
parent 05553a42c8
commit 3c776aa59b
13 changed files with 34 additions and 19 deletions

View File

@@ -236,7 +236,7 @@ class ESP32ROM(ESPLoader):
return f"{chip_name} (revision v{major_rev}.{minor_rev})"
def get_chip_features(self):
features = ["WiFi"]
features = ["Wi-Fi"]
word3 = self.read_efuse(3)
# names of variables in this section are lowercase
@@ -249,9 +249,9 @@ class ESP32ROM(ESPLoader):
chip_ver_dis_app_cpu = word3 & (1 << 0)
if chip_ver_dis_app_cpu:
features += ["Single Core"]
features += ["Single Core + LP Core"]
else:
features += ["Dual Core"]
features += ["Dual Core + LP Core"]
chip_cpu_freq_rated = word3 & (1 << 13)
if chip_cpu_freq_rated:

View File

@@ -83,6 +83,9 @@ class ESP32C2ROM(ESP32C3ROM):
minor_rev = self.get_minor_chip_version()
return f"{chip_name} (revision v{major_rev}.{minor_rev})"
def get_chip_features(self):
return ["Wi-Fi", "BT 5 (LE)", "Single Core", "120MHz"]
def get_minor_chip_version(self):
num_word = 1
return (self.read_reg(self.EFUSE_BLOCK2_ADDR + (4 * num_word)) >> 16) & 0xF

View File

@@ -152,7 +152,7 @@ class ESP32C3ROM(ESP32ROM):
return f"{chip_name} (revision v{major_rev}.{minor_rev})"
def get_chip_features(self):
features = ["WiFi", "BLE"]
features = ["Wi-Fi", "BT 5 (LE)", "Single Core", "160MHz"]
flash = {
0: None,

View File

@@ -114,6 +114,15 @@ class ESP32C5ROM(ESP32C6ROM):
minor_rev = self.get_minor_chip_version()
return f"{chip_name} (revision v{major_rev}.{minor_rev})"
def get_chip_features(self):
return [
"Wi-Fi 6 (dual-band)",
"BT 5 (LE)",
"IEEE802.15.4",
"Single Core + LP Core",
"240MHz",
]
def get_crystal_freq(self):
# The crystal detection algorithm of ESP32/ESP8266
# works for ESP32-C5 as well.

View File

@@ -123,7 +123,13 @@ class ESP32C6ROM(ESP32C3ROM):
return f"{chip_name} (revision v{major_rev}.{minor_rev})"
def get_chip_features(self):
return ["WiFi 6", "BT 5", "IEEE802.15.4"]
return [
"Wi-Fi 6",
"BT 5 (LE)",
"IEEE802.15.4",
"Single Core + LP Core",
"160MHz",
]
def get_crystal_freq(self):
# ESP32C6 XTAL is fixed to 40MHz

View File

@@ -106,7 +106,7 @@ class ESP32C61ROM(ESP32C6ROM):
return f"{chip_name} (revision v{major_rev}.{minor_rev})"
def get_chip_features(self):
return ["WiFi 6", "BT 5"]
return ["Wi-Fi 6", "BT 5 (LE)", "Single Core", "160MHz"]
def read_mac(self, mac_type="BASE_MAC"):
"""Read MAC from EFUSE region"""

View File

@@ -71,7 +71,7 @@ class ESP32H2ROM(ESP32C6ROM):
return f"{chip_name} (revision v{major_rev}.{minor_rev})"
def get_chip_features(self):
return ["BLE", "IEEE802.15.4"]
return ["BT 5 (LE)", "IEEE802.15.4", "Single Core", "96MHz"]
def get_crystal_freq(self):
# ESP32H2 XTAL is fixed to 32MHz

View File

@@ -71,7 +71,7 @@ class ESP32H21ROM(ESP32H2ROM):
return f"{chip_name} (revision v{major_rev}.{minor_rev})"
def get_chip_features(self):
return ["BLE", "IEEE802.15.4"]
return ["BT 5 (LE)", "IEEE802.15.4", "Single Core", "96MHz"]
def get_crystal_freq(self):
# ESP32H21 XTAL is fixed to 32MHz

View File

@@ -127,7 +127,7 @@ class ESP32H4ROM(ESP32C3ROM):
return f"{chip_name} (revision v{major_rev}.{minor_rev})"
def get_chip_features(self):
return ["BLE", "IEEE802.15.4"]
return ["BT 5 (LE)", "IEEE802.15.4", "Dual Core", "96MHz"]
def get_crystal_freq(self):
# ESP32H4 XTAL is fixed to 32MHz

View File

@@ -148,7 +148,7 @@ class ESP32P4ROM(ESP32ROM):
return f"{chip_name} (revision v{major_rev}.{minor_rev})"
def get_chip_features(self):
return ["High-Performance MCU"]
return ["Dual Core + LP Core", "400MHz"]
def get_crystal_freq(self):
# ESP32P4 XTAL is fixed to 40MHz

View File

@@ -180,10 +180,7 @@ class ESP32S2ROM(ESP32ROM):
return f"{chip_name} (revision v{major_rev}.{minor_rev})"
def get_chip_features(self):
features = ["WiFi"]
if self.secure_download_mode:
features += ["Secure Download Mode Enabled"]
features = ["Wi-Fi", "Single Core", "240MHz"]
flash_version = {
0: "No Embedded Flash",
@@ -201,9 +198,9 @@ class ESP32S2ROM(ESP32ROM):
block2_version = {
0: "No calibration in BLK2 of efuse",
1: "ADC and temperature sensor calibration in BLK2 of efuse V1",
2: "ADC and temperature sensor calibration in BLK2 of efuse V2",
}.get(self.get_block2_version(), "Unknown Calibration in BLK2")
1: "ADC and temperature sensor calibration in BLK2 of eFuse V1",
2: "ADC and temperature sensor calibration in BLK2 of eFuse V2",
}.get(self.get_block2_version(), "Unknown calibration in BLK2")
features += [block2_version]
return features

View File

@@ -222,7 +222,7 @@ class ESP32S3ROM(ESP32ROM):
return {1: "AP_3v3", 2: "AP_1v8"}.get(vendor_id, "")
def get_chip_features(self):
features = ["WiFi", "BLE"]
features = ["Wi-Fi", "BT 5 (LE)", "Dual Core + LP Core", "240MHz"]
flash = {
0: None,

View File

@@ -106,7 +106,7 @@ class ESP8266ROM(ESPLoader):
return "ESP8266EX"
def get_chip_features(self):
features = ["WiFi"]
features = ["Wi-Fi", "160MHz"]
if "ESP8285" in self.get_chip_description():
features += ["Embedded Flash"]
return features