On Thu, 22 Aug 2019 16:05:22 -0700 Philip Langdale <philipl@xxxxxxxxx> wrote: > So, what's actually wrong? Well, either the controller doesn't really > support the > low voltage range, or the card doesn't. As my machine here only has a > microsd slot, > I can't test with an MMCplus card to see if low voltage MMC would > work. Without that > I can't say whether we should remove the host flag or somehow > blacklist low voltage > range on these cards (or any SD card?) > > Would love to get your thoughts. I did more reading and thinking. In the MMC spec, a low-voltage (1.8V) supporting card can run at 1.8V directly from start up (and this is what the existing core logic does). But for SD cards, i think this is not true. I read the Low-Voltage-Signaling announcement which says there is a new negotiation mechanism but I can't find it documented in the SD 6.0 spec (despite the announcement saying it's part of the SD 6.0 spec). That implies that direct bring up at low voltage doesn't work like it does for an MMC card. Also, again without seeing an actual spec, I'd guess this means that having bit 7 set in OCR cannot be interpreted the same way for an SD card as for an MMC card. Perhaps it should be read to mean that the LVS negotiation process should be executed, but even that might be silly, because the whole point of LVS is to support scenarios where only 1.8V is usable - that means negotiation must be done with no prior knowledge. So you can't read OCR until you already know that 1.8V is supported. So maybe the punchline here is that shared logic that will try and bring up a card at 1.8V should be MMC only and for SD cards, the LVS negotiation should be implemented instead. Finally, this Sandisk A2 card doesn't have the LV logo on it, so I don't know whether it would support 1.8V operation if the LVS negotiation was done directly or not - and I don't know whether setting bit 7 in OCR is correct for an LV compliant card. Lots of open questions. --phil