Support builds for both UFS and NVMe on IQ-X7181#1453
Support builds for both UFS and NVMe on IQ-X7181#1453shoudil wants to merge 2 commits intoqualcomm-linux:masterfrom
Conversation
lumag
left a comment
There was a problem hiding this comment.
Describe why the change is necessary. I would have expected that the root folder contains partition and image files for the main storage (e.g. NVMe in this case).
Test Results 28 files - 18 28 suites - 139 1h 45m 7s ⏱️ - 27m 42s For more details on these failures, see this check. Results for commit 55c9703. ± Comparison against base commit d7f8538. This pull request removes 36 and adds 2 tests. Note that renamed tests count towards both.♻️ This comment has been updated with latest results. |
I will rebase this PR on #1422, in which UFS build is supported by default. |
8ec40ab to
b0b7e75
Compare
| @@ -18,6 +18,7 @@ QCOM_DTB_FILE ?= "dtb.bin" | |||
| QCOM_BOOT_FILES_SUBDIR ?= "" | |||
There was a problem hiding this comment.
Instructions to create NVMe flat build:
No need to. Please instead describe, why this is necessary. Your commits should start with the description of the issue or the problem.
There was a problem hiding this comment.
And your commit message is still not fixed.
| QCOM_CDT_FILE = "IQ_X_EVK_CDT" | ||
| QCOM_BOOT_FILES_SUBDIR = "iq-x7181" | ||
| QCOM_PARTITION_FILES_SUBDIR ?= "partitions/iq-x7181-evk/ufs" | ||
| QCOM_PARTITION_FILES_SUBDIR_NVME ?= "partitions/iq-x7181-evk/nvme" |
There was a problem hiding this comment.
Likewise. I can see your changes. Why are they performed?
There was a problem hiding this comment.
Hi @lumag,
We want to support both UFS and NVMe build together in image folder, like this:
UFS: HLOS flat build for UFS in root folder
NVMe: partition bins/xml placed under nvme subfolder, which can be combined with HLOS image in root folder to construct a flat build for NVMe.
Spinor: in spinor subfolder, included non-hlos images and spinor part bins/xml.
/iq-x7181-evk/qcom-multimedia-proprietary-image-iq-x7181-evk.rootfs-20260129045123.qcomflash$ tree -L 2
.
|-- efi.bin
|-- gpt_backup0.bin
|-- gpt_both0.bin
|-- gpt_main0.bin
|-- nvme
| |-- efi.bin
| |-- gpt_backup0.bin
| |-- gpt_both0.bin
| |-- gpt_main0.bin
| |-- patch0.xml
| |-- qdl
| |-- rawprogram0.xml
| |-- rootfs.img
| |-- xbl_s_devprg_ns.melf
| |-- zeros_1sector.bin
| `-- zeros_33sectors.bin
|-- patch0.xml
|-- rawprogram0.xml
|-- rootfs.img
|-- spinor
| |-- adsp_dtbs.elf
| |-- adsp_lite.lzma
| |-- aop_devcfg.mbn
| |-- aop.mbn
| |-- cdt.bin
| |-- contents.xml
| |-- cpucp_dtbs.elf
| |-- cpucp.elf
| |-- devcfg_iot.mbn
There was a problem hiding this comment.
Hi @lumag,
We want to support both UFS and NVMe build together in image folder, like this:
It should be explained in the commit messages.
UFS: HLOS flat build for UFS in root folder NVMe: partition bins/xml placed under nvme subfolder, which can be combined with HLOS image in root folder to construct a flat build for NVMe. Spinor: in spinor subfolder, included non-hlos images and spinor part bins/xml.
What is the reason for asymmetry: UFS is the root folder, while NVMe is in the subfolder?
There was a problem hiding this comment.
As per current design, only one build could be supported in root folder, here we support UFS by default. For nmve subfolder we put the nvme partition files (part of the NVMe build to be constructed). We don't need ufs subfolder to place ufs partition files as they are present in root folder already.
There was a problem hiding this comment.
This create asymmetry. From my PoV we should either have two (three, four, etc.) subfolders, one for each storage type, or have multiple machines (I'm not sure about this one, but older machines were not using SPI NOR when booting from UFS).
There was a problem hiding this comment.
Having subfolder for both cases here would probably make more sense, if the artifacts are indeed common to both.
There was a problem hiding this comment.
Please update the commit message, explaining the reasons for the change rather than the patch itself.
Test run workflowTest jobs for commit b0b7e75
All jobs summary
|
b0b7e75 to
9339632
Compare
| install -d ufs | ||
| deploy_partition_files ${DEPLOY_DIR_IMAGE}/${QCOM_PARTITION_FILES_SUBDIR_UFS} ufs | ||
| fi | ||
|
|
There was a problem hiding this comment.
Why is this code tied to the presense of the SPI NOR? What about devices which support UFS and eMMC, but they don't have SPI-NOR?
There was a problem hiding this comment.
Initial intention here is to support both builds for Hamoa (may be applicable for Purwa/Glymur as well) as spinor exist and only two hlos images (efi/rootfs) in root folder. I am fine to generalize the design, but may not able to verify on all boards (some boards are not available), platform PoC of targets can decide whether to specify flags in machine conf and validate by themselves.
| QCOM_CDT_FILE = "IQ_X_EVK_CDT" | ||
| QCOM_BOOT_FILES_SUBDIR = "iq-x7181" | ||
| QCOM_PARTITION_FILES_SUBDIR ?= "partitions/iq-x7181-evk/ufs" | ||
| QCOM_PARTITION_FILES_SUBDIR_NVME ?= "partitions/iq-x7181-evk/nvme" |
There was a problem hiding this comment.
Please update the commit message, explaining the reasons for the change rather than the patch itself.
9339632 to
600c521
Compare
…rages For targets with more than one storage type supported on single board, add support to deploy partition files for different storages in image folder. These partition files under subfolder can be used to create flashable builds as per need. Signed-off-by: Shoudi Li <shoudil@qti.qualcomm.com>
Create subfolder under image folder to place partition files for NVMe and UFS storage, which can be used to create flashable builds. Signed-off-by: Shoudi Li <shoudil@qti.qualcomm.com>
600c521 to
55c9703
Compare
Test run workflowTest jobs for commit 55c9703
All jobs summary
|
|
|
||
| # partition bins/xml files | ||
| # partition bins/xml files for supported build by default | ||
| if [ -n "${QCOM_PARTITION_FILES_SUBDIR}" ]; then |
There was a problem hiding this comment.
Should we drop QCOM_PARTITION_FILES_SUBDIR and always use one of NVME / UFS variants?
There was a problem hiding this comment.
I think we need to keep this configurable (in machine conf) as different storage will be supported with priority across targets, especially on early BU stage.
There was a problem hiding this comment.
Exactly! Supporting different storage means supporting both eMMC and UFS or UFS and NVME deployments.
|
This pull request has been marked as stale due to 30 days of inactivity. To prevent automatic closure in 5 days, remove the stale label or add a comment. You can reopen a closed pull request at any time. |
On Hamoa IoT EVK device, both UFS and NVMe storage are supported. To generate both UFS and NVMe builds together in image folder, Add flags to control the partition bins/xml files deployment for both NVMe and UFS in image folder. These partition files under subfolder can be combined with HLOS images in root folder to construct flashable builds as per need.