summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2024-04-04dts: meson: Switch GXL, GXM & AXG to using upstream DTNeil Armstrong
Enable OF_UPSTREAM to use upstream DT and add amlogic/ prefix to the DEFAULT_DEVICE_TREE. And thereby directly build DTB from dts/upstream/src/ including *-u-boot.dtsi files from arch/$(ARCH)/dts/ directory. Cc: Sumit Garg <[email protected]> Acked-by: Viacheslav Bocharov <[email protected]> Reviewed-by: Sumit Garg <[email protected]> Tested-by: Mattijs Korpershoek <[email protected]> # khadas-vim3_android Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Neil Armstrong <[email protected]>
2024-04-04configs: meson64: remove amlogic prefix in fdtfile when CONFIG_OF_UPSTREAM ↵Neil Armstrong
is selected Remove amlogic/ path prefix in CFG_EXTRA_ENV_SETTINGS fdtfile when using CONFIG_OF_UPSTREAM, otherwise amlogic/ is added twice. Tested-by: Mattijs Korpershoek <[email protected]> # khadas-vim3_android Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Neil Armstrong <[email protected]>
2024-04-04board: amlogic: jethubj100: update docsViacheslav Bocharov
Improove documentation, add new revision. Signed-off-by: Viacheslav Bocharov <[email protected]> Link: https://lore.kernel.org/r/[email protected] [narmstrong: squashed https://lore.kernel.org/all/[email protected]/] Signed-off-by: Neil Armstrong <[email protected]>
2024-04-04board: amlogic: jethubj100: update MAINTAINERSViacheslav Bocharov
Fix mispell in maintainer name for jethub j100 board files Signed-off-by: Viacheslav Bocharov <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Neil Armstrong <[email protected]>
2024-04-04board: amlogic: jethubj100: fix common config headerViacheslav Bocharov
Fix JetHub board sequence to read correct gpio for rescue button Signed-off-by: Viacheslav Bocharov <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Neil Armstrong <[email protected]>
2024-04-04qcom_defconfig: enable USBCaleb Connolly
Enable support for the DWC3 USB controller and required dependencies for Qualcomm boards, specifically the DB845c: * IOMMU / SMMU * USB high-speed PHYs * Mass storage and ACM gadgets Reviewed-by: Sumit Garg <[email protected]> Signed-off-by: Caleb Connolly <[email protected]>
2024-04-04qcom_defconfig: enable livetreeCaleb Connolly
Qualcomm FDTs are on the larger size, and with the addition of DT modifications during board_init() it makes sense to enable OF_LIVE globally. The cost of building the tree should be offset by the increased efficiency at which we can walk it. Some rough measurements with CONFIG_BOOTSTAGE suggests that this might add 0.1-0.2ms to the boot-to-console time. However the reset-to-reset timer difference is in the range of 0.5ms so this could just be noise. Suffice to say, no significant slow down. Reviewed-by: Neil Armstrong <[email protected]> Acked-by: Sumit Garg <[email protected]> Signed-off-by: Caleb Connolly <[email protected]>
2024-04-04dts: sdm845-db845c: add u-boot fixupsCaleb Connolly
The USB VBUS supply for the type-A port is enabled via a GPIO regulator. This is incorrectly modelled in Linux where only the PCIe dependency is expressed. The correct way to handle this will be through a usb-connector node, but for now we'll just mark the regulator as always-on so that it will be enabled automatically during boot. Reviewed-by: Sumit Garg <[email protected]> Reviewed-by: Neil Armstrong <[email protected]> Signed-off-by: Caleb Connolly <[email protected]>
2024-04-04mach-snapdragon: call regulators_enable_boot_on()Caleb Connolly
Make sure we power on any boot-on or always-on regulators. These are used for peripherals like USB on some platforms. Reviewed-by: Sumit Garg <[email protected]> Reviewed-by: Neil Armstrong <[email protected]> Signed-off-by: Caleb Connolly <[email protected]>
2024-04-04mach-snapdragon: fixup power-domainsCaleb Connolly
We don't support the RPM(h)PD power domains in U-Boot, and we don't need to - the necessary resources are on, and we aren't going to enter any low power modes. We could try using a no-op device, but this requires adding a compatible for every platform, and just pollutes the driver model. So instead let's just remove every "power-domains" property that references the RPM(h)pd power controller. This takes <1ms as we're using OF_LIVE. Of note, this only applies to drivers which are loading post-relocation. Drivers loaded pre-reloc that reference the rpm(h)pd still need DM_FLAG_DEFAULT_PD_CTRL_OFF in their flags. Acked-by: Sumit Garg <[email protected]> Reviewed-by: Neil Armstrong <[email protected]> Tested-by: Neil Armstrong <[email protected]> Signed-off-by: Caleb Connolly <[email protected]>
2024-04-04mach-snapdragon: fixup USB nodesCaleb Connolly
We don't support USB super-speed in U-Boot yet, we lack the SS PHY drivers, however from my testing even with a PHY driver there seem to be other issues when talking to super-speed peripherals. In pursuit of maintaining upstream DT compatibility, and simplifying porting for new devices, let's implement the DT fixups necessary to configure USB in high-speed only mode at runtime. The pattern is identical for all Qualcomm boards that use the Synaptics DWC3 controller: * Add an additional property on the Qualcomm wrapper node * Remove the super-speed phy phandle and phy-name entries. Acked-by: Sumit Garg <[email protected]> Reviewed-by: Neil Armstrong <[email protected]> Tested-by: Neil Armstrong <[email protected]> Signed-off-by: Caleb Connolly <[email protected]>
2024-04-04serial: msm-geni: support livetreeCaleb Connolly
When using OF_LIVE, the debug UART driver won't be probed if it's a subnode of the geni-se-qup controller. Add a NOP driver for the controller to correctly discover its child nodes. Reviewed-by: Neil Armstrong <[email protected]> Reviewed-by: Sumit Garg <[email protected]> Signed-off-by: Caleb Connolly <[email protected]>
2024-04-04gpio: msm_gpio: add .set_flags opCaleb Connolly
The .direction_input and .direction_output ops are deprecated, and don't seem to behave properly for us. Implement our own .set_flags op to handle this correctly. Reviewed-by: Sumit Garg <[email protected]> Signed-off-by: Caleb Connolly <[email protected]>
2024-04-04clk/qcom: sdm845: add USB clocksCaleb Connolly
Most devices only initialise the USB clocks for us if we boot via "fastboot boot", add the missing clock configuration to get both USB ports working regardless of the bootloader state. Reviewed-by: Sumit Garg <[email protected]> Signed-off-by: Caleb Connolly <[email protected]>
2024-04-04clk/qcom: sdm845: add gdscsCaleb Connolly
Define the GDSC power domains for SDM845. Reviewed-by: Neil Armstrong <[email protected]> Reviewed-by: Sumit Garg <[email protected]> Signed-off-by: Caleb Connolly <[email protected]>
2024-04-04clk/qcom: use offsets for RCG registersCaleb Connolly
The RCG registers always have the same offsets, so only store the base CMD register address and calculate the others relative to that. Reviewed-by: Sumit Garg <[email protected]> Signed-off-by: Caleb Connolly <[email protected]>
2024-04-04mach-snapdragon: disable power-domains for pre-reloc driversCaleb Connolly
Some devices like the UART and clock controller reference an RPM(h) power domain. We don't support this device in U-Boot, so add DM_FLAG_DEFAULT_PD_CTRL_OFF to tell DM core not to try and enable the power domain. Reviewed-by: Sumit Garg <[email protected]> Signed-off-by: Caleb Connolly <[email protected]>
2024-04-04phy: qcom: Add SNPS femto v2 USB HS phyBhupesh Sharma
Some Qualcomm SoCs newer than SDM845 feature a so-called "7nm phy" driver, notable the SM8250 SoC which will gain U-Boot support in upcoming patches. Introduce a driver based on the Linux driver. Signed-off-by: Bhupesh Sharma <[email protected]> [code cleanup, align symbol names with Linux, switch to clk/reset_bulk APIs] Acked-by: Sumit Garg <[email protected]> Signed-off-by: Caleb Connolly <[email protected]>
2024-04-04phy: qcom: add Qualcomm QUSB2 USB PHY driverBhupesh Sharma
The Snapdragon 845 and several other Qualcomm SoCs feature this USB high-speed phy. Add a driver for it based on the Linux driver, with support for the SDM845, and the QCM2290 and SM6115 SoCs which will gain support in U-Boot in future patches. Signed-off-by: Bhupesh Sharma <[email protected]> [code cleanup, switch to clk_bulk] Acked-by: Sumit Garg <[email protected]> Signed-off-by: Caleb Connolly <[email protected]>
2024-04-04clk: qcom: clear div mask before assigning a new dividerVolodymyr Babchuk
The current behaviour does a bitwise OR of the previous and new divider values, this is wrong as some bits may be set already. We need to clear all the divider bits before applying new ones. This fixes potential issue with 1Gbit ethernet on SA8155P-ADP boards. Signed-off-by: Volodymyr Babchuk <[email protected]> Reviewed-by: Caleb Connolly <[email protected]> Reviewed-by: Sumit Garg <[email protected]> [caleb: minor wording fix] Signed-off-by: Caleb Connolly <[email protected]>
2024-04-04mailmap: update Bhupesh's email addressCaleb Connolly
Update Bhupesh's email to his new one. Reviewed-by: Neil Armstrong <[email protected]> Signed-off-by: Caleb Connolly <[email protected]>
2024-04-04qcom: board: validate fdt before trying to use itVolodymyr Babchuk
There are cases when previous bootloader stage leaves some seemingly valid value in r0, which in fact does not point to valid FDT blob. This behavior was encountered when trying to boot U-Boot as "hyp" loader on SA8155P-ADP. To be sure that we really got the pointer to a device tree we need to validate it with fdt_check_header() function. Note: This approach is not 100% fool-proof, as get_prev_bl_fdt_addr() theoretically can return a pointer to a region that is not physically mapped and we will get data abort exception when fdt_check_header() will try to access it. But at this early boot stage we don't know where RAM is anyways so there is little we can do. Signed-off-by: Volodymyr Babchuk <[email protected]> Reviewed-by: Sumit Garg <[email protected]> Reviewed-by: Caleb Connolly <[email protected]> Signed-off-by: Caleb Connolly <[email protected]>
2024-04-04pinctrl: qcom: pass pin number to get_function_mux callbackVolodymyr Babchuk
This patch is the preparation for SM8150 support. This new SoC depending on the particular pin can have different numbers for the same function. For example "rgmii" function for GPIO4 has id=2 while for GPIO59 it has id=1. So, to support this type of SoCs, get_function_mux() callback needs to know for which pin the function is requested. Signed-off-by: Volodymyr Babchuk <[email protected]> Reviewed-by: Caleb Connolly <[email protected]> Reviewed-by: Sumit Garg <[email protected]> Signed-off-by: Caleb Connolly <[email protected]>
2024-04-04clk: qcom: add support for power domains uclassVolodymyr Babchuk
Now sub-drivers for particular SoCs can register them as power domain drivers. This is needed for upcoming SM8150 support, because it needs to power up the Ethernet module. Signed-off-by: Volodymyr Babchuk <[email protected]> Reviewed-by: Sumit Garg <[email protected]> Reviewed-by: Caleb Connolly <[email protected]> [caleb: make ARCH_SNAPDRAGON select POWER_DOMAIN] Signed-off-by: Caleb Connolly <[email protected]>
2024-04-04qcom_defconfig: Enable ethernet and I2C supportSumit Garg
QCS404 supports Synopsys Designware Ethernet QOS IP and we already have the corresponding glue layer present upstream as: drivers/net/dwc_eth_qos_qcom.c. So enable corresponding support. Along with that it is possible for Qualcomm platforms to retrieve MAC address from I2C eeprom present on board. So enable corresponding support as well. Signed-off-by: Sumit Garg <[email protected]> Signed-off-by: Caleb Connolly <[email protected]>
2024-04-04soc: zynqmp: Add the IDcode for TEG variantVenkatesh Yadav Abbarapu
ID code is added for zu3teg variant. Signed-off-by: Venkatesh Yadav Abbarapu <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Michal Simek <[email protected]>
2024-04-04arm: mvebu: turris_omnia: Enable rng command in defconfigMarek Behún
Now that Turris Omnia has a rng driver provided in the MCU driver, enable the rng command in defconfig. Signed-off-by: Marek Behún <[email protected]> Reviewed-by: Stefan Roese <[email protected]>
2024-04-04misc: turris_omnia_mcu: Add support for rng provided by MCUMarek Behún
Add support for true random number generator provided by the MCU on Turris Omnia. The MCU firmware supports TRNG if the FEAT_TRNG bit is set in features. In that case we bind the rng driver. Signed-off-by: Marek Behún <[email protected]> Reviewed-by: Stefan Roese <[email protected]>
2024-04-04cmd: rng: Print "Abort" on -EINTRMarek Behún
In the rng command, print Abort instead of Reading RNG failed if the error number is -EINTR, which can happen if the user pressed CTRL-C. Signed-off-by: Marek Behún <[email protected]> Reviewed-by: Stefan Roese <[email protected]>
2024-04-04arm: mvebu: turris_omnia: Enable poweroff command via sysreset in defconfigMarek Behún
Enable support for the poweroff command via sysreset for Turris Omnia. Signed-off-by: Marek Behún <[email protected]> Reviewed-by: Stefan Roese <[email protected]>
2024-04-04gpio: turris_omnia_mcu: Add support for system power off via sysresetMarek Behún
Add support for system power off via UCLASS_SYSRESET. Newer versions of Turris Omnia MCU firmware can power off the board (MCU will disable almost all voltage regulators and go into low power mode). Move the MCU driver into drivers/misc and register it under UCLASS_MISC. The sysreset and gpio device are bound as child devices of the MCU device. Signed-off-by: Marek Behún <[email protected]> Reviewed-by: Stefan Roese <[email protected]>
2024-04-04gpio: turris_omnia_mcu: Update firmware features readingMarek Behún
Update firmware features reading to try reading 32 bits of features and fallback to reading 16 bits. Signed-off-by: Marek Behún <[email protected]> Reviewed-by: Stefan Roese <[email protected]>
2024-04-04gpio: turris_omnia_mcu: Use byteorder conversion functionsMarek Behún
Use byteorder conversion function instead of manually assembling data from/to MCU. Signed-off-by: Marek Behún <[email protected]> Reviewed-by: Stefan Roese <[email protected]>
2024-04-04arm: mvebu: system-controller: Add support for SYSRESETMarek Behún
Add driver model support for sysreset via mvebu system controller. This is currently only available for U-Boot proper. Signed-off-by: Marek Behún <[email protected]> Reviewed-by: Stefan Roese <[email protected]>
2024-04-04arm: mvebu: system-controller: Select mvebu-reset if DM_RESET && PCI_MVEBUMarek Behún
The mvebu-reset driver is only needed by the mvebu PCIe driver, but currently it is automatically selected if DM_RESET is enabled. Add the condition of PCI_MVEBU also being enabled for mvebu-reset to be selected. Signed-off-by: Marek Behún <[email protected]> Reviewed-by: Stefan Roese <[email protected]>
2024-04-04arm: mvebu: system-controller: Rework to use UCLASS_SYSCONMarek Behún
The system-controller driver for 32-bit Armada is currently registered as UCLASS_RESET, since it only provides enabling/disabling PCIe ports. Rework it as UCLASS_SYSCON and bind mvebu-reset as a child device. Signed-off-by: Marek Behún <[email protected]> Reviewed-by: Stefan Roese <[email protected]>
2024-04-04arm: mvebu: spl: Do not build mvebu-reset in SPLMarek Behún
Commit 35e29e89a386 ("arm: mvebu: Implement simple mvebu-reset driver for enabling/disabling PCIe ports") made it so that the mvebu reset driver for enabling/disabling PCIe ports is build if CONFIG_DM_RESET is enabled. This is because PCI_MVEBU depends on DM_RESET. But the driver should not be built for SPL. Indeed the PCI_MVEBU driver is not supported in SPL now, and so the mvebu-reset driver is not needed. Signed-off-by: Marek Behún <[email protected]> Reviewed-by: Stefan Roese <[email protected]>
2024-04-04arm: mvebu: turris_omnia: Disable Atmel SHA node if not presentMarek Behún
If the FEAT_CRYPTO feature bit is present in MCU features, the board crypto is implemented by MCU and the Atmel SHA chip is not present. Disable Atmel SHA device-tree node in that case. Signed-off-by: Marek Behún <[email protected]> Reviewed-by: Stefan Roese <[email protected]>
2024-04-04arm: mvebu: turris_omnia: Print board ECDSA public key if availableMarek Behún
If MCU supports the FEAT_CRYPTO feature, read board ECDSA public key from MCU and print it. Signed-off-by: Marek Behún <[email protected]> Reviewed-by: Stefan Roese <[email protected]>
2024-04-04arm: mvebu: turris_omnia: Implement getting board information from MCUMarek Behún
Implement reading board serial number, first MAC address and board version from MCU. MCU supports board information if the FEAT_BOARD_INFO feature bit is set in MCU features. Prefer getting board information from MCU if supported, fallback to Atmel SHA chip. Signed-off-by: Marek Behún <[email protected]> Reviewed-by: Stefan Roese <[email protected]>
2024-04-04arm: mvebu: turris_omnia: Update MCU status and features readingMarek Behún
Refactor MCU status word and MCU firmware features reading to make it simpler to use. Try reading 32 bits of features, if that fails, read 16 bits. Older MCU firmware supports only 16-bit wide features, and if more bytes are read, either 0xff is sent or I2C transaction fails. Handle both cases. Signed-off-by: Marek Behún <[email protected]> Reviewed-by: Stefan Roese <[email protected]>
2024-04-04arm: mvebu: turris_{omnia, mox}: Don't print model two timesMarek Behún
Since commit 8cd4bf7dc9ba ("turris: Use checkboard() instead of show_board_info()") the model is show two times during boot: Model: Turris Omnia Model: Turris Omnia This is because the common function show_board_info() shows it, and Turris' checkboard() also does. Remove the second print. Fixes: 8cd4bf7dc9ba ("turris: Use checkboard() instead of show_board_info()") Signed-off-by: Marek Behún <[email protected]> Reviewed-by: Stefan Roese <[email protected]>
2024-04-04arm: mvebu: turris_omnia: Add header containing MCU command interface and use itMarek Behún
Add header containing all MCU command definitions and use it in board code and in MCU driver. Signed-off-by: Marek Behún <[email protected]> Reviewed-by: Stefan Roese <[email protected]>
2024-04-04arm: mvebu: turris_omnia: Enable LTO by default on Turris OmniaMarek Behún
U-Boot builds for Turris Omnia are approaching the limit of 0xf0000 bytes, which is the size of the U-Boot partition on Omnia. Enable LTO to get more size optimized binaries. Signed-off-by: Marek Behún <[email protected]> Reviewed-by: Stefan Roese <[email protected]>
2024-04-04arm: dts: kirkwood: Remove DTS files for Kirkwood boardsTony Dinh
Remove DTS and DTSI files for Kirkwood boards that have upstream supports. This patch depends on "arm: dts: kirkwood: Enable upstream DT on Kirkwood boards" https://patchwork.ozlabs.org/project/uboot/patch/[email protected]/ Signed-off-by: Tony Dinh <[email protected]> Reviewed-by: Sumit Garg <[email protected]>
2024-04-04arm: dts: kirkwood: Enable upstream DT on Kirkwood boardsTony Dinh
Enable OF_UPSTREAM to use upstream DT and add marvell/ prefix to the DEFAULT_DEVICE_TREE for Kirkwood boards. And so we can directly build DTBs from dts/upstream/src/arm/marvell, and including *-u-boot.dtsi files from arch/arm/dts/ directory. Background: The following 2 commands and filters were used in the analysis to determine which upstream DTS and DTSI files can be used as they are, or need to have modified/created *-u-boot.dtsi for u-boot specific implementation, and which board should be opt-out from OF_UPSTREAM. "git grep -li arch_kirkwood configs | xargs grep DEVICE_TREE | cut -d '"' -f2 | xargs -n1 sh -c 'diff -qs arch/arm/dts/$1.dts dts/upstream/src/arm/marvell/$1.dts' sh | grep differ" "diff -qrbu arch/arm/dts/ dts/upstream/src/arm/marvell/ | grep kirkwood | grep ".dtsi "" More detailed information can be found at: https://lore.kernel.org/u-boot/[email protected]/T/#u I've regression tested this patch with the Zyxel NSA325 (Kirkwood 88F6282) and Zyxel NSA310S (Kirkwood 88F6281). The Zyxel NSA325 board has a USB 3.0 controller attached to the PCIe bus. And the Zyxel NSA310S has an extensive overhaul in bindings and styles in upstream DTS version. Tested-by: Michael Walle <[email protected]> # on lschv2 Acked-by: Sumit Garg <[email protected]> Reviewed-by: Stefan Roese <[email protected]> Signed-off-by: Tony Dinh <[email protected]>
2024-04-03xilinx: zynq: add FDT_FIXUP_PARTITIONS supportJames Hilliard
There are situations where we may want to let U-Boot modify the FDT nand partitions for the kernel, such as when supporting multiple sizes of NAND chips. Signed-off-by: James Hilliard <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Michal Simek <[email protected]>
2024-04-02Merge tag 'u-boot-dfu-next-20240402' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-dfu u-boot-dfu-next-20240402 - Implement Qualcomm wrapper for dwc3 - Multiple sector size support for UMS - CDC ACM gadget initialization fix - Refactor board code from dwc3 to prepare better interrupt support - Bugfix for for qcom-smmu when compiling with -DDEBUG
2024-04-02Merge tag 'u-boot-dfu-20240402' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-dfu u-boot-dfu-20240402 - Fix #if logic in android_ab command - Fix ANDROID_AB_BACKUP_OFFSET in android_ab
2024-04-02arm64: dts: zynqmp: make hw-ecc as the default ecc modeVenkatesh Yadav Abbarapu
Except for Linux no other component (i.e., u-boot, fsbl or BootRom) of the software stack supports software ecc engine. So, make hw-ecc as the default ecc mode. Update the same for mini u-boot nand configuration as well. Signed-off-by: Venkatesh Yadav Abbarapu <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Michal Simek <[email protected]>