Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
aa22340
dts: lemans-evk-u-boot: add override dtsi
aswinm94 Apr 15, 2026
2f28485
clk: qcom: qcs615: Add SDCC1 and SDCC2 clock support
balajiselvanathan Mar 24, 2026
ade9dfb
drivers: mmc: uclass: Set removable flag based on device tree property
balajiselvanathan Mar 24, 2026
610f08b
configs: qcom_defconfig: Limit MMC transfer size to prevent controlle…
balajiselvanathan Apr 21, 2026
5b85a53
misc: Add support for bit fields in NVMEM cells
aswinm94 Feb 13, 2026
f15890e
misc: qcom: Add Qualcomm SPMI SDAM NVMEM driver
aswinm94 Feb 13, 2026
636913f
reboot-mode: add REBOOT_MODE_ENV_UPDATE option
aswinm94 Apr 15, 2026
a3052fd
mach-snapdragon: enter fastboot on bootloader reboot reason
aswinm94 Apr 15, 2026
4a8f4f6
qcom_defconfig: Enable reboot-mode support in qcom_defconfig
aswinm94 Feb 13, 2026
ea61566
test: dm: add comprehensive tests for NVMEM bit field operations
aswinm94 Mar 30, 2026
f7b98b1
misc: update API documentation for bit field support in NVMEM
aswinm94 Mar 30, 2026
572808b
dts: qcs615-ride-u-boot.dtsi: Add reboot-mode support
aswinm94 Feb 13, 2026
162c1b8
clk: stub: Sort compatible strings alphabetically
balajiselvanathan Apr 27, 2026
76d052f
clk: qcom: clk-stub: Add compatibles for QCS615/SA8775P
balajiselvanathan Mar 19, 2026
f8fadd1
clk: qcom: sa8775p: Add UFS clock support
balajiselvanathan Mar 19, 2026
d932606
clk: qcom: qcs615: Add UFS clock support
balajiselvanathan Mar 19, 2026
cf2ff63
clk: qcom: sc7280: Add UFS clock support
balajiselvanathan Mar 19, 2026
c4c14ab
drivers: ufs: qcom: Initialize and enable clocks before hardware access
balajiselvanathan Mar 19, 2026
b64eed1
ufs: qcom: Remove redundant POST_CHANGE clock setup call
balajiselvanathan Apr 27, 2026
e2036d7
fastboot: block: Add device selection syntax
balajiselvanathan Apr 24, 2026
42bc31b
fastboot: Add GPT/MBR partition table flashing helper functions
balajiselvanathan Apr 24, 2026
1192811
fastboot: block: Add GPT/MBR partition table flashing support
balajiselvanathan Apr 24, 2026
afd0964
doc: fastboot: Document block device selection syntax
balajiselvanathan Apr 10, 2026
7a82a69
configs: Rename qcs9100 defconfig to lemans defconfig
aswinm94 Apr 17, 2026
b3643fb
qcom_defconfig: Switch Qualcomm fastboot flash from MMC to block
balajiselvanathan Feb 5, 2026
1836601
disk: Add partition lookup by type GUID functionality
balajiselvanathan Jan 8, 2026
56e13e9
scsi: Add partition lookup by type GUID for SCSI devices
balajiselvanathan Apr 27, 2026
2096269
scsi: Optimize scsi_get_blk_by_uuid() loop iteration
balajiselvanathan Apr 27, 2026
db70b2d
env: scsi: Fix ENV_SCSI_HW_PARTITION default value type
balajiselvanathan Apr 27, 2026
bc8bb09
env: scsi: Add partition type GUID support and choice-based selection
balajiselvanathan Apr 27, 2026
e386ef1
env: scsi: Implement partition type GUID lookup
balajiselvanathan Apr 27, 2026
ec514a4
configs: Enable partition type GUID for QCS9100/QCM6490/QCS615 boards
balajiselvanathan Jan 8, 2026
ed513e6
test: dm: Add partition type GUID lookup test
balajiselvanathan Apr 18, 2026
67bfb7d
mach-snapdragon: Add memory node fixup handlers
aswinm94 Apr 29, 2026
8f76c2f
arm: snapdragon: Integrate OF_LIVE fixup handlers in ft_board_setup()
aswinm94 Jan 13, 2026
6f2a2df
mach-snapdragon: Add OF_LIVE device tree fixup handlers
aswinm94 Apr 29, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions arch/arm/dts/lemans-evk-u-boot.dtsi
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
// SPDX-License-Identifier: BSD-3-Clause
/*
* Copyright (c) 2026, Qualcomm Innovation Center, Inc. All rights reserved.
*/

