Both - software configured "virtual" and build-in hardware.
It will be good approach to work with SD-card.
Bootloader suports to treat MTDO (GPIO15) pin as selector to boot from (and work with) SD-card.
Then GPIO0 and GPIO2 work as SDIO interface.
Below is an image showing expanded GPIO12,13,14,15 pins - for software SPI...