mirror of
https://github.com/esp8266/Arduino.git
synced 2025-07-16 00:43:00 +03:00
Xmc flash 2 (#7317)
* Remove unnecessary XMC support from eboot eboot is always run with the flash access speed set to 20MHz, so there is no need for special treatment of XMC chips. * After eboot copies the new firmware into place, verify the copy. If the data written to flash is as expected, the line cmp:0 will be displayed after the usual @cp:0 from eboot. * Disable interrupts during the precached part of _SPICommand() For some reason this was an issue during the reboot after an OTA update.
This commit is contained in:
@ -52,7 +52,7 @@ static SpiOpResult PRECACHE_ATTR
|
||||
_SPICommand(volatile uint32_t spiIfNum,
|
||||
uint32_t spic,uint32_t spiu,uint32_t spiu1,uint32_t spiu2,
|
||||
uint32_t *data,uint32_t writeWords,uint32_t readWords)
|
||||
{
|
||||
{
|
||||
if (spiIfNum>1)
|
||||
return SPI_RESULT_ERR;
|
||||
|
||||
@ -69,8 +69,11 @@ _SPICommand(volatile uint32_t spiIfNum,
|
||||
volatile SpiFlashChip *fchip=flashchip;
|
||||
volatile uint32_t spicmdusr=SPICMDUSR;
|
||||
|
||||
uint32_t saved_ps=0;
|
||||
|
||||
if (!spiIfNum) {
|
||||
// Only need to precache when using SPI0
|
||||
// Only need to disable interrupts and precache when using SPI0
|
||||
saved_ps = xt_rsil(15);
|
||||
PRECACHE_START();
|
||||
Wait_SPI_Idlep((SpiFlashChip *)fchip);
|
||||
}
|
||||
@ -116,6 +119,9 @@ _SPICommand(volatile uint32_t spiIfNum,
|
||||
SPIREG(SPI0C) = oldSPI0C;
|
||||
|
||||
PRECACHE_END();
|
||||
if (!spiIfNum) {
|
||||
xt_wsr_ps(saved_ps);
|
||||
}
|
||||
return (timeout>0 ? SPI_RESULT_OK : SPI_RESULT_TIMEOUT);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user