Hold and WP are not used by the driver, but if they are connected
to the flash they must be driven HIGH to enable writes and not stop
any flash operation.
There is no difference between 4k erase and sector erase.
But sector erase would previously do `.block_erase` which would not
erase a sector (4k) but a whole block (64k).
Fortunately all boards declare `SPI_NOR_F_SECT_4K` and all file systems
don't try to erase anything smaller, so this was never triggered.
Add an `assert(0)` to crash instead of corrupting data.
Just read the JEDEC ID with a single SPI transfer, there can only
be 10 banks.
This makes adaption to QSPI much simpler because now flash functions
don't call the SPI API directly anymore.