Post-bootloader EFL/SPI fixes. (#17661)

* Fixup read address for EFL driver.

* Fixup sequencing of SPI.

* Lock during init of EFL backing store.
This commit is contained in:
Nick Brassel 2022-07-14 00:41:08 +10:00 committed by GitHub
parent 2a0d490eb3
commit dc70ba612a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 4 additions and 2 deletions

View file

@ -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_MOSI_PIN), PAL_PAD(SPI_MOSI_PIN), SPI_MOSI_FLAGS);
palSetPadMode(PAL_PORT(SPI_MISO_PIN), PAL_PAD(SPI_MISO_PIN), SPI_MISO_FLAGS); palSetPadMode(PAL_PORT(SPI_MISO_PIN), PAL_PAD(SPI_MISO_PIN), SPI_MISO_FLAGS);
#endif #endif
spiUnselect(&SPI_DRIVER);
spiStop(&SPI_DRIVER); spiStop(&SPI_DRIVER);
currentSlavePin = NO_PIN; currentSlavePin = NO_PIN;
} }

View file

@ -43,6 +43,9 @@ bool backing_store_init(void) {
bs_dprintf("Init\n"); bs_dprintf("Init\n");
flash = (BaseFlash *)&EFLD1; 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); const flash_descriptor_t *desc = flashGetDescriptor(flash);
uint32_t counter = 0; 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) { bool backing_store_read(uint32_t address, backing_store_int_t *value) {
uint32_t offset = (base_offset + address); 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); *value = ~(*loc);
bs_dprintf("Read "); bs_dprintf("Read ");
wl_dump(offset, value, sizeof(backing_store_int_t)); wl_dump(offset, value, sizeof(backing_store_int_t));