Rock4se SPI not recognised

im trying to add an SPI chip to my rock4se so i can boot from nvme, this really shouldnt be a problem for me skills wise, ive done plenty of fiddly ass BGA rework etc so im no stranger to dropping a chip onto a board, in this case im using a Winbond W25Q64FVIQ (recovered from a HP laptop)

i tried the simple way first, just whack the chip on and flash via maskrom mode, but every operation just failed when using RKdevtool. i wondered if the chip may be dodgy or the data on it was somehow blocking the rock4se from seeing it

so i flipped it back off and wired it into an arduino, knocked together a sketch to erase the chip then write some data and read it back to ensure it was all working, it was, surely now its erased itll work, right? (WRONG!)

just to be safe i cleaned off the pads and chip, whacked some fresh solder on and flowed the chip, still maskrom fails, so i figure its maybe i can somehow at least see it when booted, so i whack the emmc on and boot dietpi, check gparted, not there, ls /dev/mtd* nothing, cat /proc/mtd nothing, ls /dev/spi* nothing

after a lot of messing about i managed to get some indication it was seeing it but it was just an error message saying “MMC2 : could not initialize” so its seeing something, ive once again taken the chip off the board, cleaned it up and made sure the joints are PERFECT

i have asked AI but it cant seem to come up with an answer aside from throwing modprobe commands at it. i highly doubt its a software thing as it still fails in maskrom mode which i believe runs before the kernel loads etc. but just for the sake of completeness i switched to booting from an SD card with ubuntu rather than emmc and dietpi

this time i got a new message in dmesg that seems related to the SPI

mmc2: queuing unknown CIS tuple 0x80

what am i doing wrong here? if anyone has any clue itd be helpful. i plan to grab another SPI chip off something and im going to create a flasher of some sort so i can load the BL before the chip goes on the board but i not even sure thatll work.

any help appreciated


so i figured that maybe the winbond chip was somehow dodgy (despite being read/writeable from the arduino) so i pulled another, an MXIC mx25l12873f but sadly once again i have the same messages in dmesg, i can see that a device is present in /sys/class/spi_master/spi0/ but i cant get anything to show up in /dev and trying to load modules with modprobe seemingly does nothing

it does actually get some responses etc in rkdevtool now, i can do the download boot and then see some of the properties but everything else fails like this:

13:42:40 625 Layer<1-2>:Download Boot Start
13:42:40 628 Layer<1-2>:Download Boot Success
13:42:40 645 Layer<1-2>:Wait For Maskrom Start
13:42:41 107 Layer<1-2>:Wait For Maskrom Success
13:42:41 111 Layer<1-2>:Test Device Start
13:42:41 134 Layer<1-2>:Test Device Success
13:42:41 151 Layer<1-2>:Check Chip Start
13:42:41 169 Layer<1-2>: Check Chip Success
13:42:41 184 Layer<1-2>:Get FlashInfo Start
13:42:41 200 <LAYER 1-2> INFO:FlashInfo: 00 00 00 00 00 04 04 00 28 00 00
13:42:41 215 <LAYER 1-2> INFO:GetFlashInfo–>Emmc storage.
13:42:41 233 Layer<1-2>:Get FlashInfo Success
13:42:41 248 Layer<1-2>:Prepare IDB Start
13:42:41 263 <LAYER 1-2> ERROR:PrepareIDB–>No Found 1st Flash CS
13:42:41 280 Error:Layer<1-2>:Prepare IDB Fail
13:42:41 308 Layer<1-2>: RunProc is ending, ret=0

so still no further, i assume maybe the MXIC chip isnt compatible, so i pull yet another, this time an XMC qh128ahig but it made no difference at all, everything was the same as with the last one. ive also tried adding it manually and creating overlays for it etc but still no change.

what on earth am i doing wrong here?.