/ {
/* Will be removed when bootloader updates later */
memory@80000000 {
device_type = "memory";
reg = <0x0 0x80000000 0x0 0x3ee00000>,
<0x0 0xc0000000 0x0 0x0fd00000>,
<0xD 0x00000000 0x2 0x54100000>,
<0xA 0x80000000 0x1 0x80000000>,
<0x9 0x00000000 0x1 0x80000000>,
<0x1 0x00000000 0x3 0x00000000>,
<0x0 0xd0000000 0x0 0x01900000>,
<0x0 0xd3500000 0x0 0x2cb00000>;
};
};
26 changes: 26 additions & 0 deletions arch/arm/dts/qcs615-ride-u-boot.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,30 @@
<0x0 0xc0000000 0x0 0xc0000000>,
<0x1 0x80000000 0x1 0x00000000>;
};

reboot-mode {
compatible = "nvmem-reboot-mode";
nvmem-cells = <&reboot_reason>;
nvmem-cell-names = "reboot-mode";

mode-bootloader = <0x02>;
mode-recovery = <0x01>;
};
};

&pm8150_0 {
/* Virtual NVMEM node for PON-based reboot reason storage */
nvram@800 {
compatible = "qcom,spmi-sdam";
reg = <0x800>;
#address-cells = <1>;
#size-cells = <1>;
ranges = <0x00 0x800 0x100>;

/* Reboot reason cell at PON_SOFT_RB_SPARE (0x88F) */
reboot_reason: reboot-reason@8f {
reg = <0x8f 0x1>;
bits = <1 7>;
};
};
};
3 changes: 3 additions & 0 deletions arch/arm/mach-snapdragon/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,7 @@

obj-y += board.o
obj-$(CONFIG_EFI_HAVE_CAPSULE_SUPPORT) += capsule_update.o
obj-$(CONFIG_OF_LIVE) += qcom_fixup_boardinfo.o
obj-$(CONFIG_OF_LIVE) += qcom_fixup_ddrinfo.o
obj-$(CONFIG_OF_LIVE) += qcom_fixup_subsetparts.o
obj-$(CONFIG_OF_LIVE) += of_fixup.o
90 changes: 90 additions & 0 deletions arch/arm/mach-snapdragon/chipinfo_def.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
/* SPDX-License-Identifier: GPL-2.0+ */
/*
* Type and enum definitions for the Chip Info driver
*
* Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
*
*/

#include <stdbool.h>
#include <stdint.h>
#include <stdlib.h>

enum chip_info_result {
CHIPINFO_SUCCESS = 0,
CHIPINFO_ERROR = -1,
CHIPINFO_ERROR_INVALID_PARAMETER = -2,
CHIPINFO_ERROR_INSUFFICIENT_MEMORY = -3,
CHIPINFO_ERROR_NOT_FOUND = -4,
CHIPINFO_ERROR_INTERNAL = -5,
CHIPINFO_ERROR_NOT_ALLOWED = -6,
CHIPINFO_ERROR_NOT_SUPPORTED = -7,
CHIPINFO_ERROR_NOT_INITIALIZED = -8,
CHIPINFO_ERROR_OUT_OF_RANGE_PARAMETER = -9,
CHIPINFO_ERROR_INVALID_ADDRESS = -10,
CHIPINFO_ERROR_INSUFFICIENT_BUFFER_LENGTH = -11,
};

/**
* Supported parts by the chipinfo_get_disabled_features API.
* New parts should be appended to this enum (i.e. not inserted)
* to preserve backwards compatibility.
*
* For targets that have multiple instances of a specific part,
* a new part with a _N suffix should be added. On these targets,
* part enums without the _N suffix are for the 0th instance,
* e.g. CHIPINFO_PART_DISPLAY is for MDSS_0 on Makena.
*/
enum chip_info_Part_type {
CHIPINFO_PART_UNKNOWN = 0,
CHIPINFO_PART_GPU = 1,
CHIPINFO_PART_VIDEO = 2,
CHIPINFO_PART_CAMERA = 3,
CHIPINFO_PART_DISPLAY = 4,
CHIPINFO_PART_AUDIO = 5,
CHIPINFO_PART_MODEM = 6,
CHIPINFO_PART_WLAN = 7,
CHIPINFO_PART_COMP = 8, // For both CDSP and NSP
CHIPINFO_PART_SENSORS = 9,
CHIPINFO_PART_NPU = 10,
CHIPINFO_PART_SPSS = 11,
CHIPINFO_PART_NAV = 12,
CHIPINFO_PART_COMPUTE_1 = 13,
CHIPINFO_PART_DISPLAY_1 = 14,
CHIPINFO_PART_NSP = 15,
CHIPINFO_PART_EVA = 16,
CHIPINFO_PART_PCIE = 17,
CHIPINFO_PART_CPU = 18,
CHIPINFO_PART_DDR = 19,

CHIPINFO_NUM_PARTS,
CHIPINFO_PART_32BITS = 0x7FFFFFFF
};

