Dev/BeagleBone/BeagleYAI: Difference between revisions
(3 intermediate revisions by the same user not shown) | |||
Line 53: | Line 53: | ||
This patchset by Jacob Stiffler for Yocto also provides information : https://lore.kernel.org/all/1535138718-6772-2-git-send-email-j-stiffler@ti.com/T/ | This patchset by Jacob Stiffler for Yocto also provides information : https://lore.kernel.org/all/1535138718-6772-2-git-send-email-j-stiffler@ti.com/T/ | ||
* Trusted Firmware-A https://trustedfirmware-a.readthedocs.io/en/latest/index.html | * Trusted Firmware-A : https://trustedfirmware-a.readthedocs.io/en/latest/index.html (and [https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-am67a/latest/exports/docs/linux/Foundational_Components_ATF.html Trusted Firmware-A related section in processor SDK documentation for Linux on AM67A]) | ||
* OP-TEE : https://optee.readthedocs.io/en/latest/ (and [https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-am67a/latest/exports/docs/linux/Foundational_Components_OPTEE.html OP-TEE related section in processor SDK documentation for Linux on AM67A]) | |||
== Sources == | == Sources == | ||
Line 60: | Line 61: | ||
* git://git.ti.com/ti-u-boot/ti-u-boot.git | * git://git.ti.com/ti-u-boot/ti-u-boot.git | ||
* git://git.ti.com/ti-linux-kernel/ti-linux-kernel.git | * git://git.ti.com/ti-linux-kernel/ti-linux-kernel.git | ||
* git://git.ti.com/processor-firmware/ti-linux-firmware.git | |||
Sources, branches and tags are referenced | Sources, branches and tags are referenced in the [https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-am67a/latest/exports/docs/devices/J7_Family/linux/Release_Specific_Release_Notes.html Linux Release Specific Release Notes] | ||
=== BeagleBone === | === BeagleBone === | ||
Line 70: | Line 72: | ||
* https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git | * https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git | ||
* https://github.com/OP-TEE/optee_os/ | * https://github.com/OP-TEE/optee_os/ | ||
Also refer to the [https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-am67a/latest/exports/docs/devices/J7_Family/linux/Release_Specific_Release_Notes.html Linux Release Specific Release Notes] for branches and tags. | |||
== Configs == | == Configs == |
Latest revision as of 16:32, 14 March 2025
Description
Processor
- The board has a TI Jacinto J722S (TDA4AEN) AM67A SOC with
- - four Arm Cortex-A53 cores (main cores, 1.4Ghz)
- - two C7x DSP cores
- - one user Arm Cortex-R5F core (MCU channel with FFI, 800Mhz)
- - two additional Arm Cortex-R5F cores (Device management and Run-time management).
- BXS-4-64 GPU
The complete list of processors and cores. Note that a physical processor can have multiple Host IDs (cores) depending on context and domain.
Memory
- 4Go LPDDR4
- EEPROM (FT24C32A) on I2C0
- microSD Card
The Boot process
Overview
From chapter "9.2. Understanding bootloaders in Processor SDK J722S (RTOS/Linux) and Processor SDK Linux for AM67A, chapter 3.1.1.1 - U-Boot - General Information :
- The boot process on the J722S processor requires two different U-Boot images and some firmwares, which will run on different cores.
Information is a little bit confused, maybe because there may be different ways to achieve the boot process.
- tiboot3.bin
- The first "Secondary Program Loader" (SPL) that the ROM bootloader will load and execute on the MCU R5F Core0
- It seems to be an agregate of an U-Boot image (u-boot-spl.bin) and the TIFS firmware (sysfw)
- It will try to load two images : "tifs.bin" (embedded) and "tispl.bin" (from SD card)
- tifs.bin
- TI Foundational Security (TIFS)
- This firmware image is also called "SYSFW" and may be included inside tiboot3.bin.
- It is used for the "Secure Management Services" (SMS), to be run on the corresponding R5F MCU.
- tispl.bin
- The second "Secondary Program Loader" (SPL). This one will run on one of the A53 cores.
- This image includes the "ARM Trusted Firmware" (ATF or Trusted Firmware-A) and the "Trusted Execution Environment" (TEE, provided by OP-TEE).
- It also includes the "Device Management" (DM) firmware which will run on one of the R5F cores. It provides the services refered to as Resource Management (RM) and Power Management (PM).
- And then the "SPL" proper, which may be a reduced U-Boot image, commonly refered to as the "first-stage bootloader" which will mainly initialise the A53 core, the DDR memory, and the required subsystems so that the full U-Boot image can run.
- uboot.img
- This is the final U-Boot image, also called "second-stage bootloader", which will also run on one of the A53 cores.
- This one will provide a prompt and load the Linux kernel.
Where to get more information
Credits : I started finding useful and accurate information on this post on medium by Olof Astrand : Building u-boot and the linux kernel for the beagleY AI board, though these rely on TI SDK, which I'd like to avoid as much as possible, both in order to understand everything, make things clear as what code is required (or binary blobs if any) and avoid huge unnecessary amounts of data which usually comes whith such SDK bundles.
Anyway, this post references some useful sources :
- Texas Instruments System Controller Interface (TISCI)
- Processor SDK RTOS J722S
- Processor SDK Linux Software Developer’s Guide, mainly chapter 3 : Foundational Components.
TI even provides access to the sources of these documentations : https://github.com/TexasInstruments/processor-sdk-doc !!
This patchset by Jacob Stiffler for Yocto also provides information : https://lore.kernel.org/all/1535138718-6772-2-git-send-email-j-stiffler@ti.com/T/
- Trusted Firmware-A : https://trustedfirmware-a.readthedocs.io/en/latest/index.html (and Trusted Firmware-A related section in processor SDK documentation for Linux on AM67A)
- OP-TEE : https://optee.readthedocs.io/en/latest/ (and OP-TEE related section in processor SDK documentation for Linux on AM67A)
Sources
TI
- git://git.ti.com/processor-sdk/psdk_fw.git
- git://git.ti.com/ti-u-boot/ti-u-boot.git
- git://git.ti.com/ti-linux-kernel/ti-linux-kernel.git
- git://git.ti.com/processor-firmware/ti-linux-firmware.git
Sources, branches and tags are referenced in the Linux Release Specific Release Notes
BeagleBone
- https://openbeagle.org/beagleboard/u-boot.git - tag "v2023.04-ti-09.02.00.009-BeagleY-AI"
- git switch v2023.04-ti-09.02.00.009-BeagleY-AI
Others
Also refer to the Linux Release Specific Release Notes for branches and tags.
Configs
U-Boot
make ARCH=arm O=../Build/u-boot/r5 am67a_beagley_ai_r5_defconfig make ARCH=arm O=../Build/u-boot/a53 am67a_beagley_ai_a53_defconfig
Linux
- Device tree : arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts
- Kernel config file : https://git.beagleboard.org/beagleboard/linux/-/blob/d89bfdd19e7161ddba4ce4f5e34425ae6020a6db/arch/arm64/configs/bb.org_defconfig
Liens officiels
Pinout
- Tag connect clip : https://www.printables.com/model/879533-beagley-ai-tagconnect-clip-10pin
Debug port Connection
Onboard connector
Despite what some have published about everywhere on the Web (even within official beagleboard online documentation), the connector IS NOT a JST connector. Some stupid guy made a confusion between the name of the footprint on the schematics or in the BOM and the name of the manufacturer.
The official BOM gives all the information :
- Manufacturer : MTCONN
- Manufacturer part number : MTWF63-103SRN-01163
Where to find mating connector
I did not find the exact connector reference on MTCONN website, but they have another one which seems to be the same one : https://www.mtconntech.com/wafer-conn-2-product/ which reference is "WTB10-XX-02-2" ... but I do not know where to get these, much less the mating connector.
Some googling gave me another manufacturer with a compatible reference : Wurth Elektronik.
What's nice with Wurth Elektronik is that they have an efficient website, with all the information, and their references are easy to order using Mouser or Digikey for example.
Here are the references/links for all the parts :
- WR-WTB 1.00 mm SMT Male Vertical Shrouded Header
- WR-WTB 1.00 mm Female Terminal Housing
- WR-WTB 1.00 mm Female Crimp Terminal
- WR-WTB Pre-crimped wire
- And even the WR-WTB Manual Crimping Tool
Choose the number of positions you need (3 for the debug port, but there's also a 2 positions and a 4 positions connector on the BeagleY-AI board), and either ask for samples or look for the corresponding parts reference number on your preferred components supplier.
Links
- BeagleBoard linux git repository : https://git.beagleboard.org/beagleboard/linux
- BeagleY-AI design and detailed specifications : https://docs.beagle.cc/boards/beagley/ai/03-design.html
- Building u-boot and the linux kernel for the beagleY AI board
- BeagleY-AI Review - Part 1 and BeagleY-AI Review - Part 2 on element 14 community.