diff options
| author | Nick Brassel <nick@tzarc.org> | 2019-11-06 08:04:50 +1100 |
|---|---|---|
| committer | Nick Brassel <nick@tzarc.org> | 2020-01-24 12:45:58 +1100 |
| commit | d13ada11622977bcc0b530212b4405229805016d (patch) | |
| tree | 3f8874ac3c9b5950b1fed6ac4d0081a268d9f487 /tmk_core | |
| parent | 6ff093efbee21d3f64f5b4bfdbc66d4648490523 (diff) | |
| download | qmk_firmware-d13ada11622977bcc0b530212b4405229805016d.tar.gz qmk_firmware-d13ada11622977bcc0b530212b4405229805016d.zip | |
Add customisable EEPROM driver selection (#7274)
- uprintf -> dprintf
- Fix atsam "vendor" eeprom.
- Bump Kinetis K20x to 64 bytes, too.
- Rollback Kinetis to 32 bytes as partitioning can only be done once. Add warning about changing the value.
- Change RAM-backed "fake" EEPROM implementations to match eeconfig's current usage.
- Add 24LC128 by request.
Diffstat (limited to 'tmk_core')
| -rw-r--r-- | tmk_core/common.mk | 30 | ||||
| -rw-r--r-- | tmk_core/common/arm_atsam/eeprom.c | 13 | ||||
| -rw-r--r-- | tmk_core/common/chibios/eeprom_stm32.c | 6 | ||||
| -rw-r--r-- | tmk_core/common/chibios/eeprom_teensy.c | 25 | ||||
| -rw-r--r-- | tmk_core/common/eeconfig.c | 10 | ||||
| -rw-r--r-- | tmk_core/common/eeprom.h | 9 | ||||
| -rw-r--r-- | tmk_core/common/test/eeprom.c | 6 |
7 files changed, 51 insertions, 48 deletions
diff --git a/tmk_core/common.mk b/tmk_core/common.mk index 8f355da12..5f149d8f4 100644 --- a/tmk_core/common.mk +++ b/tmk_core/common.mk | |||
| @@ -26,29 +26,11 @@ TMK_COMMON_SRC += $(COMMON_DIR)/host.c \ | |||
| 26 | $(PLATFORM_COMMON_DIR)/bootloader.c \ | 26 | $(PLATFORM_COMMON_DIR)/bootloader.c \ |
| 27 | 27 | ||
| 28 | ifeq ($(PLATFORM),AVR) | 28 | ifeq ($(PLATFORM),AVR) |
| 29 | TMK_COMMON_SRC += $(PLATFORM_COMMON_DIR)/xprintf.S | 29 | TMK_COMMON_SRC += $(PLATFORM_COMMON_DIR)/xprintf.S |
| 30 | endif | 30 | endif |
| 31 | 31 | ||
| 32 | ifeq ($(PLATFORM),CHIBIOS) | 32 | ifeq ($(PLATFORM),CHIBIOS) |
| 33 | TMK_COMMON_SRC += $(PLATFORM_COMMON_DIR)/printf.c | 33 | TMK_COMMON_SRC += $(PLATFORM_COMMON_DIR)/printf.c |
| 34 | ifeq ($(MCU_SERIES), STM32F3xx) | ||
| 35 | TMK_COMMON_SRC += $(PLATFORM_COMMON_DIR)/eeprom_stm32.c | ||
| 36 | TMK_COMMON_SRC += $(PLATFORM_COMMON_DIR)/flash_stm32.c | ||
| 37 | TMK_COMMON_DEFS += -DEEPROM_EMU_STM32F303xC | ||
| 38 | TMK_COMMON_DEFS += -DSTM32_EEPROM_ENABLE | ||
| 39 | else ifeq ($(MCU_SERIES), STM32F1xx) | ||
| 40 | TMK_COMMON_SRC += $(PLATFORM_COMMON_DIR)/eeprom_stm32.c | ||
| 41 | TMK_COMMON_SRC += $(PLATFORM_COMMON_DIR)/flash_stm32.c | ||
| 42 | TMK_COMMON_DEFS += -DEEPROM_EMU_STM32F103xB | ||
| 43 | TMK_COMMON_DEFS += -DSTM32_EEPROM_ENABLE | ||
| 44 | else ifeq ($(MCU_SERIES)_$(MCU_LDSCRIPT), STM32F0xx_STM32F072xB) | ||
| 45 | TMK_COMMON_SRC += $(PLATFORM_COMMON_DIR)/eeprom_stm32.c | ||
| 46 | TMK_COMMON_SRC += $(PLATFORM_COMMON_DIR)/flash_stm32.c | ||
| 47 | TMK_COMMON_DEFS += -DEEPROM_EMU_STM32F072xB | ||
| 48 | TMK_COMMON_DEFS += -DSTM32_EEPROM_ENABLE | ||
| 49 | else | ||
| 50 | TMK_COMMON_SRC += $(PLATFORM_COMMON_DIR)/eeprom_teensy.c | ||
| 51 | endif | ||
| 52 | ifeq ($(strip $(AUTO_SHIFT_ENABLE)), yes) | 34 | ifeq ($(strip $(AUTO_SHIFT_ENABLE)), yes) |
| 53 | TMK_COMMON_SRC += $(CHIBIOS)/os/various/syscalls.c | 35 | TMK_COMMON_SRC += $(CHIBIOS)/os/various/syscalls.c |
| 54 | else ifeq ($(strip $(TERMINAL_ENABLE)), yes) | 36 | else ifeq ($(strip $(TERMINAL_ENABLE)), yes) |
| @@ -57,15 +39,9 @@ ifeq ($(PLATFORM),CHIBIOS) | |||
| 57 | endif | 39 | endif |
| 58 | 40 | ||
| 59 | ifeq ($(PLATFORM),ARM_ATSAM) | 41 | ifeq ($(PLATFORM),ARM_ATSAM) |
| 60 | TMK_COMMON_SRC += $(PLATFORM_COMMON_DIR)/printf.c | 42 | TMK_COMMON_SRC += $(PLATFORM_COMMON_DIR)/printf.c |
| 61 | TMK_COMMON_SRC += $(PLATFORM_COMMON_DIR)/eeprom.c | ||
| 62 | endif | 43 | endif |
| 63 | 44 | ||
| 64 | ifeq ($(PLATFORM),TEST) | ||
| 65 | TMK_COMMON_SRC += $(PLATFORM_COMMON_DIR)/eeprom.c | ||
| 66 | endif | ||
| 67 | |||
| 68 | |||
| 69 | 45 | ||
| 70 | # Option modules | 46 | # Option modules |
| 71 | BOOTMAGIC_ENABLE ?= no | 47 | BOOTMAGIC_ENABLE ?= no |
diff --git a/tmk_core/common/arm_atsam/eeprom.c b/tmk_core/common/arm_atsam/eeprom.c index 44a0bf4d7..a69f38282 100644 --- a/tmk_core/common/arm_atsam/eeprom.c +++ b/tmk_core/common/arm_atsam/eeprom.c | |||
| @@ -16,9 +16,12 @@ | |||
| 16 | 16 | ||
| 17 | #include "eeprom.h" | 17 | #include "eeprom.h" |
| 18 | 18 | ||
| 19 | #define EEPROM_SIZE 32 | 19 | #ifndef EEPROM_SIZE |
| 20 | # include "eeconfig.h" | ||
| 21 | # define EEPROM_SIZE (((EECONFIG_SIZE+3)/4)*4) // based off eeconfig's current usage, aligned to 4-byte sizes, to deal with LTO | ||
| 22 | #endif | ||
| 20 | 23 | ||
| 21 | static uint8_t buffer[EEPROM_SIZE]; | 24 | __attribute__((aligned(4))) static uint8_t buffer[EEPROM_SIZE]; |
| 22 | 25 | ||
| 23 | uint8_t eeprom_read_byte(const uint8_t *addr) { | 26 | uint8_t eeprom_read_byte(const uint8_t *addr) { |
| 24 | uintptr_t offset = (uintptr_t)addr; | 27 | uintptr_t offset = (uintptr_t)addr; |
| @@ -40,7 +43,7 @@ uint32_t eeprom_read_dword(const uint32_t *addr) { | |||
| 40 | return eeprom_read_byte(p) | (eeprom_read_byte(p + 1) << 8) | (eeprom_read_byte(p + 2) << 16) | (eeprom_read_byte(p + 3) << 24); | 43 | return eeprom_read_byte(p) | (eeprom_read_byte(p + 1) << 8) | (eeprom_read_byte(p + 2) << 16) | (eeprom_read_byte(p + 3) << 24); |
| 41 | } | 44 | } |
| 42 | 45 | ||
| 43 | void eeprom_read_block(void *buf, const void *addr, uint32_t len) { | 46 | void eeprom_read_block(void *buf, const void *addr, size_t len) { |
| 44 | const uint8_t *p = (const uint8_t *)addr; | 47 | const uint8_t *p = (const uint8_t *)addr; |
| 45 | uint8_t * dest = (uint8_t *)buf; | 48 | uint8_t * dest = (uint8_t *)buf; |
| 46 | while (len--) { | 49 | while (len--) { |
| @@ -62,7 +65,7 @@ void eeprom_write_dword(uint32_t *addr, uint32_t value) { | |||
| 62 | eeprom_write_byte(p, value >> 24); | 65 | eeprom_write_byte(p, value >> 24); |
| 63 | } | 66 | } |
| 64 | 67 | ||
| 65 | void eeprom_write_block(const void *buf, void *addr, uint32_t len) { | 68 | void eeprom_write_block(const void *buf, void *addr, size_t len) { |
| 66 | uint8_t * p = (uint8_t *)addr; | 69 | uint8_t * p = (uint8_t *)addr; |
| 67 | const uint8_t *src = (const uint8_t *)buf; | 70 | const uint8_t *src = (const uint8_t *)buf; |
| 68 | while (len--) { | 71 | while (len--) { |
| @@ -86,7 +89,7 @@ void eeprom_update_dword(uint32_t *addr, uint32_t value) { | |||
| 86 | eeprom_write_byte(p, value >> 24); | 89 | eeprom_write_byte(p, value >> 24); |
| 87 | } | 90 | } |
| 88 | 91 | ||
| 89 | void eeprom_update_block(const void *buf, void *addr, uint32_t len) { | 92 | void eeprom_update_block(const void *buf, void *addr, size_t len) { |
| 90 | uint8_t * p = (uint8_t *)addr; | 93 | uint8_t * p = (uint8_t *)addr; |
| 91 | const uint8_t *src = (const uint8_t *)buf; | 94 | const uint8_t *src = (const uint8_t *)buf; |
| 92 | while (len--) { | 95 | while (len--) { |
diff --git a/tmk_core/common/chibios/eeprom_stm32.c b/tmk_core/common/chibios/eeprom_stm32.c index 926b581c6..ea5198972 100644 --- a/tmk_core/common/chibios/eeprom_stm32.c +++ b/tmk_core/common/chibios/eeprom_stm32.c | |||
| @@ -173,7 +173,7 @@ void eeprom_update_dword(uint32_t *Address, uint32_t Value) { | |||
| 173 | } | 173 | } |
| 174 | } | 174 | } |
| 175 | 175 | ||
| 176 | void eeprom_read_block(void *buf, const void *addr, uint32_t len) { | 176 | void eeprom_read_block(void *buf, const void *addr, size_t len) { |
| 177 | const uint8_t *p = (const uint8_t *)addr; | 177 | const uint8_t *p = (const uint8_t *)addr; |
| 178 | uint8_t * dest = (uint8_t *)buf; | 178 | uint8_t * dest = (uint8_t *)buf; |
| 179 | while (len--) { | 179 | while (len--) { |
| @@ -181,7 +181,7 @@ void eeprom_read_block(void *buf, const void *addr, uint32_t len) { | |||
| 181 | } | 181 | } |
| 182 | } | 182 | } |
| 183 | 183 | ||
| 184 | void eeprom_write_block(const void *buf, void *addr, uint32_t len) { | 184 | void eeprom_write_block(const void *buf, void *addr, size_t len) { |
| 185 | uint8_t * p = (uint8_t *)addr; | 185 | uint8_t * p = (uint8_t *)addr; |
| 186 | const uint8_t *src = (const uint8_t *)buf; | 186 | const uint8_t *src = (const uint8_t *)buf; |
| 187 | while (len--) { | 187 | while (len--) { |
| @@ -189,7 +189,7 @@ void eeprom_write_block(const void *buf, void *addr, uint32_t len) { | |||
| 189 | } | 189 | } |
| 190 | } | 190 | } |
| 191 | 191 | ||
| 192 | void eeprom_update_block(const void *buf, void *addr, uint32_t len) { | 192 | void eeprom_update_block(const void *buf, void *addr, size_t len) { |
| 193 | uint8_t * p = (uint8_t *)addr; | 193 | uint8_t * p = (uint8_t *)addr; |
| 194 | const uint8_t *src = (const uint8_t *)buf; | 194 | const uint8_t *src = (const uint8_t *)buf; |
| 195 | while (len--) { | 195 | while (len--) { |
diff --git a/tmk_core/common/chibios/eeprom_teensy.c b/tmk_core/common/chibios/eeprom_teensy.c index a4093fb3b..0fab9f73d 100644 --- a/tmk_core/common/chibios/eeprom_teensy.c +++ b/tmk_core/common/chibios/eeprom_teensy.c | |||
| @@ -50,7 +50,17 @@ | |||
| 50 | // (aligned to 2 or 4 byte boundaries) has twice the endurance | 50 | // (aligned to 2 or 4 byte boundaries) has twice the endurance |
| 51 | // compared to writing 8 bit bytes. | 51 | // compared to writing 8 bit bytes. |
| 52 | // | 52 | // |
| 53 | # define EEPROM_SIZE 32 | 53 | # ifndef EEPROM_SIZE |
| 54 | # define EEPROM_SIZE 32 | ||
| 55 | # endif | ||
| 56 | |||
| 57 | /* | ||
| 58 | ^^^ Here be dragons: | ||
| 59 | NXP AppNote AN4282 section 3.1 states that partitioning must only be done once. | ||
| 60 | Once EEPROM partitioning is done, the size is locked to this initial configuration. | ||
| 61 | Attempts to modify the EEPROM_SIZE setting may brick your board. | ||
| 62 | */ | ||
| 63 | |||
| 54 | 64 | ||
| 55 | // Writing unaligned 16 or 32 bit data is handled automatically when | 65 | // Writing unaligned 16 or 32 bit data is handled automatically when |
| 56 | // this is defined, but at a cost of extra code size. Without this, | 66 | // this is defined, but at a cost of extra code size. Without this, |
| @@ -517,8 +527,11 @@ void eeprom_write_block(const void *buf, void *addr, uint32_t len) { | |||
| 517 | #else | 527 | #else |
| 518 | // No EEPROM supported, so emulate it | 528 | // No EEPROM supported, so emulate it |
| 519 | 529 | ||
| 520 | # define EEPROM_SIZE 32 | 530 | # ifndef EEPROM_SIZE |
| 521 | static uint8_t buffer[EEPROM_SIZE]; | 531 | # include "eeconfig.h" |
| 532 | # define EEPROM_SIZE (((EECONFIG_SIZE+3)/4)*4) // based off eeconfig's current usage, aligned to 4-byte sizes, to deal with LTO | ||
| 533 | # endif | ||
| 534 | __attribute__((aligned(4))) static uint8_t buffer[EEPROM_SIZE]; | ||
| 522 | 535 | ||
| 523 | uint8_t eeprom_read_byte(const uint8_t *addr) { | 536 | uint8_t eeprom_read_byte(const uint8_t *addr) { |
| 524 | uint32_t offset = (uint32_t)addr; | 537 | uint32_t offset = (uint32_t)addr; |
| @@ -540,7 +553,7 @@ uint32_t eeprom_read_dword(const uint32_t *addr) { | |||
| 540 | return eeprom_read_byte(p) | (eeprom_read_byte(p + 1) << 8) | (eeprom_read_byte(p + 2) << 16) | (eeprom_read_byte(p + 3) << 24); | 553 | return eeprom_read_byte(p) | (eeprom_read_byte(p + 1) << 8) | (eeprom_read_byte(p + 2) << 16) | (eeprom_read_byte(p + 3) << 24); |
| 541 | } | 554 | } |
| 542 | 555 | ||
| 543 | void eeprom_read_block(void *buf, const void *addr, uint32_t len) { | 556 | void eeprom_read_block(void *buf, const void *addr, size_t len) { |
| 544 | const uint8_t *p = (const uint8_t *)addr; | 557 | const uint8_t *p = (const uint8_t *)addr; |
| 545 | uint8_t * dest = (uint8_t *)buf; | 558 | uint8_t * dest = (uint8_t *)buf; |
| 546 | while (len--) { | 559 | while (len--) { |
| @@ -562,7 +575,7 @@ void eeprom_write_dword(uint32_t *addr, uint32_t value) { | |||
| 562 | eeprom_write_byte(p, value >> 24); | 575 | eeprom_write_byte(p, value >> 24); |
| 563 | } | 576 | } |
| 564 | 577 | ||
| 565 | void eeprom_write_block(const void *buf, void *addr, uint32_t len) { | 578 | void eeprom_write_block(const void *buf, void *addr, size_t len) { |
| 566 | uint8_t * p = (uint8_t *)addr; | 579 | uint8_t * p = (uint8_t *)addr; |
| 567 | const uint8_t *src = (const uint8_t *)buf; | 580 | const uint8_t *src = (const uint8_t *)buf; |
| 568 | while (len--) { | 581 | while (len--) { |
| @@ -589,7 +602,7 @@ void eeprom_update_dword(uint32_t *addr, uint32_t value) { | |||
| 589 | eeprom_write_byte(p, value >> 24); | 602 | eeprom_write_byte(p, value >> 24); |
| 590 | } | 603 | } |
| 591 | 604 | ||
| 592 | void eeprom_update_block(const void *buf, void *addr, uint32_t len) { | 605 | void eeprom_update_block(const void *buf, void *addr, size_t len) { |
| 593 | uint8_t * p = (uint8_t *)addr; | 606 | uint8_t * p = (uint8_t *)addr; |
| 594 | const uint8_t *src = (const uint8_t *)buf; | 607 | const uint8_t *src = (const uint8_t *)buf; |
| 595 | while (len--) { | 608 | while (len--) { |
diff --git a/tmk_core/common/eeconfig.c b/tmk_core/common/eeconfig.c index 7cec4bd7d..fe56c57d1 100644 --- a/tmk_core/common/eeconfig.c +++ b/tmk_core/common/eeconfig.c | |||
| @@ -9,6 +9,10 @@ | |||
| 9 | # include "eeprom_stm32.h" | 9 | # include "eeprom_stm32.h" |
| 10 | #endif | 10 | #endif |
| 11 | 11 | ||
| 12 | #if defined(EEPROM_DRIVER) | ||
| 13 | # include "eeprom_driver.h" | ||
| 14 | #endif | ||
| 15 | |||
| 12 | /** \brief eeconfig enable | 16 | /** \brief eeconfig enable |
| 13 | * | 17 | * |
| 14 | * FIXME: needs doc | 18 | * FIXME: needs doc |
| @@ -32,6 +36,9 @@ void eeconfig_init_quantum(void) { | |||
| 32 | #ifdef STM32_EEPROM_ENABLE | 36 | #ifdef STM32_EEPROM_ENABLE |
| 33 | EEPROM_Erase(); | 37 | EEPROM_Erase(); |
| 34 | #endif | 38 | #endif |
| 39 | #if defined(EEPROM_DRIVER) | ||
| 40 | eeprom_driver_erase(); | ||
| 41 | #endif | ||
| 35 | eeprom_update_word(EECONFIG_MAGIC, EECONFIG_MAGIC_NUMBER); | 42 | eeprom_update_word(EECONFIG_MAGIC, EECONFIG_MAGIC_NUMBER); |
| 36 | eeprom_update_byte(EECONFIG_DEBUG, 0); | 43 | eeprom_update_byte(EECONFIG_DEBUG, 0); |
| 37 | eeprom_update_byte(EECONFIG_DEFAULT_LAYER, 0); | 44 | eeprom_update_byte(EECONFIG_DEFAULT_LAYER, 0); |
| @@ -81,6 +88,9 @@ void eeconfig_disable(void) { | |||
| 81 | #ifdef STM32_EEPROM_ENABLE | 88 | #ifdef STM32_EEPROM_ENABLE |
| 82 | EEPROM_Erase(); | 89 | EEPROM_Erase(); |
| 83 | #endif | 90 | #endif |
| 91 | #if defined(EEPROM_DRIVER) | ||
| 92 | eeprom_driver_erase(); | ||
| 93 | #endif | ||
| 84 | eeprom_update_word(EECONFIG_MAGIC, EECONFIG_MAGIC_NUMBER_OFF); | 94 | eeprom_update_word(EECONFIG_MAGIC, EECONFIG_MAGIC_NUMBER_OFF); |
| 85 | } | 95 | } |
| 86 | 96 | ||
diff --git a/tmk_core/common/eeprom.h b/tmk_core/common/eeprom.h index fcd1667c0..8a81e7066 100644 --- a/tmk_core/common/eeprom.h +++ b/tmk_core/common/eeprom.h | |||
| @@ -1,23 +1,24 @@ | |||
| 1 | #ifndef TMK_CORE_COMMON_EEPROM_H_ | 1 | #ifndef TMK_CORE_COMMON_EEPROM_H_ |
| 2 | #define TMK_CORE_COMMON_EEPROM_H_ | 2 | #define TMK_CORE_COMMON_EEPROM_H_ |
| 3 | 3 | ||
| 4 | #if defined(__AVR__) | 4 | #if defined(__AVR__) && !defined(EEPROM_DRIVER) |
| 5 | # include <avr/eeprom.h> | 5 | # include <avr/eeprom.h> |
| 6 | #else | 6 | #else |
| 7 | # include <stdint.h> | 7 | # include <stdint.h> |
| 8 | # include <stdlib.h> | ||
| 8 | 9 | ||
| 9 | uint8_t eeprom_read_byte(const uint8_t *__p); | 10 | uint8_t eeprom_read_byte(const uint8_t *__p); |
| 10 | uint16_t eeprom_read_word(const uint16_t *__p); | 11 | uint16_t eeprom_read_word(const uint16_t *__p); |
| 11 | uint32_t eeprom_read_dword(const uint32_t *__p); | 12 | uint32_t eeprom_read_dword(const uint32_t *__p); |
| 12 | void eeprom_read_block(void *__dst, const void *__src, uint32_t __n); | 13 | void eeprom_read_block(void *__dst, const void *__src, size_t __n); |
| 13 | void eeprom_write_byte(uint8_t *__p, uint8_t __value); | 14 | void eeprom_write_byte(uint8_t *__p, uint8_t __value); |
| 14 | void eeprom_write_word(uint16_t *__p, uint16_t __value); | 15 | void eeprom_write_word(uint16_t *__p, uint16_t __value); |
| 15 | void eeprom_write_dword(uint32_t *__p, uint32_t __value); | 16 | void eeprom_write_dword(uint32_t *__p, uint32_t __value); |
| 16 | void eeprom_write_block(const void *__src, void *__dst, uint32_t __n); | 17 | void eeprom_write_block(const void *__src, void *__dst, size_t __n); |
| 17 | void eeprom_update_byte(uint8_t *__p, uint8_t __value); | 18 | void eeprom_update_byte(uint8_t *__p, uint8_t __value); |
| 18 | void eeprom_update_word(uint16_t *__p, uint16_t __value); | 19 | void eeprom_update_word(uint16_t *__p, uint16_t __value); |
| 19 | void eeprom_update_dword(uint32_t *__p, uint32_t __value); | 20 | void eeprom_update_dword(uint32_t *__p, uint32_t __value); |
| 20 | void eeprom_update_block(const void *__src, void *__dst, uint32_t __n); | 21 | void eeprom_update_block(const void *__src, void *__dst, size_t __n); |
| 21 | #endif | 22 | #endif |
| 22 | 23 | ||
| 23 | #endif /* TMK_CORE_COMMON_EEPROM_H_ */ | 24 | #endif /* TMK_CORE_COMMON_EEPROM_H_ */ |
diff --git a/tmk_core/common/test/eeprom.c b/tmk_core/common/test/eeprom.c index 44a0bf4d7..5c8e69dae 100644 --- a/tmk_core/common/test/eeprom.c +++ b/tmk_core/common/test/eeprom.c | |||
| @@ -40,7 +40,7 @@ uint32_t eeprom_read_dword(const uint32_t *addr) { | |||
| 40 | return eeprom_read_byte(p) | (eeprom_read_byte(p + 1) << 8) | (eeprom_read_byte(p + 2) << 16) | (eeprom_read_byte(p + 3) << 24); | 40 | return eeprom_read_byte(p) | (eeprom_read_byte(p + 1) << 8) | (eeprom_read_byte(p + 2) << 16) | (eeprom_read_byte(p + 3) << 24); |
| 41 | } | 41 | } |
| 42 | 42 | ||
| 43 | void eeprom_read_block(void *buf, const void *addr, uint32_t len) { | 43 | void eeprom_read_block(void *buf, const void *addr, size_t len) { |
| 44 | const uint8_t *p = (const uint8_t *)addr; | 44 | const uint8_t *p = (const uint8_t *)addr; |
| 45 | uint8_t * dest = (uint8_t *)buf; | 45 | uint8_t * dest = (uint8_t *)buf; |
| 46 | while (len--) { | 46 | while (len--) { |
| @@ -62,7 +62,7 @@ void eeprom_write_dword(uint32_t *addr, uint32_t value) { | |||
| 62 | eeprom_write_byte(p, value >> 24); | 62 | eeprom_write_byte(p, value >> 24); |
| 63 | } | 63 | } |
| 64 | 64 | ||
| 65 | void eeprom_write_block(const void *buf, void *addr, uint32_t len) { | 65 | void eeprom_write_block(const void *buf, void *addr, size_t len) { |
| 66 | uint8_t * p = (uint8_t *)addr; | 66 | uint8_t * p = (uint8_t *)addr; |
| 67 | const uint8_t *src = (const uint8_t *)buf; | 67 | const uint8_t *src = (const uint8_t *)buf; |
| 68 | while (len--) { | 68 | while (len--) { |
| @@ -86,7 +86,7 @@ void eeprom_update_dword(uint32_t *addr, uint32_t value) { | |||
| 86 | eeprom_write_byte(p, value >> 24); | 86 | eeprom_write_byte(p, value >> 24); |
| 87 | } | 87 | } |
| 88 | 88 | ||
| 89 | void eeprom_update_block(const void *buf, void *addr, uint32_t len) { | 89 | void eeprom_update_block(const void *buf, void *addr, size_t len) { |
| 90 | uint8_t * p = (uint8_t *)addr; | 90 | uint8_t * p = (uint8_t *)addr; |
| 91 | const uint8_t *src = (const uint8_t *)buf; | 91 | const uint8_t *src = (const uint8_t *)buf; |
| 92 | while (len--) { | 92 | while (len--) { |