/**
* SKU_IDs logical mapping.
* See ChipInfo_GetSKU for more details.
*/
enum chip_info_skuid_type {
CHIPINFO_SKU_UNKNOWN = 0,

CHIPINFO_SKU_AA = 0x01,
CHIPINFO_SKU_AB = 0x02,
CHIPINFO_SKU_AC = 0x03,
CHIPINFO_SKU_AD = 0x04,
CHIPINFO_SKU_AE = 0x05,
CHIPINFO_SKU_AF = 0x06,
// Reserved for future use

CHIPINFO_SKU_Y0 = 0xf1,
CHIPINFO_SKU_Y1 = 0xf2,
CHIPINFO_SKU_Y2 = 0xf3,
CHIPINFO_SKU_Y3 = 0xf4,
CHIPINFO_SKU_Y4 = 0xf5,
CHIPINFO_SKU_Y5 = 0xf6,
CHIPINFO_SKU_Y6 = 0xf7,
CHIPINFO_SKU_Y7 = 0xf8,
// Reserved for future use

};

84 changes: 84 additions & 0 deletions arch/arm/mach-snapdragon/of_fixup.c
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
#include <stdlib.h>
#include <tee/optee.h>
#include <time.h>
#include "qcom_fixup_handlers.h"

/**
* find_ssphy_node() - Find the super-speed PHY node referenced by DWC3
Expand Down Expand Up @@ -283,5 +284,88 @@ EVENT_SPY_FULL(EVT_OF_LIVE_BUILT, qcom_of_fixup_nodes);

int ft_board_setup(void __maybe_unused *blob, struct bd_info __maybe_unused *bd)
{
struct fdt_header *fdt = blob;

boardinfo_fixup_handler(fdt);
ddrinfo_fixup_handler(fdt);
subsetparts_fixup_handler(fdt);

return 0;
}

int fixup_dt_node(void *fdt_ptr, int node_offset,
const char *property_name,
void *property_value,
enum fdt_fixup_type type)
{
int ret;

if ((!fdt_ptr || node_offset < 0) ||
(!property_value && type != ADD_SUBNODE))
return -1;

switch (type) {
case APPEND_PROP_U32:
fdt_set_totalsize(fdt_ptr,
(fdt_totalsize(fdt_ptr)
+ sizeof(struct fdt_property)
+ strlen(property_name) + 3
+ sizeof(u32)));
ret = fdt_appendprop_u32(fdt_ptr, node_offset,
property_name,
*(u32 *)property_value);
break;
case APPEND_PROP_U64:
fdt_set_totalsize(fdt_ptr,
(fdt_totalsize(fdt_ptr)
+ sizeof(struct fdt_property)
+ strlen(property_name) + 3
+ sizeof(u64)));
ret = fdt_appendprop_u64(fdt_ptr, node_offset,
property_name,
*(u64 *)property_value);
break;
case SET_PROP_U32:
fdt_set_totalsize(fdt_ptr,
(fdt_totalsize(fdt_ptr)
+ sizeof(struct fdt_property)
+ strlen(property_name) + 3
+ sizeof(u32)));
ret = fdt_setprop_u32(fdt_ptr, node_offset,
property_name,
*(u32 *)property_value);
break;
case SET_PROP_U64:
fdt_set_totalsize(fdt_ptr,
(fdt_totalsize(fdt_ptr)
+ sizeof(struct fdt_property)
+ strlen(property_name) + 3
+ sizeof(u64)));
ret = fdt_setprop_u64(fdt_ptr, node_offset,
property_name,
*(u64 *)property_value);
break;
case SET_PROP_STRING:
fdt_set_totalsize(fdt_ptr,
(fdt_totalsize(fdt_ptr)
+ sizeof(struct fdt_property)
+ strlen(property_name) + 3
+ strlen((char *)property_value)));
ret = fdt_setprop_string(fdt_ptr, node_offset,
property_name,
(char *)property_value);
break;
case ADD_SUBNODE:
fdt_set_totalsize(fdt_ptr,
(fdt_totalsize(fdt_ptr)
+ sizeof(struct fdt_property)
+ strlen(property_name) + 3));
ret = fdt_add_subnode(fdt_ptr, node_offset,
property_name);
break;
default:
ret = -1;
}

return ret;
}
Loading