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
UPDATE:
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?.