AM64x supports PRP. Add pruprp-fw to AM64xx so that this can be packaged
for AM64xx
Signed-off-by: MD Danish Anwar <danishanwar@ti.com>
Signed-off-by: Ryan Eatmon <reatmon@ti.com>
The TI_EXTRAS infrastructure needs a little tweaking to support turning
on multiple extra options at the same time.
1) Since TI_EXTRAS can be a space separated list and not a single fixed
value, we need to change how we detect when to include the TI_EXTRA
values.
2) The tie-jailhouse overrides were being a little too heavy handed.
All of the variables that are changed for any given extra feature needs
to use the proper variable override. This was most important for the
COMPATIBLE_MACHINE settings.
3) Move the ti-extras out of specific machine configs and into the
ti-soc so that all machines can use the extras.
Signed-off-by: Ryan Eatmon <reatmon@ti.com>
Update mesa-pvr which includes a default set of display controller
aliases for the supported display controllers. This means we do not
have to manually set the alias for each device here in the integration
layer. Remove that here.
Signed-off-by: Andrew Davis <afd@ti.com>
Signed-off-by: Ryan Eatmon <reatmon@ti.com>
The DRIVER and matching UMLIBS must always match, no need to define a
version number for both. Keep this simple and remove the extra defines.
Signed-off-by: Andrew Davis <afd@ti.com>
Signed-off-by: Ryan Eatmon <reatmon@ti.com>
Setting or removing the gpu MACHINE_FEATURE does not actually change
if the GPU driver is built or not. That is done based on the setting
of the BSP_{SGX,ROGUE}_{DRIVER,UMLIBS}_{PROVIDER,VERSION} vars. These
are default empty for BSP versions without supported GPU drivers, which
will correctly cause a fallback to SW rendering when the GPU driver is
not available.
As the "gpu" MACHINE_FEATURE now has no uses, remove it from all the
machine config include files.
Signed-off-by: Andrew Davis <afd@ti.com>
Signed-off-by: Ryan Eatmon <reatmon@ti.com>
The messageq IPC firmware example for AM57xx SoCs is available in
ti-linux-firmware repository. Add a recipe to package the prebuilt
messageq firmware into the rootfs.
Additionally, make sure the firmware for IPU1 rproc is copied into boot
partition by updating the dependency in omap-a15 machine conf to the
above recipe. This is needed for Early Boot use cases and gets rid of
dependency on meta-ti-extras layer.
There is no need to deploy the vayu IPC firmware anymore. Remove
the deploy task from ti-ipc-rtos recipe.
Signed-off-by: Beleswar Padhi <b-padhi@ti.com>
Signed-off-by: Ryan Eatmon <reatmon@ti.com>
U-Boot generates all the valid versions of tiboot3.bin and sysfw.itb
based on the given defconfig. The defaults are also picked based on
the board's binman files. No need to duplicate this logic here,
simply deploy what U-Boot generates.
Signed-off-by: Andrew Davis <afd@ti.com>
Signed-off-by: Ryan Eatmon <reatmon@ti.com>
Add a recipe to install the PKA firmware in root filesystem needed by
sa2_ul driver for PKA operations across all K3 platforms.
Signed-off-by: Beleswar Padhi <b-padhi@ti.com>
Signed-off-by: Ryan Eatmon <reatmon@ti.com>
Convert devicetree prefix matching functionality into a generic
class that can be used by the kernel and wic images. That way
dynamically generated KERNEL_DEVICETREE list will be the same
when populating /boot dir of rootfs and/or FAT boot partition
of a wic image.
Signed-off-by: Denys Dmytriyenko <denys@konsulko.com>
Signed-off-by: Ryan Eatmon <reatmon@ti.com>
Automatically generate non-vendored DTBs list in DEVICETREE_FILES from
vendored KERNEL_DEVICETREE list for all platforms to use.
Signed-off-by: Denys Dmytriyenko <denys@konsulko.com>
Signed-off-by: Ryan Eatmon <reatmon@ti.com>
Move KERNEL_DTBVENDORED settings from the kernel to ti-soc.inc
in the config scope.
Signed-off-by: Denys Dmytriyenko <denys@konsulko.com>
Signed-off-by: Ryan Eatmon <reatmon@ti.com>
A recent change in bitbake requires that all variable assignments have
whitespace between the variable, the operator and the value.
FOO = "1"
Signed-off-by: Ryan Eatmon <reatmon@ti.com>
This hides issues like missing flags that will cause issues for folks who
build or re-build the kernel outside the Yocto environment. It is better
to find these issues and fix them at the source in the Linux makefile,
not mask issues here.
Signed-off-by: Andrew Davis <afd@ti.com>
Signed-off-by: Ryan Eatmon <reatmon@ti.com>
Remove support for the v6.1 TI and Beagle BSPs. This was originally
split into meta-ti-bsp and meta-beagle changes, but there are some
hidden interdependencies that made that more painful than needed.
Remove v6.1 support from both BSP layers here.
This includes packages specific to those BSPs:
- TI and BB.org v6.1 Linux kernel
- TI and BB.org 2023.04 U-Boot
- Rogue GPU driver 23.3 and Mesa 22.3.5
Signed-off-by: Andrew Davis <afd@ti.com>
Signed-off-by: Ryan Eatmon <reatmon@ti.com>
FIT signing was disabled in the past as it was interfering with multi
DTB usecase in binman, and it was thought that the binman signing being
done is equivalent to UBOOT_SIGN_ENABLE.
Though looking at the sources, UBOOT_SIGN_ENABLE is actually used to
sign the kernel FIT Image instead and the name UBOOT actually specifies
that it's used in tandom with U-boot. During the signing process, mkimage
from U-boot is used to pack the kernel FIT Image and along with that,
one DTB from U-boot is also passed to the mkimage command. The DTB that
gets passed gets the key embedded in it that is used to verify the
kernel FIT image at runtime.
Now this signed DTB is packed in U-boot by triggering a rebuild with
EXT_DTB argument in the U-boot build process. However, this failed as
there was a U-boot bug which was not looking at the packed sources
properly with the multi DTB usecase.
Now that a U-boot fix is available [0], revert that commit which
disabled the FIT signing.
This reverts commit 9656b79cb5.
[0]: https://lore.kernel.org/all/20250626-b4-upstream-fix-icssg-fit-v1-1-95eff1c853a4@ti.com/
Signed-off-by: Manorit Chawdhry <m-chawdhry@ti.com>
Signed-off-by: Ryan Eatmon <reatmon@ti.com>
Since all k3 and legacy platforms share common load addresses for kernel
and initrd in the fitImage, move them to top level ti-soc.inc.
No functional change is intended from this patch.
Signed-off-by: Anshul Dalal <anshuld@ti.com>
Signed-off-by: Ryan Eatmon <reatmon@ti.com>
In yocto, the UBOOT_ENTRYPOINT and UBOOT_*LOADADDRESS variables specify
the entry point and load addresses for the kernel image and the DTB when
creating the fitImage[1].
Currently the load address for the kernel is set to 0x81000000 and
0x83000000 for the DTB for all k3 platforms.
However the region 0x80080000 to 0x81880000 is reserved for OPTEE on
am62xxsip-evm, leading to boot failure[2] when using the fitImage.
This patch fixes the issue by changing the addresses to 0x82000000 for
kernel and 0x88000000 for the DTB. This also allows us to load kernel
images > 32MiB in size when not using initrd while also making the
falcon and standard boot addresses consistent.
[1]:
https://docs.yoctoproject.org/ref-manual/variables.html#term-UBOOT_ENTRYPOINT
[2]:
https://raw.githubusercontent.com/ArchUsr64/ti_boot_logs/HEAD/am62xxsip-evm/failures/fitImage_load_addr_issue.log
Signed-off-by: Anshul Dalal <anshuld@ti.com>
Signed-off-by: Ryan Eatmon <reatmon@ti.com>
For AM62L there is no GP and both HS sub-types are supported by the
same TIFS. This means we do not need multiple versions of tiboot3.bin.
So no need to deploy an additional version which is identical to the
default tiboot3.bin already deployed.
Signed-off-by: Andrew Davis <afd@ti.com>
Acked-by: Chirag Shilwant <c-shilwant@ti.com>
Signed-off-by: Ryan Eatmon <reatmon@ti.com>
The AM62D SoC is a high-performance Digital Signal Processing (DSP)
device with a quad-core Cortex-A53 cluster, dual Cortex-R5F cores, and
a Cx7 DSP core with Matrix Multiplication Accelerator (MMA). It features
a range of peripherals, including multichannel audio serial ports,
Ethernet, UARTs, SPI, I2C, USB, and more.
This SoC is part of K3-AM62x family, which includes the AM62A and AM62P
variants. While the AM62A and AM62D are largely similar, the AM62D is
specifically targeted for general-purpose DSP applications, whereas the
AM62A focuses on edge AI workloads. A key distinction is that the AM62D
does not include multimedia components such as the video encoder/decoder,
MJPEG encoder, Vision Processing Accelerator (VPAC) for image signal
processing, or the display subsystem. Additionally, the AM62D has a
different pin configuration compared to the AM62A, which impacts embedded
software development.
The EVM board is a low-cost, expandable platform designed for the AM62D2
SoC, having 4GB LPDDR4 RAM, Gigabit Ethernet expansion connectors, audio
jacks, USB ports, and more.
Signed-off-by: Paresh Bhagat <p-bhagat@ti.com>
Signed-off-by: Ryan Eatmon <reatmon@ti.com>
This OP-TEE fTPM is a TA from Microsoft containing the reference
implementation of the TPM 2.0 Specification. As K3 OP-TEE now has the
necessary features supported to run this fTPM, enable it here. This will
serve as an example of using OP-TEE on K3 as a TPM without needing an
external harware TPM.
Signed-off-by: Andrew Davis <afd@ti.com>
Signed-off-by: Ryan Eatmon <reatmon@ti.com>
Firmware, like kernel modules, may be only relevant to a small subset of
hardware. Shipping all firmware for all hardware can waste space. For
this reason modules are split out into packages, and the same should
be done for firmware.
What we do currently is change the content of the package itself based
on what device we are building for. Having a package change content for
each machine means we cannot generate one image that supports multiple
machines, nor host a common machine agnostic package repo.
Instead we can generate different packages for the different firmwares
and only include the firmware packages needed for each machine.
Signed-off-by: Andrew Davis <afd@ti.com>
Signed-off-by: Ryan Eatmon <reatmon@ti.com>
Falcon boot requires tispl_falcon.bin to be on the same filesystem
partition as the fitImage.
This patch creates a new u-boot package called
'u-boot-ti-staging-falcon' that is included in IMAGE_INSTALL when
ti-falcon is enabled which allows us to deploy the required files to
rootfs.
Signed-off-by: Anshul Dalal <anshuld@ti.com>
Signed-off-by: Ryan Eatmon <reatmon@ti.com>
ti-falcon.inc configures the following things for enabling falcon boot:
1. Change fitImage class to kernel-fitimage-legacyhs
2. Update kernel and dtb address for falcon boot
3. Disable kernel compression
Signed-off-by: Anshul Dalal <anshuld@ti.com>
Signed-off-by: Ryan Eatmon <reatmon@ti.com>
* The GP variant of AM62A SoC was only used internally
for initial device bring-up and is not publicly available.
Hence, drop it from IMAGE_BOOT_FILES to ensure
tiboot3-am62ax-gp-evm.bin is not packaged inside vfat boot
partition of wic image
Signed-off-by: Chirag Shilwant <c-shilwant@ti.com>
Reviewed-by: Denys Dmytriyenko <denys@konsulko.com>
Signed-off-by: Ryan Eatmon <reatmon@ti.com>
MACHINE_FEATURE gc320, already gets set on omap-a15.inc. But ti-bsp.inc file,
removes the feature. So, remove that portion of functionality from ti-bsp, in
order to allow the building of gc320 in kernel 6.12.
Signed-off-by: Antonios Christidis <a-christidis@ti.com>
Signed-off-by: Ryan Eatmon <reatmon@ti.com>
The new out of tree module ti-vxe-vxd-driver is only for the 6.12 kernel
and later. Since we support multiple BSPs we need to correctly wrap
this addition behind some additional logic that can make sure to not
include it for the 6.1 and 6.6 kernel builds where the module is still
in the tree.
Additionally, fix up the beaglebone-ai64 since it includes the j721e.inc
file and will need to clear this variable for its BSPs as well.
Signed-off-by: Ryan Eatmon <reatmon@ti.com>
IMG codec drivers reside only on the J721e SoC. Ensure that the drivers
are being built when building SDK.
Signed-off-by: Brandon Brnich <b-brnich@ti.com>
Signed-off-by: Ryan Eatmon <reatmon@ti.com>
All K3 SoCs utilize the binman packaging tools in U-Boot to package
and sign the different boot firmware components needed to boot the
various security variants of K3 platform. Disable UBOOT_SIGN_ENABLE
to simplify the build
Signed-off-by: Bryan Brattlof <bb@ti.com>
Signed-off-by: Ryan Eatmon <reatmon@ti.com>
Bump the source revision to allow this module to work on kernel 6.12.
Originally this was going to be a separate branch, but considering the
bsp selector logic, this makes just as much sense.
Also enable the sgx driver in the ti_6.12 bsp selector.
Signed-off-by: Randolph Sapp <rs@ti.com>
Signed-off-by: Ryan Eatmon <reatmon@ti.com>
Since this is new logic is in place, switch the k6.6 and k6.12 configs
to use these new libraries. Do not enable GFX on 6.12 just yet. Still
need some kernel patches on the SGX side.
Signed-off-by: Randolph Sapp <rs@ti.com>
Signed-off-by: Ryan Eatmon <reatmon@ti.com>
We have a need for some platforms to add kernel options to the bootloader
during wic creation time. Create a new variable and add that to the
sdimage-2part-efi.wks.in file so that a machine can override it if
needed.
Add an override for am64 to point the kernel at console=ttyS2.
Signed-off-by: Ryan Eatmon <reatmon@ti.com>
All current K3 devices use either A53 or A72. Use the compile tune
configuration specific for these to allow the compiler to make
better optimizations.
Default tune here is weakly set to a lowest common denominator of
aarch64, as before, which is a recommended behavior for a BSP layer.
This allows for greater binary reuse (packages, sstate, etc.) across
different platforms of the same architecture in multi-BSP environments.
At the same time, since all the correct tunes are now configured for
K3 devices, one can elevate compiler optimization levels either from
local.conf or own Distro configuration on a per-SoC or per-device
basis, like so:
DEFAULTTUNE:k3 = "armv8a-crc"
DEFAULTTUNE:j721e = "cortexa72-cortexa53"
DEFAULTTUNE:beagleplay = "cortexa72-cortexa53"
Signed-off-by: Andrew Davis <afd@ti.com>
Signed-off-by: Denys Dmytriyenko <denys@konsulko.com>
Like we do with GPU support, GC320 support is conditional on the
kernel we are building and so should be disabled here for kernels
on which it is not functional yet.
We can then remove these disabling lines as the driver is updated
for each supported kernel, instead of blanket disabling in the
distro layer as done currently.
Signed-off-by: Andrew Davis <afd@ti.com>
This was used when the kernel had a different configuration for
the testing kernel. This has not been the case since v5.10 so
drop the systest kernel package as it will be the same as the
normal kernel package now.
Signed-off-by: Andrew Davis <afd@ti.com>
We are moving to 6.12 to be our new LTS, so we are switching the default
BSP to that. You can still access the 6.6 kernel if you need to by using
the BSP system and setting TI_PREFERRED_BSP = "ti-6_6" in your
local.conf.
Current known issues:
- Hardware graphics is disabled until we get a patch that updates the
patches to work with the 6.12 kernel. Falling back to software
rendering.
- am62xxsip-evm and j742s2-evm are not supported in the 2025.01 u-boot
yet. They will fail to build until the u-boot recipe is updated to
point to a commit that fixes their support.
Signed-off-by: Ryan Eatmon <reatmon@ti.com>
Early Boot of remote processors is supported at the SPL stage of the
bootloader. Currently, SPL looks for the remoteproc firmwares in the
boot partition.
Therefore, add the rproc firmware to the boot partition of wic images.
Signed-off-by: Aniket Limaye <a-limaye@ti.com>
Bump versions of mesa-pvr and ti-sgx-ddk-km to support SGX with kernel
6.6 and the same version of mesa rogue is using.
Enable SGX by default in the 6.6 BSP provider section logic.
Signed-off-by: Randolph Sapp <rs@ti.com>
Signed-off-by: Ryan Eatmon <reatmon@ti.com>
PREFERRED_VERSION matches against the PV in the recipe, not against the
file name. With the upcoming 6.12, the 6.1 kernel version string was a
little too loose. The "6.1%" could glob onto the 6.12 recipe. Take
this time to also clean up a couple of the other versions and narrow
them down.
Signed-off-by: Ryan Eatmon <reatmon@ti.com>
Our upstream testing needs to point to both master and master-next and
we need two different recipes to track that. This recipe mirrors the
linux-ti-next recipe and points to the master-next branch for the latest
bleeding edge changes.
Signed-off-by: Ryan Eatmon <reatmon@ti.com>
We were missing controlling the versions for linux-ti-staging-rt and
linux-ti-staging-systest using the BSP framework. Since the
PREFERRED_VERSION is not tied to the virtual/kernel we need two
additional settings for those alternate kernel package names.
For BSPs that do not have the -rt and -systest recipes then the two
new variable settings should effectively be ignored and cause no issues.
Signed-off-by: Ryan Eatmon <reatmon@ti.com>