[core] Add a prefix to ChipFamily enum

This commit is contained in:
Kuba Szczodrzyński
2022-06-18 20:48:24 +02:00
parent d446b05387
commit a5b953dc80
5 changed files with 23 additions and 19 deletions

View File

@@ -1,23 +1,27 @@
/* Copyright (c) Kuba Szczodrzyński 2022-05-28. */ /* Copyright (c) Kuba Szczodrzyński 2022-05-28. */
#define CHIP_TYPE(family, chip_id) (((family >> 24) << 8) | chip_id)
#define CHIP_TYPE_ENUM(family, chip_id) (ChipType) CHIP_TYPE(family, chip_id)
enum ChipFamily { enum ChipFamily {
// used in UF2 Family ID // used in UF2 Family ID
RTL8710A = 0x9FFFD543, // Realtek Ameba1 F_RTL8710A = 0x9FFFD543, // Realtek Ameba1
RTL8710B = 0x22E0D6FC, // Realtek AmebaZ (realtek-ambz) F_RTL8710B = 0x22E0D6FC, // Realtek AmebaZ (realtek-ambz)
RTL8720C = 0xE08F7564, // Realtek AmebaZ2 F_RTL8720C = 0xE08F7564, // Realtek AmebaZ2
RTL8720D = 0x3379CFE2, // Realtek AmebaD F_RTL8720D = 0x3379CFE2, // Realtek AmebaD
BK7231T = 0x675A40B0, // Beken 7231T F_BK7231T = 0x675A40B0, // Beken 7231T
BK7231N = 0x7B3EF230, // Beken 7231N F_BK7231N = 0x7B3EF230, // Beken 7231N
BL602 = 0xDE1270B7, // Boufallo 602 F_BL602 = 0xDE1270B7, // Boufallo 602
XR809 = 0x51E903A8, // Xradiotech 809 F_XR809 = 0x51E903A8, // Xradiotech 809
}; };
enum ChipType { enum ChipType {
// Realtek AmebaZ
// IDs copied from rtl8710b_efuse.h // IDs copied from rtl8710b_efuse.h
RTL8710BL = ((RTL8710B >> 24) << 8) | 0xE0, // ??? RTL8710BL = CHIP_TYPE(F_RTL8710B, 0xE0), // ???
RTL8710BN = ((RTL8710B >> 24) << 8) | 0xFF, // CHIPID_8710BN / QFN32 RTL8710BN = CHIP_TYPE(F_RTL8710B, 0xFF), // CHIPID_8710BN / QFN32
RTL8710BU = ((RTL8710B >> 24) << 8) | 0xFE, // CHIPID_8710BU / QFN48 RTL8710BU = CHIP_TYPE(F_RTL8710B, 0xFE), // CHIPID_8710BU / QFN48
RTL8710BX = ((RTL8710B >> 24) << 8) | 0xFB, // CHIPID_8710BN_L0 / QFN32 RTL8710BX = CHIP_TYPE(F_RTL8710B, 0xFB), // CHIPID_8710BN_L0 / QFN32
RTL8711BN = ((RTL8710B >> 24) << 8) | 0xFD, // CHIPID_8711BN / QFN48 RTL8711BN = CHIP_TYPE(F_RTL8710B, 0xFD), // CHIPID_8711BN / QFN48
RTL8711BU = ((RTL8710B >> 24) << 8) | 0xFC, // CHIPID_8711BG / QFN68 RTL8711BU = CHIP_TYPE(F_RTL8710B, 0xFC), // CHIPID_8711BG / QFN68
}; };

View File

@@ -27,7 +27,7 @@ ChipFamily LibreTuya::getChipFamily() {
* @brief Get CPU family name as string. * @brief Get CPU family name as string.
*/ */
const char *LibreTuya::getChipFamilyName() { const char *LibreTuya::getChipFamilyName() {
return STRINGIFY_MACRO(FAMILY); return STRINGIFY_MACRO(FAMILY) + 2;
} }
static char *deviceName = NULL; static char *deviceName = NULL;

View File

@@ -24,7 +24,7 @@ void LibreTuya::gpioRecover() {
ChipType LibreTuya::getChipType() { ChipType LibreTuya::getChipType() {
uint8_t chipId; uint8_t chipId;
EFUSE_OneByteReadROM(9902, 0xF8, &chipId, L25EOUTVOLTAGE); EFUSE_OneByteReadROM(9902, 0xF8, &chipId, L25EOUTVOLTAGE);
return (ChipType)(((RTL8710B >> 24) << 8) | chipId); return CHIP_TYPE_ENUM(F_RTL8710B, chipId);
} }
const char *LibreTuya::getChipModel() { const char *LibreTuya::getChipModel() {

View File

@@ -65,7 +65,7 @@ def env_add_defaults(env, platform, board):
("LT_BOARD", "${VARIANT}"), ("LT_BOARD", "${VARIANT}"),
("F_CPU", board.get("build.f_cpu")), ("F_CPU", board.get("build.f_cpu")),
("MCU", "${MCU}"), ("MCU", "${MCU}"),
("FAMILY", "${FAMILY}"), ("FAMILY", "F_${FAMILY}"),
], ],
LINKFLAGS=[ LINKFLAGS=[
"-Wl,-Map=" + join("$BUILD_DIR", "${PROGNAME}.map"), "-Wl,-Map=" + join("$BUILD_DIR", "${PROGNAME}.map"),

View File

@@ -5,8 +5,8 @@ uf2ota library allows to write a LibreTuya UF2 file to the flash, while parsing
## Usage example ## Usage example
```c ```c
uint8_t target = 1; // target OTA scheme - 1 or 2 uint8_t target = 1; // target OTA scheme - 1 or 2
uint32_t family = RTL8710B; // chip's UF2 family ID uint32_t family = F_RTL8710B; // chip's UF2 family ID
uf2_ota_t *ctx = uf2_ctx_init(target, family); uf2_ota_t *ctx = uf2_ctx_init(target, family);
uf2_info_t *info = uf2_info_init(); // optional, for getting firmware info uf2_info_t *info = uf2_info_init(); // optional, for getting firmware info
uf2_block_t *block = (uf2_block_t *)malloc(UF2_BLOCK_SIZE); uf2_block_t *block = (uf2_block_t *)malloc(UF2_BLOCK_SIZE);