~ruther/qmk_firmware

dc70ba612a929fdd365275d412e68c61836ed5b8 — Nick Brassel 3 years ago 2a0d490
Post-bootloader EFL/SPI fixes. (#17661)

* Fixup read address for EFL driver.

* Fixup sequencing of SPI.

* Lock during init of EFL backing store.
M platforms/chibios/drivers/spi_master.c => platforms/chibios/drivers/spi_master.c +0 -1
@@ 46,7 46,6 @@ __attribute__((weak)) void spi_init(void) {
        palSetPadMode(PAL_PORT(SPI_MOSI_PIN), PAL_PAD(SPI_MOSI_PIN), SPI_MOSI_FLAGS);
        palSetPadMode(PAL_PORT(SPI_MISO_PIN), PAL_PAD(SPI_MISO_PIN), SPI_MISO_FLAGS);
#endif
        spiUnselect(&SPI_DRIVER);
        spiStop(&SPI_DRIVER);
        currentSlavePin = NO_PIN;
    }

M platforms/chibios/drivers/wear_leveling/wear_leveling_efl.c => platforms/chibios/drivers/wear_leveling/wear_leveling_efl.c +4 -1
@@ 43,6 43,9 @@ bool backing_store_init(void) {
    bs_dprintf("Init\n");
    flash = (BaseFlash *)&EFLD1;

    // Need to re-lock the EFL, as if we've just had the bootloader executing it'll already be unlocked.
    backing_store_lock();

    const flash_descriptor_t *desc    = flashGetDescriptor(flash);
    uint32_t                  counter = 0;



@@ 132,7 135,7 @@ bool backing_store_lock(void) {

bool backing_store_read(uint32_t address, backing_store_int_t *value) {
    uint32_t             offset = (base_offset + address);
    backing_store_int_t *loc    = (backing_store_int_t *)offset;
    backing_store_int_t *loc    = (backing_store_int_t *)flashGetOffsetAddress(flash, offset);
    *value                      = ~(*loc);
    bs_dprintf("Read  ");
    wl_dump(offset, value, sizeof(backing_store_int_t));