If I use a SPI Flash without a RESET# signal as my boot code storage, how can I be sure the boot code can be read after a system reset?
Since the S25FL016K SPI Flash device does not have a hardwired reset input, the SPI Flash device is not able to detect that a reset has occurred. It will continue to perform the existing operation until it has successfully completed and returns to read mode. For this application, Cypress would recommend using the S25FL-S device family with the reset input option instead of the S25FL-K device family.
The best practice, in this case, is to use a power-on reset (POR) based system reset. This will force the Flash to restart at the same time as the MCU and any other chips on that power supply, so the MCU boot-from-flash phase always works.
Alternatively, if signal-based system reset is a requirement, you might try a Cypress SPI Flash device that has a RESET# signal available on its pinout. Many of the newer SPI Flash devices either have the RESET# signal assigned to a dedicated pin, or the RESET# function is multiplexed with another pin. Any of these choices would enable your signal-based system reset requirement.