Skip to content

drivers: qcom: rpmh: add nord support - #65

Open
Shivam Sanjay (shvm-ap) wants to merge 1 commit into
qualcomm-linux:qcom-nextfrom
shvm-ap:add-nord-support
Open

Shivam Sanjay (shvm-ap) wants to merge 1 commit into
qualcomm-linux:qcom-nextfrom
shvm-ap:add-nord-support

Conversation

@shvm-ap

@shvm-ap Shivam Sanjay (shvm-ap) commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

Adding Nord support, following target specific RMPh configuration structure.
Includes MSG_RAM_SECTION changes, and other target specific data changes.
Unit tested on Nord device.

Stacked on #55.

Adding Nord support, following target specific RMPh
configuration structure.

Unit tested on Nord device.

@IDineshChoudhary IDineshChoudhary left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

you can revisit this once lemans SW refactoring goes through.

CFG_TEE_RAM_VA_SIZE ?= 0x00200000
CFG_TA_RAM_VA_SIZE ?= 0x07B80000

ifneq ($(CFG_INSECURE),y)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

QFPROM in OTPEE isn't applicable for Nord, you can make it default NO.
Or you can clean up this part completely from you pull request onus is on platform or client driver not us to update the same unless it's causing issues in rpmh/cmd-db driver enablement

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure

CFG_QCOM_QFPROM_FUSEPROV ?= y
endif

ifeq ($(CFG_QCOM_QFPROM_FUSEPROV),y)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

rpmh/cmd_db initialization shouldn't be dependent on qfprom, it should be independent cleanup top level check

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Will update.

$(call force,CFG_QCOM_RPMH_CLIENT,y)
endif

ifneq ($(filter y,$(CFG_QCOM_QFPROM_FUSEPROV) $(CFG_QCOM_FUSE_PTA)),)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

cleanup this part.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure


#define GICD_BASE UL(0x17000000)
#define GICR_BASE UL(0x17080000)
#define AOP_CMD_DB_BASE UL(0x87148000)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

correct indent throughout the file

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Okay

#define DRAM1_SIZE ULL(0x780000000)
#define DRAM2_BASE ULL(0x8800000000)
#define DRAM2_SIZE ULL(0x3800000000)
#define DRAM0_SIZE UL(0x80000000)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

these aren't expected to be used in rpmh/cmd-db drivers, restore this change.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's just an indent issue, will fix.


static const struct drv_config_data optee_config_data = {
.drvs_count = 1,
.init_clks_count = 0,

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

in parent driver these struct members may be used but they aren't expected to - review and change the design at right place.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are you suggesting to clean these up, and then use Macros instead?

@@ -0,0 +1,57 @@
/* SPDX-License-Identifier: BSD-2-Clause */

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same set of comments as
#55

RPMH_TCS_MAX = 4 /* Wake TCS end, Max TCS count */
};

#define RPMH_MAX_CMDS_PER_TCS 16

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

26

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

IDineshChoudhary , the value seems to be 27 based on (TCS_STRIDE and TCS_CMD_STRIDE value). But it is being assigned to .cmds in rpmh_drv_config, whose value in both nord TZ as well as Uefi (drv_config) is 16. I believe that the name "MAX_CMDS" is either misleading or we need to follow 26/27 as you suggested.

}

dict_addr = base + AOP_MSG_RAM_SIZE - MSG_RAM_SECTION_SIZE;
dict_addr = base + 15 * MSG_RAM_SECTION_SIZE;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same comment as #55

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants