I’m currently evaluating the CM3 for a customer while also working on my own carrier board. I have three CM3s (v1.31A): one with eMMC, booting the Radxa Debian image, plus two lower-end units with no eMMC or WiFi. I’ve been unable to get an actual Radxa CM3-IO board, and am working with various other carrier boards:
- Official Raspberry Pi CM4 IO board
- PINE64 SOQuartz carrier
- PINE64 SOQuartz blade
- Big Tree Tech Pi4B board
I’m not able to get any CM3 unit to talk to any SD card in any of the carrier boards. I’ve verified the SD card has 3.3V power, but the eMMC CM3 cannot see it once booted, and the non-eMMC CM3s cannot boot. PINE64 SOQuartz modules work fine in the same carriers with the same SD card brands.
I note that a lot of designs including the Ras Pi IO board connect SD card detect to pin 76, though it’s marked as NC. The Ras Pi IO board is populated this way, and does not react to the card. I modified the Ras Pi IO board to connect the card detect so it pulls pin 76 low when a card is inserted, and now when I insert the card I get messages like this:
[ 167.228071] mmc_host mmc1: Bus speed (slot 0) = 375000Hz (slot req 400000Hz, actual 375000HZ div = 0)
[ 167.368033] mmc_host mmc1: Bus speed (slot 0) = 375000Hz (slot req 300000Hz, actual 187500HZ div = 1)
[ 167.380890] mmc_host mmc1: Bus speed (slot 0) = 375000Hz (slot req 375000Hz, actual 375000HZ div = 0)
[ 167.508036] mmc_host mmc1: Bus speed (slot 0) = 375000Hz (slot req 200000Hz, actual 187500HZ div = 1)
[ 167.518593] mmc_host mmc1: Bus speed (slot 0) = 375000Hz (slot req 375000Hz, actual 375000HZ div = 0)
[ 167.644703] mmc_host mmc1: Bus speed (slot 0) = 375000Hz (slot req 100000Hz, actual 93750HZ div = 2)
[ 167.657560] mmc_host mmc1: Bus speed (slot 0) = 375000Hz (slot req 375000Hz, actual 375000HZ div = 0)
with Sandisk and Kingston cards, and this with Patriot:
[ 27.213710] mmc_host mmc1: Bus speed (slot 0) = 375000Hz (slot req 400000Hz, actual 375000HZ div = 0)
[ 27.251688] mmc1: error -110 whilst initialising SD card
[ 27.370411] mmc_host mmc1: Bus speed (slot 0) = 375000Hz (slot req 300000Hz, actual 187500HZ div = 1)
[ 27.383278] mmc_host mmc1: Bus speed (slot 0) = 375000Hz (slot req 375000Hz, actual 375000HZ div = 0)
[ 27.412106] mmc1: error -110 whilst initialising SD card
[ 27.530355] mmc_host mmc1: Bus speed (slot 0) = 375000Hz (slot req 200000Hz, actual 187500HZ div = 1)
[ 27.543169] mmc_host mmc1: Bus speed (slot 0) = 375000Hz (slot req 375000Hz, actual 375000HZ div = 0)
[ 27.568360] mmc1: error -110 whilst initialising SD card
[ 27.686733] mmc_host mmc1: Bus speed (slot 0) = 375000Hz (slot req 100000Hz, actual 93750HZ div = 2)
[ 27.699389] mmc_host mmc1: Bus speed (slot 0) = 375000Hz (slot req 375000Hz, actual 375000HZ div = 0)
[ 27.725094] mmc1: error -110 whilst initialising SD card
[ 33.760831] vcc_sd: disabling
With these modifications the SOQuartz still boots as expected.
Can you advise what I need to do to reliably boot the CM3 from SD card? My customer would like to select a module for their product, and I’d like to finish off my carrier board and get it into fab. Both need the option of booting a non-eMMC CM3 from SD card.
Thanks!