Hi William,
The BFROM_SPIBOOT() processes boot streams residing in SPI memories, using the SPI0 controller. But before calling this routine to load the boot stream from SPI flash connected to SPI0 controller, the corresponding FER and MUX registers should be configured to enable the SPI0 signals otherwise the loading the image will fail. Also one more important point is that the boot kernel does not allow SPI0 hardware to control the SPI0SEL1 pin. Instead, this pin is toggled in GPIO mode by software so the PE4 should not be configured for SPI functionality rather it should be enabled as GPIO so that boot kernel can use it as software controlled slave select signal.
For SPI boot it is not required to use BFLAG_SLAVE. If you are using BFLAG_NOAUTO flag then you should specify the SPI flash width, in case of BF548 EZ-Kit as it has a 24-bit flash it can be specified with BFLAG_TYPE3 flag(Refer Figure 17-54. dFlags Word (Bits 31–16) page 17-125 in BF548 HRM for more information). Also, ensure that the calling application has a valid stack.
I have tested a simple LED blink code to boot the BF548 EZ-Kit using BFROM_SPIBOOT() using flags BFLAG_PERIPHERAL, BFLAG_NOAUTO and BFLAG_TYPE3. Please find the attachment with this post and attachment also contains the LED blink LDR, you may use them as a reference.
Best Regards,
Suraj.