[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <e2394c64-af36-428f-ad6e-4c7038c0301e@freeshell.de>
Date: Wed, 4 Feb 2026 15:16:36 -0800
From: E Shattow <e@...eshell.de>
To: Heinrich Schuchardt <heinrich.schuchardt@...onical.com>,
Emil Renner Berthing <kernel@...il.dk>, Conor Dooley <conor@...nel.org>
Cc: Rob Herring <robh@...nel.org>, Krzysztof Kozlowski <krzk+dt@...nel.org>,
Paul Walmsley <pjw@...nel.org>, Palmer Dabbelt <palmer@...belt.com>,
Albert Ou <aou@...s.berkeley.edu>, Alexandre Ghiti <alex@...ti.fr>,
linux-riscv@...ts.infradead.org, devicetree@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH 1/1] riscv: dts: starfive: Milk-V Mars CM Lite broken-cd
Hi,
I think the correct fix will be device tree overlays per-carrier board
and not this one-size-fits-all workaround with the System-on-Module.
Review below:
On 2/4/26 08:38, Heinrich Schuchardt wrote:
> On 2/4/26 11:16, Heinrich Schuchardt wrote:
>> The card detect GPIO depends on support by the base board.
>>
>> Detecting an SD-card did not work for me with a Milk-V Mars CM Lite
>> mounted on an Waveshare CM4-IO-BASE-A board.
>
> The schematic of the Waveshare CM4-IO-BASE-A board is available at
> https://files.waveshare.com/upload/a/aa/CM4-IO-BASE-A_V4_SchDoc.pdf
> showing pin 76 is not connected.
>
> In https://forums.raspberrypi.com/viewtopic.php?t=291041 the Raspberry
> Foundation explicitly wrote that pin 76 should not be connected when
> using a compute module socket.
>
> E. Shattow pointed me to a board
> https://github.com/NabuCasa/yellow/releases/download/v1.3c/
> Yellow_v1.3c_Schematic_git.8957b440adda.pdf
> that actually disregarded this advice and uses pin 76 actually as cd-
> gpio. This usage of GPIO 41 is a property of the specific base board and
> not of the Milk-V Mars CM and should be described in a device-tree
> overlay if needed.
>
> Best regards
>
> Heinrich
>
>>
>> According to [1] SD_SDIO0_CD_GPIO41 is connected to pin 76 reserved.
>> The Raspberry Pi Compute Module 4 IO Board documentation marks that
>> pin as
>> reserved. The Raspberry Pi Compute Module 5 IO Board documentation
>> marks the pin as VBAT.
>>
>> Remove the cd-gpios definition and add broken-cd.
>>
>> [1] https://github.com/milkv-mars/mars-files/blob/main/Mars-
>> CM_Hardware_Schematices/Milk-V_Mars-CM_SCH_V1.0-2023-0905_Lite.pdf
>>
>> Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@...onical.com>
>> ---
>> arch/riscv/boot/dts/starfive/jh7110-milkv-marscm-lite.dts | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/arch/riscv/boot/dts/starfive/jh7110-milkv-marscm-lite.dts
>> b/arch/riscv/boot/dts/starfive/jh7110-milkv-marscm-lite.dts
>> index 63aa94d65ab55..566b0bdc2800d 100644
>> --- a/arch/riscv/boot/dts/starfive/jh7110-milkv-marscm-lite.dts
>> +++ b/arch/riscv/boot/dts/starfive/jh7110-milkv-marscm-lite.dts
>> @@ -13,7 +13,7 @@ / {
>> &mmc0 {
>> bus-width = <4>;
+ /* Schematic signal SD_SDIO0_CD_GPIO41 to CM4 connector pin 76*/
+ /* Raspberry Pi CM4 specification pin 76 reserved do not connect */
>> - cd-gpios = <&sysgpio 41 GPIO_ACTIVE_LOW>;
>> + broken-cd;
All schematic documents for Mars CM Lite list this signal name as
`SD_SDIO0_CD_GPIO41`.
>> disable-wp;
>> };
>>
The carrier board I have a schematic document for - Home Assistant
Yellow PoE rev 1.3 - lists this as SD_DETECT, apparently ignoring the
Raspberry Pi Foundation document about CM4 Compute IO specification that
explicitly says do not connect this pin to anything.
The carrier board I do not have a schematic document for - DFRobot
Compute Module 4 IoT Router Board Mini - only has SD Card and is
operational as-is.
The compatibility issue for carrier boards that more strictly follow the
Raspberry Pi CM4 IO specification may be better handled by device tree
overlays. Though this is not convenient for users and requires more
developer effort, overlays would be best to adopt dtbo per-carrier board
to describe hardware accurately.
What is needed to introduce overlays?
- E
Powered by blists - more mailing lists