> > 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? So I tried to add it, and it looks like I'll be needing 2 - 3 patches to enable mmc_test for sduc. How about disable it for now, planning to ameliorate it in the very near future? Thanks, Avri > 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(-) > > >>>> > > >