From e22efc037a7e4da17f1051d5053768e40683da68 Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Wed, 2 Feb 2022 15:04:37 +1100 Subject: Don't make EEPROM size assumptions with dynamic keymaps. (#16054) * Don't make EEPROM size assumptions with dynamic keymaps. * Add support for checking against emulated flash, error out if someone attempts to build a board without specifying EEPROM size. * Reorder defines so that MCU is considered last. * Refactor EEPROM definitions for simplicity. * Fix max sizing of kabedon/kabedon980. * Fix max sizing of mechlovin/olly/jf. * Fix unit tests. * Review comments, add messages with values during build failures. --- platforms/chibios/eeprom_teensy.h | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100755 platforms/chibios/eeprom_teensy.h (limited to 'platforms/chibios/eeprom_teensy.h') diff --git a/platforms/chibios/eeprom_teensy.h b/platforms/chibios/eeprom_teensy.h new file mode 100755 index 0000000000..ead5998b29 --- /dev/null +++ b/platforms/chibios/eeprom_teensy.h @@ -0,0 +1,22 @@ +// Copyright 2022 Nick Brassel (@tzarc) +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#if defined(K20x) +/* Teensy 3.0, 3.1, 3.2; mchck; infinity keyboard */ +// The EEPROM is really RAM with a hardware-based backup system to +// flash memory. Selecting a smaller size EEPROM allows more wear +// leveling, for higher write endurance. If you edit this file, +// set this to the smallest size your application can use. Also, +// due to Freescale's implementation, writing 16 or 32 bit words +// (aligned to 2 or 4 byte boundaries) has twice the endurance +// compared to writing 8 bit bytes. +// +# ifndef EEPROM_SIZE +# define EEPROM_SIZE 32 +# endif +#elif defined(KL2x) /* Teensy LC (emulated) */ +# define EEPROM_SIZE 128 +#else +# error Unsupported Teensy EEPROM. +#endif -- cgit v1.2.1 From 1bdc1c23c706bc65f62d4377abdcf000d2485de3 Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Wed, 2 Feb 2022 16:21:07 +1100 Subject: Fixup builds so that teensy EEPROM knows which MCU it's targeting. (#16168) --- platforms/chibios/eeprom_teensy.h | 3 +++ 1 file changed, 3 insertions(+) (limited to 'platforms/chibios/eeprom_teensy.h') diff --git a/platforms/chibios/eeprom_teensy.h b/platforms/chibios/eeprom_teensy.h index ead5998b29..9a14a1fa79 100755 --- a/platforms/chibios/eeprom_teensy.h +++ b/platforms/chibios/eeprom_teensy.h @@ -2,6 +2,9 @@ // SPDX-License-Identifier: GPL-2.0-or-later #pragma once +#include +#include + #if defined(K20x) /* Teensy 3.0, 3.1, 3.2; mchck; infinity keyboard */ // The EEPROM is really RAM with a hardware-based backup system to -- cgit v1.2.1