summaryrefslogtreecommitdiff
path: root/arch
AgeCommit message (Collapse)Author
2023-03-16mach-k3: am62_hardware: add lfxosc bypass bitMax Krummenacher
Add the BP_C bit position of the LFXOSC_CTRL Register. This allows to bypass the crystal oscillator when providing the clock from an external source. Upstream-Status: Pending Initial U-Boot to be used for bring-up and validation of the V1.0 design, we'll decide on the step forward to mainline this once the bring-up and validation will be done. Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
2023-02-23arm: dts: k3-am625-verdin-lpddr4-1600MTs: update to sysconfig v0.09.05Marcel Ziswiler
Update LPDDR4 RAM timings to what the online AM62x SysConfig DDR Subsystem Register Configuration Tool v0.09.05 generates. From its README: v9.04: -changed wrlvl_delay_early_threshold=0x100 to allow write leveling to complete successfully for wider array of layouts -add cmm output -LPDDR4: phy_rddqs_latency_adjust changed to 0 default recommendation (this value gets optimized during training) -LPDDR4: optimized training loops to support 1 operating frequency -LPDDR4/DDR4: optimized IO calibration configuration based on operating frequency -LPDDR4/DDR4: optimized internal calibration clock based on operating frequency -LPDDR4: changed default MR22 ODTE-CS=1 -LPDDR4: changed rx_ctle_cs default to No Boost -AM62x dual rank support -updated to use sysconfig v1.15 -public release for AM62A LPDDR4 support v9.05: -cleaned up supported frequencies Upstream-Status: Pending Initial U-Boot to be used for bring-up and validation of the V1.0 design, we'll decide on the step forward to mainline this once the bring-up and validation will be done. Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2023-02-23arm: dts: k3-am625-verdin: drop skevm specific stuffMarcel Ziswiler
Drop SKEVM specific stuff. Upstream-Status: Pending Initial U-Boot to be used for bring-up and validation of the V1.0 design, we'll decide on the step forward to mainline this once the bring-up and validation will be done. Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2023-02-21board: toradex: add verdin am62 supportMarcel Ziswiler
This adds initial support for the Toradex Verdin AM62 Quad 1GB WB IT V1.0A module. They are strapped to boot from their on-module eMMC. U-Boot supports booting from the on-module eMMC, or, via separate verdin-am62_r5_usbdfu_defconfig from USB DFU based recovery mode. Upstream-Status: Pending Initial U-Boot to be used for bring-up and validation of the V1.0 design, we'll decide on the step forward to mainline this once the bring-up and validation will be done. Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2023-02-21board: toradex: drop colibri pxa270 supportMarcel Ziswiler
The Colibri PXA270 has been end-of-life since quite a while and would require more and more maintenance (e.g. DM conversions). Upstream-Status: Backport [fc102c87c11dfd52039326534ff831d3edd8340d] Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2023-02-21toradex: apalis-imx8x: drop support for apalis imx8xDenys Drozdov
Drop Apalis iMX8X platform as it never left sample state and is no longer supported. Upstream-Status: Backport [47bcc0d056aa243a31d2a1edb44bdcd155f5335b] Signed-off-by: Denys Drozdov <denys.drozdov@toradex.com> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2023-01-23arm: mach-k3: am62a7: Enable QoS for DSSAradhya Bhatia
Enable Quality of Service (QoS) blocks for Display SubSystem (DSS), by servicing the DSS - DDR traffic from the Real-Time (RT) queue. This is done by setting the DSS DMA orderID to 8. The C7x and VPAC have been overwhelming the DSS's access to the DDR (when it was accessing via the Non Real-Time (NRT) Queue), primarily because their functional frequencies, and hence DDR accesses, were significantly higher than that of DSS. This led the display to flicker when certain edgeAI models were being run. With the DSS traffic serviced from the RT queue, the flickering issue has been found to be mitigated. The am62a qos files are auto generated from the k3 resource partitioning tool. Section-3.1.12, "QoS Programming Guide", in the AM62A TRM[1], provides more information about the QoS, with the register descriptions explanined under the "System Interconnect Registers" in "AM62A TRM Registers 1" section. [1] AM62A Tech Ref manual: https://www.ti.com/lit/zip/spruj16 Signed-off-by: Aradhya Bhatia <a-bhatia1@ti.com> Reviewed-by: Praneeth Bajjuri <praneeth@ti.com>
2023-01-17arm: dts: k3-am68-sk: Add r5 specific dt supportSinthu Raja
Add initial support for device tree that runs on R5. Signed-off-by: Sinthu Raja <sinthu.raja@ti.com>
2023-01-17arm: dts: Add support for A72 specific AM68 Starter Kit Base BoardSinthu Raja
The SK architecture comprises of baseboard and a SOM board. The AM68 Starter Kit's baseboard contains most of the actual connectors, power supply etc. The System on Module (SoM) is plugged on to the base board. Therefore, add support for peripherals brought out in the base board. Signed-off-by: Sinthu Raja <sinthu.raja@ti.com>
2023-01-17arm: dts: Add initial support for AM68 Starter Kit System on ModuleSinthu Raja
AM68 Starter Kit (SK) is a low cost, small form factor board designed for TI’s AM68 SoC. TI’s AM68 SoC comprises of dual core A72, high performance vision accelerators, hardware accelerators, latest C71x DSP, high bandwidth real-time IPs for capture and display. The SoC is power optimized to provide best in class performance for industrial applications. AM68 SK supports the following interfaces: * 16 GB LPDDR4 RAM * x1 Gigabit Ethernet interface * x1 USB 3.1 Type-C port * x2 USB 3.1 Type-A ports * x1 PCIe M.2 M Key * 512 Mbit OSPI flash * x2 CSI2 Camera interface (RPi and TI Camera connector) * 40-pin Raspberry Pi GPIO header SK's System on Module (SoM) contains the SoC, PMIC, DDR and OSPI flash. Therefore, add support for the components present on the SoM. Schematics: https://www.ti.com/lit/zip/SPRR463 TRM: http://www.ti.com/lit/zip/spruj28 Signed-off-by: Sinthu Raja <sinthu.raja@ti.com>
2023-01-17arch: mach-k3: Update board specific API name to K3 generic API nameSinthu Raja
Although the board_init_f API initialises the SoC, the API name is incorrectly specified and misleads the functionality. This file should only include k3-specific functionality. Change the API's name to something more K3-specific and separate the function to make it more modular. Signed-off-by: Sinthu Raja <sinthu.raja@ti.com>
2023-01-11arm: dts: k3-am62ax: Add USB nodes and enable it support to DFUBryan Brattlof
Add support for USB controllers and enable the USB to boot via DFU Signed-off-by: Bryan Brattlof <bb@ti.com> Signed-off-by: Ravi Gunasekaran <r-gunasekaran@ti.com>
2023-01-11ARM: dts: k3-am62a7-sk: Enable eMMC supportVignesh Raghavendra
Enable eMMC node to support booting from on board eMMC Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com>
2023-01-11ARM: dts: k3-am62a-main: Add sdhci0 nodeVignesh Raghavendra
Add sdhci0 node which is a 8bit MMC interface to support eMMC/SD/SDIO Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com>
2023-01-11mach-k3: am62a7_init: Distinguish b/w eMMC raw and filesytem bootVignesh Raghavendra
ROM supports RAW as well as FS based boot in eMMC mode. Add support to distinguish the same and proceed accordingly for loading next stages. Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com>
2023-01-11arm: mach-k3: fix spelling mistake "entended" -> "extended"Bryan Brattlof
the macro for the boot data location from rom is misspelled. fix it Signed-off-by: Bryan Brattlof <bb@ti.com>
2023-01-05arm: dts: add support for remote procsHari Nagalla
AM62A SoC has a C71x DSP and R5F core in main voltage domain and another R5F core in wakeup domain. The IPC between the R5F, C71x and A53 processors is through shared memory and mailboxes. Signed-off-by: Hari Nagalla <hnagalla@ti.com>
2023-01-05arm: dts: Add R5F device nodeHari Nagalla
AM62A SoC has a single R5F core in MCU voltage domain. Signed-off-by: Hari Nagalla <hnagalla@ti.com>
2023-01-05arm: dts: Add mailbox nodes for AM62AHari Nagalla
AM62A SoC has 4 mailbox clusters and a C71x DSP in main voltage domain. The mailboxes are used for interprocessor communications between the remote processors (R5F, C71x and A53) and host processor. Signed-off-by: Hari Nagalla <hnagalla@ti.com>
2023-01-03arm: dts: introduce DMA & CPSW nodesBryan Brattlof
Introduce the Direct Memory Access and Ethernet device tree nodes needed by uboot's ethernet drivers. Signed-off-by: Bryan Brattlof <bb@ti.com>
2022-12-01mach-k3: am62a7_init: Avoid HSM SRAM access from A53 SPL/U-BootBryan Brattlof
Starting with v08.05.01 TIFS, HSM SRAM access is restricted to only the DM firmware and SMS cores meaning the A53 SPL and U-Boot will no longer be able to access these parts of SRAM. Unfortunately there are two data structures located in the HSM SRAM the A53's boot-loaders will need and now must be relocated by the R5 SPL. 1. The boot index from ROM, indicating whether ROM booted from the primary vs backup boot media. 2. And the Board EEPROM data scratch pad. The EXTENDED BOOT INFO, indicating which images ROM loaded is not needed by the A53 SPL and is now limited to the R5 SPL. Signed-off-by: Bryan Brattlof <bb@ti.com>
2022-12-01arm: mach-k3: am62a: introduce auto-generated SoC dataBryan Brattlof
Introduce the auto-generated clock tree and power domain data needed to attach the am62a into the power-domain and clock frameworks of uboot Signed-off-by: Bryan Brattlof <bb@ti.com>
2022-12-01arm: mach-k3: introduce basic files to support the am62aBryan Brattlof
Introduce the mach-k3 files needed to properly boot TI's am62a SoC family of devices Signed-off-by: Bryan Brattlof <bb@ti.com>
2022-12-01arm: dts: introduce am62a7 u-boot dtbsBryan Brattlof
Introduce the base dts files needed for u-boot or to augment the linux dtbs for use in the u-boot-spl and u-boot binaries Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com> Signed-off-by: Bryan Brattlof <bb@ti.com>
2022-12-01arm: dts: introduce am62a7 dtbs from linux kernelBryan Brattlof
Introduce the basic am62a7 SoC dtbs from the linux kernel along with the new am62a specific pinmux definition that we will use to generate the dtbs for the u-boot-spl and u-boot binaries Co-developed-by: Vignesh Raghavendra <vigneshr@ti.com> Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com> Signed-off-by: Bryan Brattlof <bb@ti.com>
2022-11-24mach-k3: am62_hardware: Use HSM SRAM for EEPROM scratch pad for R5 SPLVignesh Raghavendra
During R5 SPL stage OC RAM is unavailable hence use store EEPROM data in HSM SRAM and use OCRAM in case of A53 SPL/U-Boot (as HSM SRAM is unusable at this stage). This unblocks HS-SE boot on AM62 Fixes: 2a54311a12 ("mach-k3: am625_init: Avoid HSM SRAM accesses from A53 SPL/U-Boot") Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com>
2022-11-18arm: dts: k3-j721e-r5-common-proc-board: Set parent clock for clock ID 342Apurva Nandan
This virtual clock mux configuration enables the use of dynamic frequency scaling on A72 clock ID 202 by setting up the required register. Signed-off-by: Apurva Nandan <a-nandan@ti.com>
2022-11-18arm: dts: k3-j7200-r5-common-proc-board: Set parent clock for clock ID 323Apurva Nandan
This virtual clock mux configuration enables the use of dynamic frequency scaling on A72 clock ID 202 by setting up the required register. Signed-off-by: Apurva Nandan <a-nandan@ti.com>
2022-11-16mach-k3: sysfw-loader: Avoid unused variable warningVignesh Raghavendra
With SPI_LOAD disabled, below warning is seen arch/arm/mach-k3/sysfw-loader.c:378:8: warning: unused variable ‘sysfw_spi_base’ [-Wunused-variable] 378 | void *sysfw_spi_base; | ^~~~~~~~~~~~~~ Fix the same. Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com>
2022-11-15arm: dts: k3-am625-sk-u-boot: renable UHS device tree nodesNitin Yadav
Class U1 UHS SD cards are failing to boot at u-boot. Renable UHS related DT nodes given that driver and OTAP and ITAP values are now updated. Enable UHS modes and voltage switching by default for by enabling the respective nodes in the device tree, remove sdhci-caps-mask in sdhci1 node and add sdhci2 node in device tree. Signed-off-by: Nitin Yadav <n-yadav@ti.com>
2022-11-15arm: dts: k3-am62-main: Update OTAP and ITAP delay selectNitin Yadav
UHS Class U1 sd-card are failing to boot due to incorrect OTAP/ITAP delay select values. Update OTAP and ITAP delay select values for various speed modes. For sdhci0 update OTAP delay values for ddr52 & HS200 and add ITAP delay for legacy & mmc-hs in dt nodes. For sdhci1 & sdhci2, update OTAP & ITAP delay select recommended as in RIOT for various speed modes. Signed-off-by: Nitin Yadav <n-yadav@ti.com>
2022-11-14mach-k3: am625_init: Avoid HSM SRAM accesses from A53 SPL/U-BootVignesh Raghavendra
Starting with v08.05.01 TIFS, HSM SRAM access is restricted to DM R5 and SMS Cores only, A53 SPL/U-Boot won't be able to access those SRAMs. There are three data structures in the HSM SRAM that A53 SPL/U-Boot make use of which needs relocation: 1. Boot index info from ROM indicating whether ROM booted from primary vs secondary media. This is now relocated to On Chip RAM by R5 SPL 2. EXTEND BOOT INFO which indicates images loaded by ROM, this info is not needed by A53 SPL and thus is limited to R5 SPL usage 3. Board EEPROM data scratch pad, which is now moved to On Chip RAM Co-developed-by: Kamlesh Gurudasani <kamlesh@ti.com> Signed-off-by: Kamlesh Gurudasani <kamlesh@ti.com> Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com> Acked-by: Andrew Davis <afd@ti.com> Tested-by: Judith Mendez <jm@ti.com>
2022-11-14arm: mach-k3: j72xx: add new 'virtual' muxBryan Brattlof
In order for the Cortex-A72s to operate at different frequencies other than the default 2GHz, add in a new 'virtual' mux (a mux that does not physically exist in the clock tree) that can be selected. CC: Apurva Nandan <a-nandan@ti.com> CC: Vishal Mahaveer <vishalm@ti.com> Signed-off-by: Bryan Brattlof <bb@ti.com>
2022-11-14arm: mach-k3: manually set the main_pll3Bryan Brattlof
Moving forwared, DM firmware will no longer mess with the MAIN_PLL3. This means we (uboot) will need to manually set this PLL to 2GHz in order order for the CPSW HSDIV to have the correct 250MHz output. CC: Jonathan Bergsagel <jbergsagel@ti.com> Signed-off-by: Bryan Brattlof <bb@ti.com>
2022-11-14arm: mach-k3: j72: reorganized clock treeBryan Brattlof
The data TI's firmware teams use to develop their releases, and the source for these files, are constantly in motion. This churn eventually causes the ordering of the clock tree in the WKUP SPL to change without having any functional change to the driver. So, to enable later patches wishing to make updates to this stripped down clock trees, reorder the clocks to match the v08.05.01 release. There are no functional changes. Signed-off-by: Bryan Brattlof <bb@ti.com>
2022-11-08arm: mach-k3: am62: point start of EEPROM to HSMRAM stack sectionKamlesh Gurudasani
Move start of eeprom address from on chip SRAM to HSMRAM This Macro is being used to verify that we can write/read to EEPROM OCSRAM is firewalled by ROM, so before TIFS opens up that firewall, we can't access it. Because of this, we were getting firewall exception in r5 core Signed-off-by: Kamlesh Gurudasani <kamlesh@ti.com>
2022-11-08arm: mach-k3: j784s4: dev-data.c: Added main_uart5 device dataBhavya Kapoor
Added device data for main_uart5 in dev-data.c for J784S4. Now, main_uart5 will be powered on in SPL while booting the J784S4 soc and thus can be used at any point of time. Signed-off-by: Bhavya Kapoor <b-kapoor@ti.com>
2022-11-08arm: mach-k3: j784s4: clk-data.c: Added Main_Uart5 clocksBhavya Kapoor
Added support for main_uart5 clock in clk-data.c for J784S4. Now, main_uart5 will be turned on in SPL while booting the J784S4 soc and thus can be used at any instance of of time. Signed-off-by: Bhavya Kapoor <b-kapoor@ti.com>
2022-11-08arm: mach-k3: j721s2: dev-data.c: Added main_uart5 device dataBhavya Kapoor
Added device data for main_uart5 in dev-data.c for J721S2. Now, main_uart5 will be powered on in SPL while booting the J721S2 soc and thus can be used at any point of time. Signed-off-by: Bhavya Kapoor <b-kapoor@ti.com>
2022-11-08arm: mach-k3: j721s2: clk-data.c: Added Main_Uart5 clocksBhavya Kapoor
Added support for main_uart5 clock in clk-data.c for J721S2. Now, main_uart5 will be turned on in SPL while booting the J721S2 soc and thus can be used at any instance of of time. Signed-off-by: Bhavya Kapoor <b-kapoor@ti.com> Reviewed-by: Bryan Brattlof <bb@ti.com>
2022-11-08arch: mach-k3: j784s4_init: Disable the firewallsManorit Chawdhry
Some firewalls enabled by ROM are still left on. So some address space is inaccessible to the bootloader. For example, in OSPI boot mode we get an exception and the system hangs. Therefore, disable all the firewalls left on by the ROM. Signed-off-by: Manorit Chawdhry <m-chawdhry@ti.com> Acked-by: Andrew Davis <afd@ti.com>
2022-11-08arm: mach-k3: Remove ROM firewalls on GP devicesAndrew Davis
This isn't strictly needed as these firewalls should all be disabled on GP, but it also doesn't hurt, so do this unconditionally to remove this use of CONFIG_TI_SECURE_DEVICE. Signed-off-by: Andrew Davis <afd@ti.com> Reviewed-by: Tom Rini <trini@konsulko.com> [ extended to other platform (j721s2) ] Signed-off-by: Manorit Chawdhry <m-chawdhry@ti.com>
2022-11-02arch: arm: dts: k3-j784s4: Change GTC and CPTS clock parentHari Nagalla
Change GTC and CPTS clock parents on J784S4 to main pll0, hsdiv6 from pll3, hsdiv1. This is because pll3, hsdiv0 sources cpsw rgmii and this needs to be at 250MHz. And on the other hand GTC clock needs to be at 200 MHz. Since it is not possible to program the hs dividers for 250 200 MHz from same VCO frequency, move GTC and CPTS clock parents to main pll0, hsdiv6. Signed-off-by: Hari Nagalla <hnagalla@ti.com> Acked-by: Apurva Nandan <a-nandan@ti.com>
2022-11-02arm: k3: Set default main pll0 VCO frequency for J784S4 SoCHari Nagalla
On J784S4 SoC, GTC and CPTS clock parents can be selected from either main pll0 HS divisor6 or main pll3 HS divisor1. The GTC clock needs to be at 200 MHz and this decides the HS divisor and VCO clock frequency to be used. Since the main pll0 and pll3 also source clocks for other peripherals and may need specific frequency the VCO of the plls need to be preset to a default value. On J784S4 the default VCO freqeuncy to satisy GTC and othe peripherals on pll0 is 2000 MHz. Signed-off-by: Hari Nagalla <hnagalla@ti.com> Acked-by: Apurva Nandan <a-nandan@ti.com>
2022-11-02arm: mach-k3: j784s4_init: Add dynamic sf bus override support for J784S4Vaishnav Achath
Implement overrides for spl_spi_boot_bus() lookup function according to bootmode selection, so as to support both QSPI and OSPI boot using the same build. Signed-off-by: Vaishnav Achath <vaishnav.a@ti.com>
2022-11-02arm: dts: k3-j784s4-evm: Enable OSPI1 instance for QSPI bootVaishnav Achath
Enable OSPI1 instance for J784S4 EVM in R5 SPL and A72 SPL,U-Boot. OSPI1 instance has mt25qu512a QSPI flash connected on J784S4 EVM. This commit enables the instance and adds the necessary DT entries and pre-relocation properties to enable the OSP1 controller and instantiate mt25qu512a flash. Signed-off-by: Vaishnav Achath <vaishnav.a@ti.com>
2022-10-21arm: dts: k3-j784s4: Add USB3 supportRavi Gunasekaran
Fix the serdes0 node to support USB3 correctly Signed-off-by: Ravi Gunasekaran <r-gunasekaran@ti.com> Acked-by: Matt Ranostay <mranostay@ti.com>
2022-10-19arm: dts: k3-j721e-main.dtsi: Modified Speed mode supportedBhavya Kapoor
HS400 is not supported for SDHCI0(eMMC). Kernel dts is not having the mmc-hs400-1_8v property while the U-Boot counterpart is still having that.Updated the speed modes supported to HS200 and their itap delay values for MMCSD subsystems in U-boot. Signed-off-by: Bhavya Kapoor <b-kapoor@ti.com>
2022-10-14arm: k3: config.mk: Add missing dependencies on tispl.bin HSAndrew F. Davis
When building tispl.bin for AM62x we depend on the _HS SPL and DTB files now as we build the secure configuration by default. Add this dependency here. Fixes: 30457e61bc0b ("arm: k3: config_secure.mk: Add tispl.bin to secure device builds") Reported-by: LCPD Autobuilder <lcpd_integration@list.ti.com> Signed-off-by: Andrew Davis <afd@ti.com> Tested-by: Vignesh Raghavendra <vigneshr@ti.com>
2022-09-29arm: k3: config_secure.mk: Add tispl.bin to secure device buildsAndrew Davis
When building for secure devices using non-buildman based image generation the signed tispl.bin file is called tispl.bin_HS. Also build the unsigned tispl.bin file as expected. Signed-off-by: Andrew Davis <afd@ti.com>