I haven't ever done this, I'm just reading the manual. From there, the SBF bytes should be:
00 Four zero bits for sync, then 4 bits of BLDIV
00 20 0x2000 (8k longs or 32k bytes)
61 00 0F 01 0x010F0061 - 32 bit muxed, NAND, PLL Div 1, 0x0F, other dividers
==== Code Follows ====
00 00 00 00 Stack Pointer is ZERO?
80 00 00 8C Initial Program Counter in SRAM at 8000008c or 8c000000
47 E0 04 B6 These are meant to be Interrupt Vectors. Those addresses aren't in RAM?
Are you sure the BLDIV is appropriate for your clock rate? What is the SPI clock and is it "legal" for your memory chip? At least you can measure this with your scope.
I'm surprised at the above as it is reading the SPI Flash in LITTLE_ENDIAN order, and this is a BIG_ENDIAN CPU. It is documented as reading the "Length" in little-endian, so maybe it reads all the code the same way. It doesn't say at all.
If it is reading the code big-endian, then the code starts at 0x8000008C, or at "93" in your dump, which is "46FC 2700 203C 8000 0000", or:
46FC 2700 move.w #2700, %sr
203C 8000 0000 move.l #80000000, %d0 (maybe)
4EB7 jmp (somewhere)
Yes, that looks like your code. Are you sure you don't want to set up a stack pointer in the vector table? And where did those vector addresses come from? I'm guessing the bootstrap copies itself to SDRAM (0x40000000) after setting it up.
But if the SBF is reading the rest of the chip little-endian, then you code is going to end up scrambled.
Type "SBF" into the Search Bar on this page and see if anything else shows up.
If you can get a copy of a working SPI Flash image, you can disassemble it like I did to work out what order the bytes are in. Use the table in the "CFPRM.pdf" document to do this.
Make sure you get a copy of the older version of the manual. The new one has one of the chapters broken. Read here:
https://community.nxp.com/message/306792
Tom