Rebased Nord changes on top of qcom-next - #139
Merged
Gopinath Sekar (g-sekar) merged 24 commits intoSep 7, 2026
Merged
Gopinath Sekar (g-sekar) merged 24 commits into
Gopinath Sekar (g-sekar) merged 24 commits into
Conversation
Add a local copy of the nord SoC and board device tree sources (nord.dtsi, nord-ride.dts, nord-rrd.dts, nord-embedded.dtsi and nord-gearvm.dtsi) along with the required clock and interconnect dt-bindings headers. Wire nord-ride.dtb into the build to enable early nord platform bring-up in U-Boot until the DTS files are available upstream. Signed-off-by: Aswin Murugan <aswin.murugan@oss.qualcomm.com>
Add support for the nord Global Clock Controller (GCC). Implement the qcom,nord-gcc driver to provide clocks, resets and power domains required by nord peripherals. Signed-off-by: Aswin Murugan <aswin.murugan@oss.qualcomm.com>
Add support for the nord NE Global Clock Controller (NEGCC). Implement the qcom,nord-negcc driver to provide clocks, resets and power domains required by nord peripherals during initialization. Signed-off-by: Aswin Murugan <aswin.murugan@oss.qualcomm.com>
Add support for the nord SE Global Clock Controller (SEGCC). Implement the qcom,nord-segcc driver to provide clocks, resets and power domains required by nord peripherals during boot. Signed-off-by: Aswin Murugan <aswin.murugan@oss.qualcomm.com>
Add support for the nord NW Global Clock Controller (NWGCC). Implement the qcom,nord-nwgcc driver to provide clocks, resets and power domains required by nord peripherals. Signed-off-by: Aswin Murugan <aswin.murugan@oss.qualcomm.com>
Add support for the nord TCSR Clock Controller (TCSRCC). Implement the qcom,nord-tcsrcc driver to provide the clocks and resets required by nord platform peripherals. Signed-off-by: Aswin Murugan <aswin.murugan@oss.qualcomm.com>
Enable the GCC, NEGCC, SEGCC, NWGCC and TCSRCC clock controller drivers in qcom_defconfig so support for the nord platform is built as part of the shared Qualcomm target configuration. Signed-off-by: Aswin Murugan <aswin.murugan@oss.qualcomm.com>
Add a dedicated defconfig for the nord platform. Enable the drivers and board configuration options required to boot nord-based targets in U-Boot. Signed-off-by: Aswin Murugan <aswin.murugan@oss.qualcomm.com>
Add support for the nord Top Level Mode Multiplexer (TLMM). Implement the qcom,nord-tlmm pinctrl driver to provide pin configuration support required by nord peripherals. Signed-off-by: Aswin Murugan <aswin.murugan@oss.qualcomm.com>
Add nord-ride-u-boot.dtsi to describe the UFS PHY clocks and ufs_mem_phy node required by U-Boot's UFS driver. This allows the UFS controller to probe successfully on the nord-ride platform. Signed-off-by: Aswin Murugan <aswin.murugan@oss.qualcomm.com>
…ate clocks on nord Several NEGCC/GCC gate clocks incorrectly used enable_mask = BIT(0) instead of their actual bit position in a shared multi-bit vote register. Fix enable_reg/enable_mask for 14 GCC and 2 NEGCC clocks to match the kernel driver. Signed-off-by: Aswin Murugan <aswin.murugan@oss.qualcomm.com>
CONFIG_REMAKE_ELF's u-boot.elf link step used the toolchain's default page-size flags, and its .lds carried no 4K alignment padding, so TME's IMGAUTH rejected the image for misaligned segments. Add a REMAKE_ELF_LDSCRIPT default for ARCH_SNAPDRAGON pointing at a Snapdragon-specific .lds that pads .data to a 4K boundary, so this applies to any Snapdragon board using CONFIG_REMAKE_ELF, not just nord. Signed-off-by: Aswin Murugan <aswin.murugan@oss.qualcomm.com>
CONFIG_REMAKE_ELF_LDSCRIPT alone leaves u-boot.elf linked with the toolchain's default page-size flags. Set LDFLAGS_u-boot-elf to the same 4K granule flags used for u-boot.bin, for any ARCH_SNAPDRAGON board, not just nord. Signed-off-by: Aswin Murugan <aswin.murugan@oss.qualcomm.com>
ufs_mem_hc's phys property references ufs_mem_phy, but it is added disabled and nothing else enables it, so UFS never probes. Signed-off-by: Aswin Murugan <aswin.murugan@oss.qualcomm.com>
…gion nord.dtsi's reserved-memory has no SMEM carveout, and nord has no qcom,smem node (the kernel doesn't need one here). U-Boot's SMEM driver needs both to locate the region, so add them mirroring EDK2's own SMEM reservation. Signed-off-by: Aswin Murugan <aswin.murugan@oss.qualcomm.com>
nord's partition table references host IDs higher than the existing SMEM_HOST_COUNT=30, causing partition enumeration to fail with 'bad host'. Raise SMEM_HOST_COUNT to 256 and report the offending value when it is still too small. Signed-off-by: Aswin Murugan <aswin.murugan@oss.qualcomm.com>
…gion cap configure_reserved_memory() passed raw reg values straight to mmu_change_region_attr_nobreak(), which works at 4K granularity and spins forever on sub-page regions (nord has 0x80-byte SCMI shmem mailboxes two-to-a-page). Page-align every region instead. Also raise N_RESERVED_REGIONS as nord's reserved-memory node has more entries than previously supported boards, and add a guard in set_regions() so an unmappable granule is reported instead of hanging. Signed-off-by: Aswin Murugan <aswin.murugan@oss.qualcomm.com>
…entry
build_mem_map() only emitted entries for the reported DRAM banks,
leaving gaps between banks with no page-table entry at all. On
nord, firmware carves out sub-regions from the SMEM usable-RAM
table, leaving such gaps, and configure_reserved_memory() panics
if a DT reserved-memory node ever falls inside one ('PTE ... should
be a table').
Emit a separate MT_DEVICE_NGNRNE entry for each gap, matching the
attrs already used for the pre-DRAM peripheral block, plus
PTE_BLOCK_RO since nothing should ever legitimately write to an
unlisted, firmware-carved gap. This keeps gaps un-cacheable,
non-executable and read-only while still giving them a mapped,
splittable block entry. Any DT reserved-memory node that falls
inside a gap still gets its own explicit attrs from
configure_reserved_memory() (which overwrites the whole attrs mask,
RO bit included), so this only affects the parts of a gap with no
DT node. Bump rbx_mem_map[] so there's room for a gap entry between
every bank.
Signed-off-by: Aswin Murugan <aswin.murugan@oss.qualcomm.com>
nord-gearvm.dtsi overrides qupv3_0/1/2, uart4, uart15 and ufs_mem_hc
to only the SoC-specific compatible strings, dropping the generic
qcom,geni-se-qup/geni-uart/geni-debug-uart/ufshc fallback that
upstream convention keeps as the last entry.
serial_msm_geni.c's geni_set_oversampling() checks for the generic
string directly rather than walking the whole compatible list, so
without the fallback no UART driver ever binds ('UART node must be
a child of geniqup node').
Signed-off-by: Aswin Murugan <aswin.murugan@oss.qualcomm.com>
qcom_geni_fw_initialise() was unconditionally registered on EVT_LAST_STAGE_INIT for non-SPL builds. Add CONFIG_QCOM_GENI_FW_LOAD to make this optional, and disable it by default in qcom_defconfig for boards that don't need GENI firmware loading. Signed-off-by: Aswin Murugan <aswin.murugan@oss.qualcomm.com>
Add the qcom,hwinfo U-Boot overlay node to nord-ride-u-boot.dtsi so that the qcom_hwinfo driver can read the IMEM boot cookie and the TCSR SOC_HW_VERSION register at boot. Signed-off-by: Aswin Murugan <aswin.murugan@oss.qualcomm.com>
This reverts commit 5044572.
scsi_scan() removes existing SCSI block devices before rescanning, which can invalidate existing references and requires callers to avoid redundant scans. Add scsi_scan_new() to scan only controllers without bound block devices, making repeated scans safe and eliminating the need for scan guards at individual call sites. Signed-off-by: Aswin Murugan <aswin.murugan@oss.qualcomm.com>
Capsule update may miss newly attached SCSI storage when SCSI has already been scanned earlier in boot. Use scsi_scan_new() to detect newly added devices while avoiding rescanning controllers that already have enumerated block devices. Signed-off-by: Aswin Murugan <aswin.murugan@oss.qualcomm.com>
Gopinath Sekar (g-sekar)
merged commit Sep 7, 2026
40dda17
into
qualcomm-linux:nord-staging-qcom-next
0 of 2 checks passed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Rebased Nord changes on top of latest qcom-next changes