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? > > 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(-) >>>> >