[PATCH v5 0/3] Retrieve information about DDR from SMEM
Konrad Dybcio
konradybcio at kernel.org
Mon Jul 27 02:59:26 PDT 2026
SMEM allows the OS to retrieve information about the DDR memory.
Among that information, is a semi-magic value called 'HBB', or Highest
Bank address Bit, which multimedia drivers (for hardware like Adreno
and MDSS) must retrieve in order to program the IP blocks correctly.
This series introduces an API to retrieve that value, uses it in the
aforementioned programming sequences and exposes available DDR
frequencies in debugfs (to e.g. pass to aoss_qmp debugfs). More
information can be exposed in the future, as needed.
Signed-off-by: Konrad Dybcio <konrad.dybcio at oss.qualcomm.com>
---
Changes in v5:
- Parse DRAM data before publishing __smem
- Add trivial patch 1 converting 'unsigned' to 'unsigned int' to make
checkpatch happy
- Link to v4: https://patch.msgid.link/20260721-topic-smem_dramc-v4-0-748f992278a3@oss.qualcomm.com
Changes in v4:
- Rebase on top of Dmitry's cleanups to ubwc_config
- Mark and consume the shared data as little-endian
- Fix compiler optimizing out what it thinks is impossible (odd
v3_14freq case)
- Rework qcom_ubwc_config_get_data() per discussion to not alter
hardcoded data
- Remove some unnecessary comments and assignments
- Return -ENODATA instead of -EINVAL for out-of-sensible-range HBB
- Cosmetic/line wrapping fixups
- Drop applied drm/msm patch
- Link to v3: https://lore.kernel.org/r/20260108-topic-smem_dramc-v3-0-6b64df58a017@oss.qualcomm.com
Changes in v3:
- Support v6 and v7 DDRInfo (v7 is used on e.g. Hamoa)
- Handle rare cases of DDRInfo v5 with additional trailing data
- Rebase/adjust to SSoT UBWC
- Expose hbb value in debugfs
- cosmetic changes
- Link to v2: https://lore.kernel.org/r/20250410-topic-smem_dramc-v2-0-dead15264714@oss.qualcomm.com
Changes in v2:
- Avoid checking for < 0 on unsigned types
- Overwrite Adreno UBWC data to keep the data shared with userspace
coherent with what's programmed into the hardware
- Call get_hbb() in msm_mdss_enable() instead of all UBWC setup
branches separately
- Pick up Bjorn's rb on patch 1
- Link to v1: https://lore.kernel.org/r/20250409-topic-smem_dramc-v1-0-94d505cd5593@oss.qualcomm.com
To: Bjorn Andersson <andersson at kernel.org>
To: Konrad Dybcio <konradybcio at kernel.org>
To: Kees Cook <kees at kernel.org>
To: "Gustavo A. R. Silva" <gustavoars at kernel.org>
To: Alim Akhtar <alim.akhtar at samsung.com>
To: Avri Altman <avri.altman at sandisk.com>
To: Bart Van Assche <bvanassche at acm.org>
To: "James E.J. Bottomley" <James.Bottomley at HansenPartnership.com>
To: "Martin K. Petersen" <martin.petersen at oracle.com>
To: Matthias Brugger <matthias.bgg at gmail.com>
To: AngeloGioacchino Del Regno <angelogioacchino.delregno at collabora.com>
To: Suzuki K Poulose <suzuki.poulose at arm.com>
To: Mike Leach <mike.leach at arm.com>
To: James Clark <james.clark at linaro.org>
To: Leo Yan <leo.yan at arm.com>
To: Rob Herring <robh at kernel.org>
To: Krzysztof Kozlowski <krzk+dt at kernel.org>
To: Conor Dooley <conor+dt at kernel.org>
To: Yuanfang Zhang <yuanfang.zhang at oss.qualcomm.com>
To: Mao Jinlong <jinlong.mao at oss.qualcomm.com>
To: Jie Gan <jie.gan at oss.qualcomm.com>
To: Paul Walmsley <pjw at kernel.org>
To: Palmer Dabbelt <palmer at dabbelt.com>
To: Albert Ou <aou at eecs.berkeley.edu>
To: Alexandre Ghiti <alex at ghiti.fr>
Cc: linux-kernel at vger.kernel.org
Cc: linux-arm-msm at vger.kernel.org
Cc: linux-hardening at vger.kernel.org
Cc: linux-scsi at vger.kernel.org
Cc: linux-arm-kernel at lists.infradead.org
Cc: linux-mediatek at lists.infradead.org
Cc: coresight at lists.linaro.org
Cc: devicetree at vger.kernel.org
Cc: linux-riscv at lists.infradead.org
---
Konrad Dybcio (3):
soc: qcom: smem: Use 'unsigned int' instead of 'unsigned'
soc: qcom: smem: Expose DDR data from SMEM
soc: qcom: ubwc: Get HBB from SMEM
drivers/soc/qcom/Makefile | 3 +-
drivers/soc/qcom/smem.c | 80 +++++---
drivers/soc/qcom/smem.h | 12 ++
drivers/soc/qcom/smem_dramc.c | 430 +++++++++++++++++++++++++++++++++++++++++
drivers/soc/qcom/ubwc_config.c | 40 +++-
include/linux/soc/qcom/smem.h | 2 +
6 files changed, 533 insertions(+), 34 deletions(-)
---
base-commit: c5e32e86ca02b003f86e095d379b38148999293d
change-id: 20250409-topic-smem_dramc-6467187ac865
Best regards,
--
Konrad Dybcio <konrad.dybcio at oss.qualcomm.com>
More information about the linux-riscv
mailing list