The Hardware supports the part.
The Software must suitably configure the part and walk it into the correct/desired mode of operation at both ends.
Timing, must meet those specified by the chip, and the performance of the traces / pin drivers.
Choice of commands, bit lengths / widths of the phases, sufficient "dummy" cycles for the part to prefetch a buffer/line of data, or a couple, so it can stream bytes at high speeds, independently of the speed to fetch from the array.
A 16MB (128Mb) device can be addressed via 24-byte (3-byte) address, large devices will need 4-bytes, that mode may either need to be selected, or different sub-set of commands used.
You will be expected to read the data sheets and manuals for both the memory IC, and the MCU, to fully understand the expectations on both ends.
To program content, tools like STM32 Cube Programmer, need an "External Loader" that is aware of your part choice, board clocks, and board wiring. Given the wide variety of pin combinations these need to be customized to circumstances.
The Erase is a bit complicated, as there's a mix of sector sizes at the front/back (4KB), rest (64KB)
Got some support for the 256Mb models, and could likely add support for the 128Mb ones. https://github.com/cturvey/stm32extldr/tree/main/h7_s25sl256