Its mostly a clone of the linux driver excluding dma support.
Freebsd's SPI implementation does not have provision for SPI transfer direction and because SFC is half duplex you have to guess the direction from the SPI command code.
Also the cmd code, address and length are not sent via the bus but via mmio.
I added to flash devices to sys/dev/flash/mx25l.c (the ones i have on my boards)