Age | Commit message (Collapse) | Author |
|
Rework the rather big array of zero length strings with 4 entries of
actual display adapter names to a array of structs which ties a pid4
to its correspondent human readable string.
Provide an accessor to get the string for a given PID4.
Upstream-Status: Submitted [https://lore.kernel.org/all/20230718090734.20357-4-andrejs.cainikovs@toradex.com/]
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Signed-off-by: Andrejs Cainikovs <andrejs.cainikovs@toradex.com>
|
|
Rework the rather big array of zero length strings with 4 entries of
actual carrier board names to a array of structs which ties a pid4
to its correspondent human readable string.
Provide an accessor to get the string for a given PID4.
Rework the user of the information to use the accessor.
Note that check_pid8_sanity() is used for early samples of Dahlia and
the development board. Yavia isn't affected.
Upstream-Status: Submitted [https://lore.kernel.org/all/20230718090734.20357-3-andrejs.cainikovs@toradex.com/]
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Signed-off-by: Andrejs Cainikovs <andrejs.cainikovs@toradex.com>
|
|
Add the Yavia Carrier board name string to the known carrier
board list.
Upstream-Status: Submitted [https://lore.kernel.org/all/20230718090734.20357-2-andrejs.cainikovs@toradex.com/]
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Signed-off-by: Andrejs Cainikovs <andrejs.cainikovs@toradex.com>
|
|
Drive CTRL_SLEEP_MOCI# high at boot (A53 SPL) using a GPIO hog, this
signal may be used to control some power-rails on the carrier board,
therefore it should be set to high when the module is booting.
To do this as early as possible is generally a good idea and the issue
was noticed on the Yavia carrier board where it is needed to power the
I2C EEPROM on the carrier board.
Upstream-Status: Pending
Signed-off-by: Andrejs Cainikovs <andrejs.cainikovs@toradex.com>
|
|
Enable CONFIG_SPL_GPIO_HOG option to be able to control GPIO hogs from
A53 SPL.
Upstream-Status: Pending
Signed-off-by: Andrejs Cainikovs <andrejs.cainikovs@toradex.com>
|
|
Use the CONFIG macros to conditionally build the GPIO hogging support in
either the SPL or U-Boot, or both, depending on the configuration. Also
call the GPIO hog probe function in the common SPL board initialization
as an equivalent to adding it to the U-Boot init sequence functions.
Upstream-Status: Backport [1d99e673c752bc7d55aa25b02e050741496f7109]
Signed-off-by: Eddie James <eajames@linux.ibm.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
|
|
Add Verdin am62 SKUs to ConfigBlock handling.
Add the following PID4s SOMs:
- 0071 Verdin AM62 Solo 512MB
- 0072 Verdin AM62 Solo 512MB WB IT
- 0073 Verdin AM62 Dual 1GB ET
- 0074 Verdin AM62 Dual 1GB IT
- 0075 Verdin AM62 Dual 1GB WB IT
- 0076 Verdin AM62 Quad 2GB WB IT
to the list of Toradex modules
Upstream-Status: Pending
Series [1] already sent for review and this patch must be applied on top,
fixing trivial conflicts.
We'll send afterward or update it in case a V3 is needed.
[1] https://lore.kernel.org/u-boot/20230612205444.363727-1-marcel@ziswiler.com/
Related-to: ELB-5222
Signed-off-by: Emanuele Ghidoli <emanuele.ghidoli@toradex.com>
|
|
Change memory configurations to operate at temperature of 95 degrees.
Currently, dynamic adaptation of temperature related timings is not
supported [1] so the config is for the worst timings.
It is possibile to do so because LPDDR4 devices are refreshed properly
if the memory controller issues REFRESH commands with same or *shorter*
refresh period than reported by MR4 OP[2:0] which depend upon device
temperature.
Configuration is output from SysConfig [2] web tool, currently at version
00.09.08, starting from previous configuration while modifying
these temperature related properties:
- Operating Temperature Range to "-40C to 95C"
- tREFIab (ns) to 1950
- tREFIpb (ns) to 244
- tRASmax (ns) to 17550
[1] https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1234907/am625-lpddr4-configuration-and-operating-temperature
[2] https://dev.ti.com/sysconfig
Upstream-Status: Pending
Series [3] already send for review with the previous configuration,
we'll send afterward or update it in case a V2 is needed.
[3] https://lore.kernel.org/all/20230607120639.82087-1-marcel@ziswiler.com/
Related-to: ELB-5200
Signed-off-by: Emanuele Ghidoli <emanuele.ghidoli@toradex.com>
|
|
Add memory size auto-detection, maximum size for Verdin AM62 is 2GB.
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: Emanuele Ghidoli <emanuele.ghidoli@toradex.com>
|
|
Ensure that every write is flushed to memory and afterward reads are
from memory.
Since the algorithm rely on the fact that accessing to not existent
memory lead to write at addr / 2 without this modification accesses
to aliased (not physically present) addresses are cached and
wrong size is returned.
This was discovered while working on a TI AM625 based board
where cache is normally enabled, see commit c02712a74849 ("arm: mach-k3: Enable dcache in SPL").
Upstream-Status: Submitted [https://lore.kernel.org/all/20230530133327.178278-1-francesco@dolcini.it/]
Signed-off-by: Emanuele Ghidoli <emanuele.ghidoli@toradex.com>
Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
|
|
Disable sdhci2 used for the on-module Wi-Fi as distroboot trying to
unsuccessfully initialize it during boot is later causing downstream
Linux to hang during boot.
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>
|
|
Provide a dfu_alt_info_ram variable value that allows to download
the binary blobs over DFU that are needed to boot TEZI.
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>
|
|
Drop the the dfu update possibility in favour of a follow up
Toradex Easy Installer procedure.
This reverts commit 6d147efd19e42b03b812392c4bf8eee4e96b2d2d.
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>
|
|
Fix raw eMMC boot mode detection. Patch from TI [1].
[1] https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1204131/faq-a53-boot-binary-tispl-bin-loading-error-when-bootmode-7-0-in-emmc-boot-mode-on-am62x
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>
|
|
Integrate Ethernet support.
Note: Due to U-Boot not support pinctrls in the cpsw3g_midio node they
were all added to the cpsw3g node. And due to U-Boot currently not
supporting Ethernet PHY reset-gpios we just GPIO hog it.
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>
|
|
Currently only the SPL running on the R5 has a clock driver. As a
workaround therefore move the assigned-clock stuff required for our
ETH_25MHz_CLK from the cpsw3g_mdio node of the regular device tree to
the a53@0 node of the R5 device tree.
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>
|
|
Enable Micrel KSZ90X1 Ethernet PHY driver e.g. as found on the Verdin
Development Board.
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>
|
|
Fix second mux option of clkout0 which should really be
DEV_BOARD0_CLKOUT0_IN_PARENT_HSDIV4_16FFT_MAIN_2_HSDIVOUT1_CLK10
rather than twice the same according to [1].
[1] https://software-dl.ti.com/tisci/esd/latest/5_soc_doc/am62x/clocks.html#clocks-for-board0-device
Upstream-Status: Pending
Despite the disclaimer discouraging hand editing this file due to it
being auto generated, it is buggy. This issue has been reported to TI.
Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
|
|
Migrate and sync to using Linux kernel (albeit still downstream) device
trees.
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>
|
|
Merge TI U-Boot RC Release 08.06.00.007
|
|
Update LPDDR4 RAM timings to what the online AM62x SysConfig DDR
Subsystem Register Configuration Tool v0.09.08 generates which supports
bit swizzle configuration. From its README:
v9.08
-added automatic change of RL, WL and nWR when frequency is changed
-added DQ swizzle and byte swap configuration flexibilty for AM62x/AM62A LPDDR4
-PHY_CAL_CLK updated divider values for higher frequencies
-CS ODT fix bug introduced in previous release
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>
|
|
Set the LFOSC0 mode to bypass. This makes the external provided
32kHz clock available.
A noteable consumer is the AM62x internal RTC.
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>
|
|
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>
|
|
This reverts commit 7d9dbeafe637a25267f0902ead02f61843edb7f3.
commit 7988f626336a ("common: avb_verify: Add CONFIG_AVB_PUBKEY_FILE to specify the root avb public key")
was introduced to support AVB on am62x android. But this broke am57x builds.
Android on am57xx is not validated currently hence reverting the patch
till a right fix is identified that scales to all supported platforms.
Signed-off-by: Praneeth Bajjuri <praneeth@ti.com>
Reported-by: Ryan Eatmon <reatmon@ti.com>
Suggested-by: Andrew Davis <afd@ti.com>
|
|
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>
|
|
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>
|
|
Enable the config CONFIG_BOARD_LATE_INIT to allow functionality of EEPROM
related features including detecting the board name and fetching the MAC
address.
Signed-off-by: Siddharth Vadapalli <s-vadapalli@ti.com>
|
|
Add functions to support features such as detecting the board from the
EEPROM as well as fetching the MAC address from EEPROM.
Signed-off-by: Siddharth Vadapalli <s-vadapalli@ti.com>
|
|
Add support for m4f early boot on am62x_evm.
Signed-off-by: Hari Nagalla <hnagalla@ti.com>
|
|
AM62 device has a M4F core in MCU power domain. Support for early boot
is added through remoteoproc driver.
Signed-off-by: Hari Nagalla <hnagalla@ti.com>
|
|
make M4F remoteproc a build option.
Signed-off-by: Hari Nagalla <hnagalla@ti.com>
|
|
Add support for early boot of m4f in u-boot
Signed-off-by: Hari Nagalla <hnagalla@ti.com>
|
|
Add alias for M4F remoteproc and carveout memories for IPC.
Signed-off-by: Hari Nagalla <hnagalla@ti.com>
|
|
AM62x device has a M4F core in mcu power domain. The the M4F core is primarily
intended for safety applications and can be isolated from the rest of the SoC.
Signed-off-by: Hari Nagalla <hnagalla@ti.com>
|
|
Detect if U-Boot proper was booted from DFU, if so start DFU for
flashing U-boot to eMMC boot area followed by UMS for flashing eMMC
user area.
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.
Refactoring ideas:
- `Detect DFU boot` moved into arch K3 specific code.
- `Detect DFU boot` by DFUing to a 'DFU' address a magic pattern
and test that address.
- Have a special U-Boot configuration for DFU boots,.
- With TEZI available for Verdin AM62 this commit can be dropped.
- The TEZI U-Boot could then have in its boot flow:
...
if (! dfu_boot())
load_the_TEZI_fitimage_from_eMMC();
boot_from_fitimage();
...
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
|
|
Add #include <dm/ofnode.h> to fix the following compiler error
+In file included from drivers/pinctrl/nxp/pinctrl-scu.c:11:
+include/misc.h:87:25: error: unknown type name 'ofnode'
+ 87 | int misc_init_by_ofnode(ofnode node);
+ | ^~~~~~
Upstream-Status: Inappropriate [other]
The fixed commit is present only on the downstream TI branch,
therefore there is nothing to send to upstream denx repository.
We might think about sending this patch to TI in the future.
Fixes: 9d9fd0a3b18f ("misc: uclass: Introduce misc_init_by_ofnode")
Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
|
|
HS-FS is technically a GP device wrt development flow, kernel images can
be either signed and packaged as a fitImage or can be regular Image and
dtbs loaded separately.
Default to legacy booting mechanism for kernel ie Image and dtb are
individual files and not necessarily signed. This provides widest
compatibility and aligns with ease of use.
For HS-SE though, keep fitImage as default though as one expects to boot
signed images on secure devices.
Users can force fitImage boot by setting boot_fit 1 on HS-FS too.
Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com>
|
|
This is already handled as part of misc_init_r() under mach-k3 common
code.
Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com>
|
|
Currently, code doesn't take into account the fact that user may have
overriden boot_fit value via env using saveenv.
Check if boot_fit is already set before overriding based on SoC type.
This allows users to boot signed fitImage or regular kernel Image and
dtbs consistently without needing to stop at U-Boot prompt and
overriding the variable each time.
Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com>
|
|
public key
The new config CONFIG_AVB_PUBKEY_FILE is used to specify the path to the
public key file that u-boot uses as the root public key. Previously,
the root public key was hard coded in avb_verify.c and therefore was
non-trivial to replace it with a custom key.
The public key that was hard-coded is extracted as default.avbpubkey
and is used as the default.
Bug: 181924266
Test: DIST_DIR=out/dist BUILD_CONFIG=u-boot/build.config.crosvm.aarch64
build/build.sh -j80
Change-Id: I7d0af97f158b87278a3c635df41e638c918cc96a
(cherry picked from commit e609074ced3dd07ca2a13d4becbae997e3a48c9f)
Signed-off-by: Guillaume La Roque <glaroque@baylibre.com>
|
|
Set PMIC Buck1 aka +VDD_CORE to 850 mV as required to operate the AM625
at its highest operating point of 1.4 GHz.
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>
|
|
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>
|
|
Add initial Verdin AM62 Quad 1GB WB IT prototype SKU to ConfigBlock
handling.
0069: Verdin AM62 Quad 1GB WB IT
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>
|
|
Add product id print in show_board_info(), with an increasing number of
Toradex SKUs available with small differences it makes sense to print it.
Move serial number print to a dedicated line, this prevents the previous
line with the product name to overflow the 80 columns with any
reasonable product name length.
Upstream-Status: Backport [abe52f58bc54efa9a9849ad4246666ae0be94d38]
Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
|
|
Up to now in the code we named Toradex SKUs in a slightly different way
compared to the official product name, start using the official names
from now on to avoid misunderstanding.
This has also the nice benefit of the string being shorter, allowing
to fit nicely in 80 columns even adding the product ID when printing
the hardware information.
Upstream-Status: Backport [4f0c33c46d946beb5e3430ce694d86ff86adbfcd]
Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
|
|
Fix checkpatch warn, use `IS_ENABLED(CONFIG_TDX_CFG_BLOCK_2ND_ETHADDR)`
instead of `#ifdef CONFIG_TDX_CFG_BLOCK_2ND_ETHADDR`.
Upstream-Status: Backport [9762fbeea451f4d81ec88788e7680e37a1ee5beb]
Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
|
|
Remove stale show_boot_logo() declaration, not used anywhere.
Fixes: e6fd30dd9eef ("toradex: drop legacy show_boot_logo function and use splashscreen")
Upstream-Status: Backport [0d4b692c807881253ec6954970ccbb0f717ae10a]
Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
|
|
Simplify interactive config block creation code, instead of having a
a long list of questions and a complex tree of preprocessor directive to
guess the exact SKU, just ask the user to select it from a list.
The modules list is filtered out to include only SKUs that are supported
by the specific u-boot binary in execution.
Upstream-Status: Backport [8b6dc5d3943c269892acb2a426ad4a46a7f7fc49]
Due to missing dectoul() rely on simple_strtoul() instead.
Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
|
|
Use generally available ARRAY_SIZE macro, instead of hand-coding it
every time is needed.
Upstream-Status: Backport [cdc39c6aaea33a9a47657f7798090ca973053a2f]
Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
|
|
Remove comment "not currently on sale" on specific SKUs, this
information does not belong to the code and will never be accurate.
Upstream-Status: Backport [ea1dc32f318903340a5ddaa8dc655503d1b4599e]
Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
|