Check JEDEC ID is in range between 0x0001 ... 0xFFFE,
Compare the output from 0x90 and 0x9F,
Then the size from the JEDEC ID
Otherwise fall-back to 256 kB
Extend the spi_flash_decode.py to handle more (known) SPI flash ICs
Reverted 'mfr_id' to 'manufacturer_id'
Moved devices table definition to flashmem.h
Single global variable 'spi_flash_pages64k'
The local structure holding the actual device data is used in firmware.c only
difference in code:
```
text data bss dec hex filename
223189 138560 6067 367816 59cc8 ./armsrc/obj/fullimage.elf <-- c9e751d darkside: fix backdoor support
223437 138624 6075 368136 59e08 ./armsrc/obj/fullimage.elf <-- this commit
======================================
+248 +64 +8 +320
```
* introduced a new communication command CMD_FLASHMEM_PAGES64K to get the number of 64k pages
* "the last page" is a special, holding the dicts and some other stuff, relocated to there
* raised timeout when wiping a mem page (W25Q16 looks a bit slower than W25X20BV)
* loop all pages in Flash_WipeMemory()
this could happen if TC2 was already 0 when it was started or reset
resulting in the initial reset not happening until TC0 had overflowed for
the first time as the delay to ensure this didn't happen would be missed
when TC2 was already 0
the new behaviour results in TIOA0 being toggled when a software trigger
of TC0 happens which makes TC2 reset immediately without having to wait
for TC0 to overflow