> On 27/08/24 10:45, Avri Altman wrote: > >>> On 25/08/24 10:41, Avri Altman wrote: > >>>> Ultra Capacity SD cards (SDUC) was already introduced in SD7.0. > >>>> Those cards support capacity larger than 2TB and up to including 128TB. > >>>> Thus, the address range of the card expands beyond the 32-bit > >>>> command argument. To that end, a new command - CMD22 is defined, to > >>>> carry the extra 6-bit upper part of the 38-bit block address that > >>>> enable access to 128TB memory space. > >>>> > >>>> SDUC capacity is agnostic to the interface mode: UHS-I and UHS-II – > >>>> Same as SDXC. > >>>> > >>>> The spec defines several extensions/modifications to the current > >>>> SDXC cards, which we address in patches 1 - 10. Otherwise > >>>> requirements are out-of-scope of this change. Specifically, CMDQ > >>>> (CMD44+CMD45), and Extension for Video Speed Class (CMD20). > >>>> > >>>> First publication of SDUC was in [1]. This series was developed > >>>> and tested separately from [1] and does not borrow from it. > >>>> > >>>> [1] https://lwn.net/Articles/982566/ > >>> > >>> Perhaps add support for mmc_test > > Actually, I am not sure what should be added to mmc_test as far as SDUC > indication: > > from dmesg we have: > > [ 4253.922220] mmc0: new ultra high speed SDR104 SDUC card at address > > d555 [ 4253.922409] mmcblk0: mmc0:d555 SR04T 3.72 TiB > > > > Additionally, we have the card size sysfs entry: > > # cat /sys/block/mmcblk0/size > > 7999258624 > > > > As well as the csd which implies its capacity: > > # cd /sys/class/mmc_host/mmc0/mmc0:* && cat csd > > 800e0032db79007732bf7f800a404001 > > > > What test did you had in mind? > > Doesn't all the I/O need CMD22 first? Oops - Right. Thanks a lot, Avri > > > > > Thanks, > > Avri > > > >>> , and it would be better if enabling SDUC was the last patch, so > >>> bisecting doesn't leave a kernel that half-supports > >> SDUC. > >> Done. > >> > >> Thanks, > >> Avri > >> > >>> > >>>> > >>>> --- > >>>> Changes in v4: > >>>> - Squash patches 1 & 2 (Ulf) > >>>> - Amend SD_OCR_2T to SD_OCR_CCS in mmc_sd_get_cid (Ulf) > >>>> - Use card state instead of caps2 (Ricky & Ulf) > >>>> - Switch patches 5 & 6 (Ulf) > >>>> > >>>> Changes in v3: > >>>> - Some more kernel test robot fixes > >>>> - Fix a typo in a commit log (Ricky WU) > >>>> - Fix ACMD22 returned value > >>>> - Add 'Tested-by' tag for the whole series (Ricky WU) > >>>> > >>>> Changes in v2: > >>>> - Attend kernel test robot warnings > >>>> > >>>> --- > >>>> > >>>> Avri Altman (9): > >>>> mmc: sd: SDUC Support Recognition > >>>> mmc: sd: Add Extension memory addressing > >>>> mmc: core: Add open-ended Ext memory addressing > >>>> mmc: core: Add close-ended Ext memory addressing > >>>> mmc: host: Always use manual-cmd23 in SDUC > >>>> mmc: host: Add close-ended Ext memory addressing > >>>> mmc: core: Allow mmc erase to carry large addresses > >>>> mmc: core: Add Ext memory addressing for erase > >>>> mmc: core: Adjust ACMD22 to SDUC > >>>> > >>>> drivers/mmc/core/block.c | 56 ++++++++++++++++++++++++++++------ > >>>> drivers/mmc/core/bus.c | 4 ++- > >>>> drivers/mmc/core/card.h | 3 ++ > >>>> drivers/mmc/core/core.c | 63 ++++++++++++++++++++++++++++--------- > >>> -- > >>>> drivers/mmc/core/core.h | 14 +++++++-- > >>>> drivers/mmc/core/queue.h | 1 + > >>>> drivers/mmc/core/sd.c | 36 ++++++++++++++-------- > >>>> drivers/mmc/core/sd.h | 2 +- > >>>> drivers/mmc/core/sd_ops.c | 16 ++++++++++ > >>>> drivers/mmc/core/sd_ops.h > >>>> | 1 + > >>>> drivers/mmc/core/sdio.c | 2 +- > >>>> drivers/mmc/host/sdhci.c | 40 +++++++++++++++++++++---- > >>>> include/linux/mmc/card.h | 2 +- include/linux/mmc/core.h | 1 + > >>>> include/linux/mmc/sd.h | 4 +++ > >>>> 15 files changed, 195 insertions(+), 50 deletions(-) > >>>> > >