<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://wiki.nathael.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Drizzt</id>
	<title>Embeded Linux (and more) Wiki by Nathael - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.nathael.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Drizzt"/>
	<link rel="alternate" type="text/html" href="http://wiki.nathael.net/index.php/Special:Contributions/Drizzt"/>
	<updated>2026-04-29T00:11:31Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>http://wiki.nathael.net/index.php?title=Dev/OPi/OPiZero2&amp;diff=386</id>
		<title>Dev/OPi/OPiZero2</title>
		<link rel="alternate" type="text/html" href="http://wiki.nathael.net/index.php?title=Dev/OPi/OPiZero2&amp;diff=386"/>
		<updated>2025-10-06T21:58:48Z</updated>

		<summary type="html">&lt;p&gt;Drizzt: /* Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Orange Pi Zero 2}}&lt;br /&gt;
&lt;br /&gt;
== Description  ==&lt;br /&gt;
Official website : [http://www.orangepi.org/html/hardWare/computerAndMicrocontrollers/details/Orange-Pi-Zero-2.html orangepi.org/Orange Pi Zero2/] ([[Dev/OPi/OpiZero2/Backup_presentation|Backup]])&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The OrangePi Zero 2 board is an Open-source Single Board Computer (SBC) of 53x60mm created and sold by Xunlong.&lt;br /&gt;
&lt;br /&gt;
Sunxi Wiki page : [https://linux-sunxi.org/Xunlong_Orange_Pi_Zero2 Orange Pi Zero2]&lt;br /&gt;
&lt;br /&gt;
== Base system ==&lt;br /&gt;
* [[Dev/OPi/OPiZero2/From_Scratch|Create initial system from scratch (sources)]]: all the steps, using u-boot and Linux kernel sources.&lt;br /&gt;
* [[Dev/Embedded/Rootfs|Rootfs guide]] to create either a minimal system using Busybox or a full Devuan GNU/Linux system.&lt;br /&gt;
* The &amp;quot;SD card creation&amp;quot; section from the [[Dev/OPi/OPiZero2/From_Scratch|&amp;quot;from scratch&amp;quot; page]] : also provides information to use u-boot, kernel, and Devuan root filesystem I built. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Connection and startup ==&lt;br /&gt;
=== USB-UART serial console connection ===&lt;br /&gt;
[[File:OPi_Zero_2_UART.jpg|150px|thumbnail|UART debug port]]&lt;br /&gt;
&lt;br /&gt;
On the J3 connector (3 pins male 2.54mm, right behind the USB port, pin 1 on the 2x26pins connector side) :&lt;br /&gt;
: pin 1 - GND&lt;br /&gt;
: pin 2 - UART RX&lt;br /&gt;
: pin 3 : UART TX&lt;br /&gt;
&lt;br /&gt;
=== SD card boot ===&lt;br /&gt;
The OrangePi Zero 2 board boots from the SD card which has to be prepared following specific steps. Follow the &amp;quot;SD card creation&amp;quot; section from the [[Dev/OPi/OPiZero2/From_Scratch|&amp;quot;from scratch&amp;quot; page]]&lt;br /&gt;
&lt;br /&gt;
== Extension ports ==&lt;br /&gt;
The OrangePi Zero 2 board has two extension ports using common 2.54mm (0.1inch) pitch:&lt;br /&gt;
* con4 : 2x13&lt;br /&gt;
* con5 : 1x13&lt;br /&gt;
&lt;br /&gt;
[[File:Orange_Pi_Zero_2_Expansion_Header.jpg|300px|thumbnail|Orange Pi Zero Plus Expansion Header]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:550px;&amp;quot;&lt;br /&gt;
 ! colspan=4 | con4 : 2x13 Header&lt;br /&gt;
 |-&lt;br /&gt;
 | 1 || &#039;&#039;3.3V&#039;&#039;&lt;br /&gt;
 | 2 || &#039;&#039;5V&#039;&#039; &lt;br /&gt;
 |-&lt;br /&gt;
 | 3 || TWI0_SDA / PA12 / GPIO12&lt;br /&gt;
 | 4 || &#039;&#039;5V&#039;&#039; &lt;br /&gt;
 |-&lt;br /&gt;
 | 5 || TWI0_SCK / PA11 / GPIO11&lt;br /&gt;
 | 6 || &#039;&#039;GND&#039;&#039;&lt;br /&gt;
 |-&lt;br /&gt;
 | 7 || PWM1 / PA06 / GPIO6&lt;br /&gt;
 | 8 || UART1_TX / PG06 / GPIO198&lt;br /&gt;
 |-&lt;br /&gt;
 | 9 ||  &#039;&#039;GND&#039;&#039;&lt;br /&gt;
 | 10 || UART1_RX / PG07 / GPIO199&lt;br /&gt;
 |-&lt;br /&gt;
 | 11 || UART2_RX / PA01 / GPIO1&lt;br /&gt;
 | 12 || SIM_CLK/PA_EINT7 / PA07 / GPIO7&lt;br /&gt;
 |-&lt;br /&gt;
 | 13 || UART2_TX / PA00 / GPIO0&lt;br /&gt;
 | 14 || &#039;&#039;GND&#039;&#039;&lt;br /&gt;
 |-&lt;br /&gt;
 | 15 || UART2_CTS / PA03 / GPIO3&lt;br /&gt;
 | 16 || TWI1-SDA / PA19 / GPIO19&lt;br /&gt;
 |-&lt;br /&gt;
 | 17 || &#039;&#039;3.3V&#039;&#039;&lt;br /&gt;
 | 18 ||  TWI1-SCK / PA18 / GPIO18&lt;br /&gt;
 |-&lt;br /&gt;
 | 19 || SPI1_MOSI / PA15 / GPIO15&lt;br /&gt;
 | 20 || &#039;&#039;GND&#039;&#039;&lt;br /&gt;
 |-&lt;br /&gt;
 | 21 || SPI1_MISO / PA16 / GPIO16&lt;br /&gt;
 | 22 || UART2_RTS / PA02 / GPIO2&lt;br /&gt;
 |-&lt;br /&gt;
 | 23 || SPI1_CLK / PA14 / GPIO14&lt;br /&gt;
 | 24 || SPI1_CS / PA13 / GPIO13&lt;br /&gt;
 |-&lt;br /&gt;
 | 25 || &#039;&#039;GND&#039;&#039;&lt;br /&gt;
 | 26 || SIM_DET/PA_EINT10 / PA10 / GPIO10&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:300px;&amp;quot;&lt;br /&gt;
 ! colspan=2 | con5 1x13 Header&lt;br /&gt;
 |-&lt;br /&gt;
 | 1 || &#039;&#039;5V&#039;&#039;&lt;br /&gt;
 |-&lt;br /&gt;
 | 2 || &#039;&#039;GND&#039;&#039; &lt;br /&gt;
 |-&lt;br /&gt;
 | 3 || USB-DM2&lt;br /&gt;
 |-&lt;br /&gt;
 | 4 || USB-DP2 &lt;br /&gt;
 |-&lt;br /&gt;
 | 5 || USB-DM3&lt;br /&gt;
 |-&lt;br /&gt;
 | 6 || USB-DP3&lt;br /&gt;
 |-&lt;br /&gt;
 | 7 || LINEOUTR&lt;br /&gt;
 |-&lt;br /&gt;
 | 8 || LINEOUTL&lt;br /&gt;
 |-&lt;br /&gt;
 | 9 ||  TV-OUT&lt;br /&gt;
 |-&lt;br /&gt;
 | 10 || MIC-BIAS&lt;br /&gt;
 |-&lt;br /&gt;
 | 11 || MIC1P&lt;br /&gt;
 |-&lt;br /&gt;
 | 12 || MIC1N&lt;br /&gt;
 |-&lt;br /&gt;
 | 13 || CIR-RX&lt;br /&gt;
 |}&lt;/div&gt;</summary>
		<author><name>Drizzt</name></author>
	</entry>
	<entry>
		<id>http://wiki.nathael.net/index.php?title=Dev/Embedded/Rootfs/BusyBox/Example2&amp;diff=385</id>
		<title>Dev/Embedded/Rootfs/BusyBox/Example2</title>
		<link rel="alternate" type="text/html" href="http://wiki.nathael.net/index.php?title=Dev/Embedded/Rootfs/BusyBox/Example2&amp;diff=385"/>
		<updated>2025-10-06T21:40:45Z</updated>

		<summary type="html">&lt;p&gt;Drizzt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:BusyBox example 2 : Toward a more complex system}}&lt;br /&gt;
__TOC__&lt;br /&gt;
If you want to use BusyBox as the heart of an almost complete but light system, with multi-user, many services (possibly including SSH for remote access) you will need some more stuff than the pretty small configuration from the previous example.&lt;br /&gt;
&lt;br /&gt;
This example explains how to create a more complex Linux based system using BusyBox as a base for the userland part of the system. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note :&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;THIS IS CURENTLY *VERY* INCOMPLETE.&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
I simply created the &amp;quot;second example&amp;quot; page in order to &amp;quot;store&amp;quot; the bits which were going too far for the first &amp;quot;simple example&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Complex system configuration ==&lt;br /&gt;
&#039;&#039;&#039; FIXME&#039;&#039;&#039; : Add link to example complex config&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; TO BE COMPLETED &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Notes and warnings :&lt;br /&gt;
* Keep in mind that some tools may depend on specific kernel features (and includes) and that you may need to install your own kernel hearders and reference them instead of those comming with the libc.&amp;lt;br /&amp;gt; This is the case for the &amp;quot;tc&amp;quot; network applet which is included in the &amp;quot;defconfig&amp;quot;.&lt;br /&gt;
* Adding headers or additionnal external libraries is done in the &amp;quot;Settings&amp;quot; part of the configuration, under &amp;quot;Additional LDFLAGS&amp;quot; and &amp;quot;Additional LDLIBS&amp;quot;.&lt;br /&gt;
* As of 2025-01-03 selinux has deprecated &amp;quot;security_context_t&amp;quot; and &amp;quot;matchpathcon()&amp;quot; (at least) and you&#039;ll need to update the selinux related code if you need it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Directories ==&lt;br /&gt;
You will not need a full set of directories from the [https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard FHS] but this can be a good place to get information if you do not know what you need.&amp;lt;br /&amp;gt;&lt;br /&gt;
* The default busybox installation process has created four &amp;quot;*bin&amp;quot; directories for you, which is a good starting point (though you can merge them to get two if you want to follow the usermerge way, or even go further and get a single one bin directory). : /bin - /sbin - /usr/bin - /usr/sbin&lt;br /&gt;
* Then you will usually want somewhere to mount proc, sysfs ans devtmpfs : /proc - /sys - /dev&lt;br /&gt;
* You should also stick to the standard and place your text configuration under /etc&lt;br /&gt;
* Then you will need a place for your libraries. This can be a single place, or many, it&#039;s up to you (it&#039;s actually a real mess on some distributions, with multiarch support, 32 and 64 bits support, usrmerge, and maybe other funny stuff getting in the way). Maybe you should consider keeping it as simple as possible (refer to the next section to make your choices about this part). On a Devuan or Debian distribution you usually get those three at least : /lib - /usr/lib - /usr/lib/*arch-triplet* - ...&lt;br /&gt;
* A place to put &amp;quot;shared ressources&amp;quot; (architecture-independent data, but you&#039;re building an embedded system, so this may not have much sense put this way, simply consider it as a place for data used by the tools you&#039;ll need) : /usr/share&lt;br /&gt;
* A place for &amp;quot;variable files&amp;quot;. As stated on the FHS page : &amp;quot;files whose content is expected to continually change during normal operation of the system, such as logs and spool files&amp;quot;. These are files which you want to keep accross reboots : /var/log - /var/spool - ...&lt;br /&gt;
* A place for &amp;quot;run-time&amp;quot; files, which you do not want to keep accross reboots : /run&lt;br /&gt;
* A place for temporary files. Could be either one of the following : /tmp - /run/tmp&lt;br /&gt;
* A user home directory (or many if you&#039;re not building a single user, single task system) : /root - /home/....&lt;br /&gt;
* Somewhere you can mount removable stuff ? : /mnt&lt;br /&gt;
* If you need them, a place for modules and firmwares : /lib/modules - /lib/firmware&lt;br /&gt;
* And last but not least, some place specific for your application if you do not want it merged to the base system. Can be any or all of these : /opt - /srv - /usr/local ...&lt;br /&gt;
&lt;br /&gt;
Of course, this may seem to be a lot, and it can be reduced to something simpler, depending on your needs !&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And another with many more directories (see below for the &amp;quot;triplet&amp;quot; you&#039;ll need) :&lt;br /&gt;
 triplet=&lt;br /&gt;
 mkdir -p dev etc mnt proc root run sys tmp usr/{lib/{${triplet},firmware,modules},share} var/{cache,lib,log,spool}&lt;br /&gt;
 ln -s usr/lib lib&lt;br /&gt;
 ln -s run/tmp tmp&lt;br /&gt;
 ln -s ../run/tmp var/tmp&lt;br /&gt;
&lt;br /&gt;
As some in the second example, many can also be links to other ones ... once again it&#039;s up to you and your needs !&lt;br /&gt;
&lt;br /&gt;
== Libraries ==&lt;br /&gt;
If you chose to use shared libraries (shared object files) when you compiled your binaries then you need to include them in your final system image.&lt;br /&gt;
&lt;br /&gt;
This step is not very difficult in itself, but not as simple as busybox compilation and installation.&lt;br /&gt;
&lt;br /&gt;
=== First, the answer about the &amp;quot;triplet&amp;quot; ===&lt;br /&gt;
I mentioned this &amp;quot;triplet&amp;quot; twice in the above section.&lt;br /&gt;
&lt;br /&gt;
An inclomplete way to answer is that it is composed of three fields which identify the target for which you&#039;re building your system, though it is somehow much more complicated (it can be only two fields, or four), and there is not &amp;quot;one&amp;quot; answer. It is more of a convention which is not shared by all of the interested parties. You can get some information on [https://wiki.osdev.org/Target_Triplet osdev.org Wiki], on [https://wiki.debian.org/Multiarch/Tuples debian.org Wiki], or in [https://www.gnu.org/software/autoconf/manual/autoconf-2.65/html_node/System-Type.html#System-Type GNU autoconf manual] ([https://www.gnu.org/software/autoconf/manual/autoconf-2.65/html_node/Specifying-Target-Triplets.html also here]).&lt;br /&gt;
&lt;br /&gt;
Most of the time it looks like &#039;&#039;&#039;&amp;quot;arch&amp;quot;-&amp;quot;os&amp;quot;-&amp;quot;abi&amp;quot;&#039;&#039;&#039;, though the names are not these ones.&amp;lt;br /&amp;gt;&lt;br /&gt;
It&#039;s usually what &amp;quot;-dumpmachine&amp;quot; or &amp;quot;-print-multiarch&amp;quot; option to the gcc from your toolchain will print, which is also the cross-compilation toolchain prefix.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As I&#039;m using Devuan/Debian&#039;s cross-toolchains I stick to the convention adopted by the Debian project.&lt;br /&gt;
&lt;br /&gt;
=== Which are the required libraries ? ===&lt;br /&gt;
In order to know which libraries are required on your system you get a few option.&lt;br /&gt;
* Makefiles and build process output&lt;br /&gt;
* Use ldd&lt;br /&gt;
* Use &amp;quot;readelf -d&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The first option is some kind of theoretical approach. Have a look at the makefiles or the build output for the libraries used for the linking stage of the build process, for all your binaries. This could be a pretty hard task, and is not my choice.&lt;br /&gt;
&lt;br /&gt;
The second option, which I&#039;m using most of the time (because I never remember the last one, which is the best one) is to use ldd on a target sharing the architecture (the triplet mentionned above) of your target system.&amp;lt;br /&amp;gt;&lt;br /&gt;
ldd is a command (script) which lists what shared libraries are used by given dynamically-linked executables (read comments in /bin/ldd for more information).&amp;lt;br /&amp;gt;&lt;br /&gt;
The main limitation is that you need to have a target running a full-blown distribution at hand.&amp;lt;br /&amp;gt;&lt;br /&gt;
On the other hand, it lists more than the libraries linked, and tells you whether it found them on the system, and which file is used (save for &amp;quot;linux-vdso.so.1&amp;quot; which is not a file but a &amp;quot;virtual dynamic shared object&amp;quot; provided by the Linux kernel : look at the [https://man7.org/linux/man-pages/man7/vdso.7.html vdso manpage] : man 7 vdso).&amp;lt;br /&amp;gt;&lt;br /&gt;
Of course, you&#039;ll need to run this for all your binaries, but that&#039;s something you can perform with a succession of commands and filters (or a script), and get a list with single entries for the required libraries.&amp;lt;br /&amp;gt;&lt;br /&gt;
Here is an example output of ldd :&lt;br /&gt;
 $ ldd /bin/bash&lt;br /&gt;
    linux-vdso.so.1 (0x00007fbb70314000)&lt;br /&gt;
    libtinfo.so.6 =&amp;gt; /lib/x86_64-linux-gnu/libtinfo.so.6 (0x00007fbb70170000)&lt;br /&gt;
    libc.so.6 =&amp;gt; /lib/x86_64-linux-gnu/libc.so.6 (0x00007fbb6ff7a000)&lt;br /&gt;
    /lib64/ld-linux-x86-64.so.2 (0x00007fbb70316000)&lt;br /&gt;
&lt;br /&gt;
The last option, directly available on your host, is to use the readelf tool from the binutils part of your cross-toolchain.&amp;lt;br /&amp;gt;&lt;br /&gt;
The main limitation for this third option is that it does not tell you about the dynamic linker/loader (ld-linux-*.so)&amp;lt;br /&amp;gt;&lt;br /&gt;
Once again, you&#039;ll need to run it on all your binaries.&amp;lt;br /&amp;gt;&lt;br /&gt;
Here is the interesting part of the output of &amp;quot;readelf -d&amp;quot; for the bash binary on my host system :&lt;br /&gt;
 $ readelf -d /bin/bash&lt;br /&gt;
    Tag               Type                Name/Value&lt;br /&gt;
  0x0000000000000001 (NEEDED)     Shared library: [libtinfo.so.6]&lt;br /&gt;
  0x0000000000000001 (NEEDED)     Shared library: [libc.so.6]&lt;br /&gt;
&lt;br /&gt;
=== The minimal list ===&lt;br /&gt;
I cannot give you a full list, but if you chose to have dynamically linked binaries (which is usually a good idea if your system has more than one or two binaries) you will always need these two :&lt;br /&gt;
* The dynamic linker/loader (name depending on the target architecture/triplet) : ld-linux-*.so.*&lt;br /&gt;
* the libc&lt;br /&gt;
&lt;br /&gt;
=== Where do they go ? ===&lt;br /&gt;
Now that you know which libraries you need, you&#039;ll need to figure which files to put in which directory for each library.&lt;br /&gt;
&lt;br /&gt;
Unless you specified an absolute or relative pathname during the linking stage of the compilation of your binaries, there is no &amp;quot;fixed&amp;quot; location for each library file, save maybe the dynamic linker/loader (ld-linux-*.so.*), which usually goes under &amp;quot;/lib&amp;quot;, and the dynamic linker will end up looking for libraries in some &amp;quot;default&amp;quot; path which usually includes &amp;quot;/lib&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
So the easy way is to create a single &amp;quot;/lib&amp;quot; directory especially if you chose to desactivate the use of &amp;quot;/usr&amp;quot; in busybox configuration.&lt;br /&gt;
&lt;br /&gt;
If you want to build a base system closer to what you find in common distributions and use the &amp;quot;/usr&amp;quot;, here are some information you should be aware of :&lt;br /&gt;
: The dynamic linker will end up looking for libraries in some &amp;quot;default&amp;quot; path, which varies depending on it&#039;s configuration and the architecture (usually &amp;quot;/lib&amp;quot; and then &amp;quot;/usr/lib&amp;quot;, or &#039;/lib64&amp;quot; and then &amp;quot;/usr/lib64&amp;quot;).&amp;lt;br /&amp;gt;&lt;br /&gt;
Even if the linker/loader will first look at the &amp;quot;cache&amp;quot; file (&amp;quot;/etc/ld.so.cache&amp;quot;) which is generated using &amp;quot;ldconfig&amp;quot; it is not of much use in our case because this &amp;quot;ldconfig&amp;quot; is a binary which knows only of one architecture, so (as for ldd) this command must be run on a target of the same architecture with a complete running system.&lt;br /&gt;
&lt;br /&gt;
 (but is under &amp;quot;/usr/lib/**triplet**/&amp;quot; in a Debian, whith a link from &amp;quot;/usr/lib64/&amp;quot;)&lt;br /&gt;
&#039;&#039;&#039; UNDER REDACTION &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
libc.so&lt;br /&gt;
&lt;br /&gt;
== bootup script ==&lt;br /&gt;
* inittab&lt;br /&gt;
* rc script(s)&lt;br /&gt;
&#039;&#039;&#039; TO BE COMPLETED &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== configuration files ==&lt;br /&gt;
&#039;&#039;&#039; TO BE COMPLETED &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== application binaries ==&lt;br /&gt;
&#039;&#039;&#039; TO BE COMPLETED &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== application related files ==&lt;br /&gt;
&#039;&#039;&#039; TO BE COMPLETED &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Possible compilation problems ==&lt;br /&gt;
=== Networking ===&lt;br /&gt;
I ran into this problem when trying to build a FULL busybox :&lt;br /&gt;
* https://lists.busybox.net/pipermail/busybox/2024-July/090821.html&lt;br /&gt;
: Obviously not only Ubuntu related as I&#039;m not using Ubuntu but Devuan, though the compiler and libs may be shared as both share Debian as origin.&lt;br /&gt;
: Disabling tc applet allows for compilation, but does not solve the problem if you need tc applet (Show / manipulate traffic control settings).&lt;/div&gt;</summary>
		<author><name>Drizzt</name></author>
	</entry>
	<entry>
		<id>http://wiki.nathael.net/index.php?title=Courses/LinuxAdmin&amp;diff=384</id>
		<title>Courses/LinuxAdmin</title>
		<link rel="alternate" type="text/html" href="http://wiki.nathael.net/index.php?title=Courses/LinuxAdmin&amp;diff=384"/>
		<updated>2025-10-05T11:44:05Z</updated>

		<summary type="html">&lt;p&gt;Drizzt: Created page with &amp;quot;*Introduction *Licences *Distributions&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*[[Courses/LinuxAdmin/Intro|Introduction]]&lt;br /&gt;
*[[Courses/LinuxAdmin/Licences|Licences]]&lt;br /&gt;
*[[Courses/LinuxAdmin/Distributions|Distributions]]&lt;/div&gt;</summary>
		<author><name>Drizzt</name></author>
	</entry>
	<entry>
		<id>http://wiki.nathael.net/index.php?title=Courses&amp;diff=383</id>
		<title>Courses</title>
		<link rel="alternate" type="text/html" href="http://wiki.nathael.net/index.php?title=Courses&amp;diff=383"/>
		<updated>2025-10-05T11:42:52Z</updated>

		<summary type="html">&lt;p&gt;Drizzt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*[[Courses/LinuxAdmin|Linux Administration]]&lt;br /&gt;
*[[Courses/C|C language]]&lt;br /&gt;
*[[Courses/Electronics|Electronics]]&lt;/div&gt;</summary>
		<author><name>Drizzt</name></author>
	</entry>
	<entry>
		<id>http://wiki.nathael.net/index.php?title=Courses/Distributions/Intro&amp;diff=382</id>
		<title>Courses/Distributions/Intro</title>
		<link rel="alternate" type="text/html" href="http://wiki.nathael.net/index.php?title=Courses/Distributions/Intro&amp;diff=382"/>
		<updated>2025-10-05T11:40:55Z</updated>

		<summary type="html">&lt;p&gt;Drizzt: Drizzt moved page Courses/Distributions/Intro to Courses/LinuxAdmin/Distributions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Courses/LinuxAdmin/Distributions]]&lt;/div&gt;</summary>
		<author><name>Drizzt</name></author>
	</entry>
	<entry>
		<id>http://wiki.nathael.net/index.php?title=Courses/LinuxAdmin/Distributions&amp;diff=381</id>
		<title>Courses/LinuxAdmin/Distributions</title>
		<link rel="alternate" type="text/html" href="http://wiki.nathael.net/index.php?title=Courses/LinuxAdmin/Distributions&amp;diff=381"/>
		<updated>2025-10-05T11:40:55Z</updated>

		<summary type="html">&lt;p&gt;Drizzt: Drizzt moved page Courses/Distributions/Intro to Courses/LinuxAdmin/Distributions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;When people start considering &amp;quot;Linux&amp;quot; as a solution (whatever the problem), one of the first question is &amp;quot;Where do I start&amp;quot;, which quickly leads to &amp;quot;Which distribution should I use&amp;quot;, even without understanding (and often wondering) what a &amp;quot;distribution&amp;quot; is.&lt;br /&gt;
&lt;br /&gt;
Distributions (Ubuntu, Kali, Debian, RedHat, ... ([https://en.wikipedia.org/wiki/List_of_Linux_distributions find a certainly incomplete list on Wikipedia])) are only different ways to distribute the same softwares.&lt;br /&gt;
&lt;br /&gt;
What is called a &amp;quot;distribution&amp;quot; is in fact a project shared with you by a (small or big) group of people to ease the installation, configuration, maintainance and upgrade of a (GNU/)Linux system.&lt;br /&gt;
&lt;br /&gt;
The main differences between them is the packaging tool used to build and distribute the packages and the distribution (apt, emerge, pacman, yum, ...), and the configuration the package maintainers choose for each package.&lt;br /&gt;
Aside from this, which represents a great work, but is nothing compared to the amount of of packages available, and is only a &amp;quot;side tool&amp;quot;, not used by the &amp;quot;runtime&amp;quot; part of the system, the sources are the same. The shell bash is from the same source code (though the distributions sometimes add patches to some softwares), and will run the same on Debian, Kali, RedHat and so on.&lt;br /&gt;
The kernel is also the same one (though the version and configuration will likely differ), with a libc on top of it and as a base for the whole userspace, and hundreds of userspace tools which you&#039;ll find on every distribution, which are the same, and work in exactly the same way.&lt;br /&gt;
And more important, most of the time the kernel from one distribution can be used on any other one (in fact, it should ALWAYS be the case). This is one of the core principles of the UNIX philosophy and POSIX requirements.&lt;br /&gt;
I hope this helps you understanding the GNU/Linux ecosystem a little bit more.&lt;br /&gt;
If you haven&#039;t found a solution since your message, I can provide some support (I&#039;m working as freelance).&lt;/div&gt;</summary>
		<author><name>Drizzt</name></author>
	</entry>
	<entry>
		<id>http://wiki.nathael.net/index.php?title=Courses&amp;diff=380</id>
		<title>Courses</title>
		<link rel="alternate" type="text/html" href="http://wiki.nathael.net/index.php?title=Courses&amp;diff=380"/>
		<updated>2025-10-05T11:40:19Z</updated>

		<summary type="html">&lt;p&gt;Drizzt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*[[Courses/LinuxAdmin|Linux Administration]]&lt;br /&gt;
:[[Courses/LinuxAdmin/Distributions|Distributions]]&lt;/div&gt;</summary>
		<author><name>Drizzt</name></author>
	</entry>
	<entry>
		<id>http://wiki.nathael.net/index.php?title=Courses&amp;diff=379</id>
		<title>Courses</title>
		<link rel="alternate" type="text/html" href="http://wiki.nathael.net/index.php?title=Courses&amp;diff=379"/>
		<updated>2025-10-05T11:40:03Z</updated>

		<summary type="html">&lt;p&gt;Drizzt: Created page with &amp;quot;Linux Administration Distributions&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Courses/LinuxAdmin|Linux Administration]]&lt;br /&gt;
[[Courses/LinuxAdmin/Distributions|Distributions]]&lt;/div&gt;</summary>
		<author><name>Drizzt</name></author>
	</entry>
	<entry>
		<id>http://wiki.nathael.net/index.php?title=Courses/LinuxAdmin/Distributions&amp;diff=378</id>
		<title>Courses/LinuxAdmin/Distributions</title>
		<link rel="alternate" type="text/html" href="http://wiki.nathael.net/index.php?title=Courses/LinuxAdmin/Distributions&amp;diff=378"/>
		<updated>2025-10-05T11:35:16Z</updated>

		<summary type="html">&lt;p&gt;Drizzt: Created page with &amp;quot;When people start considering &amp;quot;Linux&amp;quot; as a solution (whatever the problem), one of the first question is &amp;quot;Where do I start&amp;quot;, which quickly leads to &amp;quot;Which distribution should I use&amp;quot;, even without understanding (and often wondering) what a &amp;quot;distribution&amp;quot; is.  Distributions (Ubuntu, Kali, Debian, RedHat, ... ([https://en.wikipedia.org/wiki/List_of_Linux_distributions find a certainly incomplete list on Wikipedia])) are only different ways to distribute the same softwares....&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;When people start considering &amp;quot;Linux&amp;quot; as a solution (whatever the problem), one of the first question is &amp;quot;Where do I start&amp;quot;, which quickly leads to &amp;quot;Which distribution should I use&amp;quot;, even without understanding (and often wondering) what a &amp;quot;distribution&amp;quot; is.&lt;br /&gt;
&lt;br /&gt;
Distributions (Ubuntu, Kali, Debian, RedHat, ... ([https://en.wikipedia.org/wiki/List_of_Linux_distributions find a certainly incomplete list on Wikipedia])) are only different ways to distribute the same softwares.&lt;br /&gt;
&lt;br /&gt;
What is called a &amp;quot;distribution&amp;quot; is in fact a project shared with you by a (small or big) group of people to ease the installation, configuration, maintainance and upgrade of a (GNU/)Linux system.&lt;br /&gt;
&lt;br /&gt;
The main differences between them is the packaging tool used to build and distribute the packages and the distribution (apt, emerge, pacman, yum, ...), and the configuration the package maintainers choose for each package.&lt;br /&gt;
Aside from this, which represents a great work, but is nothing compared to the amount of of packages available, and is only a &amp;quot;side tool&amp;quot;, not used by the &amp;quot;runtime&amp;quot; part of the system, the sources are the same. The shell bash is from the same source code (though the distributions sometimes add patches to some softwares), and will run the same on Debian, Kali, RedHat and so on.&lt;br /&gt;
The kernel is also the same one (though the version and configuration will likely differ), with a libc on top of it and as a base for the whole userspace, and hundreds of userspace tools which you&#039;ll find on every distribution, which are the same, and work in exactly the same way.&lt;br /&gt;
And more important, most of the time the kernel from one distribution can be used on any other one (in fact, it should ALWAYS be the case). This is one of the core principles of the UNIX philosophy and POSIX requirements.&lt;br /&gt;
I hope this helps you understanding the GNU/Linux ecosystem a little bit more.&lt;br /&gt;
If you haven&#039;t found a solution since your message, I can provide some support (I&#039;m working as freelance).&lt;/div&gt;</summary>
		<author><name>Drizzt</name></author>
	</entry>
	<entry>
		<id>http://wiki.nathael.net/index.php?title=Dev/BeagleBone&amp;diff=377</id>
		<title>Dev/BeagleBone</title>
		<link rel="alternate" type="text/html" href="http://wiki.nathael.net/index.php?title=Dev/BeagleBone&amp;diff=377"/>
		<updated>2025-09-19T16:17:28Z</updated>

		<summary type="html">&lt;p&gt;Drizzt: /* Boards */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:BeagleBone}}&lt;br /&gt;
&lt;br /&gt;
== Common description ==&lt;br /&gt;
BeagleBone Boards are small Open Source SBC&#039;s (Single Board Computer) initially designed by [https://beagleboard.org/ BeagleBoard.org] and initially manufactured by CircuitCo, though others started to produce them and even created derivatives from the best-seller BeagleBone Black.&lt;br /&gt;
&lt;br /&gt;
Most information can be found by looking at [https://beagleboard.org/bone BeagleBoard.org] official website, and many more all over the web.&lt;br /&gt;
&lt;br /&gt;
I&#039;ve been using the BeagleBone Black while teaching embedded Linux at ESCPE Lyon since the very first days (managed to get them a few days before the official release in April 2013), and used them for many professional projects too.&amp;lt;br /&amp;gt;&lt;br /&gt;
The performances were very good when the board was released, and I still prefer it over some fake open-source competitors (hint : they started the &amp;quot;fruit-based&amp;quot; names*), which are no more available, while the BeagleBone Black is still sold for the same price (December 2024, 11 years later).&lt;br /&gt;
&lt;br /&gt;
&#039;* : raspberry Pi boards are not open-source&lt;br /&gt;
&lt;br /&gt;
== Boards ==&lt;br /&gt;
=== [[Dev/BeagleBone/BBB|BeagleBone Black]] ===&lt;br /&gt;
=== [[Dev/BeagleBone/Green|BeagleBone Green]] ===&lt;br /&gt;
=== [[Dev/BeagleBone/PocketBeagle|Pocket Beagle]] ===&lt;br /&gt;
=== [[Dev/BeagleBone/PocketBeagle2|Pocket Beagle 2]] ===&lt;br /&gt;
=== [[Dev/BeagleBone/BeagleYAI|BeagleY-AI]] ===&lt;/div&gt;</summary>
		<author><name>Drizzt</name></author>
	</entry>
	<entry>
		<id>http://wiki.nathael.net/index.php?title=Dev/BeagleBone/PocketBeagle&amp;diff=376</id>
		<title>Dev/BeagleBone/PocketBeagle</title>
		<link rel="alternate" type="text/html" href="http://wiki.nathael.net/index.php?title=Dev/BeagleBone/PocketBeagle&amp;diff=376"/>
		<updated>2025-09-19T16:14:42Z</updated>

		<summary type="html">&lt;p&gt;Drizzt: Created page with &amp;quot;{{DISPLAYTITLE: Pocket Beagle}}  == Description  == Official website : [https://www.beagleboard.org/boards/pocketbeagle-original PocketBeagle] on [https://beagleboard.org/ beagleboard.org]&amp;lt;br /&amp;gt; [http://elinux.org/Beagleboard:BeagleBoneBlack Official BeagleBone Black Wiki] maintained and supported by BeagleBoard.org.  The PocketBeagle is a Single Board Computer (SBC) which uses the Texas instrument AM3358 processor and has 512MB of RAM, one USB otg (micro USB), one µSD...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE: Pocket Beagle}}&lt;br /&gt;
&lt;br /&gt;
== Description  ==&lt;br /&gt;
Official website : [https://www.beagleboard.org/boards/pocketbeagle-original PocketBeagle] on [https://beagleboard.org/ beagleboard.org]&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://elinux.org/Beagleboard:BeagleBoneBlack Official BeagleBone Black Wiki] maintained and supported by BeagleBoard.org.&lt;br /&gt;
&lt;br /&gt;
The PocketBeagle is a Single Board Computer (SBC) which uses the Texas instrument AM3358 processor and has 512MB of RAM, one USB otg (micro USB), one µSD card slot, and two 2x18 pins (72 pins total) expansion ports which allows for a great variety of &amp;quot;Capes&amp;quot;, like this [https://www.beagleboard.org/boards/gamepup PocketBeagle GamePup Cape].&lt;br /&gt;
&lt;br /&gt;
The PocketBeagle is the little sister of the BeagleBone Black board.&lt;br /&gt;
&lt;br /&gt;
in order to achieve the very small footprint, it uses a &amp;quot;SiP&amp;quot; (System in Package) from Octavo Systems : [https://octavosystems.com/octavo_products/osd335x/ OSD335x]&lt;br /&gt;
&lt;br /&gt;
== Base system ==&lt;br /&gt;
* TODO !&lt;br /&gt;
* Note that the steps found on the [[Dev/BeagleBone/BBB/From_Scratch|BeagleBone Black &amp;quot;from scratch&amp;quot;]] pages should be a very good starting point, as the processor is the same.&lt;br /&gt;
* [[Dev/Embedded/Rootfs|Rootfs guide]] to create either a minimal system using Busybox or a full Devuan GNU/Linux system.&lt;br /&gt;
* The &amp;quot;SD card creation&amp;quot; section from the [[Dev/BeagleBone/BBB/From_Scratch|&amp;quot;from scratch&amp;quot; page]] also provides information to use the u-boot, kernel image, and Devuan root filesystem I built for the BeagleBone Black.&lt;br /&gt;
&lt;br /&gt;
== Connection and startup ==&lt;br /&gt;
==== USB-UART serial console connection ====&lt;br /&gt;
* TODO !&lt;br /&gt;
&lt;br /&gt;
==== SD card boot ====&lt;br /&gt;
* TODO !&lt;br /&gt;
&lt;br /&gt;
== Extension ports ==&lt;br /&gt;
The PocketBeagle board has two extension ports using common 2.54mm (0.1inch) pitch:&lt;br /&gt;
* P1 : 2x18&lt;br /&gt;
* P2 : 2x18&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:550px;&amp;quot;&lt;br /&gt;
 ! colspan=4 | P1 : 2x18 Header&lt;br /&gt;
 |-&lt;br /&gt;
 | 1 || &#039;&#039;&#039;&#039;&lt;br /&gt;
 | 2 || &#039;&#039;&#039;&#039; &lt;br /&gt;
 |-&lt;br /&gt;
 | 3 || &lt;br /&gt;
 | 4 || &#039;&#039;&#039;&#039; &lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:550px;&amp;quot;&lt;br /&gt;
 ! colspan=4 | P2 : 2x18 Header&lt;br /&gt;
 |-&lt;br /&gt;
 | 1 || &#039;&#039;&#039;&#039;&lt;br /&gt;
 | 2 || &#039;&#039;&#039;&#039; &lt;br /&gt;
 |-&lt;br /&gt;
 | 3 || &lt;br /&gt;
 | 4 || &#039;&#039;&#039;&#039; &lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* [https://www.beagleboard.org/boards/pocketbeagle-original PocketBeagle] on beagleboard.org&lt;br /&gt;
* [https://docs.beagleboard.org/boards/pocketbeagle/ch06.html Hardware design] and [https://git.beagleboard.org/beagleboard/pocketbeagle Design files]&lt;br /&gt;
* [https://octavosystems.com/octavo_products/osd335x/ OSD335x]&lt;/div&gt;</summary>
		<author><name>Drizzt</name></author>
	</entry>
	<entry>
		<id>http://wiki.nathael.net/index.php?title=Dev/Embedded/FromScratch/UBoot&amp;diff=375</id>
		<title>Dev/Embedded/FromScratch/UBoot</title>
		<link rel="alternate" type="text/html" href="http://wiki.nathael.net/index.php?title=Dev/Embedded/FromScratch/UBoot&amp;diff=375"/>
		<updated>2025-07-27T17:12:34Z</updated>

		<summary type="html">&lt;p&gt;Drizzt: /* Configure */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== U-Boot ==&lt;br /&gt;
=== Introduction ===&lt;br /&gt;
For most of the boards I have I&#039;m using U-Boot as bootloader (some may be supported by other bootloaders, but I usually stick to the bootloader proposed by the board manufacturer).&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Das U-Boot&amp;quot; (https://www.denx.de/project/u-boot/) is one of the most used bootloader for embedded systems running Linux.&lt;br /&gt;
It supports a wide range of hardware and many boot mechanisms (serial, ethernet, flash, USB, SD card, emmc, ...) to load the necessary images required to boot the system.&amp;lt;br /&amp;gt;&lt;br /&gt;
Details will be found in u-boot documentation.&lt;br /&gt;
&lt;br /&gt;
=== Get the sources ===&lt;br /&gt;
Most of the time the official u-boot sources (from denx.de) are fine :&lt;br /&gt;
 git clone git://git.denx.de/u-boot.git&lt;br /&gt;
&lt;br /&gt;
If your board is not supported by the official u-boot sources, refer to your board documentation to get the bootloader sources.&lt;br /&gt;
Depending on your hardware, you may need to use a specific release of u-boot. Use git checkout to get the right one.&lt;br /&gt;
&lt;br /&gt;
=== Configure ===&lt;br /&gt;
If your hardware is supported by u-boot you should find a &amp;quot;&amp;lt;board_name&amp;gt;_defconfig&amp;quot; file in the &amp;quot;configs&amp;quot; directory at the root of the git tree.&amp;lt;br /&amp;gt;&lt;br /&gt;
If you do not know which one to use, you can refer to your board&#039;s documentation, or to u-boot documentation under &amp;quot;doc/board&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
Then the configuration is made in two steps :&lt;br /&gt;
 board_name=&lt;br /&gt;
 compiler_prefix=&lt;br /&gt;
 make CROSS_COMPILE=${compiler_prefix} ${board_name}_defconfig&lt;br /&gt;
 make CROSS_COMPILE=${compiler_prefix} menuconfig&lt;br /&gt;
&lt;br /&gt;
If the default configuration fits your needs the second step (menuconfig) is not required.&lt;br /&gt;
&lt;br /&gt;
=== Compile ===&lt;br /&gt;
Once you&#039;re done with the configuration step, the compilation is made by running make from the source tree root with the &amp;quot;CROSS_COMPILE&amp;quot; variable set.&lt;br /&gt;
&lt;br /&gt;
Note that for boards which require an ARM trusted firmware image it may be required to export a variable with it&#039;s path first :&lt;br /&gt;
 platform=&lt;br /&gt;
 target=&lt;br /&gt;
 path_to_atf=&lt;br /&gt;
 export BL31=${path_to_atf}/build/${platform}/debug/${target}.bin&lt;br /&gt;
Refer to the &amp;quot;ARM trusted firmware&amp;quot; section bellow to build this firmware image first.&lt;br /&gt;
&lt;br /&gt;
And compile :&lt;br /&gt;
 compiler_prefix=&lt;br /&gt;
 make CROSS_COMPILE=${compiler_prefix}&lt;br /&gt;
&lt;br /&gt;
The result is at the root of the source tree. The image name to use depends on your target.&lt;br /&gt;
&lt;br /&gt;
How to use this image is highly dependent on your target board and SoC, so refer to the board specific information for this step !&lt;br /&gt;
&lt;br /&gt;
=== U-Boot environment ===&lt;br /&gt;
Part of u-boot configuration includes a default environment, which holds various variables used to help loading and starting the Linux kernel.&amp;lt;br /&amp;gt;&lt;br /&gt;
Some of these variables have predefined meaning and other are user defined to help configure u-boot behavior.&amp;lt;br /&amp;gt;&lt;br /&gt;
Depending on your hardware, the default variables can be overridden from the content of a saved environment from a flash location, or from the content of a script. This helps save board specific boot configuration and select boot mechanism used to load and start the required binaries.&amp;lt;br /&amp;gt;&lt;br /&gt;
Whatever the mechanism used to get them, it usually boils down to loading the Linux kernel image, an optional initramfs or initrd image (which may also be included in the Linux kernel image or not required at all), and a device tree blob (dtb) if it is not included within the Linux kernel image.&amp;lt;br /&amp;gt;&lt;br /&gt;
The bootloader also has to provide a command line to the Linux kernel, unless the Linux kernel image has a default command line compiled in. This is done by setting the &amp;quot;bootargs&amp;quot; environment variable.&amp;lt;br /&amp;gt;&lt;br /&gt;
The effective boot is done then by running one of the boot commands supported by the u-boot image.&amp;lt;br /&amp;gt;&lt;br /&gt;
Refer to each board description for a list of board specific configurations and for example boot scripts when supported.&lt;br /&gt;
&lt;br /&gt;
== ARM trusted firmware (or Trusted Firmware-A) ==&lt;br /&gt;
If you are building U-Boot for an arm64/aarch64 device, you need to include the &amp;quot;ARM trusted firmware&amp;quot; (ATF) or &amp;quot;Trusted Firmware-A&amp;quot; (TF-A).&lt;br /&gt;
&lt;br /&gt;
=== Get the sources ===&lt;br /&gt;
You can get this either from the trustedfirmware.org git repository :&lt;br /&gt;
 git clone https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git&lt;br /&gt;
These sources are also available from the arm-trusted-firmware git repository on github : https://github.com/ARM-software/arm-trusted-firmware.git&amp;lt;br /&amp;gt;&lt;br /&gt;
Note that both repository seems to have the same code, only some of the tags appear to be different.&lt;br /&gt;
&lt;br /&gt;
=== Configure ===&lt;br /&gt;
There&#039;s no configuration stage for this part, though you&#039;ll need to know the &amp;quot;platform&amp;quot; name and the &amp;quot;target&amp;quot; name you want to build.&lt;br /&gt;
&lt;br /&gt;
You can run &amp;quot;&#039;&#039;&#039;make help&#039;&#039;&#039;&amp;quot; to get the list of supported platform and the target names.&lt;br /&gt;
&lt;br /&gt;
You can refer to the documentation for your SoC (processor) under &amp;quot;docs/plat&amp;quot; directory.&lt;br /&gt;
&lt;br /&gt;
I&#039;ll indicate the right plaform and target on the pages dedicated to each board when I get my hands on them :)&lt;br /&gt;
&lt;br /&gt;
=== Compile ===&lt;br /&gt;
To build this firmware part get to the root of the git tree and run:&lt;br /&gt;
 platform=&lt;br /&gt;
 target=&lt;br /&gt;
 compiler_prefix=&lt;br /&gt;
 make CROSS_COMPILE=${compiler_prefix} PLAT=${platform} DEBUG=1 ${target}&lt;br /&gt;
&lt;br /&gt;
Set &amp;quot;platform&amp;quot; and &amp;quot;target&amp;quot; according to your needs as identified in the &amp;quot;Configure&amp;quot; section above&lt;br /&gt;
&lt;br /&gt;
== Flash and Use ==&lt;br /&gt;
Once your bootloader image is ready, with the eventual firmware loader if any is required, you must then put it somewhere where your processor will be able to read it.&lt;br /&gt;
&lt;br /&gt;
There are many options, all depending on your hardware (the processor of course, but also the board you are using, which may have only some of the interfaces available, or specific &amp;quot;bootconfig&amp;quot; settings hardwired).&amp;lt;br /&amp;gt;&lt;br /&gt;
Here is a short list of the common interfaces which may be available :&lt;br /&gt;
* Serial (one of the UARTs)&lt;br /&gt;
* Onboard Flash (NAND, NOR or SPI Flash chips)&lt;br /&gt;
* EMMC and/or SD (or µSD) Card&lt;br /&gt;
* Ethernet (usually using BOOTP + TFTP)&lt;br /&gt;
* USB flash drive (or USB connected Hard drive or SSD)&lt;br /&gt;
* Sata drive&lt;br /&gt;
* ....&lt;br /&gt;
&lt;br /&gt;
Some options will require specific tools or services installed on your host, while others will require special configuration of a storage device (µSD card, USB key, ...).&lt;br /&gt;
&lt;br /&gt;
I&#039;ll provide some information on this Wiki for the boards I have (on the board dedicated page), but if you want complete information about the possibilities you can have with a specific board the right place to look at is at the documentation. The board documentation may provide some information, though not necessarily all of it, so the best is to have a look at the processor documentation to know all the supported boot modes, and then at the board schematics (provided you have them) to know which ones are effectively available given the hardware configuration.&lt;br /&gt;
&lt;br /&gt;
== Next ==&lt;br /&gt;
* Back to [[Dev/Embedded/FromScratch|&amp;quot;From Scratch&amp;quot; page]].&lt;br /&gt;
* Move to [[Dev/Embedded/FromScratch/LinuxKernel|the linux kernel part]] (though you should go on reading [[Dev/Embedded/FromScratch#Linux_Kernel|the next step (Linux Kernel) from the &amp;quot;From Scratch&amp;quot; page]] if you came from there).&lt;/div&gt;</summary>
		<author><name>Drizzt</name></author>
	</entry>
	<entry>
		<id>http://wiki.nathael.net/index.php?title=Dev/Embedded&amp;diff=374</id>
		<title>Dev/Embedded</title>
		<link rel="alternate" type="text/html" href="http://wiki.nathael.net/index.php?title=Dev/Embedded&amp;diff=374"/>
		<updated>2025-07-27T17:11:46Z</updated>

		<summary type="html">&lt;p&gt;Drizzt: /* Create your system from scratch */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Well, this may be obvious for most of you, but within the pages in this wiki I will allways consider you are running a GNU/Linux system as your development host.&amp;lt;br /&amp;gt;&lt;br /&gt;
Sometimes I will even give you information specific to Debian based GNU/Linux systems, or even the Devuan distribution I&#039;m using.&lt;br /&gt;
&lt;br /&gt;
For those using another GNU/Linux distribution, you&#039;ll need to &amp;quot;translate&amp;quot; to your own distribution. You may find help for this on archlinux wiki&#039;s [https://wiki.archlinux.org/title/Pacman/Rosetta pacman roseta stone]. They made a &#039;&#039;&#039;really&#039;&#039;&#039; great job.&lt;br /&gt;
&lt;br /&gt;
On the other hand, if you&#039;re not using a GNU/Linux distribution, maybe the first step is to move your development host to a GNU/Linux box !&amp;lt;br /&amp;gt;&lt;br /&gt;
I&#039;m sorry to have to tell you so, but trying to develop an embedded Linux system implies knowing how a GNU/Linux system works, not only the basics of the shell like &amp;quot;ls&amp;quot; and &amp;quot;cd&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
And in order to learn this, there&#039;s no better way than using it on an everyday basis, for everything.&amp;lt;br /&amp;gt;&lt;br /&gt;
Well, you can also call me and ask me to give you some help, or teach you thoses basics in order to be on tracks much faster : I&#039;m providing [https://www.ed3l.fr/ development and support services] as well as [https://www.ed3l.fr/index.php?page=formations remote training courses].&lt;br /&gt;
&lt;br /&gt;
== General ==&lt;br /&gt;
* [[Dev/Embedded/NotOEYocto|Do not use Yocto or OpenEmbeded]] (or their predecessors).&lt;br /&gt;
* [[Dev/Embedded/Openness|Open-source matters]] (or why I don&#039;t use RaspberryPi boards)&lt;br /&gt;
* [[Courses/Distributions/Intro|What is a ((GNU/)Linux) distribution]]&lt;br /&gt;
&lt;br /&gt;
== Cross-compilation ==&lt;br /&gt;
[[Dev/Embedded/CrossCompile|Setup cross-compilation environnement on Devuan GNU/Linux]]&lt;br /&gt;
&lt;br /&gt;
== Create your system from scratch ==&lt;br /&gt;
[[Dev/Embedded/FromScratch|Build everything from scratch]] (or almost) : build your bootloader, your Linux Kernel and your base system. These are generic information, which may need specific versions or patches depending on the board you are using.&amp;lt;br /&amp;gt;&lt;br /&gt;
The main [[Dev/Embedded/FromScratch|&amp;quot;FromScratch&amp;quot;]] page also holds a lot more information which you may find interesting (or so do I hope).&amp;lt;br /&amp;gt;&lt;br /&gt;
Here are direct links to :&lt;br /&gt;
* &#039;&#039;&#039;[[Dev/Embedded/FromScratch/UBoot|the page dedicated to the U-Boot part]]&#039;&#039;&#039; (including info about SPL, ATF, ...)&lt;br /&gt;
* &#039;&#039;&#039;[[Dev/Embedded/FromScratch/LinuxKernel|the page dedicated to the Linux Kernel part]]&#039;&#039;&#039;&lt;br /&gt;
though you really should consider reading all the information you will find on [[Dev/Embedded/FromScratch|the main page about building your system from scratch]].&lt;br /&gt;
&lt;br /&gt;
== Rootfs and UserLand ==&lt;br /&gt;
[[Dev/Embedded/Rootfs|Create and configure the base system]] :&lt;br /&gt;
* [[Dev/Embedded/Rootfs/BusyBox|Busybox]]&lt;br /&gt;
* [[Dev/Embedded/Rootfs/Devuan/FromScratch|Devuan rootfs creation from scratch]] and [[Dev/Embedded/Rootfs/Devuan/Config|configuration]]&lt;br /&gt;
&lt;br /&gt;
[[Dev/Embedded/Rootfs/Backup|Rootfs backup or copy]] (doing it the right way)&lt;br /&gt;
&lt;br /&gt;
== Embedded targets ==&lt;br /&gt;
* [[Dev/BeagleBone|BeagleBone boards]]&lt;br /&gt;
* [[Dev/OPi|OrangePi boards]]&lt;/div&gt;</summary>
		<author><name>Drizzt</name></author>
	</entry>
	<entry>
		<id>http://wiki.nathael.net/index.php?title=Dev/Embedded&amp;diff=373</id>
		<title>Dev/Embedded</title>
		<link rel="alternate" type="text/html" href="http://wiki.nathael.net/index.php?title=Dev/Embedded&amp;diff=373"/>
		<updated>2025-07-27T17:11:21Z</updated>

		<summary type="html">&lt;p&gt;Drizzt: /* Create your system from scratch */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Well, this may be obvious for most of you, but within the pages in this wiki I will allways consider you are running a GNU/Linux system as your development host.&amp;lt;br /&amp;gt;&lt;br /&gt;
Sometimes I will even give you information specific to Debian based GNU/Linux systems, or even the Devuan distribution I&#039;m using.&lt;br /&gt;
&lt;br /&gt;
For those using another GNU/Linux distribution, you&#039;ll need to &amp;quot;translate&amp;quot; to your own distribution. You may find help for this on archlinux wiki&#039;s [https://wiki.archlinux.org/title/Pacman/Rosetta pacman roseta stone]. They made a &#039;&#039;&#039;really&#039;&#039;&#039; great job.&lt;br /&gt;
&lt;br /&gt;
On the other hand, if you&#039;re not using a GNU/Linux distribution, maybe the first step is to move your development host to a GNU/Linux box !&amp;lt;br /&amp;gt;&lt;br /&gt;
I&#039;m sorry to have to tell you so, but trying to develop an embedded Linux system implies knowing how a GNU/Linux system works, not only the basics of the shell like &amp;quot;ls&amp;quot; and &amp;quot;cd&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
And in order to learn this, there&#039;s no better way than using it on an everyday basis, for everything.&amp;lt;br /&amp;gt;&lt;br /&gt;
Well, you can also call me and ask me to give you some help, or teach you thoses basics in order to be on tracks much faster : I&#039;m providing [https://www.ed3l.fr/ development and support services] as well as [https://www.ed3l.fr/index.php?page=formations remote training courses].&lt;br /&gt;
&lt;br /&gt;
== General ==&lt;br /&gt;
* [[Dev/Embedded/NotOEYocto|Do not use Yocto or OpenEmbeded]] (or their predecessors).&lt;br /&gt;
* [[Dev/Embedded/Openness|Open-source matters]] (or why I don&#039;t use RaspberryPi boards)&lt;br /&gt;
* [[Courses/Distributions/Intro|What is a ((GNU/)Linux) distribution]]&lt;br /&gt;
&lt;br /&gt;
== Cross-compilation ==&lt;br /&gt;
[[Dev/Embedded/CrossCompile|Setup cross-compilation environnement on Devuan GNU/Linux]]&lt;br /&gt;
&lt;br /&gt;
== Create your system from scratch ==&lt;br /&gt;
[[Dev/Embedded/FromScratch|Build everything from scratch]] (or almost) : build your bootloader, your Linux Kernel and your base system. These are generic information, which may need specific versions or patches depending on the board you are using.&amp;lt;br /&amp;gt;&lt;br /&gt;
The main [[Dev/Embedded/FromScratch|&amp;quot;FromScratch&amp;quot;]] page also holds a lot more information which you may find interesting (or so do I hope).&amp;lt;br /&amp;gt;&lt;br /&gt;
Here are direct links to :&lt;br /&gt;
* &#039;&#039;&#039;[[Dev/Embedded/FromScratch/UBoot|the page dedicated to the U-Boot part]]&#039;&#039;&#039; (and possible SPL, ATF, ...)&lt;br /&gt;
* &#039;&#039;&#039;[[Dev/Embedded/FromScratch/LinuxKernel|the page dedicated to the Linux Kernel part]]&#039;&#039;&#039;&lt;br /&gt;
though you really should consider reading all the information you will find on [[Dev/Embedded/FromScratch|the main page about building your system from scratch]].&lt;br /&gt;
&lt;br /&gt;
== Rootfs and UserLand ==&lt;br /&gt;
[[Dev/Embedded/Rootfs|Create and configure the base system]] :&lt;br /&gt;
* [[Dev/Embedded/Rootfs/BusyBox|Busybox]]&lt;br /&gt;
* [[Dev/Embedded/Rootfs/Devuan/FromScratch|Devuan rootfs creation from scratch]] and [[Dev/Embedded/Rootfs/Devuan/Config|configuration]]&lt;br /&gt;
&lt;br /&gt;
[[Dev/Embedded/Rootfs/Backup|Rootfs backup or copy]] (doing it the right way)&lt;br /&gt;
&lt;br /&gt;
== Embedded targets ==&lt;br /&gt;
* [[Dev/BeagleBone|BeagleBone boards]]&lt;br /&gt;
* [[Dev/OPi|OrangePi boards]]&lt;/div&gt;</summary>
		<author><name>Drizzt</name></author>
	</entry>
	<entry>
		<id>http://wiki.nathael.net/index.php?title=Dev/Embedded&amp;diff=372</id>
		<title>Dev/Embedded</title>
		<link rel="alternate" type="text/html" href="http://wiki.nathael.net/index.php?title=Dev/Embedded&amp;diff=372"/>
		<updated>2025-07-22T10:21:35Z</updated>

		<summary type="html">&lt;p&gt;Drizzt: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Well, this may be obvious for most of you, but within the pages in this wiki I will allways consider you are running a GNU/Linux system as your development host.&amp;lt;br /&amp;gt;&lt;br /&gt;
Sometimes I will even give you information specific to Debian based GNU/Linux systems, or even the Devuan distribution I&#039;m using.&lt;br /&gt;
&lt;br /&gt;
For those using another GNU/Linux distribution, you&#039;ll need to &amp;quot;translate&amp;quot; to your own distribution. You may find help for this on archlinux wiki&#039;s [https://wiki.archlinux.org/title/Pacman/Rosetta pacman roseta stone]. They made a &#039;&#039;&#039;really&#039;&#039;&#039; great job.&lt;br /&gt;
&lt;br /&gt;
On the other hand, if you&#039;re not using a GNU/Linux distribution, maybe the first step is to move your development host to a GNU/Linux box !&amp;lt;br /&amp;gt;&lt;br /&gt;
I&#039;m sorry to have to tell you so, but trying to develop an embedded Linux system implies knowing how a GNU/Linux system works, not only the basics of the shell like &amp;quot;ls&amp;quot; and &amp;quot;cd&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
And in order to learn this, there&#039;s no better way than using it on an everyday basis, for everything.&amp;lt;br /&amp;gt;&lt;br /&gt;
Well, you can also call me and ask me to give you some help, or teach you thoses basics in order to be on tracks much faster : I&#039;m providing [https://www.ed3l.fr/ development and support services] as well as [https://www.ed3l.fr/index.php?page=formations remote training courses].&lt;br /&gt;
&lt;br /&gt;
== General ==&lt;br /&gt;
* [[Dev/Embedded/NotOEYocto|Do not use Yocto or OpenEmbeded]] (or their predecessors).&lt;br /&gt;
* [[Dev/Embedded/Openness|Open-source matters]] (or why I don&#039;t use RaspberryPi boards)&lt;br /&gt;
* [[Courses/Distributions/Intro|What is a ((GNU/)Linux) distribution]]&lt;br /&gt;
&lt;br /&gt;
== Cross-compilation ==&lt;br /&gt;
[[Dev/Embedded/CrossCompile|Setup cross-compilation environnement on Devuan GNU/Linux]]&lt;br /&gt;
&lt;br /&gt;
== Create your system from scratch ==&lt;br /&gt;
[[Dev/Embedded/FromScratch|Build everything from scratch]] (or almost) : build your bootloader, your Linux Kernel and your base system. These are generic information, which may need specific versions or patches depending on the board you are using.&amp;lt;br /&amp;gt;&lt;br /&gt;
The main [[Dev/Embedded/FromScratch|&amp;quot;FromScratch&amp;quot;]] page also holds a lot more information which you may find interesting (or so do I hope).&amp;lt;br /&amp;gt;&lt;br /&gt;
Here are direct links to :&lt;br /&gt;
* &#039;&#039;&#039;[[Dev/Embedded/FromScratch/UBoot|the page dedicated to the U-Boot part]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;[[Dev/Embedded/FromScratch/LinuxKernel|the page dedicated to the Linux Kernel part]]&#039;&#039;&#039;&lt;br /&gt;
though you really should consider reading all the information you will find on [[Dev/Embedded/FromScratch|the main page about building your system from scratch]].&lt;br /&gt;
&lt;br /&gt;
== Rootfs and UserLand ==&lt;br /&gt;
[[Dev/Embedded/Rootfs|Create and configure the base system]] :&lt;br /&gt;
* [[Dev/Embedded/Rootfs/BusyBox|Busybox]]&lt;br /&gt;
* [[Dev/Embedded/Rootfs/Devuan/FromScratch|Devuan rootfs creation from scratch]] and [[Dev/Embedded/Rootfs/Devuan/Config|configuration]]&lt;br /&gt;
&lt;br /&gt;
[[Dev/Embedded/Rootfs/Backup|Rootfs backup or copy]] (doing it the right way)&lt;br /&gt;
&lt;br /&gt;
== Embedded targets ==&lt;br /&gt;
* [[Dev/BeagleBone|BeagleBone boards]]&lt;br /&gt;
* [[Dev/OPi|OrangePi boards]]&lt;/div&gt;</summary>
		<author><name>Drizzt</name></author>
	</entry>
	<entry>
		<id>http://wiki.nathael.net/index.php?title=Dev/Embedded/Openness&amp;diff=371</id>
		<title>Dev/Embedded/Openness</title>
		<link rel="alternate" type="text/html" href="http://wiki.nathael.net/index.php?title=Dev/Embedded/Openness&amp;diff=371"/>
		<updated>2025-07-22T10:20:04Z</updated>

		<summary type="html">&lt;p&gt;Drizzt: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Why open-source matters}}&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Well, from my point of view open-source should always be the only way, for everything. The reasons are not only technical, but ethical and environmental.&amp;lt;br /&amp;gt;&lt;br /&gt;
I may spend some time explaining the ethical and environmental parts here someday if they are not obvious, but let&#039;s start with the technical ones.&lt;br /&gt;
&lt;br /&gt;
== A note on what &amp;quot;Open source&amp;quot; means here ==&lt;br /&gt;
Well, this should be obvious too, but I often get feedback showing me that it&#039;s not, and even people accustomed to these concepts often disagree on the exact definition.&lt;br /&gt;
&lt;br /&gt;
Open source means that you have access to the sources.&lt;br /&gt;
&lt;br /&gt;
It does not mean &amp;quot;free&amp;quot; (not even as in &amp;quot;freedom&amp;quot;). It does not mean that everything is released to the public domain for anyone to do anything with it.&lt;br /&gt;
&lt;br /&gt;
Open-source simply means that you can read the source code, the schematics, the plans, and know how &amp;quot;it&amp;quot; is built, and fix &amp;quot;it&amp;quot; if necessary. It means that you &amp;quot;own&amp;quot; what you bought.&amp;lt;br &amp;gt;&lt;br /&gt;
You do not get the right to reproduce or sell copies (which is what you get with &amp;quot;logiciel libre&amp;quot; (free software, but with &amp;quot;free&amp;quot; as in &amp;quot;freedom&amp;quot;, not necessarily free beer) or equivalent open-source hardware licences). You can read more on this [https://en.wikipedia.org/wiki/Free_software_movement here (wikipedia : Free software movement)], [https://en.wikipedia.org/wiki/Open_source here (wikipedia : Open Source)], or [https://www.fsf.org/about/ here (FSF website)]&lt;br /&gt;
&lt;br /&gt;
== Technical part ==&lt;br /&gt;
&#039;&#039;&#039;TO BE COMPLETED&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Further discussions ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; TO BE COMPLETED&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Drizzt</name></author>
	</entry>
	<entry>
		<id>http://wiki.nathael.net/index.php?title=Dev/Embedded&amp;diff=370</id>
		<title>Dev/Embedded</title>
		<link rel="alternate" type="text/html" href="http://wiki.nathael.net/index.php?title=Dev/Embedded&amp;diff=370"/>
		<updated>2025-07-22T10:16:17Z</updated>

		<summary type="html">&lt;p&gt;Drizzt: /* General */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Well, this may not be obvious for everyone, but within the pages in this wiki I will allways consider you are running a GNU/Linux system as your development host.&lt;br /&gt;
Sometimes I will even give you information specific to Debian based GNU/Linux systems, or even the Devuan distribution I&#039;m using.&lt;br /&gt;
&lt;br /&gt;
For those using another GNU/Linux distribution, you&#039;ll need to &amp;quot;translate&amp;quot; to your own distribution. You may find help for this on archlinux wiki&#039;s [https://wiki.archlinux.org/title/Pacman/Rosetta pacman roseta stone]. They made a &#039;&#039;&#039;really&#039;&#039;&#039; great job.&lt;br /&gt;
&lt;br /&gt;
On the other hand, if you&#039;re not using a GNU/Linux distribution, maybe the first step is to move your development host to a GNU/Linux box !&amp;lt;br /&amp;gt;&lt;br /&gt;
I&#039;m sorry to have to tell you so, but trying to develop an embedded Linux system implies knowing how a GNU/Linux system works, not only the basics of the shell like &amp;quot;ls&amp;quot; and &amp;quot;cd&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
And in order to learn this, there&#039;s no better way than using it on an everyday basis, for everything.&amp;lt;br /&amp;gt;&lt;br /&gt;
Well, you can also call me and ask me to give you some help, or teach you thoses basics in order to be on tracks much faster : I&#039;m providing [https://www.ed3l.fr/ development and support services] as well as [https://www.ed3l.fr/index.php?page=formations remote training courses].&lt;br /&gt;
&lt;br /&gt;
== General ==&lt;br /&gt;
* [[Dev/Embedded/NotOEYocto|Do not use Yocto or OpenEmbeded]] (or their predecessors).&lt;br /&gt;
* [[Dev/Embedded/Openness|Open-source matters]] (or why I don&#039;t use RaspberryPi boards)&lt;br /&gt;
* [[Courses/Distributions/Intro|What is a ((GNU/)Linux) distribution]]&lt;br /&gt;
&lt;br /&gt;
== Cross-compilation ==&lt;br /&gt;
[[Dev/Embedded/CrossCompile|Setup cross-compilation environnement on Devuan GNU/Linux]]&lt;br /&gt;
&lt;br /&gt;
== Create your system from scratch ==&lt;br /&gt;
[[Dev/Embedded/FromScratch|Build everything from scratch]] (or almost) : build your bootloader, your Linux Kernel and your base system. These are generic information, which may need specific versions or patches depending on the board you are using.&amp;lt;br /&amp;gt;&lt;br /&gt;
The main [[Dev/Embedded/FromScratch|&amp;quot;FromScratch&amp;quot;]] page also holds a lot more information which you may find interesting (or so do I hope).&amp;lt;br /&amp;gt;&lt;br /&gt;
Here are direct links to :&lt;br /&gt;
* &#039;&#039;&#039;[[Dev/Embedded/FromScratch/UBoot|the page dedicated to the U-Boot part]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;[[Dev/Embedded/FromScratch/LinuxKernel|the page dedicated to the Linux Kernel part]]&#039;&#039;&#039;&lt;br /&gt;
though you really should consider reading all the information you will find on [[Dev/Embedded/FromScratch|the main page about building your system from scratch]].&lt;br /&gt;
&lt;br /&gt;
== Rootfs and UserLand ==&lt;br /&gt;
[[Dev/Embedded/Rootfs|Create and configure the base system]] :&lt;br /&gt;
* [[Dev/Embedded/Rootfs/BusyBox|Busybox]]&lt;br /&gt;
* [[Dev/Embedded/Rootfs/Devuan/FromScratch|Devuan rootfs creation from scratch]] and [[Dev/Embedded/Rootfs/Devuan/Config|configuration]]&lt;br /&gt;
&lt;br /&gt;
[[Dev/Embedded/Rootfs/Backup|Rootfs backup or copy]] (doing it the right way)&lt;br /&gt;
&lt;br /&gt;
== Embedded targets ==&lt;br /&gt;
* [[Dev/BeagleBone|BeagleBone boards]]&lt;br /&gt;
* [[Dev/OPi|OrangePi boards]]&lt;/div&gt;</summary>
		<author><name>Drizzt</name></author>
	</entry>
	<entry>
		<id>http://wiki.nathael.net/index.php?title=Dev/BeagleBone/BeagleYAI&amp;diff=369</id>
		<title>Dev/BeagleBone/BeagleYAI</title>
		<link rel="alternate" type="text/html" href="http://wiki.nathael.net/index.php?title=Dev/BeagleBone/BeagleYAI&amp;diff=369"/>
		<updated>2025-03-25T16:34:14Z</updated>

		<summary type="html">&lt;p&gt;Drizzt: /* Linux kernel Configuration options to be checked */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Description ==&lt;br /&gt;
* https://docs.beagle.cc/boards/beagley/ai/03-design.html&lt;br /&gt;
=== Processor ===&lt;br /&gt;
* The board has a TI [https://www.ti.com/product/AM67A AM67A] (from the Jacinto J722S TDA4AEN familly) SOC, HS-FS variant, with&lt;br /&gt;
: - four Arm Cortex-A53 cores (main cores, 1.4Ghz, 64bits aarch64 Armv8.x-A, VFPv4) (Still haven&#039;t found which is the .x in Armv8.x)&lt;br /&gt;
: - two C7x DSP cores&lt;br /&gt;
: - one user Arm Cortex-R5F core (MCU channel with FFI, 800Mhz, Armv7-R, VFPv3)&lt;br /&gt;
: - two additional Arm Cortex-R5F cores (Device management and Run-time management).&lt;br /&gt;
* IMG BXS-4-64 GPU (OpenGL ES3.2 and Vulkan 1.2 API support)&lt;br /&gt;
The complete [https://software-dl.ti.com/tisci/esd/latest/5_soc_doc/j722s/processors.html list of processors] and [https://software-dl.ti.com/tisci/esd/latest/5_soc_doc/j722s/hosts.html cores]. Note that a physical processor can have multiple Host IDs (cores) depending on context and domain.&lt;br /&gt;
&lt;br /&gt;
Note : According to chat GPT (which is wrong), &amp;lt;s&amp;gt;&amp;quot;The BeagleY-AI board uses the TDA4VM SoC in the HS-SE variant&amp;quot;&amp;lt;/s&amp;gt;.&lt;br /&gt;
: The HS-SE (High Security - Single Edition) variant is focused on applications where data security and confidentiality are critical.&lt;br /&gt;
: The HS-FS (High Security - Functional Safety) variant is more geared toward functional safety requirements.&lt;br /&gt;
&lt;br /&gt;
The BeagleY-AI board uses an AM67A which is a TDA4AEN variant and not a TDA4VM, and it is a HS-FS variant.&lt;br /&gt;
&lt;br /&gt;
=== Memory ===&lt;br /&gt;
* 4Go LPDDR4&lt;br /&gt;
* EEPROM (FT24C32A) on I2C0&lt;br /&gt;
* microSD Card&lt;br /&gt;
&lt;br /&gt;
=== Design, Shematics and Mechanical ===&lt;br /&gt;
* https://openbeagle.org/beagley-ai/beagley-ai&lt;br /&gt;
* https://docs.beagle.cc/boards/beagley/ai/03-design.html&lt;br /&gt;
&lt;br /&gt;
== The Boot process ==&lt;br /&gt;
&lt;br /&gt;
=== Overview ===&lt;br /&gt;
From chapter &amp;quot;[https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-j722s/09_02_00_05/exports/docs/psdk_rtos/docs/user_guide/developer_notes_bootloaders.html 9.2. Understanding bootloaders in Processor SDK J722S (RTOS/Linux)] and [https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-am67a/latest/exports/docs/linux/Foundational_Components/U-Boot/UG-General-Info.html Processor SDK Linux for AM67A, chapter 3.1.1.1 - U-Boot - General Information] :&lt;br /&gt;
: The boot process on the J722S processor requires two different U-Boot images and some firmwares, which will run on different cores.&lt;br /&gt;
Information is a little bit confused, maybe because there may be different ways to achieve the boot process.&lt;br /&gt;
&lt;br /&gt;
You may find the documentation within U-Boot sources to be pretty complete : https://docs.u-boot.org/en/latest/board/ti/j722s_evm.html&lt;br /&gt;
: Note that it does not directly targets the BeagleY-AI board but the J722S-EVM one&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;tiboot3.bin&#039;&#039;&#039;&lt;br /&gt;
: The first &amp;quot;Secondary Program Loader&amp;quot; (SPL) that the ROM bootloader will load and execute on the MCU R5F Core0&lt;br /&gt;
: It seems to be an agregate of an U-Boot image (u-boot-spl.bin) and the TIFS firmware (sysfw)&lt;br /&gt;
: It will try to load two images : &amp;quot;tifs.bin&amp;quot; (embedded) and &amp;quot;tispl.bin&amp;quot; (from SD card)&lt;br /&gt;
* &#039;&#039;&#039;tifs.bin&#039;&#039;&#039;&lt;br /&gt;
: TI Foundational Security (TIFS)&lt;br /&gt;
: This firmware image is also called &amp;quot;SYSFW&amp;quot; and is included inside &#039;&#039;&#039;tiboot3.bin&#039;&#039;&#039;.&lt;br /&gt;
: It is used for the &amp;quot;Secure Management Services&amp;quot; (SMS), to be run on the corresponding R5F MCU.&lt;br /&gt;
* &#039;&#039;&#039;tispl.bin&#039;&#039;&#039;&lt;br /&gt;
: The second &amp;quot;Secondary Program Loader&amp;quot; (SPL). This one will run on one of the A53 cores.&lt;br /&gt;
: This image includes the &amp;quot;ARM Trusted Firmware&amp;quot; (ATF or Trusted Firmware-A) and the &amp;quot;Trusted Execution Environment&amp;quot; (TEE, provided by OP-TEE).&lt;br /&gt;
: It also includes the &amp;quot;Device Management&amp;quot; (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).&lt;br /&gt;
: And then the &amp;quot;SPL&amp;quot; proper, which may be a reduced U-Boot image, commonly refered to as the &amp;quot;first-stage bootloader&amp;quot; which will mainly initialise the A53 core, the DDR memory, and the required subsystems so that the full U-Boot image can run.&lt;br /&gt;
* &#039;&#039;&#039;uboot.img&#039;&#039;&#039;&lt;br /&gt;
: This is the final U-Boot image, also called &amp;quot;second-stage bootloader&amp;quot;, which will also run on one of the A53 cores.&lt;br /&gt;
: This one will provide a prompt and load the Linux kernel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Where to get more information ===&lt;br /&gt;
Credits : I started finding useful and accurate information on [https://olof-astrand.medium.com/building-u-boot-and-the-linux-kernel-for-the-beagley-ai-board-0942565ab28b 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&#039;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.&lt;br /&gt;
&lt;br /&gt;
Anyway, this post references some useful sources :&lt;br /&gt;
* [https://software-dl.ti.com/tisci/esd/latest/1_intro/TISCI.html Texas Instruments System Controller Interface] (TISCI)&lt;br /&gt;
* [https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-j722s/09_02_00_05/exports/docs/psdk_rtos/docs/user_guide/index.html Processor SDK RTOS J722S]&lt;br /&gt;
* [https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-am67a/latest/exports/docs/devices/J7_Family/linux/index.html Processor SDK Linux Software Developer’s Guide], mainly chapter 3 : Foundational Components.&lt;br /&gt;
&lt;br /&gt;
TI even provides access to the sources of these documentations : https://github.com/TexasInstruments/processor-sdk-doc !!&lt;br /&gt;
&lt;br /&gt;
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/&lt;br /&gt;
&lt;br /&gt;
* 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])&lt;br /&gt;
* 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])&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
=== TI ===&lt;br /&gt;
* git://git.ti.com/ti-u-boot/ti-u-boot.git  (or use the one from openbeagle.org)&lt;br /&gt;
* git://git.ti.com/ti-linux-kernel/ti-linux-kernel.git  &lt;br /&gt;
* git://git.ti.com/processor-firmware/ti-linux-firmware.git&lt;br /&gt;
: branch : ti-linux-firmware&lt;br /&gt;
: Note that a very small subset is required from this 2.4Go repository (see below in &amp;quot;Build the images&amp;quot; section).&lt;br /&gt;
&lt;br /&gt;
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]&lt;br /&gt;
&lt;br /&gt;
=== BeagleBone ===&lt;br /&gt;
* https://openbeagle.org/beagleboard/u-boot.git - tag &amp;quot;v2023.04-ti-09.02.00.009-BeagleY-AI&amp;quot;&lt;br /&gt;
: tag : v2025.04-rc3-BeagleY-AI&lt;br /&gt;
&lt;br /&gt;
=== Others ===&lt;br /&gt;
* https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git&lt;br /&gt;
: tag : lts-v2.12.1&lt;br /&gt;
* https://github.com/OP-TEE/optee_os.git&lt;br /&gt;
: tag : 4.5.0&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Build the images ==&lt;br /&gt;
The sources which proved most usefull in order to rebuild all the images (all but ti firmwares ...) :&lt;br /&gt;
* https://docs.u-boot.org/en/latest/board/ti/j722s_evm.html&lt;br /&gt;
* https://openbeagle.org/beagleboard/repos-arm64/-/blob/main/bb-u-boot-beagley-ai/suite/bookworm/debian/rules&lt;br /&gt;
&lt;br /&gt;
=== Compiler ===&lt;br /&gt;
The AM67A processor has R5 and A53 cores.&lt;br /&gt;
: The R5 cores need a 32bits compiler : arm-linux-gnueabi&lt;br /&gt;
 CC32=&amp;quot;arm-linux-gnueabi-&amp;quot;&lt;br /&gt;
: The A53 ones need a 64bits compiler : aarch64-linux-gnu&lt;br /&gt;
 CC64=&amp;quot;aarch64-linux-gnu-&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== U-Boot config ===&lt;br /&gt;
You&#039;ll need &amp;quot;ARM Trusted Firmware&amp;quot; (see above for sources and git tag I used)&lt;br /&gt;
 TFA_BOARD=lite&lt;br /&gt;
 TFA_EXTRA_ARGS=&amp;quot;SPD=opteed&amp;quot;&lt;br /&gt;
 make CROSS_COMPILE=${CC64} ARCH=aarch64 PLAT=k3 ${TFA_EXTRA_ARGS} TARGET_BOARD=${TFA_BOARD} bl31&lt;br /&gt;
Result is &amp;quot;build/k3/${TFA_BOARD}/release/bl31.bin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
You&#039;ll also need a &amp;quot;Trusted Execution Environnment&amp;quot; (see above for sources and git tag I used)&lt;br /&gt;
 OPTEE_PLATFORM=k3-j722s&lt;br /&gt;
 OPTEE_EXTRA_ARGS=&amp;quot;CFG_WITH_SOFTWARE_PRNG=y CFG_ARM64_core=y&amp;quot;&lt;br /&gt;
 make -j 12 CROSS_COMPILE=${CC32} CROSS_COMPILE64=${CC64} ${OPTEE_EXTRA_ARGS} PLATFORM=${OPTEE_PLATFORM}&lt;br /&gt;
Result is &amp;quot;core/tee-pager_v2.bin&amp;quot; which is in the output dir (either the one specified with &amp;quot;O=&amp;quot; option or under &amp;quot;out/.../&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
And a last one : some ti firmwares found in TI&#039;s Linux firmware repository (see above for sources and git tag I used).&lt;br /&gt;
If you don&#039;t want to keep the 2.4Go of firmwares, keep at most these ones :&lt;br /&gt;
: ti-linux-firmware/ti-dm/j722s/*&lt;br /&gt;
: ti-linux-firmware/ti-ipc/j722s/*&lt;br /&gt;
: ti-linux-firmware/ti-sysfw/ti-fs-firmware-j722s-hs-*&lt;br /&gt;
: ti-linux-firmware/ti-sysfw/cert.bin&lt;br /&gt;
And set this variable according to where you put them :&lt;br /&gt;
 LNX_FW_PATH=&amp;quot;..../ti-linux-firmware/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
And at last, the U-Boot part (remember that you will need two uboot images, once again, see above for the sources and tag I used) :&lt;br /&gt;
* One for the R5 core :&lt;br /&gt;
 make ARCH=arm am67a_beagley_ai_r5_defconfig&lt;br /&gt;
 make ARCH=arm -j 12 CROSS_COMPILE=${CC32} BINMAN_INDIRS=${LNX_FW_PATH}&lt;br /&gt;
: this one provides &amp;quot;tiboot3-j722s-hs-fs-evm.bin&amp;quot; which will be &amp;quot;tiboot3.bin&amp;quot;&lt;br /&gt;
* And one for the A53 cores :&lt;br /&gt;
: Set bl31 and bl32 variables to the results of ARM Trusted firmware (bl31) and Trusted Execution Environment (bl32) compilation&lt;br /&gt;
 bl31=&amp;quot;...../build/k3/${TFA_BOARD}/release/bl31.bin&amp;quot;&lt;br /&gt;
 bl32=&amp;quot;...../core/tee-pager_v2.bin&amp;quot;&lt;br /&gt;
 make ARCH=arm am67a_beagley_ai_a53_defconfig&lt;br /&gt;
 make ARCH=arm -j 12 CROSS_COMPILE=${CC64} BINMAN_INDIRS=${LNX_FW_PATH} BL31=${bl31} TEE=${bl32}&lt;br /&gt;
: this one provides both &amp;quot;tispl.bin&amp;quot; and &amp;quot;u-boot.img&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Linux ===&lt;br /&gt;
* Device tree : arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts&lt;br /&gt;
* Kernel config file : https://git.beagleboard.org/beagleboard/linux/-/blob/d89bfdd19e7161ddba4ce4f5e34425ae6020a6db/arch/arm64/configs/bb.org_defconfig&lt;br /&gt;
&lt;br /&gt;
== Linux kernel Configuration options to be checked ==&lt;br /&gt;
=== Global Kernel options ===&lt;br /&gt;
==== Kernel features ====&lt;br /&gt;
* ARM errata workarounds : Need to activate other workarounds than the A53 ones ??&lt;br /&gt;
* Find which &#039;x&#039; is in ARMv8.x for the AM67A ARM-Cortex-A53 cores and select appropriate architectural features.&lt;br /&gt;
* Use BPF ? (https://www.kernel.org/doc/html/v4.19/bpf/index.html)&lt;br /&gt;
&lt;br /&gt;
==== ACPI/UEFI Support ====&lt;br /&gt;
Was enabled in Robert Nelson kernel.&amp;lt;br /&amp;gt;&lt;br /&gt;
Must check whether it is really usefull, as it should be concurent to the device-tree mechanism which is the one used here (See https://docs.kernel.org/arch/arm64/arm-acpi.html).&lt;br /&gt;
* Boot option --&amp;gt; CONFIG_EFI : UEFI runtime support (Required for ACPI)&lt;br /&gt;
* CONFIG_ACPI : ACPI (Advanced Configuration and Power Interface) Support&lt;br /&gt;
&lt;br /&gt;
==== Power management ====&lt;br /&gt;
* Disabled all suspend to RAM and Disk&lt;br /&gt;
* Check for subsystems powermanagement&lt;br /&gt;
&lt;br /&gt;
==== Memory ====&lt;br /&gt;
* Memory hotplug&lt;br /&gt;
* HWPoison pages injector&lt;br /&gt;
* Device memory (pmem, HMM, etc...) hotplug support&lt;br /&gt;
&lt;br /&gt;
=== Networking ===&lt;br /&gt;
==== Networking options ====&lt;br /&gt;
Currently reduced to the set used on other boards, to be tuned and checked ....&lt;br /&gt;
&lt;br /&gt;
==== Wireless (Wifi) ====&lt;br /&gt;
Checked for 802.11 options and RFkill using GPIO.&lt;br /&gt;
&lt;br /&gt;
==== Bluetooth ====&lt;br /&gt;
* To be checked ... which protocol for the device driver ? which extensions ? ...&lt;br /&gt;
&lt;br /&gt;
=== Device drivers ===&lt;br /&gt;
Get list of loaded drivers :&lt;br /&gt;
 ls /sys/bus/platform/drivers/&lt;br /&gt;
Need to find a way to check those which are really used.&lt;br /&gt;
==== Global ====&lt;br /&gt;
* Test the netlink-based uevent source/mechanism&lt;br /&gt;
==== PCI support ====&lt;br /&gt;
* Check for PCI PRI and PCI PASID support : none --&amp;gt; remove&lt;br /&gt;
* Check for PCI controller driver : &amp;quot;Cadence-based TI J721E&amp;quot; or &amp;quot;DesignWare-based TI Keystone&amp;quot; PCIe controller ??&lt;br /&gt;
Note that the PCIe module can work either as &amp;quot;root complex (RC)&amp;quot; or as &amp;quot;endpoint (EP)&amp;quot;. This has to be chosen here, and the documentation states that this should be configured &amp;quot;during initial power-up&amp;quot;, which will need to be done by U-Boot (or earlier ?).&lt;br /&gt;
* Need to &amp;quot;Enable PCI quirk workarounds&amp;quot; ?&lt;br /&gt;
==== Misc devices ====&lt;br /&gt;
* Generic on-chip SRAM driver ?&lt;br /&gt;
==== SCSI ====&lt;br /&gt;
* Why &amp;quot;LSI Logic MegaRAID SAS RAID Module&amp;quot; ?&lt;br /&gt;
==== Net ====&lt;br /&gt;
* Test net eth0&lt;br /&gt;
* Add cc33xx driver from ti for wireless module&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Bugs at runtime ===&lt;br /&gt;
* wiz bus@f0000:phy@f000000: Unable to create SERDES platform device&lt;br /&gt;
: at drivers/phy/ti/phy-j721e-wiz.c:1620 wiz_probe&lt;br /&gt;
: wiz bus@f0000:phy@f000000: probe with driver wiz failed with error -12&lt;br /&gt;
* wiz bus@f0000:phy@f010000: Unable to create SERDES platform device&lt;br /&gt;
&lt;br /&gt;
* alg: skcipher: cbc-aes-sa2ul encryption test failed (wrong result) on test vector 2, cfg=&amp;quot;misaligned splits crossing pages, inplace&amp;quot;&lt;br /&gt;
: alg: skcipher: ecb-aes-sa2ul encryption test failed (wrong result) on test vector 2, cfg=&amp;quot;uneven misaligned splits, may sleep&amp;quot;&lt;br /&gt;
: alg: self-tests for ecb(aes) using ecb-aes-sa2ul failed (rc=-22)&lt;br /&gt;
: at crypto/testmgr.c:6026 alg_test&lt;br /&gt;
* alg: aead: authenc(hmac(sha256),cbc(aes))-sa2ul encryption test failed (wrong result) on test vector 0, cfg=&amp;quot;uneven misaligned splits, may sleep&amp;quot;&lt;br /&gt;
: alg: self-tests for authenc(hmac(sha256),cbc(aes)) using authenc(hmac(sha256),cbc(aes))-sa2ul failed (rc=-22)&lt;br /&gt;
: at crypto/testmgr.c:6026 alg_test&lt;br /&gt;
&lt;br /&gt;
=== File system ===&lt;br /&gt;
Reduced to the bare minimum (proc, sys, tmpfs, vFat, ext4 and NFS)&lt;br /&gt;
&lt;br /&gt;
=== Security options ===&lt;br /&gt;
Update to your needs&lt;br /&gt;
&lt;br /&gt;
=== Cryptographic API ===&lt;br /&gt;
Check for algorithms you&#039;ll be using, those available, and disable all others.&lt;br /&gt;
&lt;br /&gt;
=== Kernel libs and kernel debugging ===&lt;br /&gt;
Left only the bare minimum parts, update to your needs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select only drivers that don&#039;t need compile-time external firmware -  Cadence MHDP8546 &lt;br /&gt;
  UPD     drivers/base/firmware_loader/builtin/cadence/mhdp8546.bin.gen.S&lt;br /&gt;
make[6]: ***  Aucune règle pour fabriquer la cible « /home/drizzt/Opt/git/linux/firmware/cadence/mhdp8546.bin », nécessaire pour « drivers/base/firmware_loader/builtin/cadence/mhdp8546.bin.gen.o ». Arrêt.&lt;br /&gt;
&lt;br /&gt;
== Kernel config requiring user-space config at boot-time or runtime ==&lt;br /&gt;
* CPU frequency and CPU hotplug (/sys/devices/system/cpu)&lt;br /&gt;
* TCP SYN-Cookies (https://cr.yp.to/syncookies.html) : (echo 1 &amp;gt; /proc/sys/net/ipv4/tcp_syncookies)&lt;br /&gt;
* Power management&lt;br /&gt;
* Configure the &amp;quot;safesetid&amp;quot; (SECURITY_SAFESETID) whitelist&lt;br /&gt;
&lt;br /&gt;
== Liens officiels ==&lt;br /&gt;
* https://www.beagleboard.org/boards/beagley-ai&lt;br /&gt;
* [https://www.mouser.fr/ProductDetail/BeagleBoard-by-Seeed-Studio/102991834?qs=dbcCsuKDzFXY1JA%252BEGwyow%3D%3D Achat chez Mouser à 77€]&lt;br /&gt;
&lt;br /&gt;
== Pinout ==&lt;br /&gt;
* https://pinout.beagley.ai/&lt;br /&gt;
&lt;br /&gt;
* Tag connect clip : https://www.printables.com/model/879533-beagley-ai-tagconnect-clip-10pin&lt;br /&gt;
&lt;br /&gt;
== Debug port Connection ==&lt;br /&gt;
=== Onboard connector ===&lt;br /&gt;
Despite what some have published about everywhere on the Web (even [https://docs.beagle.cc/boards/beagley/ai/03-design.html#uart within official beagleboard online documentation]), the connector &#039;&#039;&#039;IS NOT&#039;&#039;&#039; 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.&amp;lt;br /&amp;gt;&lt;br /&gt;
The official BOM gives all the information :&lt;br /&gt;
* Manufacturer : MTCONN&lt;br /&gt;
* Manufacturer part number : MTWF63-103SRN-01163&lt;br /&gt;
&lt;br /&gt;
=== Where to find mating connector ===&lt;br /&gt;
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 &amp;quot;WTB10-XX-02-2&amp;quot; ... but I do not know where to get these, much less the mating connector.&amp;lt;br /&amp;gt;&lt;br /&gt;
Some googling gave me another manufacturer with a compatible reference : [https://www.we-online.com/en/components/products/em/connectors/wire-to-board/wr_wtb/wr_wtb_1_00_mm Wurth Elektronik].&amp;lt;br /&amp;gt;&lt;br /&gt;
What&#039;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.&amp;lt;br /&amp;gt;&lt;br /&gt;
Here are the references/links for all the parts :&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_1_00_SMT_MALE_VERTICAL_SHROUDED_HEADER_6653XX124022 WR-WTB 1.00 mm SMT Male Vertical Shrouded Header]&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_1_00_FEMALE_TERMINAL_HOUSING_6650XX113322 WR-WTB 1.00 mm Female Terminal Housing]&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_1_00_FEMALE_CRIMP_CONTACT_665X0113722 WR-WTB 1.00 mm Female Crimp Terminal]&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_PRE-CRIMPED_CABLE_1_00 WR-WTB Pre-crimped wire]&lt;br /&gt;
* And even the [https://www.we-online.com/en/components/products/WTB_MANUAL_CRIMPING_TOOL_11#600665232280 WR-WTB Manual Crimping Tool]&lt;br /&gt;
Choose the number of positions you need (3 for the debug port, but there&#039;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.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* BeagleBoard linux git repository : https://git.beagleboard.org/beagleboard/linux&lt;br /&gt;
* BeagleY-AI design and detailed specifications : https://docs.beagle.cc/boards/beagley/ai/03-design.html&lt;br /&gt;
* [https://olof-astrand.medium.com/building-u-boot-and-the-linux-kernel-for-the-beagley-ai-board-0942565ab28b Building u-boot and the linux kernel for the beagleY AI board]&lt;br /&gt;
* [https://community.element14.com/products/devtools/single-board-computers/next-genbeaglebone/b/blog/posts/beagley-ai-review BeagleY-AI Review - Part 1] and [https://community.element14.com/products/devtools/single-board-computers/next-genbeaglebone/b/blog/posts/beagley-ai-review---part-2 BeagleY-AI Review - Part 2] on element 14 community.&lt;/div&gt;</summary>
		<author><name>Drizzt</name></author>
	</entry>
	<entry>
		<id>http://wiki.nathael.net/index.php?title=Dev/BeagleBone/BeagleYAI&amp;diff=368</id>
		<title>Dev/BeagleBone/BeagleYAI</title>
		<link rel="alternate" type="text/html" href="http://wiki.nathael.net/index.php?title=Dev/BeagleBone/BeagleYAI&amp;diff=368"/>
		<updated>2025-03-25T15:56:34Z</updated>

		<summary type="html">&lt;p&gt;Drizzt: /* Kernel config requiring user-space config at boot-time or runtime */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Description ==&lt;br /&gt;
* https://docs.beagle.cc/boards/beagley/ai/03-design.html&lt;br /&gt;
=== Processor ===&lt;br /&gt;
* The board has a TI [https://www.ti.com/product/AM67A AM67A] (from the Jacinto J722S TDA4AEN familly) SOC, HS-FS variant, with&lt;br /&gt;
: - four Arm Cortex-A53 cores (main cores, 1.4Ghz, 64bits aarch64 Armv8.x-A, VFPv4) (Still haven&#039;t found which is the .x in Armv8.x)&lt;br /&gt;
: - two C7x DSP cores&lt;br /&gt;
: - one user Arm Cortex-R5F core (MCU channel with FFI, 800Mhz, Armv7-R, VFPv3)&lt;br /&gt;
: - two additional Arm Cortex-R5F cores (Device management and Run-time management).&lt;br /&gt;
* IMG BXS-4-64 GPU (OpenGL ES3.2 and Vulkan 1.2 API support)&lt;br /&gt;
The complete [https://software-dl.ti.com/tisci/esd/latest/5_soc_doc/j722s/processors.html list of processors] and [https://software-dl.ti.com/tisci/esd/latest/5_soc_doc/j722s/hosts.html cores]. Note that a physical processor can have multiple Host IDs (cores) depending on context and domain.&lt;br /&gt;
&lt;br /&gt;
Note : According to chat GPT (which is wrong), &amp;lt;s&amp;gt;&amp;quot;The BeagleY-AI board uses the TDA4VM SoC in the HS-SE variant&amp;quot;&amp;lt;/s&amp;gt;.&lt;br /&gt;
: The HS-SE (High Security - Single Edition) variant is focused on applications where data security and confidentiality are critical.&lt;br /&gt;
: The HS-FS (High Security - Functional Safety) variant is more geared toward functional safety requirements.&lt;br /&gt;
&lt;br /&gt;
The BeagleY-AI board uses an AM67A which is a TDA4AEN variant and not a TDA4VM, and it is a HS-FS variant.&lt;br /&gt;
&lt;br /&gt;
=== Memory ===&lt;br /&gt;
* 4Go LPDDR4&lt;br /&gt;
* EEPROM (FT24C32A) on I2C0&lt;br /&gt;
* microSD Card&lt;br /&gt;
&lt;br /&gt;
=== Design, Shematics and Mechanical ===&lt;br /&gt;
* https://openbeagle.org/beagley-ai/beagley-ai&lt;br /&gt;
* https://docs.beagle.cc/boards/beagley/ai/03-design.html&lt;br /&gt;
&lt;br /&gt;
== The Boot process ==&lt;br /&gt;
&lt;br /&gt;
=== Overview ===&lt;br /&gt;
From chapter &amp;quot;[https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-j722s/09_02_00_05/exports/docs/psdk_rtos/docs/user_guide/developer_notes_bootloaders.html 9.2. Understanding bootloaders in Processor SDK J722S (RTOS/Linux)] and [https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-am67a/latest/exports/docs/linux/Foundational_Components/U-Boot/UG-General-Info.html Processor SDK Linux for AM67A, chapter 3.1.1.1 - U-Boot - General Information] :&lt;br /&gt;
: The boot process on the J722S processor requires two different U-Boot images and some firmwares, which will run on different cores.&lt;br /&gt;
Information is a little bit confused, maybe because there may be different ways to achieve the boot process.&lt;br /&gt;
&lt;br /&gt;
You may find the documentation within U-Boot sources to be pretty complete : https://docs.u-boot.org/en/latest/board/ti/j722s_evm.html&lt;br /&gt;
: Note that it does not directly targets the BeagleY-AI board but the J722S-EVM one&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;tiboot3.bin&#039;&#039;&#039;&lt;br /&gt;
: The first &amp;quot;Secondary Program Loader&amp;quot; (SPL) that the ROM bootloader will load and execute on the MCU R5F Core0&lt;br /&gt;
: It seems to be an agregate of an U-Boot image (u-boot-spl.bin) and the TIFS firmware (sysfw)&lt;br /&gt;
: It will try to load two images : &amp;quot;tifs.bin&amp;quot; (embedded) and &amp;quot;tispl.bin&amp;quot; (from SD card)&lt;br /&gt;
* &#039;&#039;&#039;tifs.bin&#039;&#039;&#039;&lt;br /&gt;
: TI Foundational Security (TIFS)&lt;br /&gt;
: This firmware image is also called &amp;quot;SYSFW&amp;quot; and is included inside &#039;&#039;&#039;tiboot3.bin&#039;&#039;&#039;.&lt;br /&gt;
: It is used for the &amp;quot;Secure Management Services&amp;quot; (SMS), to be run on the corresponding R5F MCU.&lt;br /&gt;
* &#039;&#039;&#039;tispl.bin&#039;&#039;&#039;&lt;br /&gt;
: The second &amp;quot;Secondary Program Loader&amp;quot; (SPL). This one will run on one of the A53 cores.&lt;br /&gt;
: This image includes the &amp;quot;ARM Trusted Firmware&amp;quot; (ATF or Trusted Firmware-A) and the &amp;quot;Trusted Execution Environment&amp;quot; (TEE, provided by OP-TEE).&lt;br /&gt;
: It also includes the &amp;quot;Device Management&amp;quot; (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).&lt;br /&gt;
: And then the &amp;quot;SPL&amp;quot; proper, which may be a reduced U-Boot image, commonly refered to as the &amp;quot;first-stage bootloader&amp;quot; which will mainly initialise the A53 core, the DDR memory, and the required subsystems so that the full U-Boot image can run.&lt;br /&gt;
* &#039;&#039;&#039;uboot.img&#039;&#039;&#039;&lt;br /&gt;
: This is the final U-Boot image, also called &amp;quot;second-stage bootloader&amp;quot;, which will also run on one of the A53 cores.&lt;br /&gt;
: This one will provide a prompt and load the Linux kernel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Where to get more information ===&lt;br /&gt;
Credits : I started finding useful and accurate information on [https://olof-astrand.medium.com/building-u-boot-and-the-linux-kernel-for-the-beagley-ai-board-0942565ab28b 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&#039;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.&lt;br /&gt;
&lt;br /&gt;
Anyway, this post references some useful sources :&lt;br /&gt;
* [https://software-dl.ti.com/tisci/esd/latest/1_intro/TISCI.html Texas Instruments System Controller Interface] (TISCI)&lt;br /&gt;
* [https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-j722s/09_02_00_05/exports/docs/psdk_rtos/docs/user_guide/index.html Processor SDK RTOS J722S]&lt;br /&gt;
* [https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-am67a/latest/exports/docs/devices/J7_Family/linux/index.html Processor SDK Linux Software Developer’s Guide], mainly chapter 3 : Foundational Components.&lt;br /&gt;
&lt;br /&gt;
TI even provides access to the sources of these documentations : https://github.com/TexasInstruments/processor-sdk-doc !!&lt;br /&gt;
&lt;br /&gt;
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/&lt;br /&gt;
&lt;br /&gt;
* 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])&lt;br /&gt;
* 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])&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
=== TI ===&lt;br /&gt;
* git://git.ti.com/ti-u-boot/ti-u-boot.git  (or use the one from openbeagle.org)&lt;br /&gt;
* git://git.ti.com/ti-linux-kernel/ti-linux-kernel.git  &lt;br /&gt;
* git://git.ti.com/processor-firmware/ti-linux-firmware.git&lt;br /&gt;
: branch : ti-linux-firmware&lt;br /&gt;
: Note that a very small subset is required from this 2.4Go repository (see below in &amp;quot;Build the images&amp;quot; section).&lt;br /&gt;
&lt;br /&gt;
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]&lt;br /&gt;
&lt;br /&gt;
=== BeagleBone ===&lt;br /&gt;
* https://openbeagle.org/beagleboard/u-boot.git - tag &amp;quot;v2023.04-ti-09.02.00.009-BeagleY-AI&amp;quot;&lt;br /&gt;
: tag : v2025.04-rc3-BeagleY-AI&lt;br /&gt;
&lt;br /&gt;
=== Others ===&lt;br /&gt;
* https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git&lt;br /&gt;
: tag : lts-v2.12.1&lt;br /&gt;
* https://github.com/OP-TEE/optee_os.git&lt;br /&gt;
: tag : 4.5.0&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Build the images ==&lt;br /&gt;
The sources which proved most usefull in order to rebuild all the images (all but ti firmwares ...) :&lt;br /&gt;
* https://docs.u-boot.org/en/latest/board/ti/j722s_evm.html&lt;br /&gt;
* https://openbeagle.org/beagleboard/repos-arm64/-/blob/main/bb-u-boot-beagley-ai/suite/bookworm/debian/rules&lt;br /&gt;
&lt;br /&gt;
=== Compiler ===&lt;br /&gt;
The AM67A processor has R5 and A53 cores.&lt;br /&gt;
: The R5 cores need a 32bits compiler : arm-linux-gnueabi&lt;br /&gt;
 CC32=&amp;quot;arm-linux-gnueabi-&amp;quot;&lt;br /&gt;
: The A53 ones need a 64bits compiler : aarch64-linux-gnu&lt;br /&gt;
 CC64=&amp;quot;aarch64-linux-gnu-&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== U-Boot config ===&lt;br /&gt;
You&#039;ll need &amp;quot;ARM Trusted Firmware&amp;quot; (see above for sources and git tag I used)&lt;br /&gt;
 TFA_BOARD=lite&lt;br /&gt;
 TFA_EXTRA_ARGS=&amp;quot;SPD=opteed&amp;quot;&lt;br /&gt;
 make CROSS_COMPILE=${CC64} ARCH=aarch64 PLAT=k3 ${TFA_EXTRA_ARGS} TARGET_BOARD=${TFA_BOARD} bl31&lt;br /&gt;
Result is &amp;quot;build/k3/${TFA_BOARD}/release/bl31.bin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
You&#039;ll also need a &amp;quot;Trusted Execution Environnment&amp;quot; (see above for sources and git tag I used)&lt;br /&gt;
 OPTEE_PLATFORM=k3-j722s&lt;br /&gt;
 OPTEE_EXTRA_ARGS=&amp;quot;CFG_WITH_SOFTWARE_PRNG=y CFG_ARM64_core=y&amp;quot;&lt;br /&gt;
 make -j 12 CROSS_COMPILE=${CC32} CROSS_COMPILE64=${CC64} ${OPTEE_EXTRA_ARGS} PLATFORM=${OPTEE_PLATFORM}&lt;br /&gt;
Result is &amp;quot;core/tee-pager_v2.bin&amp;quot; which is in the output dir (either the one specified with &amp;quot;O=&amp;quot; option or under &amp;quot;out/.../&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
And a last one : some ti firmwares found in TI&#039;s Linux firmware repository (see above for sources and git tag I used).&lt;br /&gt;
If you don&#039;t want to keep the 2.4Go of firmwares, keep at most these ones :&lt;br /&gt;
: ti-linux-firmware/ti-dm/j722s/*&lt;br /&gt;
: ti-linux-firmware/ti-ipc/j722s/*&lt;br /&gt;
: ti-linux-firmware/ti-sysfw/ti-fs-firmware-j722s-hs-*&lt;br /&gt;
: ti-linux-firmware/ti-sysfw/cert.bin&lt;br /&gt;
And set this variable according to where you put them :&lt;br /&gt;
 LNX_FW_PATH=&amp;quot;..../ti-linux-firmware/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
And at last, the U-Boot part (remember that you will need two uboot images, once again, see above for the sources and tag I used) :&lt;br /&gt;
* One for the R5 core :&lt;br /&gt;
 make ARCH=arm am67a_beagley_ai_r5_defconfig&lt;br /&gt;
 make ARCH=arm -j 12 CROSS_COMPILE=${CC32} BINMAN_INDIRS=${LNX_FW_PATH}&lt;br /&gt;
: this one provides &amp;quot;tiboot3-j722s-hs-fs-evm.bin&amp;quot; which will be &amp;quot;tiboot3.bin&amp;quot;&lt;br /&gt;
* And one for the A53 cores :&lt;br /&gt;
: Set bl31 and bl32 variables to the results of ARM Trusted firmware (bl31) and Trusted Execution Environment (bl32) compilation&lt;br /&gt;
 bl31=&amp;quot;...../build/k3/${TFA_BOARD}/release/bl31.bin&amp;quot;&lt;br /&gt;
 bl32=&amp;quot;...../core/tee-pager_v2.bin&amp;quot;&lt;br /&gt;
 make ARCH=arm am67a_beagley_ai_a53_defconfig&lt;br /&gt;
 make ARCH=arm -j 12 CROSS_COMPILE=${CC64} BINMAN_INDIRS=${LNX_FW_PATH} BL31=${bl31} TEE=${bl32}&lt;br /&gt;
: this one provides both &amp;quot;tispl.bin&amp;quot; and &amp;quot;u-boot.img&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Linux ===&lt;br /&gt;
* Device tree : arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts&lt;br /&gt;
* Kernel config file : https://git.beagleboard.org/beagleboard/linux/-/blob/d89bfdd19e7161ddba4ce4f5e34425ae6020a6db/arch/arm64/configs/bb.org_defconfig&lt;br /&gt;
&lt;br /&gt;
== Linux kernel Configuration options to be checked ==&lt;br /&gt;
=== Global Kernel options ===&lt;br /&gt;
==== Kernel features ====&lt;br /&gt;
* ARM errata workarounds : Need to activate other workarounds than the A53 ones ??&lt;br /&gt;
* Find which &#039;x&#039; is in ARMv8.x for the AM67A ARM-Cortex-A53 cores and select appropriate architectural features.&lt;br /&gt;
* Use BPF ? (https://www.kernel.org/doc/html/v4.19/bpf/index.html)&lt;br /&gt;
&lt;br /&gt;
==== ACPI/UEFI Support ====&lt;br /&gt;
Was enabled in Robert Nelson kernel.&amp;lt;br /&amp;gt;&lt;br /&gt;
Must check whether it is really usefull, as it should be concurent to the device-tree mechanism which is the one used here (See https://docs.kernel.org/arch/arm64/arm-acpi.html).&lt;br /&gt;
* Boot option --&amp;gt; CONFIG_EFI : UEFI runtime support (Required for ACPI)&lt;br /&gt;
* CONFIG_ACPI : ACPI (Advanced Configuration and Power Interface) Support&lt;br /&gt;
&lt;br /&gt;
==== Power management ====&lt;br /&gt;
* Disabled all suspend to RAM and Disk&lt;br /&gt;
* Check for subsystems powermanagement&lt;br /&gt;
&lt;br /&gt;
==== Memory ====&lt;br /&gt;
* Memory hotplug&lt;br /&gt;
* HWPoison pages injector&lt;br /&gt;
* Device memory (pmem, HMM, etc...) hotplug support&lt;br /&gt;
&lt;br /&gt;
=== Networking ===&lt;br /&gt;
==== Networking options ====&lt;br /&gt;
Currently reduced to the set used on other boards, to be tuned and checked ....&lt;br /&gt;
&lt;br /&gt;
==== Wireless (Wifi) ====&lt;br /&gt;
Checked for 802.11 options and RFkill using GPIO.&lt;br /&gt;
&lt;br /&gt;
==== Bluetooth ====&lt;br /&gt;
* To be checked ... which protocol for the device driver ? which extensions ? ...&lt;br /&gt;
&lt;br /&gt;
=== Device drivers ===&lt;br /&gt;
Get list of loaded drivers :&lt;br /&gt;
 ls /sys/bus/platform/drivers/&lt;br /&gt;
Need to find a way to check those which are really used.&lt;br /&gt;
==== Global ====&lt;br /&gt;
* Test the netlink-based uevent source/mechanism&lt;br /&gt;
==== PCI support ====&lt;br /&gt;
* Check for PCI PRI and PCI PASID support : none --&amp;gt; remove&lt;br /&gt;
* Check for PCI controller driver : &amp;quot;Cadence-based TI J721E&amp;quot; or &amp;quot;DesignWare-based TI Keystone&amp;quot; PCIe controller ??&lt;br /&gt;
Note that the PCIe module can work either as &amp;quot;root complex (RC)&amp;quot; or as &amp;quot;endpoint (EP)&amp;quot;. This has to be chosen here, and the documentation states that this should be configured &amp;quot;during initial power-up&amp;quot;, which will need to be done by U-Boot (or earlier ?).&lt;br /&gt;
* Need to &amp;quot;Enable PCI quirk workarounds&amp;quot; ?&lt;br /&gt;
==== Misc devices ====&lt;br /&gt;
* Generic on-chip SRAM driver ?&lt;br /&gt;
==== SCSI ====&lt;br /&gt;
* Why &amp;quot;LSI Logic MegaRAID SAS RAID Module&amp;quot; ?&lt;br /&gt;
==== Net ====&lt;br /&gt;
* Test net eth0&lt;br /&gt;
* Add cc33xx driver from ti for wireless module&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== File system ===&lt;br /&gt;
Reduced to the bare minimum (proc, sys, tmpfs, vFat, ext4 and NFS)&lt;br /&gt;
&lt;br /&gt;
=== Security options ===&lt;br /&gt;
Update to your needs&lt;br /&gt;
&lt;br /&gt;
=== Cryptographic API ===&lt;br /&gt;
Check for algorithms you&#039;ll be using, those available, and disable all others.&lt;br /&gt;
&lt;br /&gt;
=== Kernel libs and kernel debugging ===&lt;br /&gt;
Left only the bare minimum parts, update to your needs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select only drivers that don&#039;t need compile-time external firmware -  Cadence MHDP8546 &lt;br /&gt;
  UPD     drivers/base/firmware_loader/builtin/cadence/mhdp8546.bin.gen.S&lt;br /&gt;
make[6]: ***  Aucune règle pour fabriquer la cible « /home/drizzt/Opt/git/linux/firmware/cadence/mhdp8546.bin », nécessaire pour « drivers/base/firmware_loader/builtin/cadence/mhdp8546.bin.gen.o ». Arrêt.&lt;br /&gt;
&lt;br /&gt;
== Kernel config requiring user-space config at boot-time or runtime ==&lt;br /&gt;
* CPU frequency and CPU hotplug (/sys/devices/system/cpu)&lt;br /&gt;
* TCP SYN-Cookies (https://cr.yp.to/syncookies.html) : (echo 1 &amp;gt; /proc/sys/net/ipv4/tcp_syncookies)&lt;br /&gt;
* Power management&lt;br /&gt;
* Configure the &amp;quot;safesetid&amp;quot; (SECURITY_SAFESETID) whitelist&lt;br /&gt;
&lt;br /&gt;
== Liens officiels ==&lt;br /&gt;
* https://www.beagleboard.org/boards/beagley-ai&lt;br /&gt;
* [https://www.mouser.fr/ProductDetail/BeagleBoard-by-Seeed-Studio/102991834?qs=dbcCsuKDzFXY1JA%252BEGwyow%3D%3D Achat chez Mouser à 77€]&lt;br /&gt;
&lt;br /&gt;
== Pinout ==&lt;br /&gt;
* https://pinout.beagley.ai/&lt;br /&gt;
&lt;br /&gt;
* Tag connect clip : https://www.printables.com/model/879533-beagley-ai-tagconnect-clip-10pin&lt;br /&gt;
&lt;br /&gt;
== Debug port Connection ==&lt;br /&gt;
=== Onboard connector ===&lt;br /&gt;
Despite what some have published about everywhere on the Web (even [https://docs.beagle.cc/boards/beagley/ai/03-design.html#uart within official beagleboard online documentation]), the connector &#039;&#039;&#039;IS NOT&#039;&#039;&#039; 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.&amp;lt;br /&amp;gt;&lt;br /&gt;
The official BOM gives all the information :&lt;br /&gt;
* Manufacturer : MTCONN&lt;br /&gt;
* Manufacturer part number : MTWF63-103SRN-01163&lt;br /&gt;
&lt;br /&gt;
=== Where to find mating connector ===&lt;br /&gt;
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 &amp;quot;WTB10-XX-02-2&amp;quot; ... but I do not know where to get these, much less the mating connector.&amp;lt;br /&amp;gt;&lt;br /&gt;
Some googling gave me another manufacturer with a compatible reference : [https://www.we-online.com/en/components/products/em/connectors/wire-to-board/wr_wtb/wr_wtb_1_00_mm Wurth Elektronik].&amp;lt;br /&amp;gt;&lt;br /&gt;
What&#039;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.&amp;lt;br /&amp;gt;&lt;br /&gt;
Here are the references/links for all the parts :&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_1_00_SMT_MALE_VERTICAL_SHROUDED_HEADER_6653XX124022 WR-WTB 1.00 mm SMT Male Vertical Shrouded Header]&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_1_00_FEMALE_TERMINAL_HOUSING_6650XX113322 WR-WTB 1.00 mm Female Terminal Housing]&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_1_00_FEMALE_CRIMP_CONTACT_665X0113722 WR-WTB 1.00 mm Female Crimp Terminal]&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_PRE-CRIMPED_CABLE_1_00 WR-WTB Pre-crimped wire]&lt;br /&gt;
* And even the [https://www.we-online.com/en/components/products/WTB_MANUAL_CRIMPING_TOOL_11#600665232280 WR-WTB Manual Crimping Tool]&lt;br /&gt;
Choose the number of positions you need (3 for the debug port, but there&#039;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.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* BeagleBoard linux git repository : https://git.beagleboard.org/beagleboard/linux&lt;br /&gt;
* BeagleY-AI design and detailed specifications : https://docs.beagle.cc/boards/beagley/ai/03-design.html&lt;br /&gt;
* [https://olof-astrand.medium.com/building-u-boot-and-the-linux-kernel-for-the-beagley-ai-board-0942565ab28b Building u-boot and the linux kernel for the beagleY AI board]&lt;br /&gt;
* [https://community.element14.com/products/devtools/single-board-computers/next-genbeaglebone/b/blog/posts/beagley-ai-review BeagleY-AI Review - Part 1] and [https://community.element14.com/products/devtools/single-board-computers/next-genbeaglebone/b/blog/posts/beagley-ai-review---part-2 BeagleY-AI Review - Part 2] on element 14 community.&lt;/div&gt;</summary>
		<author><name>Drizzt</name></author>
	</entry>
	<entry>
		<id>http://wiki.nathael.net/index.php?title=Dev/BeagleBone/BeagleYAI&amp;diff=367</id>
		<title>Dev/BeagleBone/BeagleYAI</title>
		<link rel="alternate" type="text/html" href="http://wiki.nathael.net/index.php?title=Dev/BeagleBone/BeagleYAI&amp;diff=367"/>
		<updated>2025-03-25T15:56:27Z</updated>

		<summary type="html">&lt;p&gt;Drizzt: /* Linux kernel Configuration options to be checked */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Description ==&lt;br /&gt;
* https://docs.beagle.cc/boards/beagley/ai/03-design.html&lt;br /&gt;
=== Processor ===&lt;br /&gt;
* The board has a TI [https://www.ti.com/product/AM67A AM67A] (from the Jacinto J722S TDA4AEN familly) SOC, HS-FS variant, with&lt;br /&gt;
: - four Arm Cortex-A53 cores (main cores, 1.4Ghz, 64bits aarch64 Armv8.x-A, VFPv4) (Still haven&#039;t found which is the .x in Armv8.x)&lt;br /&gt;
: - two C7x DSP cores&lt;br /&gt;
: - one user Arm Cortex-R5F core (MCU channel with FFI, 800Mhz, Armv7-R, VFPv3)&lt;br /&gt;
: - two additional Arm Cortex-R5F cores (Device management and Run-time management).&lt;br /&gt;
* IMG BXS-4-64 GPU (OpenGL ES3.2 and Vulkan 1.2 API support)&lt;br /&gt;
The complete [https://software-dl.ti.com/tisci/esd/latest/5_soc_doc/j722s/processors.html list of processors] and [https://software-dl.ti.com/tisci/esd/latest/5_soc_doc/j722s/hosts.html cores]. Note that a physical processor can have multiple Host IDs (cores) depending on context and domain.&lt;br /&gt;
&lt;br /&gt;
Note : According to chat GPT (which is wrong), &amp;lt;s&amp;gt;&amp;quot;The BeagleY-AI board uses the TDA4VM SoC in the HS-SE variant&amp;quot;&amp;lt;/s&amp;gt;.&lt;br /&gt;
: The HS-SE (High Security - Single Edition) variant is focused on applications where data security and confidentiality are critical.&lt;br /&gt;
: The HS-FS (High Security - Functional Safety) variant is more geared toward functional safety requirements.&lt;br /&gt;
&lt;br /&gt;
The BeagleY-AI board uses an AM67A which is a TDA4AEN variant and not a TDA4VM, and it is a HS-FS variant.&lt;br /&gt;
&lt;br /&gt;
=== Memory ===&lt;br /&gt;
* 4Go LPDDR4&lt;br /&gt;
* EEPROM (FT24C32A) on I2C0&lt;br /&gt;
* microSD Card&lt;br /&gt;
&lt;br /&gt;
=== Design, Shematics and Mechanical ===&lt;br /&gt;
* https://openbeagle.org/beagley-ai/beagley-ai&lt;br /&gt;
* https://docs.beagle.cc/boards/beagley/ai/03-design.html&lt;br /&gt;
&lt;br /&gt;
== The Boot process ==&lt;br /&gt;
&lt;br /&gt;
=== Overview ===&lt;br /&gt;
From chapter &amp;quot;[https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-j722s/09_02_00_05/exports/docs/psdk_rtos/docs/user_guide/developer_notes_bootloaders.html 9.2. Understanding bootloaders in Processor SDK J722S (RTOS/Linux)] and [https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-am67a/latest/exports/docs/linux/Foundational_Components/U-Boot/UG-General-Info.html Processor SDK Linux for AM67A, chapter 3.1.1.1 - U-Boot - General Information] :&lt;br /&gt;
: The boot process on the J722S processor requires two different U-Boot images and some firmwares, which will run on different cores.&lt;br /&gt;
Information is a little bit confused, maybe because there may be different ways to achieve the boot process.&lt;br /&gt;
&lt;br /&gt;
You may find the documentation within U-Boot sources to be pretty complete : https://docs.u-boot.org/en/latest/board/ti/j722s_evm.html&lt;br /&gt;
: Note that it does not directly targets the BeagleY-AI board but the J722S-EVM one&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;tiboot3.bin&#039;&#039;&#039;&lt;br /&gt;
: The first &amp;quot;Secondary Program Loader&amp;quot; (SPL) that the ROM bootloader will load and execute on the MCU R5F Core0&lt;br /&gt;
: It seems to be an agregate of an U-Boot image (u-boot-spl.bin) and the TIFS firmware (sysfw)&lt;br /&gt;
: It will try to load two images : &amp;quot;tifs.bin&amp;quot; (embedded) and &amp;quot;tispl.bin&amp;quot; (from SD card)&lt;br /&gt;
* &#039;&#039;&#039;tifs.bin&#039;&#039;&#039;&lt;br /&gt;
: TI Foundational Security (TIFS)&lt;br /&gt;
: This firmware image is also called &amp;quot;SYSFW&amp;quot; and is included inside &#039;&#039;&#039;tiboot3.bin&#039;&#039;&#039;.&lt;br /&gt;
: It is used for the &amp;quot;Secure Management Services&amp;quot; (SMS), to be run on the corresponding R5F MCU.&lt;br /&gt;
* &#039;&#039;&#039;tispl.bin&#039;&#039;&#039;&lt;br /&gt;
: The second &amp;quot;Secondary Program Loader&amp;quot; (SPL). This one will run on one of the A53 cores.&lt;br /&gt;
: This image includes the &amp;quot;ARM Trusted Firmware&amp;quot; (ATF or Trusted Firmware-A) and the &amp;quot;Trusted Execution Environment&amp;quot; (TEE, provided by OP-TEE).&lt;br /&gt;
: It also includes the &amp;quot;Device Management&amp;quot; (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).&lt;br /&gt;
: And then the &amp;quot;SPL&amp;quot; proper, which may be a reduced U-Boot image, commonly refered to as the &amp;quot;first-stage bootloader&amp;quot; which will mainly initialise the A53 core, the DDR memory, and the required subsystems so that the full U-Boot image can run.&lt;br /&gt;
* &#039;&#039;&#039;uboot.img&#039;&#039;&#039;&lt;br /&gt;
: This is the final U-Boot image, also called &amp;quot;second-stage bootloader&amp;quot;, which will also run on one of the A53 cores.&lt;br /&gt;
: This one will provide a prompt and load the Linux kernel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Where to get more information ===&lt;br /&gt;
Credits : I started finding useful and accurate information on [https://olof-astrand.medium.com/building-u-boot-and-the-linux-kernel-for-the-beagley-ai-board-0942565ab28b 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&#039;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.&lt;br /&gt;
&lt;br /&gt;
Anyway, this post references some useful sources :&lt;br /&gt;
* [https://software-dl.ti.com/tisci/esd/latest/1_intro/TISCI.html Texas Instruments System Controller Interface] (TISCI)&lt;br /&gt;
* [https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-j722s/09_02_00_05/exports/docs/psdk_rtos/docs/user_guide/index.html Processor SDK RTOS J722S]&lt;br /&gt;
* [https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-am67a/latest/exports/docs/devices/J7_Family/linux/index.html Processor SDK Linux Software Developer’s Guide], mainly chapter 3 : Foundational Components.&lt;br /&gt;
&lt;br /&gt;
TI even provides access to the sources of these documentations : https://github.com/TexasInstruments/processor-sdk-doc !!&lt;br /&gt;
&lt;br /&gt;
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/&lt;br /&gt;
&lt;br /&gt;
* 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])&lt;br /&gt;
* 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])&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
=== TI ===&lt;br /&gt;
* git://git.ti.com/ti-u-boot/ti-u-boot.git  (or use the one from openbeagle.org)&lt;br /&gt;
* git://git.ti.com/ti-linux-kernel/ti-linux-kernel.git  &lt;br /&gt;
* git://git.ti.com/processor-firmware/ti-linux-firmware.git&lt;br /&gt;
: branch : ti-linux-firmware&lt;br /&gt;
: Note that a very small subset is required from this 2.4Go repository (see below in &amp;quot;Build the images&amp;quot; section).&lt;br /&gt;
&lt;br /&gt;
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]&lt;br /&gt;
&lt;br /&gt;
=== BeagleBone ===&lt;br /&gt;
* https://openbeagle.org/beagleboard/u-boot.git - tag &amp;quot;v2023.04-ti-09.02.00.009-BeagleY-AI&amp;quot;&lt;br /&gt;
: tag : v2025.04-rc3-BeagleY-AI&lt;br /&gt;
&lt;br /&gt;
=== Others ===&lt;br /&gt;
* https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git&lt;br /&gt;
: tag : lts-v2.12.1&lt;br /&gt;
* https://github.com/OP-TEE/optee_os.git&lt;br /&gt;
: tag : 4.5.0&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Build the images ==&lt;br /&gt;
The sources which proved most usefull in order to rebuild all the images (all but ti firmwares ...) :&lt;br /&gt;
* https://docs.u-boot.org/en/latest/board/ti/j722s_evm.html&lt;br /&gt;
* https://openbeagle.org/beagleboard/repos-arm64/-/blob/main/bb-u-boot-beagley-ai/suite/bookworm/debian/rules&lt;br /&gt;
&lt;br /&gt;
=== Compiler ===&lt;br /&gt;
The AM67A processor has R5 and A53 cores.&lt;br /&gt;
: The R5 cores need a 32bits compiler : arm-linux-gnueabi&lt;br /&gt;
 CC32=&amp;quot;arm-linux-gnueabi-&amp;quot;&lt;br /&gt;
: The A53 ones need a 64bits compiler : aarch64-linux-gnu&lt;br /&gt;
 CC64=&amp;quot;aarch64-linux-gnu-&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== U-Boot config ===&lt;br /&gt;
You&#039;ll need &amp;quot;ARM Trusted Firmware&amp;quot; (see above for sources and git tag I used)&lt;br /&gt;
 TFA_BOARD=lite&lt;br /&gt;
 TFA_EXTRA_ARGS=&amp;quot;SPD=opteed&amp;quot;&lt;br /&gt;
 make CROSS_COMPILE=${CC64} ARCH=aarch64 PLAT=k3 ${TFA_EXTRA_ARGS} TARGET_BOARD=${TFA_BOARD} bl31&lt;br /&gt;
Result is &amp;quot;build/k3/${TFA_BOARD}/release/bl31.bin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
You&#039;ll also need a &amp;quot;Trusted Execution Environnment&amp;quot; (see above for sources and git tag I used)&lt;br /&gt;
 OPTEE_PLATFORM=k3-j722s&lt;br /&gt;
 OPTEE_EXTRA_ARGS=&amp;quot;CFG_WITH_SOFTWARE_PRNG=y CFG_ARM64_core=y&amp;quot;&lt;br /&gt;
 make -j 12 CROSS_COMPILE=${CC32} CROSS_COMPILE64=${CC64} ${OPTEE_EXTRA_ARGS} PLATFORM=${OPTEE_PLATFORM}&lt;br /&gt;
Result is &amp;quot;core/tee-pager_v2.bin&amp;quot; which is in the output dir (either the one specified with &amp;quot;O=&amp;quot; option or under &amp;quot;out/.../&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
And a last one : some ti firmwares found in TI&#039;s Linux firmware repository (see above for sources and git tag I used).&lt;br /&gt;
If you don&#039;t want to keep the 2.4Go of firmwares, keep at most these ones :&lt;br /&gt;
: ti-linux-firmware/ti-dm/j722s/*&lt;br /&gt;
: ti-linux-firmware/ti-ipc/j722s/*&lt;br /&gt;
: ti-linux-firmware/ti-sysfw/ti-fs-firmware-j722s-hs-*&lt;br /&gt;
: ti-linux-firmware/ti-sysfw/cert.bin&lt;br /&gt;
And set this variable according to where you put them :&lt;br /&gt;
 LNX_FW_PATH=&amp;quot;..../ti-linux-firmware/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
And at last, the U-Boot part (remember that you will need two uboot images, once again, see above for the sources and tag I used) :&lt;br /&gt;
* One for the R5 core :&lt;br /&gt;
 make ARCH=arm am67a_beagley_ai_r5_defconfig&lt;br /&gt;
 make ARCH=arm -j 12 CROSS_COMPILE=${CC32} BINMAN_INDIRS=${LNX_FW_PATH}&lt;br /&gt;
: this one provides &amp;quot;tiboot3-j722s-hs-fs-evm.bin&amp;quot; which will be &amp;quot;tiboot3.bin&amp;quot;&lt;br /&gt;
* And one for the A53 cores :&lt;br /&gt;
: Set bl31 and bl32 variables to the results of ARM Trusted firmware (bl31) and Trusted Execution Environment (bl32) compilation&lt;br /&gt;
 bl31=&amp;quot;...../build/k3/${TFA_BOARD}/release/bl31.bin&amp;quot;&lt;br /&gt;
 bl32=&amp;quot;...../core/tee-pager_v2.bin&amp;quot;&lt;br /&gt;
 make ARCH=arm am67a_beagley_ai_a53_defconfig&lt;br /&gt;
 make ARCH=arm -j 12 CROSS_COMPILE=${CC64} BINMAN_INDIRS=${LNX_FW_PATH} BL31=${bl31} TEE=${bl32}&lt;br /&gt;
: this one provides both &amp;quot;tispl.bin&amp;quot; and &amp;quot;u-boot.img&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Linux ===&lt;br /&gt;
* Device tree : arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts&lt;br /&gt;
* Kernel config file : https://git.beagleboard.org/beagleboard/linux/-/blob/d89bfdd19e7161ddba4ce4f5e34425ae6020a6db/arch/arm64/configs/bb.org_defconfig&lt;br /&gt;
&lt;br /&gt;
== Linux kernel Configuration options to be checked ==&lt;br /&gt;
=== Global Kernel options ===&lt;br /&gt;
==== Kernel features ====&lt;br /&gt;
* ARM errata workarounds : Need to activate other workarounds than the A53 ones ??&lt;br /&gt;
* Find which &#039;x&#039; is in ARMv8.x for the AM67A ARM-Cortex-A53 cores and select appropriate architectural features.&lt;br /&gt;
* Use BPF ? (https://www.kernel.org/doc/html/v4.19/bpf/index.html)&lt;br /&gt;
&lt;br /&gt;
==== ACPI/UEFI Support ====&lt;br /&gt;
Was enabled in Robert Nelson kernel.&amp;lt;br /&amp;gt;&lt;br /&gt;
Must check whether it is really usefull, as it should be concurent to the device-tree mechanism which is the one used here (See https://docs.kernel.org/arch/arm64/arm-acpi.html).&lt;br /&gt;
* Boot option --&amp;gt; CONFIG_EFI : UEFI runtime support (Required for ACPI)&lt;br /&gt;
* CONFIG_ACPI : ACPI (Advanced Configuration and Power Interface) Support&lt;br /&gt;
&lt;br /&gt;
==== Power management ====&lt;br /&gt;
* Disabled all suspend to RAM and Disk&lt;br /&gt;
* Check for subsystems powermanagement&lt;br /&gt;
&lt;br /&gt;
==== Memory ====&lt;br /&gt;
* Memory hotplug&lt;br /&gt;
* HWPoison pages injector&lt;br /&gt;
* Device memory (pmem, HMM, etc...) hotplug support&lt;br /&gt;
&lt;br /&gt;
=== Networking ===&lt;br /&gt;
==== Networking options ====&lt;br /&gt;
Currently reduced to the set used on other boards, to be tuned and checked ....&lt;br /&gt;
&lt;br /&gt;
==== Wireless (Wifi) ====&lt;br /&gt;
Checked for 802.11 options and RFkill using GPIO.&lt;br /&gt;
&lt;br /&gt;
==== Bluetooth ====&lt;br /&gt;
* To be checked ... which protocol for the device driver ? which extensions ? ...&lt;br /&gt;
&lt;br /&gt;
=== Device drivers ===&lt;br /&gt;
Get list of loaded drivers :&lt;br /&gt;
 ls /sys/bus/platform/drivers/&lt;br /&gt;
Need to find a way to check those which are really used.&lt;br /&gt;
==== Global ====&lt;br /&gt;
* Test the netlink-based uevent source/mechanism&lt;br /&gt;
==== PCI support ====&lt;br /&gt;
* Check for PCI PRI and PCI PASID support : none --&amp;gt; remove&lt;br /&gt;
* Check for PCI controller driver : &amp;quot;Cadence-based TI J721E&amp;quot; or &amp;quot;DesignWare-based TI Keystone&amp;quot; PCIe controller ??&lt;br /&gt;
Note that the PCIe module can work either as &amp;quot;root complex (RC)&amp;quot; or as &amp;quot;endpoint (EP)&amp;quot;. This has to be chosen here, and the documentation states that this should be configured &amp;quot;during initial power-up&amp;quot;, which will need to be done by U-Boot (or earlier ?).&lt;br /&gt;
* Need to &amp;quot;Enable PCI quirk workarounds&amp;quot; ?&lt;br /&gt;
==== Misc devices ====&lt;br /&gt;
* Generic on-chip SRAM driver ?&lt;br /&gt;
==== SCSI ====&lt;br /&gt;
* Why &amp;quot;LSI Logic MegaRAID SAS RAID Module&amp;quot; ?&lt;br /&gt;
==== Net ====&lt;br /&gt;
* Test net eth0&lt;br /&gt;
* Add cc33xx driver from ti for wireless module&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== File system ===&lt;br /&gt;
Reduced to the bare minimum (proc, sys, tmpfs, vFat, ext4 and NFS)&lt;br /&gt;
&lt;br /&gt;
=== Security options ===&lt;br /&gt;
Update to your needs&lt;br /&gt;
&lt;br /&gt;
=== Cryptographic API ===&lt;br /&gt;
Check for algorithms you&#039;ll be using, those available, and disable all others.&lt;br /&gt;
&lt;br /&gt;
=== Kernel libs and kernel debugging ===&lt;br /&gt;
Left only the bare minimum parts, update to your needs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select only drivers that don&#039;t need compile-time external firmware -  Cadence MHDP8546 &lt;br /&gt;
  UPD     drivers/base/firmware_loader/builtin/cadence/mhdp8546.bin.gen.S&lt;br /&gt;
make[6]: ***  Aucune règle pour fabriquer la cible « /home/drizzt/Opt/git/linux/firmware/cadence/mhdp8546.bin », nécessaire pour « drivers/base/firmware_loader/builtin/cadence/mhdp8546.bin.gen.o ». Arrêt.&lt;br /&gt;
&lt;br /&gt;
== Kernel config requiring user-space config at boot-time or runtime ==&lt;br /&gt;
* CPU frequency and CPU hotplug (/sys/devices/system/cpu)&lt;br /&gt;
* TCP SYN-Cookies (https://cr.yp.to/syncookies.html) : (echo 1 &amp;gt; /proc/sys/net/ipv4/tcp_syncookies)&lt;br /&gt;
* Power management&lt;br /&gt;
&lt;br /&gt;
== Liens officiels ==&lt;br /&gt;
* https://www.beagleboard.org/boards/beagley-ai&lt;br /&gt;
* [https://www.mouser.fr/ProductDetail/BeagleBoard-by-Seeed-Studio/102991834?qs=dbcCsuKDzFXY1JA%252BEGwyow%3D%3D Achat chez Mouser à 77€]&lt;br /&gt;
&lt;br /&gt;
== Pinout ==&lt;br /&gt;
* https://pinout.beagley.ai/&lt;br /&gt;
&lt;br /&gt;
* Tag connect clip : https://www.printables.com/model/879533-beagley-ai-tagconnect-clip-10pin&lt;br /&gt;
&lt;br /&gt;
== Debug port Connection ==&lt;br /&gt;
=== Onboard connector ===&lt;br /&gt;
Despite what some have published about everywhere on the Web (even [https://docs.beagle.cc/boards/beagley/ai/03-design.html#uart within official beagleboard online documentation]), the connector &#039;&#039;&#039;IS NOT&#039;&#039;&#039; 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.&amp;lt;br /&amp;gt;&lt;br /&gt;
The official BOM gives all the information :&lt;br /&gt;
* Manufacturer : MTCONN&lt;br /&gt;
* Manufacturer part number : MTWF63-103SRN-01163&lt;br /&gt;
&lt;br /&gt;
=== Where to find mating connector ===&lt;br /&gt;
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 &amp;quot;WTB10-XX-02-2&amp;quot; ... but I do not know where to get these, much less the mating connector.&amp;lt;br /&amp;gt;&lt;br /&gt;
Some googling gave me another manufacturer with a compatible reference : [https://www.we-online.com/en/components/products/em/connectors/wire-to-board/wr_wtb/wr_wtb_1_00_mm Wurth Elektronik].&amp;lt;br /&amp;gt;&lt;br /&gt;
What&#039;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.&amp;lt;br /&amp;gt;&lt;br /&gt;
Here are the references/links for all the parts :&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_1_00_SMT_MALE_VERTICAL_SHROUDED_HEADER_6653XX124022 WR-WTB 1.00 mm SMT Male Vertical Shrouded Header]&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_1_00_FEMALE_TERMINAL_HOUSING_6650XX113322 WR-WTB 1.00 mm Female Terminal Housing]&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_1_00_FEMALE_CRIMP_CONTACT_665X0113722 WR-WTB 1.00 mm Female Crimp Terminal]&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_PRE-CRIMPED_CABLE_1_00 WR-WTB Pre-crimped wire]&lt;br /&gt;
* And even the [https://www.we-online.com/en/components/products/WTB_MANUAL_CRIMPING_TOOL_11#600665232280 WR-WTB Manual Crimping Tool]&lt;br /&gt;
Choose the number of positions you need (3 for the debug port, but there&#039;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.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* BeagleBoard linux git repository : https://git.beagleboard.org/beagleboard/linux&lt;br /&gt;
* BeagleY-AI design and detailed specifications : https://docs.beagle.cc/boards/beagley/ai/03-design.html&lt;br /&gt;
* [https://olof-astrand.medium.com/building-u-boot-and-the-linux-kernel-for-the-beagley-ai-board-0942565ab28b Building u-boot and the linux kernel for the beagleY AI board]&lt;br /&gt;
* [https://community.element14.com/products/devtools/single-board-computers/next-genbeaglebone/b/blog/posts/beagley-ai-review BeagleY-AI Review - Part 1] and [https://community.element14.com/products/devtools/single-board-computers/next-genbeaglebone/b/blog/posts/beagley-ai-review---part-2 BeagleY-AI Review - Part 2] on element 14 community.&lt;/div&gt;</summary>
		<author><name>Drizzt</name></author>
	</entry>
	<entry>
		<id>http://wiki.nathael.net/index.php?title=Dev/BeagleBone/BeagleYAI&amp;diff=366</id>
		<title>Dev/BeagleBone/BeagleYAI</title>
		<link rel="alternate" type="text/html" href="http://wiki.nathael.net/index.php?title=Dev/BeagleBone/BeagleYAI&amp;diff=366"/>
		<updated>2025-03-24T12:49:26Z</updated>

		<summary type="html">&lt;p&gt;Drizzt: /* Kernel config requiring user-space config at boot-time or runtime */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Description ==&lt;br /&gt;
* https://docs.beagle.cc/boards/beagley/ai/03-design.html&lt;br /&gt;
=== Processor ===&lt;br /&gt;
* The board has a TI [https://www.ti.com/product/AM67A AM67A] (from the Jacinto J722S TDA4AEN familly) SOC, HS-FS variant, with&lt;br /&gt;
: - four Arm Cortex-A53 cores (main cores, 1.4Ghz, 64bits aarch64 Armv8.x-A, VFPv4) (Still haven&#039;t found which is the .x in Armv8.x)&lt;br /&gt;
: - two C7x DSP cores&lt;br /&gt;
: - one user Arm Cortex-R5F core (MCU channel with FFI, 800Mhz, Armv7-R, VFPv3)&lt;br /&gt;
: - two additional Arm Cortex-R5F cores (Device management and Run-time management).&lt;br /&gt;
* IMG BXS-4-64 GPU (OpenGL ES3.2 and Vulkan 1.2 API support)&lt;br /&gt;
The complete [https://software-dl.ti.com/tisci/esd/latest/5_soc_doc/j722s/processors.html list of processors] and [https://software-dl.ti.com/tisci/esd/latest/5_soc_doc/j722s/hosts.html cores]. Note that a physical processor can have multiple Host IDs (cores) depending on context and domain.&lt;br /&gt;
&lt;br /&gt;
Note : According to chat GPT (which is wrong), &amp;lt;s&amp;gt;&amp;quot;The BeagleY-AI board uses the TDA4VM SoC in the HS-SE variant&amp;quot;&amp;lt;/s&amp;gt;.&lt;br /&gt;
: The HS-SE (High Security - Single Edition) variant is focused on applications where data security and confidentiality are critical.&lt;br /&gt;
: The HS-FS (High Security - Functional Safety) variant is more geared toward functional safety requirements.&lt;br /&gt;
&lt;br /&gt;
The BeagleY-AI board uses an AM67A which is a TDA4AEN variant and not a TDA4VM, and it is a HS-FS variant.&lt;br /&gt;
&lt;br /&gt;
=== Memory ===&lt;br /&gt;
* 4Go LPDDR4&lt;br /&gt;
* EEPROM (FT24C32A) on I2C0&lt;br /&gt;
* microSD Card&lt;br /&gt;
&lt;br /&gt;
=== Design, Shematics and Mechanical ===&lt;br /&gt;
* https://openbeagle.org/beagley-ai/beagley-ai&lt;br /&gt;
* https://docs.beagle.cc/boards/beagley/ai/03-design.html&lt;br /&gt;
&lt;br /&gt;
== The Boot process ==&lt;br /&gt;
&lt;br /&gt;
=== Overview ===&lt;br /&gt;
From chapter &amp;quot;[https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-j722s/09_02_00_05/exports/docs/psdk_rtos/docs/user_guide/developer_notes_bootloaders.html 9.2. Understanding bootloaders in Processor SDK J722S (RTOS/Linux)] and [https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-am67a/latest/exports/docs/linux/Foundational_Components/U-Boot/UG-General-Info.html Processor SDK Linux for AM67A, chapter 3.1.1.1 - U-Boot - General Information] :&lt;br /&gt;
: The boot process on the J722S processor requires two different U-Boot images and some firmwares, which will run on different cores.&lt;br /&gt;
Information is a little bit confused, maybe because there may be different ways to achieve the boot process.&lt;br /&gt;
&lt;br /&gt;
You may find the documentation within U-Boot sources to be pretty complete : https://docs.u-boot.org/en/latest/board/ti/j722s_evm.html&lt;br /&gt;
: Note that it does not directly targets the BeagleY-AI board but the J722S-EVM one&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;tiboot3.bin&#039;&#039;&#039;&lt;br /&gt;
: The first &amp;quot;Secondary Program Loader&amp;quot; (SPL) that the ROM bootloader will load and execute on the MCU R5F Core0&lt;br /&gt;
: It seems to be an agregate of an U-Boot image (u-boot-spl.bin) and the TIFS firmware (sysfw)&lt;br /&gt;
: It will try to load two images : &amp;quot;tifs.bin&amp;quot; (embedded) and &amp;quot;tispl.bin&amp;quot; (from SD card)&lt;br /&gt;
* &#039;&#039;&#039;tifs.bin&#039;&#039;&#039;&lt;br /&gt;
: TI Foundational Security (TIFS)&lt;br /&gt;
: This firmware image is also called &amp;quot;SYSFW&amp;quot; and is included inside &#039;&#039;&#039;tiboot3.bin&#039;&#039;&#039;.&lt;br /&gt;
: It is used for the &amp;quot;Secure Management Services&amp;quot; (SMS), to be run on the corresponding R5F MCU.&lt;br /&gt;
* &#039;&#039;&#039;tispl.bin&#039;&#039;&#039;&lt;br /&gt;
: The second &amp;quot;Secondary Program Loader&amp;quot; (SPL). This one will run on one of the A53 cores.&lt;br /&gt;
: This image includes the &amp;quot;ARM Trusted Firmware&amp;quot; (ATF or Trusted Firmware-A) and the &amp;quot;Trusted Execution Environment&amp;quot; (TEE, provided by OP-TEE).&lt;br /&gt;
: It also includes the &amp;quot;Device Management&amp;quot; (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).&lt;br /&gt;
: And then the &amp;quot;SPL&amp;quot; proper, which may be a reduced U-Boot image, commonly refered to as the &amp;quot;first-stage bootloader&amp;quot; which will mainly initialise the A53 core, the DDR memory, and the required subsystems so that the full U-Boot image can run.&lt;br /&gt;
* &#039;&#039;&#039;uboot.img&#039;&#039;&#039;&lt;br /&gt;
: This is the final U-Boot image, also called &amp;quot;second-stage bootloader&amp;quot;, which will also run on one of the A53 cores.&lt;br /&gt;
: This one will provide a prompt and load the Linux kernel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Where to get more information ===&lt;br /&gt;
Credits : I started finding useful and accurate information on [https://olof-astrand.medium.com/building-u-boot-and-the-linux-kernel-for-the-beagley-ai-board-0942565ab28b 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&#039;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.&lt;br /&gt;
&lt;br /&gt;
Anyway, this post references some useful sources :&lt;br /&gt;
* [https://software-dl.ti.com/tisci/esd/latest/1_intro/TISCI.html Texas Instruments System Controller Interface] (TISCI)&lt;br /&gt;
* [https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-j722s/09_02_00_05/exports/docs/psdk_rtos/docs/user_guide/index.html Processor SDK RTOS J722S]&lt;br /&gt;
* [https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-am67a/latest/exports/docs/devices/J7_Family/linux/index.html Processor SDK Linux Software Developer’s Guide], mainly chapter 3 : Foundational Components.&lt;br /&gt;
&lt;br /&gt;
TI even provides access to the sources of these documentations : https://github.com/TexasInstruments/processor-sdk-doc !!&lt;br /&gt;
&lt;br /&gt;
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/&lt;br /&gt;
&lt;br /&gt;
* 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])&lt;br /&gt;
* 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])&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
=== TI ===&lt;br /&gt;
* git://git.ti.com/ti-u-boot/ti-u-boot.git  (or use the one from openbeagle.org)&lt;br /&gt;
* git://git.ti.com/ti-linux-kernel/ti-linux-kernel.git  &lt;br /&gt;
* git://git.ti.com/processor-firmware/ti-linux-firmware.git&lt;br /&gt;
: branch : ti-linux-firmware&lt;br /&gt;
: Note that a very small subset is required from this 2.4Go repository (see below in &amp;quot;Build the images&amp;quot; section).&lt;br /&gt;
&lt;br /&gt;
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]&lt;br /&gt;
&lt;br /&gt;
=== BeagleBone ===&lt;br /&gt;
* https://openbeagle.org/beagleboard/u-boot.git - tag &amp;quot;v2023.04-ti-09.02.00.009-BeagleY-AI&amp;quot;&lt;br /&gt;
: tag : v2025.04-rc3-BeagleY-AI&lt;br /&gt;
&lt;br /&gt;
=== Others ===&lt;br /&gt;
* https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git&lt;br /&gt;
: tag : lts-v2.12.1&lt;br /&gt;
* https://github.com/OP-TEE/optee_os.git&lt;br /&gt;
: tag : 4.5.0&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Build the images ==&lt;br /&gt;
The sources which proved most usefull in order to rebuild all the images (all but ti firmwares ...) :&lt;br /&gt;
* https://docs.u-boot.org/en/latest/board/ti/j722s_evm.html&lt;br /&gt;
* https://openbeagle.org/beagleboard/repos-arm64/-/blob/main/bb-u-boot-beagley-ai/suite/bookworm/debian/rules&lt;br /&gt;
&lt;br /&gt;
=== Compiler ===&lt;br /&gt;
The AM67A processor has R5 and A53 cores.&lt;br /&gt;
: The R5 cores need a 32bits compiler : arm-linux-gnueabi&lt;br /&gt;
 CC32=&amp;quot;arm-linux-gnueabi-&amp;quot;&lt;br /&gt;
: The A53 ones need a 64bits compiler : aarch64-linux-gnu&lt;br /&gt;
 CC64=&amp;quot;aarch64-linux-gnu-&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== U-Boot config ===&lt;br /&gt;
You&#039;ll need &amp;quot;ARM Trusted Firmware&amp;quot; (see above for sources and git tag I used)&lt;br /&gt;
 TFA_BOARD=lite&lt;br /&gt;
 TFA_EXTRA_ARGS=&amp;quot;SPD=opteed&amp;quot;&lt;br /&gt;
 make CROSS_COMPILE=${CC64} ARCH=aarch64 PLAT=k3 ${TFA_EXTRA_ARGS} TARGET_BOARD=${TFA_BOARD} bl31&lt;br /&gt;
Result is &amp;quot;build/k3/${TFA_BOARD}/release/bl31.bin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
You&#039;ll also need a &amp;quot;Trusted Execution Environnment&amp;quot; (see above for sources and git tag I used)&lt;br /&gt;
 OPTEE_PLATFORM=k3-j722s&lt;br /&gt;
 OPTEE_EXTRA_ARGS=&amp;quot;CFG_WITH_SOFTWARE_PRNG=y CFG_ARM64_core=y&amp;quot;&lt;br /&gt;
 make -j 12 CROSS_COMPILE=${CC32} CROSS_COMPILE64=${CC64} ${OPTEE_EXTRA_ARGS} PLATFORM=${OPTEE_PLATFORM}&lt;br /&gt;
Result is &amp;quot;core/tee-pager_v2.bin&amp;quot; which is in the output dir (either the one specified with &amp;quot;O=&amp;quot; option or under &amp;quot;out/.../&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
And a last one : some ti firmwares found in TI&#039;s Linux firmware repository (see above for sources and git tag I used).&lt;br /&gt;
If you don&#039;t want to keep the 2.4Go of firmwares, keep at most these ones :&lt;br /&gt;
: ti-linux-firmware/ti-dm/j722s/*&lt;br /&gt;
: ti-linux-firmware/ti-ipc/j722s/*&lt;br /&gt;
: ti-linux-firmware/ti-sysfw/ti-fs-firmware-j722s-hs-*&lt;br /&gt;
: ti-linux-firmware/ti-sysfw/cert.bin&lt;br /&gt;
And set this variable according to where you put them :&lt;br /&gt;
 LNX_FW_PATH=&amp;quot;..../ti-linux-firmware/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
And at last, the U-Boot part (remember that you will need two uboot images, once again, see above for the sources and tag I used) :&lt;br /&gt;
* One for the R5 core :&lt;br /&gt;
 make ARCH=arm am67a_beagley_ai_r5_defconfig&lt;br /&gt;
 make ARCH=arm -j 12 CROSS_COMPILE=${CC32} BINMAN_INDIRS=${LNX_FW_PATH}&lt;br /&gt;
: this one provides &amp;quot;tiboot3-j722s-hs-fs-evm.bin&amp;quot; which will be &amp;quot;tiboot3.bin&amp;quot;&lt;br /&gt;
* And one for the A53 cores :&lt;br /&gt;
: Set bl31 and bl32 variables to the results of ARM Trusted firmware (bl31) and Trusted Execution Environment (bl32) compilation&lt;br /&gt;
 bl31=&amp;quot;...../build/k3/${TFA_BOARD}/release/bl31.bin&amp;quot;&lt;br /&gt;
 bl32=&amp;quot;...../core/tee-pager_v2.bin&amp;quot;&lt;br /&gt;
 make ARCH=arm am67a_beagley_ai_a53_defconfig&lt;br /&gt;
 make ARCH=arm -j 12 CROSS_COMPILE=${CC64} BINMAN_INDIRS=${LNX_FW_PATH} BL31=${bl31} TEE=${bl32}&lt;br /&gt;
: this one provides both &amp;quot;tispl.bin&amp;quot; and &amp;quot;u-boot.img&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Linux ===&lt;br /&gt;
* Device tree : arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts&lt;br /&gt;
* Kernel config file : https://git.beagleboard.org/beagleboard/linux/-/blob/d89bfdd19e7161ddba4ce4f5e34425ae6020a6db/arch/arm64/configs/bb.org_defconfig&lt;br /&gt;
&lt;br /&gt;
== Linux kernel Configuration options to be checked ==&lt;br /&gt;
=== ACPI/UEFI Support ===&lt;br /&gt;
Was enabled in Robert Nelson kernel.&amp;lt;br /&amp;gt;&lt;br /&gt;
Must check whether it is really usefull, as it should be concurent to the device-tree mechanism which is the one used here.&lt;br /&gt;
* Boot option --&amp;gt; CONFIG_EFI : UEFI runtime support (Required for ACPI)&lt;br /&gt;
* CONFIG_ACPI : ACPI (Advanced Configuration and Power Interface) Support&lt;br /&gt;
&lt;br /&gt;
=== Power management ===&lt;br /&gt;
* Disabled all suspend to RAN and Disk&lt;br /&gt;
* Check for subsystems powermanagement&lt;br /&gt;
&lt;br /&gt;
=== Memory ===&lt;br /&gt;
* Memory hotplug&lt;br /&gt;
* HWPoison pages injector&lt;br /&gt;
* Device memory (pmem, HMM, etc...) hotplug support&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Kernel config requiring user-space config at boot-time or runtime ==&lt;br /&gt;
* CPU frequency and CPU hotplug (/sys/devices/system/cpu)&lt;br /&gt;
* TCP SYN-Cookies (https://cr.yp.to/syncookies.html) : (echo 1 &amp;gt; /proc/sys/net/ipv4/tcp_syncookies)&lt;br /&gt;
* Power management&lt;br /&gt;
&lt;br /&gt;
== Liens officiels ==&lt;br /&gt;
* https://www.beagleboard.org/boards/beagley-ai&lt;br /&gt;
* [https://www.mouser.fr/ProductDetail/BeagleBoard-by-Seeed-Studio/102991834?qs=dbcCsuKDzFXY1JA%252BEGwyow%3D%3D Achat chez Mouser à 77€]&lt;br /&gt;
&lt;br /&gt;
== Pinout ==&lt;br /&gt;
* https://pinout.beagley.ai/&lt;br /&gt;
&lt;br /&gt;
* Tag connect clip : https://www.printables.com/model/879533-beagley-ai-tagconnect-clip-10pin&lt;br /&gt;
&lt;br /&gt;
== Debug port Connection ==&lt;br /&gt;
=== Onboard connector ===&lt;br /&gt;
Despite what some have published about everywhere on the Web (even [https://docs.beagle.cc/boards/beagley/ai/03-design.html#uart within official beagleboard online documentation]), the connector &#039;&#039;&#039;IS NOT&#039;&#039;&#039; 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.&amp;lt;br /&amp;gt;&lt;br /&gt;
The official BOM gives all the information :&lt;br /&gt;
* Manufacturer : MTCONN&lt;br /&gt;
* Manufacturer part number : MTWF63-103SRN-01163&lt;br /&gt;
&lt;br /&gt;
=== Where to find mating connector ===&lt;br /&gt;
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 &amp;quot;WTB10-XX-02-2&amp;quot; ... but I do not know where to get these, much less the mating connector.&amp;lt;br /&amp;gt;&lt;br /&gt;
Some googling gave me another manufacturer with a compatible reference : [https://www.we-online.com/en/components/products/em/connectors/wire-to-board/wr_wtb/wr_wtb_1_00_mm Wurth Elektronik].&amp;lt;br /&amp;gt;&lt;br /&gt;
What&#039;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.&amp;lt;br /&amp;gt;&lt;br /&gt;
Here are the references/links for all the parts :&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_1_00_SMT_MALE_VERTICAL_SHROUDED_HEADER_6653XX124022 WR-WTB 1.00 mm SMT Male Vertical Shrouded Header]&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_1_00_FEMALE_TERMINAL_HOUSING_6650XX113322 WR-WTB 1.00 mm Female Terminal Housing]&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_1_00_FEMALE_CRIMP_CONTACT_665X0113722 WR-WTB 1.00 mm Female Crimp Terminal]&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_PRE-CRIMPED_CABLE_1_00 WR-WTB Pre-crimped wire]&lt;br /&gt;
* And even the [https://www.we-online.com/en/components/products/WTB_MANUAL_CRIMPING_TOOL_11#600665232280 WR-WTB Manual Crimping Tool]&lt;br /&gt;
Choose the number of positions you need (3 for the debug port, but there&#039;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.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* BeagleBoard linux git repository : https://git.beagleboard.org/beagleboard/linux&lt;br /&gt;
* BeagleY-AI design and detailed specifications : https://docs.beagle.cc/boards/beagley/ai/03-design.html&lt;br /&gt;
* [https://olof-astrand.medium.com/building-u-boot-and-the-linux-kernel-for-the-beagley-ai-board-0942565ab28b Building u-boot and the linux kernel for the beagleY AI board]&lt;br /&gt;
* [https://community.element14.com/products/devtools/single-board-computers/next-genbeaglebone/b/blog/posts/beagley-ai-review BeagleY-AI Review - Part 1] and [https://community.element14.com/products/devtools/single-board-computers/next-genbeaglebone/b/blog/posts/beagley-ai-review---part-2 BeagleY-AI Review - Part 2] on element 14 community.&lt;/div&gt;</summary>
		<author><name>Drizzt</name></author>
	</entry>
	<entry>
		<id>http://wiki.nathael.net/index.php?title=Dev/BeagleBone/BeagleYAI&amp;diff=365</id>
		<title>Dev/BeagleBone/BeagleYAI</title>
		<link rel="alternate" type="text/html" href="http://wiki.nathael.net/index.php?title=Dev/BeagleBone/BeagleYAI&amp;diff=365"/>
		<updated>2025-03-24T12:45:31Z</updated>

		<summary type="html">&lt;p&gt;Drizzt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Description ==&lt;br /&gt;
* https://docs.beagle.cc/boards/beagley/ai/03-design.html&lt;br /&gt;
=== Processor ===&lt;br /&gt;
* The board has a TI [https://www.ti.com/product/AM67A AM67A] (from the Jacinto J722S TDA4AEN familly) SOC, HS-FS variant, with&lt;br /&gt;
: - four Arm Cortex-A53 cores (main cores, 1.4Ghz, 64bits aarch64 Armv8.x-A, VFPv4) (Still haven&#039;t found which is the .x in Armv8.x)&lt;br /&gt;
: - two C7x DSP cores&lt;br /&gt;
: - one user Arm Cortex-R5F core (MCU channel with FFI, 800Mhz, Armv7-R, VFPv3)&lt;br /&gt;
: - two additional Arm Cortex-R5F cores (Device management and Run-time management).&lt;br /&gt;
* IMG BXS-4-64 GPU (OpenGL ES3.2 and Vulkan 1.2 API support)&lt;br /&gt;
The complete [https://software-dl.ti.com/tisci/esd/latest/5_soc_doc/j722s/processors.html list of processors] and [https://software-dl.ti.com/tisci/esd/latest/5_soc_doc/j722s/hosts.html cores]. Note that a physical processor can have multiple Host IDs (cores) depending on context and domain.&lt;br /&gt;
&lt;br /&gt;
Note : According to chat GPT (which is wrong), &amp;lt;s&amp;gt;&amp;quot;The BeagleY-AI board uses the TDA4VM SoC in the HS-SE variant&amp;quot;&amp;lt;/s&amp;gt;.&lt;br /&gt;
: The HS-SE (High Security - Single Edition) variant is focused on applications where data security and confidentiality are critical.&lt;br /&gt;
: The HS-FS (High Security - Functional Safety) variant is more geared toward functional safety requirements.&lt;br /&gt;
&lt;br /&gt;
The BeagleY-AI board uses an AM67A which is a TDA4AEN variant and not a TDA4VM, and it is a HS-FS variant.&lt;br /&gt;
&lt;br /&gt;
=== Memory ===&lt;br /&gt;
* 4Go LPDDR4&lt;br /&gt;
* EEPROM (FT24C32A) on I2C0&lt;br /&gt;
* microSD Card&lt;br /&gt;
&lt;br /&gt;
=== Design, Shematics and Mechanical ===&lt;br /&gt;
* https://openbeagle.org/beagley-ai/beagley-ai&lt;br /&gt;
* https://docs.beagle.cc/boards/beagley/ai/03-design.html&lt;br /&gt;
&lt;br /&gt;
== The Boot process ==&lt;br /&gt;
&lt;br /&gt;
=== Overview ===&lt;br /&gt;
From chapter &amp;quot;[https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-j722s/09_02_00_05/exports/docs/psdk_rtos/docs/user_guide/developer_notes_bootloaders.html 9.2. Understanding bootloaders in Processor SDK J722S (RTOS/Linux)] and [https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-am67a/latest/exports/docs/linux/Foundational_Components/U-Boot/UG-General-Info.html Processor SDK Linux for AM67A, chapter 3.1.1.1 - U-Boot - General Information] :&lt;br /&gt;
: The boot process on the J722S processor requires two different U-Boot images and some firmwares, which will run on different cores.&lt;br /&gt;
Information is a little bit confused, maybe because there may be different ways to achieve the boot process.&lt;br /&gt;
&lt;br /&gt;
You may find the documentation within U-Boot sources to be pretty complete : https://docs.u-boot.org/en/latest/board/ti/j722s_evm.html&lt;br /&gt;
: Note that it does not directly targets the BeagleY-AI board but the J722S-EVM one&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;tiboot3.bin&#039;&#039;&#039;&lt;br /&gt;
: The first &amp;quot;Secondary Program Loader&amp;quot; (SPL) that the ROM bootloader will load and execute on the MCU R5F Core0&lt;br /&gt;
: It seems to be an agregate of an U-Boot image (u-boot-spl.bin) and the TIFS firmware (sysfw)&lt;br /&gt;
: It will try to load two images : &amp;quot;tifs.bin&amp;quot; (embedded) and &amp;quot;tispl.bin&amp;quot; (from SD card)&lt;br /&gt;
* &#039;&#039;&#039;tifs.bin&#039;&#039;&#039;&lt;br /&gt;
: TI Foundational Security (TIFS)&lt;br /&gt;
: This firmware image is also called &amp;quot;SYSFW&amp;quot; and is included inside &#039;&#039;&#039;tiboot3.bin&#039;&#039;&#039;.&lt;br /&gt;
: It is used for the &amp;quot;Secure Management Services&amp;quot; (SMS), to be run on the corresponding R5F MCU.&lt;br /&gt;
* &#039;&#039;&#039;tispl.bin&#039;&#039;&#039;&lt;br /&gt;
: The second &amp;quot;Secondary Program Loader&amp;quot; (SPL). This one will run on one of the A53 cores.&lt;br /&gt;
: This image includes the &amp;quot;ARM Trusted Firmware&amp;quot; (ATF or Trusted Firmware-A) and the &amp;quot;Trusted Execution Environment&amp;quot; (TEE, provided by OP-TEE).&lt;br /&gt;
: It also includes the &amp;quot;Device Management&amp;quot; (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).&lt;br /&gt;
: And then the &amp;quot;SPL&amp;quot; proper, which may be a reduced U-Boot image, commonly refered to as the &amp;quot;first-stage bootloader&amp;quot; which will mainly initialise the A53 core, the DDR memory, and the required subsystems so that the full U-Boot image can run.&lt;br /&gt;
* &#039;&#039;&#039;uboot.img&#039;&#039;&#039;&lt;br /&gt;
: This is the final U-Boot image, also called &amp;quot;second-stage bootloader&amp;quot;, which will also run on one of the A53 cores.&lt;br /&gt;
: This one will provide a prompt and load the Linux kernel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Where to get more information ===&lt;br /&gt;
Credits : I started finding useful and accurate information on [https://olof-astrand.medium.com/building-u-boot-and-the-linux-kernel-for-the-beagley-ai-board-0942565ab28b 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&#039;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.&lt;br /&gt;
&lt;br /&gt;
Anyway, this post references some useful sources :&lt;br /&gt;
* [https://software-dl.ti.com/tisci/esd/latest/1_intro/TISCI.html Texas Instruments System Controller Interface] (TISCI)&lt;br /&gt;
* [https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-j722s/09_02_00_05/exports/docs/psdk_rtos/docs/user_guide/index.html Processor SDK RTOS J722S]&lt;br /&gt;
* [https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-am67a/latest/exports/docs/devices/J7_Family/linux/index.html Processor SDK Linux Software Developer’s Guide], mainly chapter 3 : Foundational Components.&lt;br /&gt;
&lt;br /&gt;
TI even provides access to the sources of these documentations : https://github.com/TexasInstruments/processor-sdk-doc !!&lt;br /&gt;
&lt;br /&gt;
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/&lt;br /&gt;
&lt;br /&gt;
* 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])&lt;br /&gt;
* 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])&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
=== TI ===&lt;br /&gt;
* git://git.ti.com/ti-u-boot/ti-u-boot.git  (or use the one from openbeagle.org)&lt;br /&gt;
* git://git.ti.com/ti-linux-kernel/ti-linux-kernel.git  &lt;br /&gt;
* git://git.ti.com/processor-firmware/ti-linux-firmware.git&lt;br /&gt;
: branch : ti-linux-firmware&lt;br /&gt;
: Note that a very small subset is required from this 2.4Go repository (see below in &amp;quot;Build the images&amp;quot; section).&lt;br /&gt;
&lt;br /&gt;
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]&lt;br /&gt;
&lt;br /&gt;
=== BeagleBone ===&lt;br /&gt;
* https://openbeagle.org/beagleboard/u-boot.git - tag &amp;quot;v2023.04-ti-09.02.00.009-BeagleY-AI&amp;quot;&lt;br /&gt;
: tag : v2025.04-rc3-BeagleY-AI&lt;br /&gt;
&lt;br /&gt;
=== Others ===&lt;br /&gt;
* https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git&lt;br /&gt;
: tag : lts-v2.12.1&lt;br /&gt;
* https://github.com/OP-TEE/optee_os.git&lt;br /&gt;
: tag : 4.5.0&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Build the images ==&lt;br /&gt;
The sources which proved most usefull in order to rebuild all the images (all but ti firmwares ...) :&lt;br /&gt;
* https://docs.u-boot.org/en/latest/board/ti/j722s_evm.html&lt;br /&gt;
* https://openbeagle.org/beagleboard/repos-arm64/-/blob/main/bb-u-boot-beagley-ai/suite/bookworm/debian/rules&lt;br /&gt;
&lt;br /&gt;
=== Compiler ===&lt;br /&gt;
The AM67A processor has R5 and A53 cores.&lt;br /&gt;
: The R5 cores need a 32bits compiler : arm-linux-gnueabi&lt;br /&gt;
 CC32=&amp;quot;arm-linux-gnueabi-&amp;quot;&lt;br /&gt;
: The A53 ones need a 64bits compiler : aarch64-linux-gnu&lt;br /&gt;
 CC64=&amp;quot;aarch64-linux-gnu-&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== U-Boot config ===&lt;br /&gt;
You&#039;ll need &amp;quot;ARM Trusted Firmware&amp;quot; (see above for sources and git tag I used)&lt;br /&gt;
 TFA_BOARD=lite&lt;br /&gt;
 TFA_EXTRA_ARGS=&amp;quot;SPD=opteed&amp;quot;&lt;br /&gt;
 make CROSS_COMPILE=${CC64} ARCH=aarch64 PLAT=k3 ${TFA_EXTRA_ARGS} TARGET_BOARD=${TFA_BOARD} bl31&lt;br /&gt;
Result is &amp;quot;build/k3/${TFA_BOARD}/release/bl31.bin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
You&#039;ll also need a &amp;quot;Trusted Execution Environnment&amp;quot; (see above for sources and git tag I used)&lt;br /&gt;
 OPTEE_PLATFORM=k3-j722s&lt;br /&gt;
 OPTEE_EXTRA_ARGS=&amp;quot;CFG_WITH_SOFTWARE_PRNG=y CFG_ARM64_core=y&amp;quot;&lt;br /&gt;
 make -j 12 CROSS_COMPILE=${CC32} CROSS_COMPILE64=${CC64} ${OPTEE_EXTRA_ARGS} PLATFORM=${OPTEE_PLATFORM}&lt;br /&gt;
Result is &amp;quot;core/tee-pager_v2.bin&amp;quot; which is in the output dir (either the one specified with &amp;quot;O=&amp;quot; option or under &amp;quot;out/.../&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
And a last one : some ti firmwares found in TI&#039;s Linux firmware repository (see above for sources and git tag I used).&lt;br /&gt;
If you don&#039;t want to keep the 2.4Go of firmwares, keep at most these ones :&lt;br /&gt;
: ti-linux-firmware/ti-dm/j722s/*&lt;br /&gt;
: ti-linux-firmware/ti-ipc/j722s/*&lt;br /&gt;
: ti-linux-firmware/ti-sysfw/ti-fs-firmware-j722s-hs-*&lt;br /&gt;
: ti-linux-firmware/ti-sysfw/cert.bin&lt;br /&gt;
And set this variable according to where you put them :&lt;br /&gt;
 LNX_FW_PATH=&amp;quot;..../ti-linux-firmware/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
And at last, the U-Boot part (remember that you will need two uboot images, once again, see above for the sources and tag I used) :&lt;br /&gt;
* One for the R5 core :&lt;br /&gt;
 make ARCH=arm am67a_beagley_ai_r5_defconfig&lt;br /&gt;
 make ARCH=arm -j 12 CROSS_COMPILE=${CC32} BINMAN_INDIRS=${LNX_FW_PATH}&lt;br /&gt;
: this one provides &amp;quot;tiboot3-j722s-hs-fs-evm.bin&amp;quot; which will be &amp;quot;tiboot3.bin&amp;quot;&lt;br /&gt;
* And one for the A53 cores :&lt;br /&gt;
: Set bl31 and bl32 variables to the results of ARM Trusted firmware (bl31) and Trusted Execution Environment (bl32) compilation&lt;br /&gt;
 bl31=&amp;quot;...../build/k3/${TFA_BOARD}/release/bl31.bin&amp;quot;&lt;br /&gt;
 bl32=&amp;quot;...../core/tee-pager_v2.bin&amp;quot;&lt;br /&gt;
 make ARCH=arm am67a_beagley_ai_a53_defconfig&lt;br /&gt;
 make ARCH=arm -j 12 CROSS_COMPILE=${CC64} BINMAN_INDIRS=${LNX_FW_PATH} BL31=${bl31} TEE=${bl32}&lt;br /&gt;
: this one provides both &amp;quot;tispl.bin&amp;quot; and &amp;quot;u-boot.img&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Linux ===&lt;br /&gt;
* Device tree : arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts&lt;br /&gt;
* Kernel config file : https://git.beagleboard.org/beagleboard/linux/-/blob/d89bfdd19e7161ddba4ce4f5e34425ae6020a6db/arch/arm64/configs/bb.org_defconfig&lt;br /&gt;
&lt;br /&gt;
== Linux kernel Configuration options to be checked ==&lt;br /&gt;
=== ACPI/UEFI Support ===&lt;br /&gt;
Was enabled in Robert Nelson kernel.&amp;lt;br /&amp;gt;&lt;br /&gt;
Must check whether it is really usefull, as it should be concurent to the device-tree mechanism which is the one used here.&lt;br /&gt;
* Boot option --&amp;gt; CONFIG_EFI : UEFI runtime support (Required for ACPI)&lt;br /&gt;
* CONFIG_ACPI : ACPI (Advanced Configuration and Power Interface) Support&lt;br /&gt;
&lt;br /&gt;
=== Power management ===&lt;br /&gt;
* Disabled all suspend to RAN and Disk&lt;br /&gt;
* Check for subsystems powermanagement&lt;br /&gt;
&lt;br /&gt;
=== Memory ===&lt;br /&gt;
* Memory hotplug&lt;br /&gt;
* HWPoison pages injector&lt;br /&gt;
* Device memory (pmem, HMM, etc...) hotplug support&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Kernel config requiring user-space config at boot-time or runtime ==&lt;br /&gt;
* CPU frequency&lt;br /&gt;
* TCP SYN-Cookies (https://cr.yp.to/syncookies.html) : (echo 1 &amp;gt; /proc/sys/net/ipv4/tcp_syncookies)&lt;br /&gt;
* Power management&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Liens officiels ==&lt;br /&gt;
* https://www.beagleboard.org/boards/beagley-ai&lt;br /&gt;
* [https://www.mouser.fr/ProductDetail/BeagleBoard-by-Seeed-Studio/102991834?qs=dbcCsuKDzFXY1JA%252BEGwyow%3D%3D Achat chez Mouser à 77€]&lt;br /&gt;
&lt;br /&gt;
== Pinout ==&lt;br /&gt;
* https://pinout.beagley.ai/&lt;br /&gt;
&lt;br /&gt;
* Tag connect clip : https://www.printables.com/model/879533-beagley-ai-tagconnect-clip-10pin&lt;br /&gt;
&lt;br /&gt;
== Debug port Connection ==&lt;br /&gt;
=== Onboard connector ===&lt;br /&gt;
Despite what some have published about everywhere on the Web (even [https://docs.beagle.cc/boards/beagley/ai/03-design.html#uart within official beagleboard online documentation]), the connector &#039;&#039;&#039;IS NOT&#039;&#039;&#039; 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.&amp;lt;br /&amp;gt;&lt;br /&gt;
The official BOM gives all the information :&lt;br /&gt;
* Manufacturer : MTCONN&lt;br /&gt;
* Manufacturer part number : MTWF63-103SRN-01163&lt;br /&gt;
&lt;br /&gt;
=== Where to find mating connector ===&lt;br /&gt;
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 &amp;quot;WTB10-XX-02-2&amp;quot; ... but I do not know where to get these, much less the mating connector.&amp;lt;br /&amp;gt;&lt;br /&gt;
Some googling gave me another manufacturer with a compatible reference : [https://www.we-online.com/en/components/products/em/connectors/wire-to-board/wr_wtb/wr_wtb_1_00_mm Wurth Elektronik].&amp;lt;br /&amp;gt;&lt;br /&gt;
What&#039;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.&amp;lt;br /&amp;gt;&lt;br /&gt;
Here are the references/links for all the parts :&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_1_00_SMT_MALE_VERTICAL_SHROUDED_HEADER_6653XX124022 WR-WTB 1.00 mm SMT Male Vertical Shrouded Header]&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_1_00_FEMALE_TERMINAL_HOUSING_6650XX113322 WR-WTB 1.00 mm Female Terminal Housing]&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_1_00_FEMALE_CRIMP_CONTACT_665X0113722 WR-WTB 1.00 mm Female Crimp Terminal]&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_PRE-CRIMPED_CABLE_1_00 WR-WTB Pre-crimped wire]&lt;br /&gt;
* And even the [https://www.we-online.com/en/components/products/WTB_MANUAL_CRIMPING_TOOL_11#600665232280 WR-WTB Manual Crimping Tool]&lt;br /&gt;
Choose the number of positions you need (3 for the debug port, but there&#039;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.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* BeagleBoard linux git repository : https://git.beagleboard.org/beagleboard/linux&lt;br /&gt;
* BeagleY-AI design and detailed specifications : https://docs.beagle.cc/boards/beagley/ai/03-design.html&lt;br /&gt;
* [https://olof-astrand.medium.com/building-u-boot-and-the-linux-kernel-for-the-beagley-ai-board-0942565ab28b Building u-boot and the linux kernel for the beagleY AI board]&lt;br /&gt;
* [https://community.element14.com/products/devtools/single-board-computers/next-genbeaglebone/b/blog/posts/beagley-ai-review BeagleY-AI Review - Part 1] and [https://community.element14.com/products/devtools/single-board-computers/next-genbeaglebone/b/blog/posts/beagley-ai-review---part-2 BeagleY-AI Review - Part 2] on element 14 community.&lt;/div&gt;</summary>
		<author><name>Drizzt</name></author>
	</entry>
	<entry>
		<id>http://wiki.nathael.net/index.php?title=Dev/BeagleBone/BeagleYAI&amp;diff=364</id>
		<title>Dev/BeagleBone/BeagleYAI</title>
		<link rel="alternate" type="text/html" href="http://wiki.nathael.net/index.php?title=Dev/BeagleBone/BeagleYAI&amp;diff=364"/>
		<updated>2025-03-24T10:13:33Z</updated>

		<summary type="html">&lt;p&gt;Drizzt: /* Liens officiels */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Description ==&lt;br /&gt;
* https://docs.beagle.cc/boards/beagley/ai/03-design.html&lt;br /&gt;
=== Processor ===&lt;br /&gt;
* The board has a TI [https://www.ti.com/product/AM67A AM67A] (from the Jacinto J722S TDA4AEN familly) SOC with&lt;br /&gt;
: - four Arm Cortex-A53 cores (main cores, 1.4Ghz)&lt;br /&gt;
: - two C7x DSP cores&lt;br /&gt;
: - one user Arm Cortex-R5F core (MCU channel with FFI, 800Mhz)&lt;br /&gt;
: - two additional Arm Cortex-R5F cores (Device management and Run-time management).&lt;br /&gt;
* IMG BXS-4-64 GPU (OpenGL ES3.2 and Vulkan 1.2 API support)&lt;br /&gt;
The complete [https://software-dl.ti.com/tisci/esd/latest/5_soc_doc/j722s/processors.html list of processors] and [https://software-dl.ti.com/tisci/esd/latest/5_soc_doc/j722s/hosts.html cores]. Note that a physical processor can have multiple Host IDs (cores) depending on context and domain.&lt;br /&gt;
&lt;br /&gt;
According to chat GPT (which is wrong), &amp;lt;s&amp;gt;&amp;quot;The BeagleY-AI board uses the TDA4VM SoC in the HS-SE variant&amp;quot;&amp;lt;/s&amp;gt;.&lt;br /&gt;
: The HS-SE (High Security - Single Edition) variant is focused on applications where data security and confidentiality are critical.&lt;br /&gt;
: The HS-FS (High Security - Functional Safety) variant is more geared toward functional safety requirements.&lt;br /&gt;
&lt;br /&gt;
The BeagleY-AI board uses an AM67A which is a TDA4AEN variant and not a TDA4VM, and it is a HS-FS variant.&lt;br /&gt;
&lt;br /&gt;
=== Memory ===&lt;br /&gt;
* 4Go LPDDR4&lt;br /&gt;
* EEPROM (FT24C32A) on I2C0&lt;br /&gt;
* microSD Card&lt;br /&gt;
&lt;br /&gt;
=== Design, Shematics and Mechanical ===&lt;br /&gt;
* https://openbeagle.org/beagley-ai/beagley-ai&lt;br /&gt;
* https://docs.beagle.cc/boards/beagley/ai/03-design.html&lt;br /&gt;
&lt;br /&gt;
== The Boot process ==&lt;br /&gt;
&lt;br /&gt;
=== Overview ===&lt;br /&gt;
From chapter &amp;quot;[https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-j722s/09_02_00_05/exports/docs/psdk_rtos/docs/user_guide/developer_notes_bootloaders.html 9.2. Understanding bootloaders in Processor SDK J722S (RTOS/Linux)] and [https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-am67a/latest/exports/docs/linux/Foundational_Components/U-Boot/UG-General-Info.html Processor SDK Linux for AM67A, chapter 3.1.1.1 - U-Boot - General Information] :&lt;br /&gt;
: The boot process on the J722S processor requires two different U-Boot images and some firmwares, which will run on different cores.&lt;br /&gt;
Information is a little bit confused, maybe because there may be different ways to achieve the boot process.&lt;br /&gt;
&lt;br /&gt;
You may find the documentation within U-Boot sources to be pretty complete : https://docs.u-boot.org/en/latest/board/ti/j722s_evm.html&lt;br /&gt;
: Note that it does not directly targets the BeagleY-AI board but the J722S-EVM one&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;tiboot3.bin&#039;&#039;&#039;&lt;br /&gt;
: The first &amp;quot;Secondary Program Loader&amp;quot; (SPL) that the ROM bootloader will load and execute on the MCU R5F Core0&lt;br /&gt;
: It seems to be an agregate of an U-Boot image (u-boot-spl.bin) and the TIFS firmware (sysfw)&lt;br /&gt;
: It will try to load two images : &amp;quot;tifs.bin&amp;quot; (embedded) and &amp;quot;tispl.bin&amp;quot; (from SD card)&lt;br /&gt;
* &#039;&#039;&#039;tifs.bin&#039;&#039;&#039;&lt;br /&gt;
: TI Foundational Security (TIFS)&lt;br /&gt;
: This firmware image is also called &amp;quot;SYSFW&amp;quot; and is included inside &#039;&#039;&#039;tiboot3.bin&#039;&#039;&#039;.&lt;br /&gt;
: It is used for the &amp;quot;Secure Management Services&amp;quot; (SMS), to be run on the corresponding R5F MCU.&lt;br /&gt;
* &#039;&#039;&#039;tispl.bin&#039;&#039;&#039;&lt;br /&gt;
: The second &amp;quot;Secondary Program Loader&amp;quot; (SPL). This one will run on one of the A53 cores.&lt;br /&gt;
: This image includes the &amp;quot;ARM Trusted Firmware&amp;quot; (ATF or Trusted Firmware-A) and the &amp;quot;Trusted Execution Environment&amp;quot; (TEE, provided by OP-TEE).&lt;br /&gt;
: It also includes the &amp;quot;Device Management&amp;quot; (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).&lt;br /&gt;
: And then the &amp;quot;SPL&amp;quot; proper, which may be a reduced U-Boot image, commonly refered to as the &amp;quot;first-stage bootloader&amp;quot; which will mainly initialise the A53 core, the DDR memory, and the required subsystems so that the full U-Boot image can run.&lt;br /&gt;
* &#039;&#039;&#039;uboot.img&#039;&#039;&#039;&lt;br /&gt;
: This is the final U-Boot image, also called &amp;quot;second-stage bootloader&amp;quot;, which will also run on one of the A53 cores.&lt;br /&gt;
: This one will provide a prompt and load the Linux kernel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Where to get more information ===&lt;br /&gt;
Credits : I started finding useful and accurate information on [https://olof-astrand.medium.com/building-u-boot-and-the-linux-kernel-for-the-beagley-ai-board-0942565ab28b 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&#039;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.&lt;br /&gt;
&lt;br /&gt;
Anyway, this post references some useful sources :&lt;br /&gt;
* [https://software-dl.ti.com/tisci/esd/latest/1_intro/TISCI.html Texas Instruments System Controller Interface] (TISCI)&lt;br /&gt;
* [https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-j722s/09_02_00_05/exports/docs/psdk_rtos/docs/user_guide/index.html Processor SDK RTOS J722S]&lt;br /&gt;
* [https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-am67a/latest/exports/docs/devices/J7_Family/linux/index.html Processor SDK Linux Software Developer’s Guide], mainly chapter 3 : Foundational Components.&lt;br /&gt;
&lt;br /&gt;
TI even provides access to the sources of these documentations : https://github.com/TexasInstruments/processor-sdk-doc !!&lt;br /&gt;
&lt;br /&gt;
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/&lt;br /&gt;
&lt;br /&gt;
* 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])&lt;br /&gt;
* 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])&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
=== TI ===&lt;br /&gt;
* git://git.ti.com/ti-u-boot/ti-u-boot.git  (or use the one from openbeagle.org)&lt;br /&gt;
* git://git.ti.com/ti-linux-kernel/ti-linux-kernel.git  &lt;br /&gt;
* git://git.ti.com/processor-firmware/ti-linux-firmware.git&lt;br /&gt;
: branch : ti-linux-firmware&lt;br /&gt;
: Note that a very small subset is required from this 2.4Go repository (see below in &amp;quot;Build the images&amp;quot; section).&lt;br /&gt;
&lt;br /&gt;
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]&lt;br /&gt;
&lt;br /&gt;
=== BeagleBone ===&lt;br /&gt;
* https://openbeagle.org/beagleboard/u-boot.git - tag &amp;quot;v2023.04-ti-09.02.00.009-BeagleY-AI&amp;quot;&lt;br /&gt;
: tag : v2025.04-rc3-BeagleY-AI&lt;br /&gt;
&lt;br /&gt;
=== Others ===&lt;br /&gt;
* https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git&lt;br /&gt;
: tag : lts-v2.12.1&lt;br /&gt;
* https://github.com/OP-TEE/optee_os.git&lt;br /&gt;
: tag : 4.5.0&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Build the images ==&lt;br /&gt;
The sources which proved most usefull in order to rebuild all the images (all but ti firmwares ...) :&lt;br /&gt;
* https://docs.u-boot.org/en/latest/board/ti/j722s_evm.html&lt;br /&gt;
* https://openbeagle.org/beagleboard/repos-arm64/-/blob/main/bb-u-boot-beagley-ai/suite/bookworm/debian/rules&lt;br /&gt;
&lt;br /&gt;
=== Compiler ===&lt;br /&gt;
The AM67A processor has R5 and A53 cores.&lt;br /&gt;
: The R5 cores need a 32bits compiler : arm-linux-gnueabi&lt;br /&gt;
 CC32=&amp;quot;arm-linux-gnueabi-&amp;quot;&lt;br /&gt;
: The A53 ones need a 64bits compiler : aarch64-linux-gnu&lt;br /&gt;
 CC64=&amp;quot;aarch64-linux-gnu-&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== U-Boot config ===&lt;br /&gt;
You&#039;ll need &amp;quot;ARM Trusted Firmware&amp;quot; (see above for sources and git tag I used)&lt;br /&gt;
 TFA_BOARD=lite&lt;br /&gt;
 TFA_EXTRA_ARGS=&amp;quot;SPD=opteed&amp;quot;&lt;br /&gt;
 make CROSS_COMPILE=${CC64} ARCH=aarch64 PLAT=k3 ${TFA_EXTRA_ARGS} TARGET_BOARD=${TFA_BOARD} bl31&lt;br /&gt;
Result is &amp;quot;build/k3/${TFA_BOARD}/release/bl31.bin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
You&#039;ll also need a &amp;quot;Trusted Execution Environnment&amp;quot; (see above for sources and git tag I used)&lt;br /&gt;
 OPTEE_PLATFORM=k3-j722s&lt;br /&gt;
 OPTEE_EXTRA_ARGS=&amp;quot;CFG_WITH_SOFTWARE_PRNG=y CFG_ARM64_core=y&amp;quot;&lt;br /&gt;
 make -j 12 CROSS_COMPILE=${CC32} CROSS_COMPILE64=${CC64} ${OPTEE_EXTRA_ARGS} PLATFORM=${OPTEE_PLATFORM}&lt;br /&gt;
Result is &amp;quot;core/tee-pager_v2.bin&amp;quot; which is in the output dir (either the one specified with &amp;quot;O=&amp;quot; option or under &amp;quot;out/.../&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
And a last one : some ti firmwares found in TI&#039;s Linux firmware repository (see above for sources and git tag I used).&lt;br /&gt;
If you don&#039;t want to keep the 2.4Go of firmwares, keep at most these ones :&lt;br /&gt;
: ti-linux-firmware/ti-dm/j722s/*&lt;br /&gt;
: ti-linux-firmware/ti-ipc/j722s/*&lt;br /&gt;
: ti-linux-firmware/ti-sysfw/ti-fs-firmware-j722s-hs-*&lt;br /&gt;
: ti-linux-firmware/ti-sysfw/cert.bin&lt;br /&gt;
And set this variable according to where you put them :&lt;br /&gt;
 LNX_FW_PATH=&amp;quot;..../ti-linux-firmware/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
And at last, the U-Boot part (remember that you will need two uboot images, once again, see above for the sources and tag I used) :&lt;br /&gt;
* One for the R5 core :&lt;br /&gt;
 make ARCH=arm am67a_beagley_ai_r5_defconfig&lt;br /&gt;
 make ARCH=arm -j 12 CROSS_COMPILE=${CC32} BINMAN_INDIRS=${LNX_FW_PATH}&lt;br /&gt;
: this one provides &amp;quot;tiboot3-j722s-hs-fs-evm.bin&amp;quot; which will be &amp;quot;tiboot3.bin&amp;quot;&lt;br /&gt;
* And one for the A53 cores :&lt;br /&gt;
: Set bl31 and bl32 variables to the results of ARM Trusted firmware (bl31) and Trusted Execution Environment (bl32) compilation&lt;br /&gt;
 bl31=&amp;quot;...../build/k3/${TFA_BOARD}/release/bl31.bin&amp;quot;&lt;br /&gt;
 bl32=&amp;quot;...../core/tee-pager_v2.bin&amp;quot;&lt;br /&gt;
 make ARCH=arm am67a_beagley_ai_a53_defconfig&lt;br /&gt;
 make ARCH=arm -j 12 CROSS_COMPILE=${CC64} BINMAN_INDIRS=${LNX_FW_PATH} BL31=${bl31} TEE=${bl32}&lt;br /&gt;
: this one provides both &amp;quot;tispl.bin&amp;quot; and &amp;quot;u-boot.img&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Linux ===&lt;br /&gt;
* Device tree : arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts&lt;br /&gt;
* Kernel config file : https://git.beagleboard.org/beagleboard/linux/-/blob/d89bfdd19e7161ddba4ce4f5e34425ae6020a6db/arch/arm64/configs/bb.org_defconfig&lt;br /&gt;
&lt;br /&gt;
== Linux kernel Configuration options to be checked ==&lt;br /&gt;
== ACPI/UEFI Support ==&lt;br /&gt;
Was enabled in Robert Nelson kernel.&amp;lt;br /&amp;gt;&lt;br /&gt;
Must check whether it is really usefull, as it should be concurent to the device-tree mechanism which is the one used here.&lt;br /&gt;
* Boot option --&amp;gt; CONFIG_EFI : UEFI runtime support (Required for ACPI)&lt;br /&gt;
* CONFIG_ACPI : ACPI (Advanced Configuration and Power Interface) Support&lt;br /&gt;
&lt;br /&gt;
== Power management ==&lt;br /&gt;
* Disabled all suspend to RAN and Disk&lt;br /&gt;
* Check for subsystems powermanagement&lt;br /&gt;
&lt;br /&gt;
=== Memory ===&lt;br /&gt;
* Memory hotplug&lt;br /&gt;
* HWPoison pages injector&lt;br /&gt;
* Device memory (pmem, HMM, etc...) hotplug support&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Kernel config requiring user-space config at boot-time or runtime ==&lt;br /&gt;
* CPU frequency&lt;br /&gt;
* TCP SYN-Cookies (https://cr.yp.to/syncookies.html) : (echo 1 &amp;gt; /proc/sys/net/ipv4/tcp_syncookies)&lt;br /&gt;
* Power management&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Liens officiels ==&lt;br /&gt;
* https://www.beagleboard.org/boards/beagley-ai&lt;br /&gt;
* [https://www.mouser.fr/ProductDetail/BeagleBoard-by-Seeed-Studio/102991834?qs=dbcCsuKDzFXY1JA%252BEGwyow%3D%3D Achat chez Mouser à 77€]&lt;br /&gt;
&lt;br /&gt;
== Pinout ==&lt;br /&gt;
* https://pinout.beagley.ai/&lt;br /&gt;
&lt;br /&gt;
* Tag connect clip : https://www.printables.com/model/879533-beagley-ai-tagconnect-clip-10pin&lt;br /&gt;
&lt;br /&gt;
== Debug port Connection ==&lt;br /&gt;
=== Onboard connector ===&lt;br /&gt;
Despite what some have published about everywhere on the Web (even [https://docs.beagle.cc/boards/beagley/ai/03-design.html#uart within official beagleboard online documentation]), the connector &#039;&#039;&#039;IS NOT&#039;&#039;&#039; 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.&amp;lt;br /&amp;gt;&lt;br /&gt;
The official BOM gives all the information :&lt;br /&gt;
* Manufacturer : MTCONN&lt;br /&gt;
* Manufacturer part number : MTWF63-103SRN-01163&lt;br /&gt;
&lt;br /&gt;
=== Where to find mating connector ===&lt;br /&gt;
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 &amp;quot;WTB10-XX-02-2&amp;quot; ... but I do not know where to get these, much less the mating connector.&amp;lt;br /&amp;gt;&lt;br /&gt;
Some googling gave me another manufacturer with a compatible reference : [https://www.we-online.com/en/components/products/em/connectors/wire-to-board/wr_wtb/wr_wtb_1_00_mm Wurth Elektronik].&amp;lt;br /&amp;gt;&lt;br /&gt;
What&#039;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.&amp;lt;br /&amp;gt;&lt;br /&gt;
Here are the references/links for all the parts :&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_1_00_SMT_MALE_VERTICAL_SHROUDED_HEADER_6653XX124022 WR-WTB 1.00 mm SMT Male Vertical Shrouded Header]&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_1_00_FEMALE_TERMINAL_HOUSING_6650XX113322 WR-WTB 1.00 mm Female Terminal Housing]&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_1_00_FEMALE_CRIMP_CONTACT_665X0113722 WR-WTB 1.00 mm Female Crimp Terminal]&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_PRE-CRIMPED_CABLE_1_00 WR-WTB Pre-crimped wire]&lt;br /&gt;
* And even the [https://www.we-online.com/en/components/products/WTB_MANUAL_CRIMPING_TOOL_11#600665232280 WR-WTB Manual Crimping Tool]&lt;br /&gt;
Choose the number of positions you need (3 for the debug port, but there&#039;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.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* BeagleBoard linux git repository : https://git.beagleboard.org/beagleboard/linux&lt;br /&gt;
* BeagleY-AI design and detailed specifications : https://docs.beagle.cc/boards/beagley/ai/03-design.html&lt;br /&gt;
* [https://olof-astrand.medium.com/building-u-boot-and-the-linux-kernel-for-the-beagley-ai-board-0942565ab28b Building u-boot and the linux kernel for the beagleY AI board]&lt;br /&gt;
* [https://community.element14.com/products/devtools/single-board-computers/next-genbeaglebone/b/blog/posts/beagley-ai-review BeagleY-AI Review - Part 1] and [https://community.element14.com/products/devtools/single-board-computers/next-genbeaglebone/b/blog/posts/beagley-ai-review---part-2 BeagleY-AI Review - Part 2] on element 14 community.&lt;/div&gt;</summary>
		<author><name>Drizzt</name></author>
	</entry>
	<entry>
		<id>http://wiki.nathael.net/index.php?title=Dev/BeagleBone/BeagleYAI&amp;diff=363</id>
		<title>Dev/BeagleBone/BeagleYAI</title>
		<link rel="alternate" type="text/html" href="http://wiki.nathael.net/index.php?title=Dev/BeagleBone/BeagleYAI&amp;diff=363"/>
		<updated>2025-03-20T01:48:49Z</updated>

		<summary type="html">&lt;p&gt;Drizzt: /* Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Description ==&lt;br /&gt;
* https://docs.beagle.cc/boards/beagley/ai/03-design.html&lt;br /&gt;
=== Processor ===&lt;br /&gt;
* The board has a TI [https://www.ti.com/product/AM67A AM67A] (from the Jacinto J722S TDA4AEN familly) SOC with&lt;br /&gt;
: - four Arm Cortex-A53 cores (main cores, 1.4Ghz)&lt;br /&gt;
: - two C7x DSP cores&lt;br /&gt;
: - one user Arm Cortex-R5F core (MCU channel with FFI, 800Mhz)&lt;br /&gt;
: - two additional Arm Cortex-R5F cores (Device management and Run-time management).&lt;br /&gt;
* IMG BXS-4-64 GPU (OpenGL ES3.2 and Vulkan 1.2 API support)&lt;br /&gt;
The complete [https://software-dl.ti.com/tisci/esd/latest/5_soc_doc/j722s/processors.html list of processors] and [https://software-dl.ti.com/tisci/esd/latest/5_soc_doc/j722s/hosts.html cores]. Note that a physical processor can have multiple Host IDs (cores) depending on context and domain.&lt;br /&gt;
&lt;br /&gt;
According to chat GPT (which is wrong), &amp;lt;s&amp;gt;&amp;quot;The BeagleY-AI board uses the TDA4VM SoC in the HS-SE variant&amp;quot;&amp;lt;/s&amp;gt;.&lt;br /&gt;
: The HS-SE (High Security - Single Edition) variant is focused on applications where data security and confidentiality are critical.&lt;br /&gt;
: The HS-FS (High Security - Functional Safety) variant is more geared toward functional safety requirements.&lt;br /&gt;
&lt;br /&gt;
The BeagleY-AI board uses an AM67A which is a TDA4AEN variant and not a TDA4VM, and it is a HS-FS variant.&lt;br /&gt;
&lt;br /&gt;
=== Memory ===&lt;br /&gt;
* 4Go LPDDR4&lt;br /&gt;
* EEPROM (FT24C32A) on I2C0&lt;br /&gt;
* microSD Card&lt;br /&gt;
&lt;br /&gt;
=== Design, Shematics and Mechanical ===&lt;br /&gt;
* https://openbeagle.org/beagley-ai/beagley-ai&lt;br /&gt;
* https://docs.beagle.cc/boards/beagley/ai/03-design.html&lt;br /&gt;
&lt;br /&gt;
== The Boot process ==&lt;br /&gt;
&lt;br /&gt;
=== Overview ===&lt;br /&gt;
From chapter &amp;quot;[https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-j722s/09_02_00_05/exports/docs/psdk_rtos/docs/user_guide/developer_notes_bootloaders.html 9.2. Understanding bootloaders in Processor SDK J722S (RTOS/Linux)] and [https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-am67a/latest/exports/docs/linux/Foundational_Components/U-Boot/UG-General-Info.html Processor SDK Linux for AM67A, chapter 3.1.1.1 - U-Boot - General Information] :&lt;br /&gt;
: The boot process on the J722S processor requires two different U-Boot images and some firmwares, which will run on different cores.&lt;br /&gt;
Information is a little bit confused, maybe because there may be different ways to achieve the boot process.&lt;br /&gt;
&lt;br /&gt;
You may find the documentation within U-Boot sources to be pretty complete : https://docs.u-boot.org/en/latest/board/ti/j722s_evm.html&lt;br /&gt;
: Note that it does not directly targets the BeagleY-AI board but the J722S-EVM one&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;tiboot3.bin&#039;&#039;&#039;&lt;br /&gt;
: The first &amp;quot;Secondary Program Loader&amp;quot; (SPL) that the ROM bootloader will load and execute on the MCU R5F Core0&lt;br /&gt;
: It seems to be an agregate of an U-Boot image (u-boot-spl.bin) and the TIFS firmware (sysfw)&lt;br /&gt;
: It will try to load two images : &amp;quot;tifs.bin&amp;quot; (embedded) and &amp;quot;tispl.bin&amp;quot; (from SD card)&lt;br /&gt;
* &#039;&#039;&#039;tifs.bin&#039;&#039;&#039;&lt;br /&gt;
: TI Foundational Security (TIFS)&lt;br /&gt;
: This firmware image is also called &amp;quot;SYSFW&amp;quot; and is included inside &#039;&#039;&#039;tiboot3.bin&#039;&#039;&#039;.&lt;br /&gt;
: It is used for the &amp;quot;Secure Management Services&amp;quot; (SMS), to be run on the corresponding R5F MCU.&lt;br /&gt;
* &#039;&#039;&#039;tispl.bin&#039;&#039;&#039;&lt;br /&gt;
: The second &amp;quot;Secondary Program Loader&amp;quot; (SPL). This one will run on one of the A53 cores.&lt;br /&gt;
: This image includes the &amp;quot;ARM Trusted Firmware&amp;quot; (ATF or Trusted Firmware-A) and the &amp;quot;Trusted Execution Environment&amp;quot; (TEE, provided by OP-TEE).&lt;br /&gt;
: It also includes the &amp;quot;Device Management&amp;quot; (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).&lt;br /&gt;
: And then the &amp;quot;SPL&amp;quot; proper, which may be a reduced U-Boot image, commonly refered to as the &amp;quot;first-stage bootloader&amp;quot; which will mainly initialise the A53 core, the DDR memory, and the required subsystems so that the full U-Boot image can run.&lt;br /&gt;
* &#039;&#039;&#039;uboot.img&#039;&#039;&#039;&lt;br /&gt;
: This is the final U-Boot image, also called &amp;quot;second-stage bootloader&amp;quot;, which will also run on one of the A53 cores.&lt;br /&gt;
: This one will provide a prompt and load the Linux kernel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Where to get more information ===&lt;br /&gt;
Credits : I started finding useful and accurate information on [https://olof-astrand.medium.com/building-u-boot-and-the-linux-kernel-for-the-beagley-ai-board-0942565ab28b 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&#039;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.&lt;br /&gt;
&lt;br /&gt;
Anyway, this post references some useful sources :&lt;br /&gt;
* [https://software-dl.ti.com/tisci/esd/latest/1_intro/TISCI.html Texas Instruments System Controller Interface] (TISCI)&lt;br /&gt;
* [https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-j722s/09_02_00_05/exports/docs/psdk_rtos/docs/user_guide/index.html Processor SDK RTOS J722S]&lt;br /&gt;
* [https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-am67a/latest/exports/docs/devices/J7_Family/linux/index.html Processor SDK Linux Software Developer’s Guide], mainly chapter 3 : Foundational Components.&lt;br /&gt;
&lt;br /&gt;
TI even provides access to the sources of these documentations : https://github.com/TexasInstruments/processor-sdk-doc !!&lt;br /&gt;
&lt;br /&gt;
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/&lt;br /&gt;
&lt;br /&gt;
* 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])&lt;br /&gt;
* 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])&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
=== TI ===&lt;br /&gt;
* git://git.ti.com/ti-u-boot/ti-u-boot.git  (or use the one from openbeagle.org)&lt;br /&gt;
* git://git.ti.com/ti-linux-kernel/ti-linux-kernel.git  &lt;br /&gt;
* git://git.ti.com/processor-firmware/ti-linux-firmware.git&lt;br /&gt;
: branch : ti-linux-firmware&lt;br /&gt;
: Note that a very small subset is required from this 2.4Go repository (see below in &amp;quot;Build the images&amp;quot; section).&lt;br /&gt;
&lt;br /&gt;
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]&lt;br /&gt;
&lt;br /&gt;
=== BeagleBone ===&lt;br /&gt;
* https://openbeagle.org/beagleboard/u-boot.git - tag &amp;quot;v2023.04-ti-09.02.00.009-BeagleY-AI&amp;quot;&lt;br /&gt;
: tag : v2025.04-rc3-BeagleY-AI&lt;br /&gt;
&lt;br /&gt;
=== Others ===&lt;br /&gt;
* https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git&lt;br /&gt;
: tag : lts-v2.12.1&lt;br /&gt;
* https://github.com/OP-TEE/optee_os.git&lt;br /&gt;
: tag : 4.5.0&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Build the images ==&lt;br /&gt;
The sources which proved most usefull in order to rebuild all the images (all but ti firmwares ...) :&lt;br /&gt;
* https://docs.u-boot.org/en/latest/board/ti/j722s_evm.html&lt;br /&gt;
* https://openbeagle.org/beagleboard/repos-arm64/-/blob/main/bb-u-boot-beagley-ai/suite/bookworm/debian/rules&lt;br /&gt;
&lt;br /&gt;
=== Compiler ===&lt;br /&gt;
The AM67A processor has R5 and A53 cores.&lt;br /&gt;
: The R5 cores need a 32bits compiler : arm-linux-gnueabi&lt;br /&gt;
 CC32=&amp;quot;arm-linux-gnueabi-&amp;quot;&lt;br /&gt;
: The A53 ones need a 64bits compiler : aarch64-linux-gnu&lt;br /&gt;
 CC64=&amp;quot;aarch64-linux-gnu-&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== U-Boot config ===&lt;br /&gt;
You&#039;ll need &amp;quot;ARM Trusted Firmware&amp;quot; (see above for sources and git tag I used)&lt;br /&gt;
 TFA_BOARD=lite&lt;br /&gt;
 TFA_EXTRA_ARGS=&amp;quot;SPD=opteed&amp;quot;&lt;br /&gt;
 make CROSS_COMPILE=${CC64} ARCH=aarch64 PLAT=k3 ${TFA_EXTRA_ARGS} TARGET_BOARD=${TFA_BOARD} bl31&lt;br /&gt;
Result is &amp;quot;build/k3/${TFA_BOARD}/release/bl31.bin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
You&#039;ll also need a &amp;quot;Trusted Execution Environnment&amp;quot; (see above for sources and git tag I used)&lt;br /&gt;
 OPTEE_PLATFORM=k3-j722s&lt;br /&gt;
 OPTEE_EXTRA_ARGS=&amp;quot;CFG_WITH_SOFTWARE_PRNG=y CFG_ARM64_core=y&amp;quot;&lt;br /&gt;
 make -j 12 CROSS_COMPILE=${CC32} CROSS_COMPILE64=${CC64} ${OPTEE_EXTRA_ARGS} PLATFORM=${OPTEE_PLATFORM}&lt;br /&gt;
Result is &amp;quot;core/tee-pager_v2.bin&amp;quot; which is in the output dir (either the one specified with &amp;quot;O=&amp;quot; option or under &amp;quot;out/.../&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
And a last one : some ti firmwares found in TI&#039;s Linux firmware repository (see above for sources and git tag I used).&lt;br /&gt;
If you don&#039;t want to keep the 2.4Go of firmwares, keep at most these ones :&lt;br /&gt;
: ti-linux-firmware/ti-dm/j722s/*&lt;br /&gt;
: ti-linux-firmware/ti-ipc/j722s/*&lt;br /&gt;
: ti-linux-firmware/ti-sysfw/ti-fs-firmware-j722s-hs-*&lt;br /&gt;
: ti-linux-firmware/ti-sysfw/cert.bin&lt;br /&gt;
And set this variable according to where you put them :&lt;br /&gt;
 LNX_FW_PATH=&amp;quot;..../ti-linux-firmware/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
And at last, the U-Boot part (remember that you will need two uboot images, once again, see above for the sources and tag I used) :&lt;br /&gt;
* One for the R5 core :&lt;br /&gt;
 make ARCH=arm am67a_beagley_ai_r5_defconfig&lt;br /&gt;
 make ARCH=arm -j 12 CROSS_COMPILE=${CC32} BINMAN_INDIRS=${LNX_FW_PATH}&lt;br /&gt;
: this one provides &amp;quot;tiboot3-j722s-hs-fs-evm.bin&amp;quot; which will be &amp;quot;tiboot3.bin&amp;quot;&lt;br /&gt;
* And one for the A53 cores :&lt;br /&gt;
: Set bl31 and bl32 variables to the results of ARM Trusted firmware (bl31) and Trusted Execution Environment (bl32) compilation&lt;br /&gt;
 bl31=&amp;quot;...../build/k3/${TFA_BOARD}/release/bl31.bin&amp;quot;&lt;br /&gt;
 bl32=&amp;quot;...../core/tee-pager_v2.bin&amp;quot;&lt;br /&gt;
 make ARCH=arm am67a_beagley_ai_a53_defconfig&lt;br /&gt;
 make ARCH=arm -j 12 CROSS_COMPILE=${CC64} BINMAN_INDIRS=${LNX_FW_PATH} BL31=${bl31} TEE=${bl32}&lt;br /&gt;
: this one provides both &amp;quot;tispl.bin&amp;quot; and &amp;quot;u-boot.img&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Linux ===&lt;br /&gt;
* Device tree : arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts&lt;br /&gt;
* Kernel config file : https://git.beagleboard.org/beagleboard/linux/-/blob/d89bfdd19e7161ddba4ce4f5e34425ae6020a6db/arch/arm64/configs/bb.org_defconfig&lt;br /&gt;
&lt;br /&gt;
== Liens officiels ==&lt;br /&gt;
* https://www.beagleboard.org/boards/beagley-ai&lt;br /&gt;
* [https://www.mouser.fr/ProductDetail/BeagleBoard-by-Seeed-Studio/102991834?qs=dbcCsuKDzFXY1JA%252BEGwyow%3D%3D Achat chez Mouser à 77€]&lt;br /&gt;
&lt;br /&gt;
== Pinout ==&lt;br /&gt;
* https://pinout.beagley.ai/&lt;br /&gt;
&lt;br /&gt;
* Tag connect clip : https://www.printables.com/model/879533-beagley-ai-tagconnect-clip-10pin&lt;br /&gt;
&lt;br /&gt;
== Debug port Connection ==&lt;br /&gt;
=== Onboard connector ===&lt;br /&gt;
Despite what some have published about everywhere on the Web (even [https://docs.beagle.cc/boards/beagley/ai/03-design.html#uart within official beagleboard online documentation]), the connector &#039;&#039;&#039;IS NOT&#039;&#039;&#039; 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.&amp;lt;br /&amp;gt;&lt;br /&gt;
The official BOM gives all the information :&lt;br /&gt;
* Manufacturer : MTCONN&lt;br /&gt;
* Manufacturer part number : MTWF63-103SRN-01163&lt;br /&gt;
&lt;br /&gt;
=== Where to find mating connector ===&lt;br /&gt;
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 &amp;quot;WTB10-XX-02-2&amp;quot; ... but I do not know where to get these, much less the mating connector.&amp;lt;br /&amp;gt;&lt;br /&gt;
Some googling gave me another manufacturer with a compatible reference : [https://www.we-online.com/en/components/products/em/connectors/wire-to-board/wr_wtb/wr_wtb_1_00_mm Wurth Elektronik].&amp;lt;br /&amp;gt;&lt;br /&gt;
What&#039;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.&amp;lt;br /&amp;gt;&lt;br /&gt;
Here are the references/links for all the parts :&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_1_00_SMT_MALE_VERTICAL_SHROUDED_HEADER_6653XX124022 WR-WTB 1.00 mm SMT Male Vertical Shrouded Header]&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_1_00_FEMALE_TERMINAL_HOUSING_6650XX113322 WR-WTB 1.00 mm Female Terminal Housing]&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_1_00_FEMALE_CRIMP_CONTACT_665X0113722 WR-WTB 1.00 mm Female Crimp Terminal]&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_PRE-CRIMPED_CABLE_1_00 WR-WTB Pre-crimped wire]&lt;br /&gt;
* And even the [https://www.we-online.com/en/components/products/WTB_MANUAL_CRIMPING_TOOL_11#600665232280 WR-WTB Manual Crimping Tool]&lt;br /&gt;
Choose the number of positions you need (3 for the debug port, but there&#039;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.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* BeagleBoard linux git repository : https://git.beagleboard.org/beagleboard/linux&lt;br /&gt;
* BeagleY-AI design and detailed specifications : https://docs.beagle.cc/boards/beagley/ai/03-design.html&lt;br /&gt;
* [https://olof-astrand.medium.com/building-u-boot-and-the-linux-kernel-for-the-beagley-ai-board-0942565ab28b Building u-boot and the linux kernel for the beagleY AI board]&lt;br /&gt;
* [https://community.element14.com/products/devtools/single-board-computers/next-genbeaglebone/b/blog/posts/beagley-ai-review BeagleY-AI Review - Part 1] and [https://community.element14.com/products/devtools/single-board-computers/next-genbeaglebone/b/blog/posts/beagley-ai-review---part-2 BeagleY-AI Review - Part 2] on element 14 community.&lt;/div&gt;</summary>
		<author><name>Drizzt</name></author>
	</entry>
	<entry>
		<id>http://wiki.nathael.net/index.php?title=Dev/BeagleBone/BeagleYAI&amp;diff=362</id>
		<title>Dev/BeagleBone/BeagleYAI</title>
		<link rel="alternate" type="text/html" href="http://wiki.nathael.net/index.php?title=Dev/BeagleBone/BeagleYAI&amp;diff=362"/>
		<updated>2025-03-19T23:05:57Z</updated>

		<summary type="html">&lt;p&gt;Drizzt: /* Processor */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Description ==&lt;br /&gt;
* https://docs.beagle.cc/boards/beagley/ai/03-design.html&lt;br /&gt;
=== Processor ===&lt;br /&gt;
* The board has a TI [https://www.ti.com/product/AM67A AM67A] (from the Jacinto J722S TDA4AEN familly) SOC with&lt;br /&gt;
: - four Arm Cortex-A53 cores (main cores, 1.4Ghz)&lt;br /&gt;
: - two C7x DSP cores&lt;br /&gt;
: - one user Arm Cortex-R5F core (MCU channel with FFI, 800Mhz)&lt;br /&gt;
: - two additional Arm Cortex-R5F cores (Device management and Run-time management).&lt;br /&gt;
* IMG BXS-4-64 GPU (OpenGL ES3.2 and Vulkan 1.2 API support)&lt;br /&gt;
The complete [https://software-dl.ti.com/tisci/esd/latest/5_soc_doc/j722s/processors.html list of processors] and [https://software-dl.ti.com/tisci/esd/latest/5_soc_doc/j722s/hosts.html cores]. Note that a physical processor can have multiple Host IDs (cores) depending on context and domain.&lt;br /&gt;
&lt;br /&gt;
According to chat GPT (which is wrong), &amp;lt;s&amp;gt;&amp;quot;The BeagleY-AI board uses the TDA4VM SoC in the HS-SE variant&amp;quot;&amp;lt;/s&amp;gt;.&lt;br /&gt;
: The HS-SE (High Security - Single Edition) variant is focused on applications where data security and confidentiality are critical.&lt;br /&gt;
: The HS-FS (High Security - Functional Safety) variant is more geared toward functional safety requirements.&lt;br /&gt;
&lt;br /&gt;
The BeagleY-AI board uses an AM67A which is a TDA4AEN variant and not a TDA4VM, and it is a HS-FS variant.&lt;br /&gt;
&lt;br /&gt;
=== Memory ===&lt;br /&gt;
* 4Go LPDDR4&lt;br /&gt;
* EEPROM (FT24C32A) on I2C0&lt;br /&gt;
* microSD Card&lt;br /&gt;
&lt;br /&gt;
== The Boot process ==&lt;br /&gt;
&lt;br /&gt;
=== Overview ===&lt;br /&gt;
From chapter &amp;quot;[https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-j722s/09_02_00_05/exports/docs/psdk_rtos/docs/user_guide/developer_notes_bootloaders.html 9.2. Understanding bootloaders in Processor SDK J722S (RTOS/Linux)] and [https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-am67a/latest/exports/docs/linux/Foundational_Components/U-Boot/UG-General-Info.html Processor SDK Linux for AM67A, chapter 3.1.1.1 - U-Boot - General Information] :&lt;br /&gt;
: The boot process on the J722S processor requires two different U-Boot images and some firmwares, which will run on different cores.&lt;br /&gt;
Information is a little bit confused, maybe because there may be different ways to achieve the boot process.&lt;br /&gt;
&lt;br /&gt;
You may find the documentation within U-Boot sources to be pretty complete : https://docs.u-boot.org/en/latest/board/ti/j722s_evm.html&lt;br /&gt;
: Note that it does not directly targets the BeagleY-AI board but the J722S-EVM one&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;tiboot3.bin&#039;&#039;&#039;&lt;br /&gt;
: The first &amp;quot;Secondary Program Loader&amp;quot; (SPL) that the ROM bootloader will load and execute on the MCU R5F Core0&lt;br /&gt;
: It seems to be an agregate of an U-Boot image (u-boot-spl.bin) and the TIFS firmware (sysfw)&lt;br /&gt;
: It will try to load two images : &amp;quot;tifs.bin&amp;quot; (embedded) and &amp;quot;tispl.bin&amp;quot; (from SD card)&lt;br /&gt;
* &#039;&#039;&#039;tifs.bin&#039;&#039;&#039;&lt;br /&gt;
: TI Foundational Security (TIFS)&lt;br /&gt;
: This firmware image is also called &amp;quot;SYSFW&amp;quot; and is included inside &#039;&#039;&#039;tiboot3.bin&#039;&#039;&#039;.&lt;br /&gt;
: It is used for the &amp;quot;Secure Management Services&amp;quot; (SMS), to be run on the corresponding R5F MCU.&lt;br /&gt;
* &#039;&#039;&#039;tispl.bin&#039;&#039;&#039;&lt;br /&gt;
: The second &amp;quot;Secondary Program Loader&amp;quot; (SPL). This one will run on one of the A53 cores.&lt;br /&gt;
: This image includes the &amp;quot;ARM Trusted Firmware&amp;quot; (ATF or Trusted Firmware-A) and the &amp;quot;Trusted Execution Environment&amp;quot; (TEE, provided by OP-TEE).&lt;br /&gt;
: It also includes the &amp;quot;Device Management&amp;quot; (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).&lt;br /&gt;
: And then the &amp;quot;SPL&amp;quot; proper, which may be a reduced U-Boot image, commonly refered to as the &amp;quot;first-stage bootloader&amp;quot; which will mainly initialise the A53 core, the DDR memory, and the required subsystems so that the full U-Boot image can run.&lt;br /&gt;
* &#039;&#039;&#039;uboot.img&#039;&#039;&#039;&lt;br /&gt;
: This is the final U-Boot image, also called &amp;quot;second-stage bootloader&amp;quot;, which will also run on one of the A53 cores.&lt;br /&gt;
: This one will provide a prompt and load the Linux kernel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Where to get more information ===&lt;br /&gt;
Credits : I started finding useful and accurate information on [https://olof-astrand.medium.com/building-u-boot-and-the-linux-kernel-for-the-beagley-ai-board-0942565ab28b 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&#039;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.&lt;br /&gt;
&lt;br /&gt;
Anyway, this post references some useful sources :&lt;br /&gt;
* [https://software-dl.ti.com/tisci/esd/latest/1_intro/TISCI.html Texas Instruments System Controller Interface] (TISCI)&lt;br /&gt;
* [https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-j722s/09_02_00_05/exports/docs/psdk_rtos/docs/user_guide/index.html Processor SDK RTOS J722S]&lt;br /&gt;
* [https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-am67a/latest/exports/docs/devices/J7_Family/linux/index.html Processor SDK Linux Software Developer’s Guide], mainly chapter 3 : Foundational Components.&lt;br /&gt;
&lt;br /&gt;
TI even provides access to the sources of these documentations : https://github.com/TexasInstruments/processor-sdk-doc !!&lt;br /&gt;
&lt;br /&gt;
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/&lt;br /&gt;
&lt;br /&gt;
* 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])&lt;br /&gt;
* 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])&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
=== TI ===&lt;br /&gt;
* git://git.ti.com/ti-u-boot/ti-u-boot.git  (or use the one from openbeagle.org)&lt;br /&gt;
* git://git.ti.com/ti-linux-kernel/ti-linux-kernel.git  &lt;br /&gt;
* git://git.ti.com/processor-firmware/ti-linux-firmware.git&lt;br /&gt;
: branch : ti-linux-firmware&lt;br /&gt;
: Note that a very small subset is required from this 2.4Go repository (see below in &amp;quot;Build the images&amp;quot; section).&lt;br /&gt;
&lt;br /&gt;
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]&lt;br /&gt;
&lt;br /&gt;
=== BeagleBone ===&lt;br /&gt;
* https://openbeagle.org/beagleboard/u-boot.git - tag &amp;quot;v2023.04-ti-09.02.00.009-BeagleY-AI&amp;quot;&lt;br /&gt;
: tag : v2025.04-rc3-BeagleY-AI&lt;br /&gt;
&lt;br /&gt;
=== Others ===&lt;br /&gt;
* https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git&lt;br /&gt;
: tag : lts-v2.12.1&lt;br /&gt;
* https://github.com/OP-TEE/optee_os.git&lt;br /&gt;
: tag : 4.5.0&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Build the images ==&lt;br /&gt;
The sources which proved most usefull in order to rebuild all the images (all but ti firmwares ...) :&lt;br /&gt;
* https://docs.u-boot.org/en/latest/board/ti/j722s_evm.html&lt;br /&gt;
* https://openbeagle.org/beagleboard/repos-arm64/-/blob/main/bb-u-boot-beagley-ai/suite/bookworm/debian/rules&lt;br /&gt;
&lt;br /&gt;
=== Compiler ===&lt;br /&gt;
The AM67A processor has R5 and A53 cores.&lt;br /&gt;
: The R5 cores need a 32bits compiler : arm-linux-gnueabi&lt;br /&gt;
 CC32=&amp;quot;arm-linux-gnueabi-&amp;quot;&lt;br /&gt;
: The A53 ones need a 64bits compiler : aarch64-linux-gnu&lt;br /&gt;
 CC64=&amp;quot;aarch64-linux-gnu-&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== U-Boot config ===&lt;br /&gt;
You&#039;ll need &amp;quot;ARM Trusted Firmware&amp;quot; (see above for sources and git tag I used)&lt;br /&gt;
 TFA_BOARD=lite&lt;br /&gt;
 TFA_EXTRA_ARGS=&amp;quot;SPD=opteed&amp;quot;&lt;br /&gt;
 make CROSS_COMPILE=${CC64} ARCH=aarch64 PLAT=k3 ${TFA_EXTRA_ARGS} TARGET_BOARD=${TFA_BOARD} bl31&lt;br /&gt;
Result is &amp;quot;build/k3/${TFA_BOARD}/release/bl31.bin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
You&#039;ll also need a &amp;quot;Trusted Execution Environnment&amp;quot; (see above for sources and git tag I used)&lt;br /&gt;
 OPTEE_PLATFORM=k3-j722s&lt;br /&gt;
 OPTEE_EXTRA_ARGS=&amp;quot;CFG_WITH_SOFTWARE_PRNG=y CFG_ARM64_core=y&amp;quot;&lt;br /&gt;
 make -j 12 CROSS_COMPILE=${CC32} CROSS_COMPILE64=${CC64} ${OPTEE_EXTRA_ARGS} PLATFORM=${OPTEE_PLATFORM}&lt;br /&gt;
Result is &amp;quot;core/tee-pager_v2.bin&amp;quot; which is in the output dir (either the one specified with &amp;quot;O=&amp;quot; option or under &amp;quot;out/.../&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
And a last one : some ti firmwares found in TI&#039;s Linux firmware repository (see above for sources and git tag I used).&lt;br /&gt;
If you don&#039;t want to keep the 2.4Go of firmwares, keep at most these ones :&lt;br /&gt;
: ti-linux-firmware/ti-dm/j722s/*&lt;br /&gt;
: ti-linux-firmware/ti-ipc/j722s/*&lt;br /&gt;
: ti-linux-firmware/ti-sysfw/ti-fs-firmware-j722s-hs-*&lt;br /&gt;
: ti-linux-firmware/ti-sysfw/cert.bin&lt;br /&gt;
And set this variable according to where you put them :&lt;br /&gt;
 LNX_FW_PATH=&amp;quot;..../ti-linux-firmware/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
And at last, the U-Boot part (remember that you will need two uboot images, once again, see above for the sources and tag I used) :&lt;br /&gt;
* One for the R5 core :&lt;br /&gt;
 make ARCH=arm am67a_beagley_ai_r5_defconfig&lt;br /&gt;
 make ARCH=arm -j 12 CROSS_COMPILE=${CC32} BINMAN_INDIRS=${LNX_FW_PATH}&lt;br /&gt;
: this one provides &amp;quot;tiboot3-j722s-hs-fs-evm.bin&amp;quot; which will be &amp;quot;tiboot3.bin&amp;quot;&lt;br /&gt;
* And one for the A53 cores :&lt;br /&gt;
: Set bl31 and bl32 variables to the results of ARM Trusted firmware (bl31) and Trusted Execution Environment (bl32) compilation&lt;br /&gt;
 bl31=&amp;quot;...../build/k3/${TFA_BOARD}/release/bl31.bin&amp;quot;&lt;br /&gt;
 bl32=&amp;quot;...../core/tee-pager_v2.bin&amp;quot;&lt;br /&gt;
 make ARCH=arm am67a_beagley_ai_a53_defconfig&lt;br /&gt;
 make ARCH=arm -j 12 CROSS_COMPILE=${CC64} BINMAN_INDIRS=${LNX_FW_PATH} BL31=${bl31} TEE=${bl32}&lt;br /&gt;
: this one provides both &amp;quot;tispl.bin&amp;quot; and &amp;quot;u-boot.img&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Linux ===&lt;br /&gt;
* Device tree : arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts&lt;br /&gt;
* Kernel config file : https://git.beagleboard.org/beagleboard/linux/-/blob/d89bfdd19e7161ddba4ce4f5e34425ae6020a6db/arch/arm64/configs/bb.org_defconfig&lt;br /&gt;
&lt;br /&gt;
== Liens officiels ==&lt;br /&gt;
* https://www.beagleboard.org/boards/beagley-ai&lt;br /&gt;
* [https://www.mouser.fr/ProductDetail/BeagleBoard-by-Seeed-Studio/102991834?qs=dbcCsuKDzFXY1JA%252BEGwyow%3D%3D Achat chez Mouser à 77€]&lt;br /&gt;
&lt;br /&gt;
== Pinout ==&lt;br /&gt;
* https://pinout.beagley.ai/&lt;br /&gt;
&lt;br /&gt;
* Tag connect clip : https://www.printables.com/model/879533-beagley-ai-tagconnect-clip-10pin&lt;br /&gt;
&lt;br /&gt;
== Debug port Connection ==&lt;br /&gt;
=== Onboard connector ===&lt;br /&gt;
Despite what some have published about everywhere on the Web (even [https://docs.beagle.cc/boards/beagley/ai/03-design.html#uart within official beagleboard online documentation]), the connector &#039;&#039;&#039;IS NOT&#039;&#039;&#039; 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.&amp;lt;br /&amp;gt;&lt;br /&gt;
The official BOM gives all the information :&lt;br /&gt;
* Manufacturer : MTCONN&lt;br /&gt;
* Manufacturer part number : MTWF63-103SRN-01163&lt;br /&gt;
&lt;br /&gt;
=== Where to find mating connector ===&lt;br /&gt;
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 &amp;quot;WTB10-XX-02-2&amp;quot; ... but I do not know where to get these, much less the mating connector.&amp;lt;br /&amp;gt;&lt;br /&gt;
Some googling gave me another manufacturer with a compatible reference : [https://www.we-online.com/en/components/products/em/connectors/wire-to-board/wr_wtb/wr_wtb_1_00_mm Wurth Elektronik].&amp;lt;br /&amp;gt;&lt;br /&gt;
What&#039;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.&amp;lt;br /&amp;gt;&lt;br /&gt;
Here are the references/links for all the parts :&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_1_00_SMT_MALE_VERTICAL_SHROUDED_HEADER_6653XX124022 WR-WTB 1.00 mm SMT Male Vertical Shrouded Header]&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_1_00_FEMALE_TERMINAL_HOUSING_6650XX113322 WR-WTB 1.00 mm Female Terminal Housing]&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_1_00_FEMALE_CRIMP_CONTACT_665X0113722 WR-WTB 1.00 mm Female Crimp Terminal]&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_PRE-CRIMPED_CABLE_1_00 WR-WTB Pre-crimped wire]&lt;br /&gt;
* And even the [https://www.we-online.com/en/components/products/WTB_MANUAL_CRIMPING_TOOL_11#600665232280 WR-WTB Manual Crimping Tool]&lt;br /&gt;
Choose the number of positions you need (3 for the debug port, but there&#039;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.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* BeagleBoard linux git repository : https://git.beagleboard.org/beagleboard/linux&lt;br /&gt;
* BeagleY-AI design and detailed specifications : https://docs.beagle.cc/boards/beagley/ai/03-design.html&lt;br /&gt;
* [https://olof-astrand.medium.com/building-u-boot-and-the-linux-kernel-for-the-beagley-ai-board-0942565ab28b Building u-boot and the linux kernel for the beagleY AI board]&lt;br /&gt;
* [https://community.element14.com/products/devtools/single-board-computers/next-genbeaglebone/b/blog/posts/beagley-ai-review BeagleY-AI Review - Part 1] and [https://community.element14.com/products/devtools/single-board-computers/next-genbeaglebone/b/blog/posts/beagley-ai-review---part-2 BeagleY-AI Review - Part 2] on element 14 community.&lt;/div&gt;</summary>
		<author><name>Drizzt</name></author>
	</entry>
	<entry>
		<id>http://wiki.nathael.net/index.php?title=Dev/BeagleBone/BeagleYAI&amp;diff=361</id>
		<title>Dev/BeagleBone/BeagleYAI</title>
		<link rel="alternate" type="text/html" href="http://wiki.nathael.net/index.php?title=Dev/BeagleBone/BeagleYAI&amp;diff=361"/>
		<updated>2025-03-19T23:04:01Z</updated>

		<summary type="html">&lt;p&gt;Drizzt: /* Processor */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Description ==&lt;br /&gt;
* https://docs.beagle.cc/boards/beagley/ai/03-design.html&lt;br /&gt;
=== Processor ===&lt;br /&gt;
* The board has a TI [https://www.ti.com/product/AM67A AM67A] (from the Jacinto J722S TDA4AEN familly) SOC with&lt;br /&gt;
: - four Arm Cortex-A53 cores (main cores, 1.4Ghz)&lt;br /&gt;
: - two C7x DSP cores&lt;br /&gt;
: - one user Arm Cortex-R5F core (MCU channel with FFI, 800Mhz)&lt;br /&gt;
: - two additional Arm Cortex-R5F cores (Device management and Run-time management).&lt;br /&gt;
* IMG BXS-4-64 GPU (OpenGL ES3.2 and Vulkan 1.2 API support)&lt;br /&gt;
The complete [https://software-dl.ti.com/tisci/esd/latest/5_soc_doc/j722s/processors.html list of processors] and [https://software-dl.ti.com/tisci/esd/latest/5_soc_doc/j722s/hosts.html cores]. Note that a physical processor can have multiple Host IDs (cores) depending on context and domain.&lt;br /&gt;
&lt;br /&gt;
According to chat GPT (which is wrong), &amp;quot;The BeagleY-AI board uses the TDA4VM SoC in the HS-SE variant&amp;quot;.&lt;br /&gt;
: The HS-SE (High Security - Single Edition) variant is focused on applications where data security and confidentiality are critical.&lt;br /&gt;
: The HS-FS (High Security - Functional Safety) variant is more geared toward functional safety requirements.&lt;br /&gt;
&lt;br /&gt;
The BeagleY-AI board uses a TDA4AEN and not a TDA4VM, and it is a HS-FS variant.&lt;br /&gt;
&lt;br /&gt;
=== Memory ===&lt;br /&gt;
* 4Go LPDDR4&lt;br /&gt;
* EEPROM (FT24C32A) on I2C0&lt;br /&gt;
* microSD Card&lt;br /&gt;
&lt;br /&gt;
== The Boot process ==&lt;br /&gt;
&lt;br /&gt;
=== Overview ===&lt;br /&gt;
From chapter &amp;quot;[https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-j722s/09_02_00_05/exports/docs/psdk_rtos/docs/user_guide/developer_notes_bootloaders.html 9.2. Understanding bootloaders in Processor SDK J722S (RTOS/Linux)] and [https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-am67a/latest/exports/docs/linux/Foundational_Components/U-Boot/UG-General-Info.html Processor SDK Linux for AM67A, chapter 3.1.1.1 - U-Boot - General Information] :&lt;br /&gt;
: The boot process on the J722S processor requires two different U-Boot images and some firmwares, which will run on different cores.&lt;br /&gt;
Information is a little bit confused, maybe because there may be different ways to achieve the boot process.&lt;br /&gt;
&lt;br /&gt;
You may find the documentation within U-Boot sources to be pretty complete : https://docs.u-boot.org/en/latest/board/ti/j722s_evm.html&lt;br /&gt;
: Note that it does not directly targets the BeagleY-AI board but the J722S-EVM one&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;tiboot3.bin&#039;&#039;&#039;&lt;br /&gt;
: The first &amp;quot;Secondary Program Loader&amp;quot; (SPL) that the ROM bootloader will load and execute on the MCU R5F Core0&lt;br /&gt;
: It seems to be an agregate of an U-Boot image (u-boot-spl.bin) and the TIFS firmware (sysfw)&lt;br /&gt;
: It will try to load two images : &amp;quot;tifs.bin&amp;quot; (embedded) and &amp;quot;tispl.bin&amp;quot; (from SD card)&lt;br /&gt;
* &#039;&#039;&#039;tifs.bin&#039;&#039;&#039;&lt;br /&gt;
: TI Foundational Security (TIFS)&lt;br /&gt;
: This firmware image is also called &amp;quot;SYSFW&amp;quot; and is included inside &#039;&#039;&#039;tiboot3.bin&#039;&#039;&#039;.&lt;br /&gt;
: It is used for the &amp;quot;Secure Management Services&amp;quot; (SMS), to be run on the corresponding R5F MCU.&lt;br /&gt;
* &#039;&#039;&#039;tispl.bin&#039;&#039;&#039;&lt;br /&gt;
: The second &amp;quot;Secondary Program Loader&amp;quot; (SPL). This one will run on one of the A53 cores.&lt;br /&gt;
: This image includes the &amp;quot;ARM Trusted Firmware&amp;quot; (ATF or Trusted Firmware-A) and the &amp;quot;Trusted Execution Environment&amp;quot; (TEE, provided by OP-TEE).&lt;br /&gt;
: It also includes the &amp;quot;Device Management&amp;quot; (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).&lt;br /&gt;
: And then the &amp;quot;SPL&amp;quot; proper, which may be a reduced U-Boot image, commonly refered to as the &amp;quot;first-stage bootloader&amp;quot; which will mainly initialise the A53 core, the DDR memory, and the required subsystems so that the full U-Boot image can run.&lt;br /&gt;
* &#039;&#039;&#039;uboot.img&#039;&#039;&#039;&lt;br /&gt;
: This is the final U-Boot image, also called &amp;quot;second-stage bootloader&amp;quot;, which will also run on one of the A53 cores.&lt;br /&gt;
: This one will provide a prompt and load the Linux kernel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Where to get more information ===&lt;br /&gt;
Credits : I started finding useful and accurate information on [https://olof-astrand.medium.com/building-u-boot-and-the-linux-kernel-for-the-beagley-ai-board-0942565ab28b 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&#039;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.&lt;br /&gt;
&lt;br /&gt;
Anyway, this post references some useful sources :&lt;br /&gt;
* [https://software-dl.ti.com/tisci/esd/latest/1_intro/TISCI.html Texas Instruments System Controller Interface] (TISCI)&lt;br /&gt;
* [https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-j722s/09_02_00_05/exports/docs/psdk_rtos/docs/user_guide/index.html Processor SDK RTOS J722S]&lt;br /&gt;
* [https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-am67a/latest/exports/docs/devices/J7_Family/linux/index.html Processor SDK Linux Software Developer’s Guide], mainly chapter 3 : Foundational Components.&lt;br /&gt;
&lt;br /&gt;
TI even provides access to the sources of these documentations : https://github.com/TexasInstruments/processor-sdk-doc !!&lt;br /&gt;
&lt;br /&gt;
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/&lt;br /&gt;
&lt;br /&gt;
* 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])&lt;br /&gt;
* 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])&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
=== TI ===&lt;br /&gt;
* git://git.ti.com/ti-u-boot/ti-u-boot.git  (or use the one from openbeagle.org)&lt;br /&gt;
* git://git.ti.com/ti-linux-kernel/ti-linux-kernel.git  &lt;br /&gt;
* git://git.ti.com/processor-firmware/ti-linux-firmware.git&lt;br /&gt;
: branch : ti-linux-firmware&lt;br /&gt;
: Note that a very small subset is required from this 2.4Go repository (see below in &amp;quot;Build the images&amp;quot; section).&lt;br /&gt;
&lt;br /&gt;
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]&lt;br /&gt;
&lt;br /&gt;
=== BeagleBone ===&lt;br /&gt;
* https://openbeagle.org/beagleboard/u-boot.git - tag &amp;quot;v2023.04-ti-09.02.00.009-BeagleY-AI&amp;quot;&lt;br /&gt;
: tag : v2025.04-rc3-BeagleY-AI&lt;br /&gt;
&lt;br /&gt;
=== Others ===&lt;br /&gt;
* https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git&lt;br /&gt;
: tag : lts-v2.12.1&lt;br /&gt;
* https://github.com/OP-TEE/optee_os.git&lt;br /&gt;
: tag : 4.5.0&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Build the images ==&lt;br /&gt;
The sources which proved most usefull in order to rebuild all the images (all but ti firmwares ...) :&lt;br /&gt;
* https://docs.u-boot.org/en/latest/board/ti/j722s_evm.html&lt;br /&gt;
* https://openbeagle.org/beagleboard/repos-arm64/-/blob/main/bb-u-boot-beagley-ai/suite/bookworm/debian/rules&lt;br /&gt;
&lt;br /&gt;
=== Compiler ===&lt;br /&gt;
The AM67A processor has R5 and A53 cores.&lt;br /&gt;
: The R5 cores need a 32bits compiler : arm-linux-gnueabi&lt;br /&gt;
 CC32=&amp;quot;arm-linux-gnueabi-&amp;quot;&lt;br /&gt;
: The A53 ones need a 64bits compiler : aarch64-linux-gnu&lt;br /&gt;
 CC64=&amp;quot;aarch64-linux-gnu-&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== U-Boot config ===&lt;br /&gt;
You&#039;ll need &amp;quot;ARM Trusted Firmware&amp;quot; (see above for sources and git tag I used)&lt;br /&gt;
 TFA_BOARD=lite&lt;br /&gt;
 TFA_EXTRA_ARGS=&amp;quot;SPD=opteed&amp;quot;&lt;br /&gt;
 make CROSS_COMPILE=${CC64} ARCH=aarch64 PLAT=k3 ${TFA_EXTRA_ARGS} TARGET_BOARD=${TFA_BOARD} bl31&lt;br /&gt;
Result is &amp;quot;build/k3/${TFA_BOARD}/release/bl31.bin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
You&#039;ll also need a &amp;quot;Trusted Execution Environnment&amp;quot; (see above for sources and git tag I used)&lt;br /&gt;
 OPTEE_PLATFORM=k3-j722s&lt;br /&gt;
 OPTEE_EXTRA_ARGS=&amp;quot;CFG_WITH_SOFTWARE_PRNG=y CFG_ARM64_core=y&amp;quot;&lt;br /&gt;
 make -j 12 CROSS_COMPILE=${CC32} CROSS_COMPILE64=${CC64} ${OPTEE_EXTRA_ARGS} PLATFORM=${OPTEE_PLATFORM}&lt;br /&gt;
Result is &amp;quot;core/tee-pager_v2.bin&amp;quot; which is in the output dir (either the one specified with &amp;quot;O=&amp;quot; option or under &amp;quot;out/.../&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
And a last one : some ti firmwares found in TI&#039;s Linux firmware repository (see above for sources and git tag I used).&lt;br /&gt;
If you don&#039;t want to keep the 2.4Go of firmwares, keep at most these ones :&lt;br /&gt;
: ti-linux-firmware/ti-dm/j722s/*&lt;br /&gt;
: ti-linux-firmware/ti-ipc/j722s/*&lt;br /&gt;
: ti-linux-firmware/ti-sysfw/ti-fs-firmware-j722s-hs-*&lt;br /&gt;
: ti-linux-firmware/ti-sysfw/cert.bin&lt;br /&gt;
And set this variable according to where you put them :&lt;br /&gt;
 LNX_FW_PATH=&amp;quot;..../ti-linux-firmware/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
And at last, the U-Boot part (remember that you will need two uboot images, once again, see above for the sources and tag I used) :&lt;br /&gt;
* One for the R5 core :&lt;br /&gt;
 make ARCH=arm am67a_beagley_ai_r5_defconfig&lt;br /&gt;
 make ARCH=arm -j 12 CROSS_COMPILE=${CC32} BINMAN_INDIRS=${LNX_FW_PATH}&lt;br /&gt;
: this one provides &amp;quot;tiboot3-j722s-hs-fs-evm.bin&amp;quot; which will be &amp;quot;tiboot3.bin&amp;quot;&lt;br /&gt;
* And one for the A53 cores :&lt;br /&gt;
: Set bl31 and bl32 variables to the results of ARM Trusted firmware (bl31) and Trusted Execution Environment (bl32) compilation&lt;br /&gt;
 bl31=&amp;quot;...../build/k3/${TFA_BOARD}/release/bl31.bin&amp;quot;&lt;br /&gt;
 bl32=&amp;quot;...../core/tee-pager_v2.bin&amp;quot;&lt;br /&gt;
 make ARCH=arm am67a_beagley_ai_a53_defconfig&lt;br /&gt;
 make ARCH=arm -j 12 CROSS_COMPILE=${CC64} BINMAN_INDIRS=${LNX_FW_PATH} BL31=${bl31} TEE=${bl32}&lt;br /&gt;
: this one provides both &amp;quot;tispl.bin&amp;quot; and &amp;quot;u-boot.img&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Linux ===&lt;br /&gt;
* Device tree : arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts&lt;br /&gt;
* Kernel config file : https://git.beagleboard.org/beagleboard/linux/-/blob/d89bfdd19e7161ddba4ce4f5e34425ae6020a6db/arch/arm64/configs/bb.org_defconfig&lt;br /&gt;
&lt;br /&gt;
== Liens officiels ==&lt;br /&gt;
* https://www.beagleboard.org/boards/beagley-ai&lt;br /&gt;
* [https://www.mouser.fr/ProductDetail/BeagleBoard-by-Seeed-Studio/102991834?qs=dbcCsuKDzFXY1JA%252BEGwyow%3D%3D Achat chez Mouser à 77€]&lt;br /&gt;
&lt;br /&gt;
== Pinout ==&lt;br /&gt;
* https://pinout.beagley.ai/&lt;br /&gt;
&lt;br /&gt;
* Tag connect clip : https://www.printables.com/model/879533-beagley-ai-tagconnect-clip-10pin&lt;br /&gt;
&lt;br /&gt;
== Debug port Connection ==&lt;br /&gt;
=== Onboard connector ===&lt;br /&gt;
Despite what some have published about everywhere on the Web (even [https://docs.beagle.cc/boards/beagley/ai/03-design.html#uart within official beagleboard online documentation]), the connector &#039;&#039;&#039;IS NOT&#039;&#039;&#039; 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.&amp;lt;br /&amp;gt;&lt;br /&gt;
The official BOM gives all the information :&lt;br /&gt;
* Manufacturer : MTCONN&lt;br /&gt;
* Manufacturer part number : MTWF63-103SRN-01163&lt;br /&gt;
&lt;br /&gt;
=== Where to find mating connector ===&lt;br /&gt;
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 &amp;quot;WTB10-XX-02-2&amp;quot; ... but I do not know where to get these, much less the mating connector.&amp;lt;br /&amp;gt;&lt;br /&gt;
Some googling gave me another manufacturer with a compatible reference : [https://www.we-online.com/en/components/products/em/connectors/wire-to-board/wr_wtb/wr_wtb_1_00_mm Wurth Elektronik].&amp;lt;br /&amp;gt;&lt;br /&gt;
What&#039;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.&amp;lt;br /&amp;gt;&lt;br /&gt;
Here are the references/links for all the parts :&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_1_00_SMT_MALE_VERTICAL_SHROUDED_HEADER_6653XX124022 WR-WTB 1.00 mm SMT Male Vertical Shrouded Header]&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_1_00_FEMALE_TERMINAL_HOUSING_6650XX113322 WR-WTB 1.00 mm Female Terminal Housing]&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_1_00_FEMALE_CRIMP_CONTACT_665X0113722 WR-WTB 1.00 mm Female Crimp Terminal]&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_PRE-CRIMPED_CABLE_1_00 WR-WTB Pre-crimped wire]&lt;br /&gt;
* And even the [https://www.we-online.com/en/components/products/WTB_MANUAL_CRIMPING_TOOL_11#600665232280 WR-WTB Manual Crimping Tool]&lt;br /&gt;
Choose the number of positions you need (3 for the debug port, but there&#039;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.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* BeagleBoard linux git repository : https://git.beagleboard.org/beagleboard/linux&lt;br /&gt;
* BeagleY-AI design and detailed specifications : https://docs.beagle.cc/boards/beagley/ai/03-design.html&lt;br /&gt;
* [https://olof-astrand.medium.com/building-u-boot-and-the-linux-kernel-for-the-beagley-ai-board-0942565ab28b Building u-boot and the linux kernel for the beagleY AI board]&lt;br /&gt;
* [https://community.element14.com/products/devtools/single-board-computers/next-genbeaglebone/b/blog/posts/beagley-ai-review BeagleY-AI Review - Part 1] and [https://community.element14.com/products/devtools/single-board-computers/next-genbeaglebone/b/blog/posts/beagley-ai-review---part-2 BeagleY-AI Review - Part 2] on element 14 community.&lt;/div&gt;</summary>
		<author><name>Drizzt</name></author>
	</entry>
	<entry>
		<id>http://wiki.nathael.net/index.php?title=Dev/BeagleBone/BeagleYAI&amp;diff=360</id>
		<title>Dev/BeagleBone/BeagleYAI</title>
		<link rel="alternate" type="text/html" href="http://wiki.nathael.net/index.php?title=Dev/BeagleBone/BeagleYAI&amp;diff=360"/>
		<updated>2025-03-19T18:35:27Z</updated>

		<summary type="html">&lt;p&gt;Drizzt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Description ==&lt;br /&gt;
* https://docs.beagle.cc/boards/beagley/ai/03-design.html&lt;br /&gt;
=== Processor ===&lt;br /&gt;
* The board has a TI Jacinto J722S ([https://www.ti.com/product/TDA4AEN-Q1 TDA4AEN]) AM67A SOC with&lt;br /&gt;
: - four Arm Cortex-A53 cores (main cores, 1.4Ghz)&lt;br /&gt;
: - two C7x DSP cores&lt;br /&gt;
: - one user Arm Cortex-R5F core (MCU channel with FFI, 800Mhz)&lt;br /&gt;
: - two additional Arm Cortex-R5F cores (Device management and Run-time management).&lt;br /&gt;
* BXS-4-64 GPU&lt;br /&gt;
The complete [https://software-dl.ti.com/tisci/esd/latest/5_soc_doc/j722s/processors.html list of processors] and [https://software-dl.ti.com/tisci/esd/latest/5_soc_doc/j722s/hosts.html cores]. Note that a physical processor can have multiple Host IDs (cores) depending on context and domain.&lt;br /&gt;
&lt;br /&gt;
According to chat GPT (which is wrong), &amp;quot;The BeagleY-AI board uses the TDA4VM SoC in the HS-SE variant&amp;quot;.&lt;br /&gt;
: The HS-SE (High Security - Single Edition) variant is focused on applications where data security and confidentiality are critical.&lt;br /&gt;
: The HS-FS (High Security - Functional Safety) variant is more geared toward functional safety requirements.&lt;br /&gt;
&lt;br /&gt;
The BeagleY-AI board uses a TDA4AEN&lt;br /&gt;
&lt;br /&gt;
=== Memory ===&lt;br /&gt;
* 4Go LPDDR4&lt;br /&gt;
* EEPROM (FT24C32A) on I2C0&lt;br /&gt;
* microSD Card&lt;br /&gt;
&lt;br /&gt;
== The Boot process ==&lt;br /&gt;
&lt;br /&gt;
=== Overview ===&lt;br /&gt;
From chapter &amp;quot;[https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-j722s/09_02_00_05/exports/docs/psdk_rtos/docs/user_guide/developer_notes_bootloaders.html 9.2. Understanding bootloaders in Processor SDK J722S (RTOS/Linux)] and [https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-am67a/latest/exports/docs/linux/Foundational_Components/U-Boot/UG-General-Info.html Processor SDK Linux for AM67A, chapter 3.1.1.1 - U-Boot - General Information] :&lt;br /&gt;
: The boot process on the J722S processor requires two different U-Boot images and some firmwares, which will run on different cores.&lt;br /&gt;
Information is a little bit confused, maybe because there may be different ways to achieve the boot process.&lt;br /&gt;
&lt;br /&gt;
You may find the documentation within U-Boot sources to be pretty complete : https://docs.u-boot.org/en/latest/board/ti/j722s_evm.html&lt;br /&gt;
: Note that it does not directly targets the BeagleY-AI board but the J722S-EVM one&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;tiboot3.bin&#039;&#039;&#039;&lt;br /&gt;
: The first &amp;quot;Secondary Program Loader&amp;quot; (SPL) that the ROM bootloader will load and execute on the MCU R5F Core0&lt;br /&gt;
: It seems to be an agregate of an U-Boot image (u-boot-spl.bin) and the TIFS firmware (sysfw)&lt;br /&gt;
: It will try to load two images : &amp;quot;tifs.bin&amp;quot; (embedded) and &amp;quot;tispl.bin&amp;quot; (from SD card)&lt;br /&gt;
* &#039;&#039;&#039;tifs.bin&#039;&#039;&#039;&lt;br /&gt;
: TI Foundational Security (TIFS)&lt;br /&gt;
: This firmware image is also called &amp;quot;SYSFW&amp;quot; and is included inside &#039;&#039;&#039;tiboot3.bin&#039;&#039;&#039;.&lt;br /&gt;
: It is used for the &amp;quot;Secure Management Services&amp;quot; (SMS), to be run on the corresponding R5F MCU.&lt;br /&gt;
* &#039;&#039;&#039;tispl.bin&#039;&#039;&#039;&lt;br /&gt;
: The second &amp;quot;Secondary Program Loader&amp;quot; (SPL). This one will run on one of the A53 cores.&lt;br /&gt;
: This image includes the &amp;quot;ARM Trusted Firmware&amp;quot; (ATF or Trusted Firmware-A) and the &amp;quot;Trusted Execution Environment&amp;quot; (TEE, provided by OP-TEE).&lt;br /&gt;
: It also includes the &amp;quot;Device Management&amp;quot; (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).&lt;br /&gt;
: And then the &amp;quot;SPL&amp;quot; proper, which may be a reduced U-Boot image, commonly refered to as the &amp;quot;first-stage bootloader&amp;quot; which will mainly initialise the A53 core, the DDR memory, and the required subsystems so that the full U-Boot image can run.&lt;br /&gt;
* &#039;&#039;&#039;uboot.img&#039;&#039;&#039;&lt;br /&gt;
: This is the final U-Boot image, also called &amp;quot;second-stage bootloader&amp;quot;, which will also run on one of the A53 cores.&lt;br /&gt;
: This one will provide a prompt and load the Linux kernel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Where to get more information ===&lt;br /&gt;
Credits : I started finding useful and accurate information on [https://olof-astrand.medium.com/building-u-boot-and-the-linux-kernel-for-the-beagley-ai-board-0942565ab28b 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&#039;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.&lt;br /&gt;
&lt;br /&gt;
Anyway, this post references some useful sources :&lt;br /&gt;
* [https://software-dl.ti.com/tisci/esd/latest/1_intro/TISCI.html Texas Instruments System Controller Interface] (TISCI)&lt;br /&gt;
* [https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-j722s/09_02_00_05/exports/docs/psdk_rtos/docs/user_guide/index.html Processor SDK RTOS J722S]&lt;br /&gt;
* [https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-am67a/latest/exports/docs/devices/J7_Family/linux/index.html Processor SDK Linux Software Developer’s Guide], mainly chapter 3 : Foundational Components.&lt;br /&gt;
&lt;br /&gt;
TI even provides access to the sources of these documentations : https://github.com/TexasInstruments/processor-sdk-doc !!&lt;br /&gt;
&lt;br /&gt;
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/&lt;br /&gt;
&lt;br /&gt;
* 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])&lt;br /&gt;
* 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])&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
=== TI ===&lt;br /&gt;
* git://git.ti.com/ti-u-boot/ti-u-boot.git  (or use the one from openbeagle.org)&lt;br /&gt;
* git://git.ti.com/ti-linux-kernel/ti-linux-kernel.git  &lt;br /&gt;
* git://git.ti.com/processor-firmware/ti-linux-firmware.git&lt;br /&gt;
: branch : ti-linux-firmware&lt;br /&gt;
: Note that a very small subset is required from this 2.4Go repository (see below in &amp;quot;Build the images&amp;quot; section).&lt;br /&gt;
&lt;br /&gt;
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]&lt;br /&gt;
&lt;br /&gt;
=== BeagleBone ===&lt;br /&gt;
* https://openbeagle.org/beagleboard/u-boot.git - tag &amp;quot;v2023.04-ti-09.02.00.009-BeagleY-AI&amp;quot;&lt;br /&gt;
: tag : v2025.04-rc3-BeagleY-AI&lt;br /&gt;
&lt;br /&gt;
=== Others ===&lt;br /&gt;
* https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git&lt;br /&gt;
: tag : lts-v2.12.1&lt;br /&gt;
* https://github.com/OP-TEE/optee_os.git&lt;br /&gt;
: tag : 4.5.0&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Build the images ==&lt;br /&gt;
The sources which proved most usefull in order to rebuild all the images (all but ti firmwares ...) :&lt;br /&gt;
* https://docs.u-boot.org/en/latest/board/ti/j722s_evm.html&lt;br /&gt;
* https://openbeagle.org/beagleboard/repos-arm64/-/blob/main/bb-u-boot-beagley-ai/suite/bookworm/debian/rules&lt;br /&gt;
&lt;br /&gt;
=== Compiler ===&lt;br /&gt;
The AM67A processor has R5 and A53 cores.&lt;br /&gt;
: The R5 cores need a 32bits compiler : arm-linux-gnueabi&lt;br /&gt;
 CC32=&amp;quot;arm-linux-gnueabi-&amp;quot;&lt;br /&gt;
: The A53 ones need a 64bits compiler : aarch64-linux-gnu&lt;br /&gt;
 CC64=&amp;quot;aarch64-linux-gnu-&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== U-Boot config ===&lt;br /&gt;
You&#039;ll need &amp;quot;ARM Trusted Firmware&amp;quot; (see above for sources and git tag I used)&lt;br /&gt;
 TFA_BOARD=lite&lt;br /&gt;
 TFA_EXTRA_ARGS=&amp;quot;SPD=opteed&amp;quot;&lt;br /&gt;
 make CROSS_COMPILE=${CC64} ARCH=aarch64 PLAT=k3 ${TFA_EXTRA_ARGS} TARGET_BOARD=${TFA_BOARD} bl31&lt;br /&gt;
Result is &amp;quot;build/k3/${TFA_BOARD}/release/bl31.bin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
You&#039;ll also need a &amp;quot;Trusted Execution Environnment&amp;quot; (see above for sources and git tag I used)&lt;br /&gt;
 OPTEE_PLATFORM=k3-j722s&lt;br /&gt;
 OPTEE_EXTRA_ARGS=&amp;quot;CFG_WITH_SOFTWARE_PRNG=y CFG_ARM64_core=y&amp;quot;&lt;br /&gt;
 make -j 12 CROSS_COMPILE=${CC32} CROSS_COMPILE64=${CC64} ${OPTEE_EXTRA_ARGS} PLATFORM=${OPTEE_PLATFORM}&lt;br /&gt;
Result is &amp;quot;core/tee-pager_v2.bin&amp;quot; which is in the output dir (either the one specified with &amp;quot;O=&amp;quot; option or under &amp;quot;out/.../&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
And a last one : some ti firmwares found in TI&#039;s Linux firmware repository (see above for sources and git tag I used).&lt;br /&gt;
If you don&#039;t want to keep the 2.4Go of firmwares, keep at most these ones :&lt;br /&gt;
: ti-linux-firmware/ti-dm/j722s/*&lt;br /&gt;
: ti-linux-firmware/ti-ipc/j722s/*&lt;br /&gt;
: ti-linux-firmware/ti-sysfw/ti-fs-firmware-j722s-hs-*&lt;br /&gt;
: ti-linux-firmware/ti-sysfw/cert.bin&lt;br /&gt;
And set this variable according to where you put them :&lt;br /&gt;
 LNX_FW_PATH=&amp;quot;..../ti-linux-firmware/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
And at last, the U-Boot part (remember that you will need two uboot images, once again, see above for the sources and tag I used) :&lt;br /&gt;
* One for the R5 core :&lt;br /&gt;
 make ARCH=arm am67a_beagley_ai_r5_defconfig&lt;br /&gt;
 make ARCH=arm -j 12 CROSS_COMPILE=${CC32} BINMAN_INDIRS=${LNX_FW_PATH}&lt;br /&gt;
: this one provides &amp;quot;tiboot3-j722s-hs-fs-evm.bin&amp;quot; which will be &amp;quot;tiboot3.bin&amp;quot;&lt;br /&gt;
* And one for the A53 cores :&lt;br /&gt;
: Set bl31 and bl32 variables to the results of ARM Trusted firmware (bl31) and Trusted Execution Environment (bl32) compilation&lt;br /&gt;
 bl31=&amp;quot;...../build/k3/${TFA_BOARD}/release/bl31.bin&amp;quot;&lt;br /&gt;
 bl32=&amp;quot;...../core/tee-pager_v2.bin&amp;quot;&lt;br /&gt;
 make ARCH=arm am67a_beagley_ai_a53_defconfig&lt;br /&gt;
 make ARCH=arm -j 12 CROSS_COMPILE=${CC64} BINMAN_INDIRS=${LNX_FW_PATH} BL31=${bl31} TEE=${bl32}&lt;br /&gt;
: this one provides both &amp;quot;tispl.bin&amp;quot; and &amp;quot;u-boot.img&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Linux ===&lt;br /&gt;
* Device tree : arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts&lt;br /&gt;
* Kernel config file : https://git.beagleboard.org/beagleboard/linux/-/blob/d89bfdd19e7161ddba4ce4f5e34425ae6020a6db/arch/arm64/configs/bb.org_defconfig&lt;br /&gt;
&lt;br /&gt;
== Liens officiels ==&lt;br /&gt;
* https://www.beagleboard.org/boards/beagley-ai&lt;br /&gt;
* [https://www.mouser.fr/ProductDetail/BeagleBoard-by-Seeed-Studio/102991834?qs=dbcCsuKDzFXY1JA%252BEGwyow%3D%3D Achat chez Mouser à 77€]&lt;br /&gt;
&lt;br /&gt;
== Pinout ==&lt;br /&gt;
* https://pinout.beagley.ai/&lt;br /&gt;
&lt;br /&gt;
* Tag connect clip : https://www.printables.com/model/879533-beagley-ai-tagconnect-clip-10pin&lt;br /&gt;
&lt;br /&gt;
== Debug port Connection ==&lt;br /&gt;
=== Onboard connector ===&lt;br /&gt;
Despite what some have published about everywhere on the Web (even [https://docs.beagle.cc/boards/beagley/ai/03-design.html#uart within official beagleboard online documentation]), the connector &#039;&#039;&#039;IS NOT&#039;&#039;&#039; 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.&amp;lt;br /&amp;gt;&lt;br /&gt;
The official BOM gives all the information :&lt;br /&gt;
* Manufacturer : MTCONN&lt;br /&gt;
* Manufacturer part number : MTWF63-103SRN-01163&lt;br /&gt;
&lt;br /&gt;
=== Where to find mating connector ===&lt;br /&gt;
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 &amp;quot;WTB10-XX-02-2&amp;quot; ... but I do not know where to get these, much less the mating connector.&amp;lt;br /&amp;gt;&lt;br /&gt;
Some googling gave me another manufacturer with a compatible reference : [https://www.we-online.com/en/components/products/em/connectors/wire-to-board/wr_wtb/wr_wtb_1_00_mm Wurth Elektronik].&amp;lt;br /&amp;gt;&lt;br /&gt;
What&#039;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.&amp;lt;br /&amp;gt;&lt;br /&gt;
Here are the references/links for all the parts :&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_1_00_SMT_MALE_VERTICAL_SHROUDED_HEADER_6653XX124022 WR-WTB 1.00 mm SMT Male Vertical Shrouded Header]&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_1_00_FEMALE_TERMINAL_HOUSING_6650XX113322 WR-WTB 1.00 mm Female Terminal Housing]&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_1_00_FEMALE_CRIMP_CONTACT_665X0113722 WR-WTB 1.00 mm Female Crimp Terminal]&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_PRE-CRIMPED_CABLE_1_00 WR-WTB Pre-crimped wire]&lt;br /&gt;
* And even the [https://www.we-online.com/en/components/products/WTB_MANUAL_CRIMPING_TOOL_11#600665232280 WR-WTB Manual Crimping Tool]&lt;br /&gt;
Choose the number of positions you need (3 for the debug port, but there&#039;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.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* BeagleBoard linux git repository : https://git.beagleboard.org/beagleboard/linux&lt;br /&gt;
* BeagleY-AI design and detailed specifications : https://docs.beagle.cc/boards/beagley/ai/03-design.html&lt;br /&gt;
* [https://olof-astrand.medium.com/building-u-boot-and-the-linux-kernel-for-the-beagley-ai-board-0942565ab28b Building u-boot and the linux kernel for the beagleY AI board]&lt;br /&gt;
* [https://community.element14.com/products/devtools/single-board-computers/next-genbeaglebone/b/blog/posts/beagley-ai-review BeagleY-AI Review - Part 1] and [https://community.element14.com/products/devtools/single-board-computers/next-genbeaglebone/b/blog/posts/beagley-ai-review---part-2 BeagleY-AI Review - Part 2] on element 14 community.&lt;/div&gt;</summary>
		<author><name>Drizzt</name></author>
	</entry>
	<entry>
		<id>http://wiki.nathael.net/index.php?title=Dev/BeagleBone/BeagleYAI&amp;diff=359</id>
		<title>Dev/BeagleBone/BeagleYAI</title>
		<link rel="alternate" type="text/html" href="http://wiki.nathael.net/index.php?title=Dev/BeagleBone/BeagleYAI&amp;diff=359"/>
		<updated>2025-03-18T20:41:46Z</updated>

		<summary type="html">&lt;p&gt;Drizzt: /* Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Description ==&lt;br /&gt;
* https://docs.beagle.cc/boards/beagley/ai/03-design.html&lt;br /&gt;
=== Processor ===&lt;br /&gt;
* The board has a TI Jacinto J722S ([https://www.ti.com/product/TDA4AEN-Q1 TDA4AEN]) AM67A SOC with&lt;br /&gt;
: - four Arm Cortex-A53 cores (main cores, 1.4Ghz)&lt;br /&gt;
: - two C7x DSP cores&lt;br /&gt;
: - one user Arm Cortex-R5F core (MCU channel with FFI, 800Mhz)&lt;br /&gt;
: - two additional Arm Cortex-R5F cores (Device management and Run-time management).&lt;br /&gt;
* BXS-4-64 GPU&lt;br /&gt;
The complete [https://software-dl.ti.com/tisci/esd/latest/5_soc_doc/j722s/processors.html list of processors] and [https://software-dl.ti.com/tisci/esd/latest/5_soc_doc/j722s/hosts.html cores]. Note that a physical processor can have multiple Host IDs (cores) depending on context and domain.&lt;br /&gt;
&lt;br /&gt;
According to chat GPT, &amp;quot;The BeagleY-AI board uses the TDA4VM SoC in the HS-SE (High Security - Single Edition) variant&amp;quot;.&lt;br /&gt;
: This HS-SE variant is focused on applications where data security and confidentiality are critical.&lt;br /&gt;
: The HS-FS (High Security - Functional Safety) variant, on the other hand, is more geared toward functional safety requirements.&lt;br /&gt;
&lt;br /&gt;
=== Memory ===&lt;br /&gt;
* 4Go LPDDR4&lt;br /&gt;
* EEPROM (FT24C32A) on I2C0&lt;br /&gt;
* microSD Card&lt;br /&gt;
&lt;br /&gt;
== The Boot process ==&lt;br /&gt;
&lt;br /&gt;
=== Overview ===&lt;br /&gt;
From chapter &amp;quot;[https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-j722s/09_02_00_05/exports/docs/psdk_rtos/docs/user_guide/developer_notes_bootloaders.html 9.2. Understanding bootloaders in Processor SDK J722S (RTOS/Linux)] and [https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-am67a/latest/exports/docs/linux/Foundational_Components/U-Boot/UG-General-Info.html Processor SDK Linux for AM67A, chapter 3.1.1.1 - U-Boot - General Information] :&lt;br /&gt;
: The boot process on the J722S processor requires two different U-Boot images and some firmwares, which will run on different cores.&lt;br /&gt;
Information is a little bit confused, maybe because there may be different ways to achieve the boot process.&lt;br /&gt;
&lt;br /&gt;
You may find the documentation within U-Boot sources to be pretty complete : https://docs.u-boot.org/en/latest/board/ti/j722s_evm.html&lt;br /&gt;
: Note that it does not directly targets the BeagleY-AI board but the J722S-EVM one&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;tiboot3.bin&#039;&#039;&#039;&lt;br /&gt;
: The first &amp;quot;Secondary Program Loader&amp;quot; (SPL) that the ROM bootloader will load and execute on the MCU R5F Core0&lt;br /&gt;
: It seems to be an agregate of an U-Boot image (u-boot-spl.bin) and the TIFS firmware (sysfw)&lt;br /&gt;
: It will try to load two images : &amp;quot;tifs.bin&amp;quot; (embedded) and &amp;quot;tispl.bin&amp;quot; (from SD card)&lt;br /&gt;
* &#039;&#039;&#039;tifs.bin&#039;&#039;&#039;&lt;br /&gt;
: TI Foundational Security (TIFS)&lt;br /&gt;
: This firmware image is also called &amp;quot;SYSFW&amp;quot; and may be included inside &#039;&#039;&#039;tiboot3.bin&#039;&#039;&#039;.&lt;br /&gt;
: It is used for the &amp;quot;Secure Management Services&amp;quot; (SMS), to be run on the corresponding R5F MCU.&lt;br /&gt;
* &#039;&#039;&#039;tispl.bin&#039;&#039;&#039;&lt;br /&gt;
: The second &amp;quot;Secondary Program Loader&amp;quot; (SPL). This one will run on one of the A53 cores.&lt;br /&gt;
: This image includes the &amp;quot;ARM Trusted Firmware&amp;quot; (ATF or Trusted Firmware-A) and the &amp;quot;Trusted Execution Environment&amp;quot; (TEE, provided by OP-TEE).&lt;br /&gt;
: It also includes the &amp;quot;Device Management&amp;quot; (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).&lt;br /&gt;
: And then the &amp;quot;SPL&amp;quot; proper, which may be a reduced U-Boot image, commonly refered to as the &amp;quot;first-stage bootloader&amp;quot; which will mainly initialise the A53 core, the DDR memory, and the required subsystems so that the full U-Boot image can run.&lt;br /&gt;
* &#039;&#039;&#039;uboot.img&#039;&#039;&#039;&lt;br /&gt;
: This is the final U-Boot image, also called &amp;quot;second-stage bootloader&amp;quot;, which will also run on one of the A53 cores.&lt;br /&gt;
: This one will provide a prompt and load the Linux kernel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Where to get more information ===&lt;br /&gt;
Credits : I started finding useful and accurate information on [https://olof-astrand.medium.com/building-u-boot-and-the-linux-kernel-for-the-beagley-ai-board-0942565ab28b 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&#039;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.&lt;br /&gt;
&lt;br /&gt;
Anyway, this post references some useful sources :&lt;br /&gt;
* [https://software-dl.ti.com/tisci/esd/latest/1_intro/TISCI.html Texas Instruments System Controller Interface] (TISCI)&lt;br /&gt;
* [https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-j722s/09_02_00_05/exports/docs/psdk_rtos/docs/user_guide/index.html Processor SDK RTOS J722S]&lt;br /&gt;
* [https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-am67a/latest/exports/docs/devices/J7_Family/linux/index.html Processor SDK Linux Software Developer’s Guide], mainly chapter 3 : Foundational Components.&lt;br /&gt;
&lt;br /&gt;
TI even provides access to the sources of these documentations : https://github.com/TexasInstruments/processor-sdk-doc !!&lt;br /&gt;
&lt;br /&gt;
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/&lt;br /&gt;
&lt;br /&gt;
* 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])&lt;br /&gt;
* 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])&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
=== TI ===&lt;br /&gt;
* git://git.ti.com/processor-sdk/psdk_fw.git&lt;br /&gt;
* git://git.ti.com/ti-u-boot/ti-u-boot.git&lt;br /&gt;
* git://git.ti.com/ti-linux-kernel/ti-linux-kernel.git&lt;br /&gt;
* git://git.ti.com/processor-firmware/ti-linux-firmware.git&lt;br /&gt;
&lt;br /&gt;
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]&lt;br /&gt;
&lt;br /&gt;
=== BeagleBone ===&lt;br /&gt;
* https://openbeagle.org/beagleboard/u-boot.git - tag &amp;quot;v2023.04-ti-09.02.00.009-BeagleY-AI&amp;quot;&lt;br /&gt;
: git switch v2023.04-ti-09.02.00.009-BeagleY-AI&lt;br /&gt;
&lt;br /&gt;
=== Others ===&lt;br /&gt;
* https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git&lt;br /&gt;
* https://github.com/OP-TEE/optee_os/&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Configs ==&lt;br /&gt;
=== U-Boot ===&lt;br /&gt;
 make ARCH=arm O=../Build/u-boot/r5 am67a_beagley_ai_r5_defconfig&lt;br /&gt;
 make ARCH=arm O=../Build/u-boot/a53 am67a_beagley_ai_a53_defconfig&lt;br /&gt;
&lt;br /&gt;
=== Linux ===&lt;br /&gt;
* Device tree : arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts&lt;br /&gt;
* Kernel config file : https://git.beagleboard.org/beagleboard/linux/-/blob/d89bfdd19e7161ddba4ce4f5e34425ae6020a6db/arch/arm64/configs/bb.org_defconfig&lt;br /&gt;
&lt;br /&gt;
== Liens officiels ==&lt;br /&gt;
* https://www.beagleboard.org/boards/beagley-ai&lt;br /&gt;
* [https://www.mouser.fr/ProductDetail/BeagleBoard-by-Seeed-Studio/102991834?qs=dbcCsuKDzFXY1JA%252BEGwyow%3D%3D Achat chez Mouser à 77€]&lt;br /&gt;
&lt;br /&gt;
== Pinout ==&lt;br /&gt;
* https://pinout.beagley.ai/&lt;br /&gt;
&lt;br /&gt;
* Tag connect clip : https://www.printables.com/model/879533-beagley-ai-tagconnect-clip-10pin&lt;br /&gt;
&lt;br /&gt;
== Debug port Connection ==&lt;br /&gt;
=== Onboard connector ===&lt;br /&gt;
Despite what some have published about everywhere on the Web (even [https://docs.beagle.cc/boards/beagley/ai/03-design.html#uart within official beagleboard online documentation]), the connector &#039;&#039;&#039;IS NOT&#039;&#039;&#039; 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.&amp;lt;br /&amp;gt;&lt;br /&gt;
The official BOM gives all the information :&lt;br /&gt;
* Manufacturer : MTCONN&lt;br /&gt;
* Manufacturer part number : MTWF63-103SRN-01163&lt;br /&gt;
&lt;br /&gt;
=== Where to find mating connector ===&lt;br /&gt;
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 &amp;quot;WTB10-XX-02-2&amp;quot; ... but I do not know where to get these, much less the mating connector.&amp;lt;br /&amp;gt;&lt;br /&gt;
Some googling gave me another manufacturer with a compatible reference : [https://www.we-online.com/en/components/products/em/connectors/wire-to-board/wr_wtb/wr_wtb_1_00_mm Wurth Elektronik].&amp;lt;br /&amp;gt;&lt;br /&gt;
What&#039;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.&amp;lt;br /&amp;gt;&lt;br /&gt;
Here are the references/links for all the parts :&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_1_00_SMT_MALE_VERTICAL_SHROUDED_HEADER_6653XX124022 WR-WTB 1.00 mm SMT Male Vertical Shrouded Header]&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_1_00_FEMALE_TERMINAL_HOUSING_6650XX113322 WR-WTB 1.00 mm Female Terminal Housing]&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_1_00_FEMALE_CRIMP_CONTACT_665X0113722 WR-WTB 1.00 mm Female Crimp Terminal]&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_PRE-CRIMPED_CABLE_1_00 WR-WTB Pre-crimped wire]&lt;br /&gt;
* And even the [https://www.we-online.com/en/components/products/WTB_MANUAL_CRIMPING_TOOL_11#600665232280 WR-WTB Manual Crimping Tool]&lt;br /&gt;
Choose the number of positions you need (3 for the debug port, but there&#039;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.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* BeagleBoard linux git repository : https://git.beagleboard.org/beagleboard/linux&lt;br /&gt;
* BeagleY-AI design and detailed specifications : https://docs.beagle.cc/boards/beagley/ai/03-design.html&lt;br /&gt;
* [https://olof-astrand.medium.com/building-u-boot-and-the-linux-kernel-for-the-beagley-ai-board-0942565ab28b Building u-boot and the linux kernel for the beagleY AI board]&lt;br /&gt;
* [https://community.element14.com/products/devtools/single-board-computers/next-genbeaglebone/b/blog/posts/beagley-ai-review BeagleY-AI Review - Part 1] and [https://community.element14.com/products/devtools/single-board-computers/next-genbeaglebone/b/blog/posts/beagley-ai-review---part-2 BeagleY-AI Review - Part 2] on element 14 community.&lt;/div&gt;</summary>
		<author><name>Drizzt</name></author>
	</entry>
	<entry>
		<id>http://wiki.nathael.net/index.php?title=Dev/BeagleBone/BeagleYAI&amp;diff=358</id>
		<title>Dev/BeagleBone/BeagleYAI</title>
		<link rel="alternate" type="text/html" href="http://wiki.nathael.net/index.php?title=Dev/BeagleBone/BeagleYAI&amp;diff=358"/>
		<updated>2025-03-18T17:54:52Z</updated>

		<summary type="html">&lt;p&gt;Drizzt: /* The Boot process */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Description ==&lt;br /&gt;
* https://docs.beagle.cc/boards/beagley/ai/03-design.html&lt;br /&gt;
=== Processor ===&lt;br /&gt;
* The board has a TI Jacinto J722S ([https://www.ti.com/product/TDA4AEN-Q1 TDA4AEN]) AM67A SOC with&lt;br /&gt;
: - four Arm Cortex-A53 cores (main cores, 1.4Ghz)&lt;br /&gt;
: - two C7x DSP cores&lt;br /&gt;
: - one user Arm Cortex-R5F core (MCU channel with FFI, 800Mhz)&lt;br /&gt;
: - two additional Arm Cortex-R5F cores (Device management and Run-time management).&lt;br /&gt;
* BXS-4-64 GPU&lt;br /&gt;
The complete [https://software-dl.ti.com/tisci/esd/latest/5_soc_doc/j722s/processors.html list of processors] and [https://software-dl.ti.com/tisci/esd/latest/5_soc_doc/j722s/hosts.html cores]. Note that a physical processor can have multiple Host IDs (cores) depending on context and domain.&lt;br /&gt;
&lt;br /&gt;
=== Memory ===&lt;br /&gt;
* 4Go LPDDR4&lt;br /&gt;
* EEPROM (FT24C32A) on I2C0&lt;br /&gt;
* microSD Card&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== The Boot process ==&lt;br /&gt;
&lt;br /&gt;
=== Overview ===&lt;br /&gt;
From chapter &amp;quot;[https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-j722s/09_02_00_05/exports/docs/psdk_rtos/docs/user_guide/developer_notes_bootloaders.html 9.2. Understanding bootloaders in Processor SDK J722S (RTOS/Linux)] and [https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-am67a/latest/exports/docs/linux/Foundational_Components/U-Boot/UG-General-Info.html Processor SDK Linux for AM67A, chapter 3.1.1.1 - U-Boot - General Information] :&lt;br /&gt;
: The boot process on the J722S processor requires two different U-Boot images and some firmwares, which will run on different cores.&lt;br /&gt;
Information is a little bit confused, maybe because there may be different ways to achieve the boot process.&lt;br /&gt;
&lt;br /&gt;
You may find the documentation within U-Boot sources to be pretty complete : https://docs.u-boot.org/en/latest/board/ti/j722s_evm.html&lt;br /&gt;
: Note that it does not directly targets the BeagleY-AI board but the J722S-EVM one&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;tiboot3.bin&#039;&#039;&#039;&lt;br /&gt;
: The first &amp;quot;Secondary Program Loader&amp;quot; (SPL) that the ROM bootloader will load and execute on the MCU R5F Core0&lt;br /&gt;
: It seems to be an agregate of an U-Boot image (u-boot-spl.bin) and the TIFS firmware (sysfw)&lt;br /&gt;
: It will try to load two images : &amp;quot;tifs.bin&amp;quot; (embedded) and &amp;quot;tispl.bin&amp;quot; (from SD card)&lt;br /&gt;
* &#039;&#039;&#039;tifs.bin&#039;&#039;&#039;&lt;br /&gt;
: TI Foundational Security (TIFS)&lt;br /&gt;
: This firmware image is also called &amp;quot;SYSFW&amp;quot; and may be included inside &#039;&#039;&#039;tiboot3.bin&#039;&#039;&#039;.&lt;br /&gt;
: It is used for the &amp;quot;Secure Management Services&amp;quot; (SMS), to be run on the corresponding R5F MCU.&lt;br /&gt;
* &#039;&#039;&#039;tispl.bin&#039;&#039;&#039;&lt;br /&gt;
: The second &amp;quot;Secondary Program Loader&amp;quot; (SPL). This one will run on one of the A53 cores.&lt;br /&gt;
: This image includes the &amp;quot;ARM Trusted Firmware&amp;quot; (ATF or Trusted Firmware-A) and the &amp;quot;Trusted Execution Environment&amp;quot; (TEE, provided by OP-TEE).&lt;br /&gt;
: It also includes the &amp;quot;Device Management&amp;quot; (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).&lt;br /&gt;
: And then the &amp;quot;SPL&amp;quot; proper, which may be a reduced U-Boot image, commonly refered to as the &amp;quot;first-stage bootloader&amp;quot; which will mainly initialise the A53 core, the DDR memory, and the required subsystems so that the full U-Boot image can run.&lt;br /&gt;
* &#039;&#039;&#039;uboot.img&#039;&#039;&#039;&lt;br /&gt;
: This is the final U-Boot image, also called &amp;quot;second-stage bootloader&amp;quot;, which will also run on one of the A53 cores.&lt;br /&gt;
: This one will provide a prompt and load the Linux kernel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Where to get more information ===&lt;br /&gt;
Credits : I started finding useful and accurate information on [https://olof-astrand.medium.com/building-u-boot-and-the-linux-kernel-for-the-beagley-ai-board-0942565ab28b 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&#039;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.&lt;br /&gt;
&lt;br /&gt;
Anyway, this post references some useful sources :&lt;br /&gt;
* [https://software-dl.ti.com/tisci/esd/latest/1_intro/TISCI.html Texas Instruments System Controller Interface] (TISCI)&lt;br /&gt;
* [https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-j722s/09_02_00_05/exports/docs/psdk_rtos/docs/user_guide/index.html Processor SDK RTOS J722S]&lt;br /&gt;
* [https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-am67a/latest/exports/docs/devices/J7_Family/linux/index.html Processor SDK Linux Software Developer’s Guide], mainly chapter 3 : Foundational Components.&lt;br /&gt;
&lt;br /&gt;
TI even provides access to the sources of these documentations : https://github.com/TexasInstruments/processor-sdk-doc !!&lt;br /&gt;
&lt;br /&gt;
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/&lt;br /&gt;
&lt;br /&gt;
* 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])&lt;br /&gt;
* 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])&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
=== TI ===&lt;br /&gt;
* git://git.ti.com/processor-sdk/psdk_fw.git&lt;br /&gt;
* git://git.ti.com/ti-u-boot/ti-u-boot.git&lt;br /&gt;
* git://git.ti.com/ti-linux-kernel/ti-linux-kernel.git&lt;br /&gt;
* git://git.ti.com/processor-firmware/ti-linux-firmware.git&lt;br /&gt;
&lt;br /&gt;
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]&lt;br /&gt;
&lt;br /&gt;
=== BeagleBone ===&lt;br /&gt;
* https://openbeagle.org/beagleboard/u-boot.git - tag &amp;quot;v2023.04-ti-09.02.00.009-BeagleY-AI&amp;quot;&lt;br /&gt;
: git switch v2023.04-ti-09.02.00.009-BeagleY-AI&lt;br /&gt;
&lt;br /&gt;
=== Others ===&lt;br /&gt;
* https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git&lt;br /&gt;
* https://github.com/OP-TEE/optee_os/&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Configs ==&lt;br /&gt;
=== U-Boot ===&lt;br /&gt;
 make ARCH=arm O=../Build/u-boot/r5 am67a_beagley_ai_r5_defconfig&lt;br /&gt;
 make ARCH=arm O=../Build/u-boot/a53 am67a_beagley_ai_a53_defconfig&lt;br /&gt;
&lt;br /&gt;
=== Linux ===&lt;br /&gt;
* Device tree : arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts&lt;br /&gt;
* Kernel config file : https://git.beagleboard.org/beagleboard/linux/-/blob/d89bfdd19e7161ddba4ce4f5e34425ae6020a6db/arch/arm64/configs/bb.org_defconfig&lt;br /&gt;
&lt;br /&gt;
== Liens officiels ==&lt;br /&gt;
* https://www.beagleboard.org/boards/beagley-ai&lt;br /&gt;
* [https://www.mouser.fr/ProductDetail/BeagleBoard-by-Seeed-Studio/102991834?qs=dbcCsuKDzFXY1JA%252BEGwyow%3D%3D Achat chez Mouser à 77€]&lt;br /&gt;
&lt;br /&gt;
== Pinout ==&lt;br /&gt;
* https://pinout.beagley.ai/&lt;br /&gt;
&lt;br /&gt;
* Tag connect clip : https://www.printables.com/model/879533-beagley-ai-tagconnect-clip-10pin&lt;br /&gt;
&lt;br /&gt;
== Debug port Connection ==&lt;br /&gt;
=== Onboard connector ===&lt;br /&gt;
Despite what some have published about everywhere on the Web (even [https://docs.beagle.cc/boards/beagley/ai/03-design.html#uart within official beagleboard online documentation]), the connector &#039;&#039;&#039;IS NOT&#039;&#039;&#039; 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.&amp;lt;br /&amp;gt;&lt;br /&gt;
The official BOM gives all the information :&lt;br /&gt;
* Manufacturer : MTCONN&lt;br /&gt;
* Manufacturer part number : MTWF63-103SRN-01163&lt;br /&gt;
&lt;br /&gt;
=== Where to find mating connector ===&lt;br /&gt;
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 &amp;quot;WTB10-XX-02-2&amp;quot; ... but I do not know where to get these, much less the mating connector.&amp;lt;br /&amp;gt;&lt;br /&gt;
Some googling gave me another manufacturer with a compatible reference : [https://www.we-online.com/en/components/products/em/connectors/wire-to-board/wr_wtb/wr_wtb_1_00_mm Wurth Elektronik].&amp;lt;br /&amp;gt;&lt;br /&gt;
What&#039;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.&amp;lt;br /&amp;gt;&lt;br /&gt;
Here are the references/links for all the parts :&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_1_00_SMT_MALE_VERTICAL_SHROUDED_HEADER_6653XX124022 WR-WTB 1.00 mm SMT Male Vertical Shrouded Header]&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_1_00_FEMALE_TERMINAL_HOUSING_6650XX113322 WR-WTB 1.00 mm Female Terminal Housing]&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_1_00_FEMALE_CRIMP_CONTACT_665X0113722 WR-WTB 1.00 mm Female Crimp Terminal]&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_PRE-CRIMPED_CABLE_1_00 WR-WTB Pre-crimped wire]&lt;br /&gt;
* And even the [https://www.we-online.com/en/components/products/WTB_MANUAL_CRIMPING_TOOL_11#600665232280 WR-WTB Manual Crimping Tool]&lt;br /&gt;
Choose the number of positions you need (3 for the debug port, but there&#039;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.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* BeagleBoard linux git repository : https://git.beagleboard.org/beagleboard/linux&lt;br /&gt;
* BeagleY-AI design and detailed specifications : https://docs.beagle.cc/boards/beagley/ai/03-design.html&lt;br /&gt;
* [https://olof-astrand.medium.com/building-u-boot-and-the-linux-kernel-for-the-beagley-ai-board-0942565ab28b Building u-boot and the linux kernel for the beagleY AI board]&lt;br /&gt;
* [https://community.element14.com/products/devtools/single-board-computers/next-genbeaglebone/b/blog/posts/beagley-ai-review BeagleY-AI Review - Part 1] and [https://community.element14.com/products/devtools/single-board-computers/next-genbeaglebone/b/blog/posts/beagley-ai-review---part-2 BeagleY-AI Review - Part 2] on element 14 community.&lt;/div&gt;</summary>
		<author><name>Drizzt</name></author>
	</entry>
	<entry>
		<id>http://wiki.nathael.net/index.php?title=Dev/Embedded/CrossCompile&amp;diff=357</id>
		<title>Dev/Embedded/CrossCompile</title>
		<link rel="alternate" type="text/html" href="http://wiki.nathael.net/index.php?title=Dev/Embedded/CrossCompile&amp;diff=357"/>
		<updated>2025-03-17T23:42:58Z</updated>

		<summary type="html">&lt;p&gt;Drizzt: /* Add tools for specific projects */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;!!!!!!!!!!!!!!!!!!!!! Ongoing work : This is only a collection of notes right now &#039;&#039;&#039;!!!!!!!!!!!!!!!!!!!!!&lt;br /&gt;
&lt;br /&gt;
== The basics ==&lt;br /&gt;
&lt;br /&gt;
== Building your own : using Crosstool-NG ==&lt;br /&gt;
* https://github.com/crosstool-ng/crosstool-ng&lt;br /&gt;
&lt;br /&gt;
== Installation of Devuan/Debian cross-toolchain ==&lt;br /&gt;
=== (Cross-)Compiler part ===&lt;br /&gt;
 apt-get install binutils-aarch64-linux-gnu cpp-aarch64-linux-gnu gcc-aarch64-linux-gnu libc6-dev:arm64 &lt;br /&gt;
&lt;br /&gt;
=== Add architecture support ===&lt;br /&gt;
 dpkg --print-foreign-architectures&lt;br /&gt;
 dpkg --add-architecture &amp;lt;arch&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Add libs ===&lt;br /&gt;
 apt-get install libc6-dev:arm64&lt;br /&gt;
&lt;br /&gt;
=== Add tools for specific projects ===&lt;br /&gt;
for the Linux Kernel :&lt;br /&gt;
 apt-get install bc bison flex&lt;br /&gt;
 apt-get install libncurses-dev libssl-dev&lt;br /&gt;
&lt;br /&gt;
for uboot :&lt;br /&gt;
 apt-get install python3-setuptools swig libgnutls28-dev libssl-dev&lt;br /&gt;
 apt-get install yamllint python3-jsonschema # U-boot on beagley-ai&lt;br /&gt;
&lt;br /&gt;
for mtd images creation and manipulation :&lt;br /&gt;
 apt-get install mtd-utils squashfs-tools&lt;br /&gt;
&lt;br /&gt;
== Some more ==&lt;br /&gt;
* https://wiki.debian.org/Multiarch/Implementation&lt;br /&gt;
* https://wiki.debian.org/fr/Multiarch/HOWTO&lt;/div&gt;</summary>
		<author><name>Drizzt</name></author>
	</entry>
	<entry>
		<id>http://wiki.nathael.net/index.php?title=Dev/Embedded/CrossCompile&amp;diff=356</id>
		<title>Dev/Embedded/CrossCompile</title>
		<link rel="alternate" type="text/html" href="http://wiki.nathael.net/index.php?title=Dev/Embedded/CrossCompile&amp;diff=356"/>
		<updated>2025-03-17T23:41:11Z</updated>

		<summary type="html">&lt;p&gt;Drizzt: /* Add tools for specific projects */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;!!!!!!!!!!!!!!!!!!!!! Ongoing work : This is only a collection of notes right now &#039;&#039;&#039;!!!!!!!!!!!!!!!!!!!!!&lt;br /&gt;
&lt;br /&gt;
== The basics ==&lt;br /&gt;
&lt;br /&gt;
== Building your own : using Crosstool-NG ==&lt;br /&gt;
* https://github.com/crosstool-ng/crosstool-ng&lt;br /&gt;
&lt;br /&gt;
== Installation of Devuan/Debian cross-toolchain ==&lt;br /&gt;
=== (Cross-)Compiler part ===&lt;br /&gt;
 apt-get install binutils-aarch64-linux-gnu cpp-aarch64-linux-gnu gcc-aarch64-linux-gnu libc6-dev:arm64 &lt;br /&gt;
&lt;br /&gt;
=== Add architecture support ===&lt;br /&gt;
 dpkg --print-foreign-architectures&lt;br /&gt;
 dpkg --add-architecture &amp;lt;arch&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Add libs ===&lt;br /&gt;
 apt-get install libc6-dev:arm64&lt;br /&gt;
&lt;br /&gt;
=== Add tools for specific projects ===&lt;br /&gt;
for the Linux Kernel :&lt;br /&gt;
 apt-get install bc bison flex&lt;br /&gt;
 apt-get install libncurses-dev libssl-dev&lt;br /&gt;
&lt;br /&gt;
for uboot :&lt;br /&gt;
 apt-get install python3-setuptools swig libgnutls28-dev libssl-dev&lt;br /&gt;
 apt-get install yamllint # U-boot on beagley-ai&lt;br /&gt;
&lt;br /&gt;
for mtd images creation and manipulation :&lt;br /&gt;
 apt-get install mtd-utils squashfs-tools&lt;br /&gt;
&lt;br /&gt;
== Some more ==&lt;br /&gt;
* https://wiki.debian.org/Multiarch/Implementation&lt;br /&gt;
* https://wiki.debian.org/fr/Multiarch/HOWTO&lt;/div&gt;</summary>
		<author><name>Drizzt</name></author>
	</entry>
	<entry>
		<id>http://wiki.nathael.net/index.php?title=Dev/BeagleBone/BeagleYAI&amp;diff=355</id>
		<title>Dev/BeagleBone/BeagleYAI</title>
		<link rel="alternate" type="text/html" href="http://wiki.nathael.net/index.php?title=Dev/BeagleBone/BeagleYAI&amp;diff=355"/>
		<updated>2025-03-14T15:32:34Z</updated>

		<summary type="html">&lt;p&gt;Drizzt: /* Sources */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Description ==&lt;br /&gt;
* https://docs.beagle.cc/boards/beagley/ai/03-design.html&lt;br /&gt;
=== Processor ===&lt;br /&gt;
* The board has a TI Jacinto J722S ([https://www.ti.com/product/TDA4AEN-Q1 TDA4AEN]) AM67A SOC with&lt;br /&gt;
: - four Arm Cortex-A53 cores (main cores, 1.4Ghz)&lt;br /&gt;
: - two C7x DSP cores&lt;br /&gt;
: - one user Arm Cortex-R5F core (MCU channel with FFI, 800Mhz)&lt;br /&gt;
: - two additional Arm Cortex-R5F cores (Device management and Run-time management).&lt;br /&gt;
* BXS-4-64 GPU&lt;br /&gt;
The complete [https://software-dl.ti.com/tisci/esd/latest/5_soc_doc/j722s/processors.html list of processors] and [https://software-dl.ti.com/tisci/esd/latest/5_soc_doc/j722s/hosts.html cores]. Note that a physical processor can have multiple Host IDs (cores) depending on context and domain.&lt;br /&gt;
&lt;br /&gt;
=== Memory ===&lt;br /&gt;
* 4Go LPDDR4&lt;br /&gt;
* EEPROM (FT24C32A) on I2C0&lt;br /&gt;
* microSD Card&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== The Boot process ==&lt;br /&gt;
&lt;br /&gt;
=== Overview ===&lt;br /&gt;
From chapter &amp;quot;[https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-j722s/09_02_00_05/exports/docs/psdk_rtos/docs/user_guide/developer_notes_bootloaders.html 9.2. Understanding bootloaders in Processor SDK J722S (RTOS/Linux)] and [https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-am67a/latest/exports/docs/linux/Foundational_Components/U-Boot/UG-General-Info.html Processor SDK Linux for AM67A, chapter 3.1.1.1 - U-Boot - General Information] :&lt;br /&gt;
: The boot process on the J722S processor requires two different U-Boot images and some firmwares, which will run on different cores.&lt;br /&gt;
Information is a little bit confused, maybe because there may be different ways to achieve the boot process.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;tiboot3.bin&#039;&#039;&#039;&lt;br /&gt;
: The first &amp;quot;Secondary Program Loader&amp;quot; (SPL) that the ROM bootloader will load and execute on the MCU R5F Core0&lt;br /&gt;
: It seems to be an agregate of an U-Boot image (u-boot-spl.bin) and the TIFS firmware (sysfw)&lt;br /&gt;
: It will try to load two images : &amp;quot;tifs.bin&amp;quot; (embedded) and &amp;quot;tispl.bin&amp;quot; (from SD card)&lt;br /&gt;
* &#039;&#039;&#039;tifs.bin&#039;&#039;&#039;&lt;br /&gt;
: TI Foundational Security (TIFS)&lt;br /&gt;
: This firmware image is also called &amp;quot;SYSFW&amp;quot; and may be included inside &#039;&#039;&#039;tiboot3.bin&#039;&#039;&#039;.&lt;br /&gt;
: It is used for the &amp;quot;Secure Management Services&amp;quot; (SMS), to be run on the corresponding R5F MCU.&lt;br /&gt;
* &#039;&#039;&#039;tispl.bin&#039;&#039;&#039;&lt;br /&gt;
: The second &amp;quot;Secondary Program Loader&amp;quot; (SPL). This one will run on one of the A53 cores.&lt;br /&gt;
: This image includes the &amp;quot;ARM Trusted Firmware&amp;quot; (ATF or Trusted Firmware-A) and the &amp;quot;Trusted Execution Environment&amp;quot; (TEE, provided by OP-TEE).&lt;br /&gt;
: It also includes the &amp;quot;Device Management&amp;quot; (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).&lt;br /&gt;
: And then the &amp;quot;SPL&amp;quot; proper, which may be a reduced U-Boot image, commonly refered to as the &amp;quot;first-stage bootloader&amp;quot; which will mainly initialise the A53 core, the DDR memory, and the required subsystems so that the full U-Boot image can run.&lt;br /&gt;
* &#039;&#039;&#039;uboot.img&#039;&#039;&#039;&lt;br /&gt;
: This is the final U-Boot image, also called &amp;quot;second-stage bootloader&amp;quot;, which will also run on one of the A53 cores.&lt;br /&gt;
: This one will provide a prompt and load the Linux kernel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Where to get more information ===&lt;br /&gt;
Credits : I started finding useful and accurate information on [https://olof-astrand.medium.com/building-u-boot-and-the-linux-kernel-for-the-beagley-ai-board-0942565ab28b 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&#039;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.&lt;br /&gt;
&lt;br /&gt;
Anyway, this post references some useful sources :&lt;br /&gt;
* [https://software-dl.ti.com/tisci/esd/latest/1_intro/TISCI.html Texas Instruments System Controller Interface] (TISCI)&lt;br /&gt;
* [https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-j722s/09_02_00_05/exports/docs/psdk_rtos/docs/user_guide/index.html Processor SDK RTOS J722S]&lt;br /&gt;
* [https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-am67a/latest/exports/docs/devices/J7_Family/linux/index.html Processor SDK Linux Software Developer’s Guide], mainly chapter 3 : Foundational Components.&lt;br /&gt;
&lt;br /&gt;
TI even provides access to the sources of these documentations : https://github.com/TexasInstruments/processor-sdk-doc !!&lt;br /&gt;
&lt;br /&gt;
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/&lt;br /&gt;
&lt;br /&gt;
* 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])&lt;br /&gt;
* 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])&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
=== TI ===&lt;br /&gt;
* git://git.ti.com/processor-sdk/psdk_fw.git&lt;br /&gt;
* git://git.ti.com/ti-u-boot/ti-u-boot.git&lt;br /&gt;
* git://git.ti.com/ti-linux-kernel/ti-linux-kernel.git&lt;br /&gt;
* git://git.ti.com/processor-firmware/ti-linux-firmware.git&lt;br /&gt;
&lt;br /&gt;
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]&lt;br /&gt;
&lt;br /&gt;
=== BeagleBone ===&lt;br /&gt;
* https://openbeagle.org/beagleboard/u-boot.git - tag &amp;quot;v2023.04-ti-09.02.00.009-BeagleY-AI&amp;quot;&lt;br /&gt;
: git switch v2023.04-ti-09.02.00.009-BeagleY-AI&lt;br /&gt;
&lt;br /&gt;
=== Others ===&lt;br /&gt;
* https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git&lt;br /&gt;
* https://github.com/OP-TEE/optee_os/&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Configs ==&lt;br /&gt;
=== U-Boot ===&lt;br /&gt;
 make ARCH=arm O=../Build/u-boot/r5 am67a_beagley_ai_r5_defconfig&lt;br /&gt;
 make ARCH=arm O=../Build/u-boot/a53 am67a_beagley_ai_a53_defconfig&lt;br /&gt;
&lt;br /&gt;
=== Linux ===&lt;br /&gt;
* Device tree : arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts&lt;br /&gt;
* Kernel config file : https://git.beagleboard.org/beagleboard/linux/-/blob/d89bfdd19e7161ddba4ce4f5e34425ae6020a6db/arch/arm64/configs/bb.org_defconfig&lt;br /&gt;
&lt;br /&gt;
== Liens officiels ==&lt;br /&gt;
* https://www.beagleboard.org/boards/beagley-ai&lt;br /&gt;
* [https://www.mouser.fr/ProductDetail/BeagleBoard-by-Seeed-Studio/102991834?qs=dbcCsuKDzFXY1JA%252BEGwyow%3D%3D Achat chez Mouser à 77€]&lt;br /&gt;
&lt;br /&gt;
== Pinout ==&lt;br /&gt;
* https://pinout.beagley.ai/&lt;br /&gt;
&lt;br /&gt;
* Tag connect clip : https://www.printables.com/model/879533-beagley-ai-tagconnect-clip-10pin&lt;br /&gt;
&lt;br /&gt;
== Debug port Connection ==&lt;br /&gt;
=== Onboard connector ===&lt;br /&gt;
Despite what some have published about everywhere on the Web (even [https://docs.beagle.cc/boards/beagley/ai/03-design.html#uart within official beagleboard online documentation]), the connector &#039;&#039;&#039;IS NOT&#039;&#039;&#039; 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.&amp;lt;br /&amp;gt;&lt;br /&gt;
The official BOM gives all the information :&lt;br /&gt;
* Manufacturer : MTCONN&lt;br /&gt;
* Manufacturer part number : MTWF63-103SRN-01163&lt;br /&gt;
&lt;br /&gt;
=== Where to find mating connector ===&lt;br /&gt;
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 &amp;quot;WTB10-XX-02-2&amp;quot; ... but I do not know where to get these, much less the mating connector.&amp;lt;br /&amp;gt;&lt;br /&gt;
Some googling gave me another manufacturer with a compatible reference : [https://www.we-online.com/en/components/products/em/connectors/wire-to-board/wr_wtb/wr_wtb_1_00_mm Wurth Elektronik].&amp;lt;br /&amp;gt;&lt;br /&gt;
What&#039;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.&amp;lt;br /&amp;gt;&lt;br /&gt;
Here are the references/links for all the parts :&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_1_00_SMT_MALE_VERTICAL_SHROUDED_HEADER_6653XX124022 WR-WTB 1.00 mm SMT Male Vertical Shrouded Header]&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_1_00_FEMALE_TERMINAL_HOUSING_6650XX113322 WR-WTB 1.00 mm Female Terminal Housing]&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_1_00_FEMALE_CRIMP_CONTACT_665X0113722 WR-WTB 1.00 mm Female Crimp Terminal]&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_PRE-CRIMPED_CABLE_1_00 WR-WTB Pre-crimped wire]&lt;br /&gt;
* And even the [https://www.we-online.com/en/components/products/WTB_MANUAL_CRIMPING_TOOL_11#600665232280 WR-WTB Manual Crimping Tool]&lt;br /&gt;
Choose the number of positions you need (3 for the debug port, but there&#039;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.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* BeagleBoard linux git repository : https://git.beagleboard.org/beagleboard/linux&lt;br /&gt;
* BeagleY-AI design and detailed specifications : https://docs.beagle.cc/boards/beagley/ai/03-design.html&lt;br /&gt;
* [https://olof-astrand.medium.com/building-u-boot-and-the-linux-kernel-for-the-beagley-ai-board-0942565ab28b Building u-boot and the linux kernel for the beagleY AI board]&lt;br /&gt;
* [https://community.element14.com/products/devtools/single-board-computers/next-genbeaglebone/b/blog/posts/beagley-ai-review BeagleY-AI Review - Part 1] and [https://community.element14.com/products/devtools/single-board-computers/next-genbeaglebone/b/blog/posts/beagley-ai-review---part-2 BeagleY-AI Review - Part 2] on element 14 community.&lt;/div&gt;</summary>
		<author><name>Drizzt</name></author>
	</entry>
	<entry>
		<id>http://wiki.nathael.net/index.php?title=Dev/BeagleBone/BeagleYAI&amp;diff=354</id>
		<title>Dev/BeagleBone/BeagleYAI</title>
		<link rel="alternate" type="text/html" href="http://wiki.nathael.net/index.php?title=Dev/BeagleBone/BeagleYAI&amp;diff=354"/>
		<updated>2025-03-13T16:38:48Z</updated>

		<summary type="html">&lt;p&gt;Drizzt: /* Sources */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Description ==&lt;br /&gt;
* https://docs.beagle.cc/boards/beagley/ai/03-design.html&lt;br /&gt;
=== Processor ===&lt;br /&gt;
* The board has a TI Jacinto J722S ([https://www.ti.com/product/TDA4AEN-Q1 TDA4AEN]) AM67A SOC with&lt;br /&gt;
: - four Arm Cortex-A53 cores (main cores, 1.4Ghz)&lt;br /&gt;
: - two C7x DSP cores&lt;br /&gt;
: - one user Arm Cortex-R5F core (MCU channel with FFI, 800Mhz)&lt;br /&gt;
: - two additional Arm Cortex-R5F cores (Device management and Run-time management).&lt;br /&gt;
* BXS-4-64 GPU&lt;br /&gt;
The complete [https://software-dl.ti.com/tisci/esd/latest/5_soc_doc/j722s/processors.html list of processors] and [https://software-dl.ti.com/tisci/esd/latest/5_soc_doc/j722s/hosts.html cores]. Note that a physical processor can have multiple Host IDs (cores) depending on context and domain.&lt;br /&gt;
&lt;br /&gt;
=== Memory ===&lt;br /&gt;
* 4Go LPDDR4&lt;br /&gt;
* EEPROM (FT24C32A) on I2C0&lt;br /&gt;
* microSD Card&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== The Boot process ==&lt;br /&gt;
&lt;br /&gt;
=== Overview ===&lt;br /&gt;
From chapter &amp;quot;[https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-j722s/09_02_00_05/exports/docs/psdk_rtos/docs/user_guide/developer_notes_bootloaders.html 9.2. Understanding bootloaders in Processor SDK J722S (RTOS/Linux)] and [https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-am67a/latest/exports/docs/linux/Foundational_Components/U-Boot/UG-General-Info.html Processor SDK Linux for AM67A, chapter 3.1.1.1 - U-Boot - General Information] :&lt;br /&gt;
: The boot process on the J722S processor requires two different U-Boot images and some firmwares, which will run on different cores.&lt;br /&gt;
Information is a little bit confused, maybe because there may be different ways to achieve the boot process.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;tiboot3.bin&#039;&#039;&#039;&lt;br /&gt;
: The first &amp;quot;Secondary Program Loader&amp;quot; (SPL) that the ROM bootloader will load and execute on the MCU R5F Core0&lt;br /&gt;
: It seems to be an agregate of an U-Boot image (u-boot-spl.bin) and the TIFS firmware (sysfw)&lt;br /&gt;
: It will try to load two images : &amp;quot;tifs.bin&amp;quot; (embedded) and &amp;quot;tispl.bin&amp;quot; (from SD card)&lt;br /&gt;
* &#039;&#039;&#039;tifs.bin&#039;&#039;&#039;&lt;br /&gt;
: TI Foundational Security (TIFS)&lt;br /&gt;
: This firmware image is also called &amp;quot;SYSFW&amp;quot; and may be included inside &#039;&#039;&#039;tiboot3.bin&#039;&#039;&#039;.&lt;br /&gt;
: It is used for the &amp;quot;Secure Management Services&amp;quot; (SMS), to be run on the corresponding R5F MCU.&lt;br /&gt;
* &#039;&#039;&#039;tispl.bin&#039;&#039;&#039;&lt;br /&gt;
: The second &amp;quot;Secondary Program Loader&amp;quot; (SPL). This one will run on one of the A53 cores.&lt;br /&gt;
: This image includes the &amp;quot;ARM Trusted Firmware&amp;quot; (ATF or Trusted Firmware-A) and the &amp;quot;Trusted Execution Environment&amp;quot; (TEE, provided by OP-TEE).&lt;br /&gt;
: It also includes the &amp;quot;Device Management&amp;quot; (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).&lt;br /&gt;
: And then the &amp;quot;SPL&amp;quot; proper, which may be a reduced U-Boot image, commonly refered to as the &amp;quot;first-stage bootloader&amp;quot; which will mainly initialise the A53 core, the DDR memory, and the required subsystems so that the full U-Boot image can run.&lt;br /&gt;
* &#039;&#039;&#039;uboot.img&#039;&#039;&#039;&lt;br /&gt;
: This is the final U-Boot image, also called &amp;quot;second-stage bootloader&amp;quot;, which will also run on one of the A53 cores.&lt;br /&gt;
: This one will provide a prompt and load the Linux kernel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Where to get more information ===&lt;br /&gt;
Credits : I started finding useful and accurate information on [https://olof-astrand.medium.com/building-u-boot-and-the-linux-kernel-for-the-beagley-ai-board-0942565ab28b 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&#039;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.&lt;br /&gt;
&lt;br /&gt;
Anyway, this post references some useful sources :&lt;br /&gt;
* [https://software-dl.ti.com/tisci/esd/latest/1_intro/TISCI.html Texas Instruments System Controller Interface] (TISCI)&lt;br /&gt;
* [https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-j722s/09_02_00_05/exports/docs/psdk_rtos/docs/user_guide/index.html Processor SDK RTOS J722S]&lt;br /&gt;
* [https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-am67a/latest/exports/docs/devices/J7_Family/linux/index.html Processor SDK Linux Software Developer’s Guide], mainly chapter 3 : Foundational Components.&lt;br /&gt;
&lt;br /&gt;
TI even provides access to the sources of these documentations : https://github.com/TexasInstruments/processor-sdk-doc !!&lt;br /&gt;
&lt;br /&gt;
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/&lt;br /&gt;
&lt;br /&gt;
* 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])&lt;br /&gt;
* 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])&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
=== TI ===&lt;br /&gt;
* git://git.ti.com/processor-sdk/psdk_fw.git&lt;br /&gt;
* git://git.ti.com/ti-u-boot/ti-u-boot.git&lt;br /&gt;
* git://git.ti.com/ti-linux-kernel/ti-linux-kernel.git&lt;br /&gt;
&lt;br /&gt;
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]&lt;br /&gt;
&lt;br /&gt;
=== BeagleBone ===&lt;br /&gt;
* https://openbeagle.org/beagleboard/u-boot.git - tag &amp;quot;v2023.04-ti-09.02.00.009-BeagleY-AI&amp;quot;&lt;br /&gt;
: git switch v2023.04-ti-09.02.00.009-BeagleY-AI&lt;br /&gt;
&lt;br /&gt;
=== Others ===&lt;br /&gt;
* https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git&lt;br /&gt;
* https://github.com/OP-TEE/optee_os/&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Configs ==&lt;br /&gt;
=== U-Boot ===&lt;br /&gt;
 make ARCH=arm O=../Build/u-boot/r5 am67a_beagley_ai_r5_defconfig&lt;br /&gt;
 make ARCH=arm O=../Build/u-boot/a53 am67a_beagley_ai_a53_defconfig&lt;br /&gt;
&lt;br /&gt;
=== Linux ===&lt;br /&gt;
* Device tree : arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts&lt;br /&gt;
* Kernel config file : https://git.beagleboard.org/beagleboard/linux/-/blob/d89bfdd19e7161ddba4ce4f5e34425ae6020a6db/arch/arm64/configs/bb.org_defconfig&lt;br /&gt;
&lt;br /&gt;
== Liens officiels ==&lt;br /&gt;
* https://www.beagleboard.org/boards/beagley-ai&lt;br /&gt;
* [https://www.mouser.fr/ProductDetail/BeagleBoard-by-Seeed-Studio/102991834?qs=dbcCsuKDzFXY1JA%252BEGwyow%3D%3D Achat chez Mouser à 77€]&lt;br /&gt;
&lt;br /&gt;
== Pinout ==&lt;br /&gt;
* https://pinout.beagley.ai/&lt;br /&gt;
&lt;br /&gt;
* Tag connect clip : https://www.printables.com/model/879533-beagley-ai-tagconnect-clip-10pin&lt;br /&gt;
&lt;br /&gt;
== Debug port Connection ==&lt;br /&gt;
=== Onboard connector ===&lt;br /&gt;
Despite what some have published about everywhere on the Web (even [https://docs.beagle.cc/boards/beagley/ai/03-design.html#uart within official beagleboard online documentation]), the connector &#039;&#039;&#039;IS NOT&#039;&#039;&#039; 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.&amp;lt;br /&amp;gt;&lt;br /&gt;
The official BOM gives all the information :&lt;br /&gt;
* Manufacturer : MTCONN&lt;br /&gt;
* Manufacturer part number : MTWF63-103SRN-01163&lt;br /&gt;
&lt;br /&gt;
=== Where to find mating connector ===&lt;br /&gt;
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 &amp;quot;WTB10-XX-02-2&amp;quot; ... but I do not know where to get these, much less the mating connector.&amp;lt;br /&amp;gt;&lt;br /&gt;
Some googling gave me another manufacturer with a compatible reference : [https://www.we-online.com/en/components/products/em/connectors/wire-to-board/wr_wtb/wr_wtb_1_00_mm Wurth Elektronik].&amp;lt;br /&amp;gt;&lt;br /&gt;
What&#039;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.&amp;lt;br /&amp;gt;&lt;br /&gt;
Here are the references/links for all the parts :&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_1_00_SMT_MALE_VERTICAL_SHROUDED_HEADER_6653XX124022 WR-WTB 1.00 mm SMT Male Vertical Shrouded Header]&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_1_00_FEMALE_TERMINAL_HOUSING_6650XX113322 WR-WTB 1.00 mm Female Terminal Housing]&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_1_00_FEMALE_CRIMP_CONTACT_665X0113722 WR-WTB 1.00 mm Female Crimp Terminal]&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_PRE-CRIMPED_CABLE_1_00 WR-WTB Pre-crimped wire]&lt;br /&gt;
* And even the [https://www.we-online.com/en/components/products/WTB_MANUAL_CRIMPING_TOOL_11#600665232280 WR-WTB Manual Crimping Tool]&lt;br /&gt;
Choose the number of positions you need (3 for the debug port, but there&#039;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.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* BeagleBoard linux git repository : https://git.beagleboard.org/beagleboard/linux&lt;br /&gt;
* BeagleY-AI design and detailed specifications : https://docs.beagle.cc/boards/beagley/ai/03-design.html&lt;br /&gt;
* [https://olof-astrand.medium.com/building-u-boot-and-the-linux-kernel-for-the-beagley-ai-board-0942565ab28b Building u-boot and the linux kernel for the beagleY AI board]&lt;br /&gt;
* [https://community.element14.com/products/devtools/single-board-computers/next-genbeaglebone/b/blog/posts/beagley-ai-review BeagleY-AI Review - Part 1] and [https://community.element14.com/products/devtools/single-board-computers/next-genbeaglebone/b/blog/posts/beagley-ai-review---part-2 BeagleY-AI Review - Part 2] on element 14 community.&lt;/div&gt;</summary>
		<author><name>Drizzt</name></author>
	</entry>
	<entry>
		<id>http://wiki.nathael.net/index.php?title=Dev/BeagleBone/BeagleYAI&amp;diff=353</id>
		<title>Dev/BeagleBone/BeagleYAI</title>
		<link rel="alternate" type="text/html" href="http://wiki.nathael.net/index.php?title=Dev/BeagleBone/BeagleYAI&amp;diff=353"/>
		<updated>2025-03-13T16:37:39Z</updated>

		<summary type="html">&lt;p&gt;Drizzt: /* Sources */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Description ==&lt;br /&gt;
* https://docs.beagle.cc/boards/beagley/ai/03-design.html&lt;br /&gt;
=== Processor ===&lt;br /&gt;
* The board has a TI Jacinto J722S ([https://www.ti.com/product/TDA4AEN-Q1 TDA4AEN]) AM67A SOC with&lt;br /&gt;
: - four Arm Cortex-A53 cores (main cores, 1.4Ghz)&lt;br /&gt;
: - two C7x DSP cores&lt;br /&gt;
: - one user Arm Cortex-R5F core (MCU channel with FFI, 800Mhz)&lt;br /&gt;
: - two additional Arm Cortex-R5F cores (Device management and Run-time management).&lt;br /&gt;
* BXS-4-64 GPU&lt;br /&gt;
The complete [https://software-dl.ti.com/tisci/esd/latest/5_soc_doc/j722s/processors.html list of processors] and [https://software-dl.ti.com/tisci/esd/latest/5_soc_doc/j722s/hosts.html cores]. Note that a physical processor can have multiple Host IDs (cores) depending on context and domain.&lt;br /&gt;
&lt;br /&gt;
=== Memory ===&lt;br /&gt;
* 4Go LPDDR4&lt;br /&gt;
* EEPROM (FT24C32A) on I2C0&lt;br /&gt;
* microSD Card&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== The Boot process ==&lt;br /&gt;
&lt;br /&gt;
=== Overview ===&lt;br /&gt;
From chapter &amp;quot;[https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-j722s/09_02_00_05/exports/docs/psdk_rtos/docs/user_guide/developer_notes_bootloaders.html 9.2. Understanding bootloaders in Processor SDK J722S (RTOS/Linux)] and [https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-am67a/latest/exports/docs/linux/Foundational_Components/U-Boot/UG-General-Info.html Processor SDK Linux for AM67A, chapter 3.1.1.1 - U-Boot - General Information] :&lt;br /&gt;
: The boot process on the J722S processor requires two different U-Boot images and some firmwares, which will run on different cores.&lt;br /&gt;
Information is a little bit confused, maybe because there may be different ways to achieve the boot process.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;tiboot3.bin&#039;&#039;&#039;&lt;br /&gt;
: The first &amp;quot;Secondary Program Loader&amp;quot; (SPL) that the ROM bootloader will load and execute on the MCU R5F Core0&lt;br /&gt;
: It seems to be an agregate of an U-Boot image (u-boot-spl.bin) and the TIFS firmware (sysfw)&lt;br /&gt;
: It will try to load two images : &amp;quot;tifs.bin&amp;quot; (embedded) and &amp;quot;tispl.bin&amp;quot; (from SD card)&lt;br /&gt;
* &#039;&#039;&#039;tifs.bin&#039;&#039;&#039;&lt;br /&gt;
: TI Foundational Security (TIFS)&lt;br /&gt;
: This firmware image is also called &amp;quot;SYSFW&amp;quot; and may be included inside &#039;&#039;&#039;tiboot3.bin&#039;&#039;&#039;.&lt;br /&gt;
: It is used for the &amp;quot;Secure Management Services&amp;quot; (SMS), to be run on the corresponding R5F MCU.&lt;br /&gt;
* &#039;&#039;&#039;tispl.bin&#039;&#039;&#039;&lt;br /&gt;
: The second &amp;quot;Secondary Program Loader&amp;quot; (SPL). This one will run on one of the A53 cores.&lt;br /&gt;
: This image includes the &amp;quot;ARM Trusted Firmware&amp;quot; (ATF or Trusted Firmware-A) and the &amp;quot;Trusted Execution Environment&amp;quot; (TEE, provided by OP-TEE).&lt;br /&gt;
: It also includes the &amp;quot;Device Management&amp;quot; (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).&lt;br /&gt;
: And then the &amp;quot;SPL&amp;quot; proper, which may be a reduced U-Boot image, commonly refered to as the &amp;quot;first-stage bootloader&amp;quot; which will mainly initialise the A53 core, the DDR memory, and the required subsystems so that the full U-Boot image can run.&lt;br /&gt;
* &#039;&#039;&#039;uboot.img&#039;&#039;&#039;&lt;br /&gt;
: This is the final U-Boot image, also called &amp;quot;second-stage bootloader&amp;quot;, which will also run on one of the A53 cores.&lt;br /&gt;
: This one will provide a prompt and load the Linux kernel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Where to get more information ===&lt;br /&gt;
Credits : I started finding useful and accurate information on [https://olof-astrand.medium.com/building-u-boot-and-the-linux-kernel-for-the-beagley-ai-board-0942565ab28b 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&#039;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.&lt;br /&gt;
&lt;br /&gt;
Anyway, this post references some useful sources :&lt;br /&gt;
* [https://software-dl.ti.com/tisci/esd/latest/1_intro/TISCI.html Texas Instruments System Controller Interface] (TISCI)&lt;br /&gt;
* [https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-j722s/09_02_00_05/exports/docs/psdk_rtos/docs/user_guide/index.html Processor SDK RTOS J722S]&lt;br /&gt;
* [https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-am67a/latest/exports/docs/devices/J7_Family/linux/index.html Processor SDK Linux Software Developer’s Guide], mainly chapter 3 : Foundational Components.&lt;br /&gt;
&lt;br /&gt;
TI even provides access to the sources of these documentations : https://github.com/TexasInstruments/processor-sdk-doc !!&lt;br /&gt;
&lt;br /&gt;
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/&lt;br /&gt;
&lt;br /&gt;
* 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])&lt;br /&gt;
* 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])&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
=== TI ===&lt;br /&gt;
* git://git.ti.com/processor-sdk/psdk_fw.git&lt;br /&gt;
* git://git.ti.com/ti-u-boot/ti-u-boot.git&lt;br /&gt;
* git://git.ti.com/ti-linux-kernel/ti-linux-kernel.git&lt;br /&gt;
&lt;br /&gt;
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]&lt;br /&gt;
&lt;br /&gt;
=== BeagleBone ===&lt;br /&gt;
* https://openbeagle.org/beagleboard/u-boot.git - tag &amp;quot;v2023.04-ti-09.02.00.009-BeagleY-AI&amp;quot;&lt;br /&gt;
: git switch v2023.04-ti-09.02.00.009-BeagleY-AI&lt;br /&gt;
&lt;br /&gt;
=== Others ===&lt;br /&gt;
* https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git&lt;br /&gt;
* https://github.com/OP-TEE/optee_os/&lt;br /&gt;
&lt;br /&gt;
== Configs ==&lt;br /&gt;
=== U-Boot ===&lt;br /&gt;
 make ARCH=arm O=../Build/u-boot/r5 am67a_beagley_ai_r5_defconfig&lt;br /&gt;
 make ARCH=arm O=../Build/u-boot/a53 am67a_beagley_ai_a53_defconfig&lt;br /&gt;
&lt;br /&gt;
=== Linux ===&lt;br /&gt;
* Device tree : arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts&lt;br /&gt;
* Kernel config file : https://git.beagleboard.org/beagleboard/linux/-/blob/d89bfdd19e7161ddba4ce4f5e34425ae6020a6db/arch/arm64/configs/bb.org_defconfig&lt;br /&gt;
&lt;br /&gt;
== Liens officiels ==&lt;br /&gt;
* https://www.beagleboard.org/boards/beagley-ai&lt;br /&gt;
* [https://www.mouser.fr/ProductDetail/BeagleBoard-by-Seeed-Studio/102991834?qs=dbcCsuKDzFXY1JA%252BEGwyow%3D%3D Achat chez Mouser à 77€]&lt;br /&gt;
&lt;br /&gt;
== Pinout ==&lt;br /&gt;
* https://pinout.beagley.ai/&lt;br /&gt;
&lt;br /&gt;
* Tag connect clip : https://www.printables.com/model/879533-beagley-ai-tagconnect-clip-10pin&lt;br /&gt;
&lt;br /&gt;
== Debug port Connection ==&lt;br /&gt;
=== Onboard connector ===&lt;br /&gt;
Despite what some have published about everywhere on the Web (even [https://docs.beagle.cc/boards/beagley/ai/03-design.html#uart within official beagleboard online documentation]), the connector &#039;&#039;&#039;IS NOT&#039;&#039;&#039; 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.&amp;lt;br /&amp;gt;&lt;br /&gt;
The official BOM gives all the information :&lt;br /&gt;
* Manufacturer : MTCONN&lt;br /&gt;
* Manufacturer part number : MTWF63-103SRN-01163&lt;br /&gt;
&lt;br /&gt;
=== Where to find mating connector ===&lt;br /&gt;
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 &amp;quot;WTB10-XX-02-2&amp;quot; ... but I do not know where to get these, much less the mating connector.&amp;lt;br /&amp;gt;&lt;br /&gt;
Some googling gave me another manufacturer with a compatible reference : [https://www.we-online.com/en/components/products/em/connectors/wire-to-board/wr_wtb/wr_wtb_1_00_mm Wurth Elektronik].&amp;lt;br /&amp;gt;&lt;br /&gt;
What&#039;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.&amp;lt;br /&amp;gt;&lt;br /&gt;
Here are the references/links for all the parts :&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_1_00_SMT_MALE_VERTICAL_SHROUDED_HEADER_6653XX124022 WR-WTB 1.00 mm SMT Male Vertical Shrouded Header]&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_1_00_FEMALE_TERMINAL_HOUSING_6650XX113322 WR-WTB 1.00 mm Female Terminal Housing]&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_1_00_FEMALE_CRIMP_CONTACT_665X0113722 WR-WTB 1.00 mm Female Crimp Terminal]&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_PRE-CRIMPED_CABLE_1_00 WR-WTB Pre-crimped wire]&lt;br /&gt;
* And even the [https://www.we-online.com/en/components/products/WTB_MANUAL_CRIMPING_TOOL_11#600665232280 WR-WTB Manual Crimping Tool]&lt;br /&gt;
Choose the number of positions you need (3 for the debug port, but there&#039;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.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* BeagleBoard linux git repository : https://git.beagleboard.org/beagleboard/linux&lt;br /&gt;
* BeagleY-AI design and detailed specifications : https://docs.beagle.cc/boards/beagley/ai/03-design.html&lt;br /&gt;
* [https://olof-astrand.medium.com/building-u-boot-and-the-linux-kernel-for-the-beagley-ai-board-0942565ab28b Building u-boot and the linux kernel for the beagleY AI board]&lt;br /&gt;
* [https://community.element14.com/products/devtools/single-board-computers/next-genbeaglebone/b/blog/posts/beagley-ai-review BeagleY-AI Review - Part 1] and [https://community.element14.com/products/devtools/single-board-computers/next-genbeaglebone/b/blog/posts/beagley-ai-review---part-2 BeagleY-AI Review - Part 2] on element 14 community.&lt;/div&gt;</summary>
		<author><name>Drizzt</name></author>
	</entry>
	<entry>
		<id>http://wiki.nathael.net/index.php?title=Dev/BeagleBone/BeagleYAI&amp;diff=352</id>
		<title>Dev/BeagleBone/BeagleYAI</title>
		<link rel="alternate" type="text/html" href="http://wiki.nathael.net/index.php?title=Dev/BeagleBone/BeagleYAI&amp;diff=352"/>
		<updated>2025-03-13T16:35:55Z</updated>

		<summary type="html">&lt;p&gt;Drizzt: /* Where to get more information */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Description ==&lt;br /&gt;
* https://docs.beagle.cc/boards/beagley/ai/03-design.html&lt;br /&gt;
=== Processor ===&lt;br /&gt;
* The board has a TI Jacinto J722S ([https://www.ti.com/product/TDA4AEN-Q1 TDA4AEN]) AM67A SOC with&lt;br /&gt;
: - four Arm Cortex-A53 cores (main cores, 1.4Ghz)&lt;br /&gt;
: - two C7x DSP cores&lt;br /&gt;
: - one user Arm Cortex-R5F core (MCU channel with FFI, 800Mhz)&lt;br /&gt;
: - two additional Arm Cortex-R5F cores (Device management and Run-time management).&lt;br /&gt;
* BXS-4-64 GPU&lt;br /&gt;
The complete [https://software-dl.ti.com/tisci/esd/latest/5_soc_doc/j722s/processors.html list of processors] and [https://software-dl.ti.com/tisci/esd/latest/5_soc_doc/j722s/hosts.html cores]. Note that a physical processor can have multiple Host IDs (cores) depending on context and domain.&lt;br /&gt;
&lt;br /&gt;
=== Memory ===&lt;br /&gt;
* 4Go LPDDR4&lt;br /&gt;
* EEPROM (FT24C32A) on I2C0&lt;br /&gt;
* microSD Card&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== The Boot process ==&lt;br /&gt;
&lt;br /&gt;
=== Overview ===&lt;br /&gt;
From chapter &amp;quot;[https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-j722s/09_02_00_05/exports/docs/psdk_rtos/docs/user_guide/developer_notes_bootloaders.html 9.2. Understanding bootloaders in Processor SDK J722S (RTOS/Linux)] and [https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-am67a/latest/exports/docs/linux/Foundational_Components/U-Boot/UG-General-Info.html Processor SDK Linux for AM67A, chapter 3.1.1.1 - U-Boot - General Information] :&lt;br /&gt;
: The boot process on the J722S processor requires two different U-Boot images and some firmwares, which will run on different cores.&lt;br /&gt;
Information is a little bit confused, maybe because there may be different ways to achieve the boot process.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;tiboot3.bin&#039;&#039;&#039;&lt;br /&gt;
: The first &amp;quot;Secondary Program Loader&amp;quot; (SPL) that the ROM bootloader will load and execute on the MCU R5F Core0&lt;br /&gt;
: It seems to be an agregate of an U-Boot image (u-boot-spl.bin) and the TIFS firmware (sysfw)&lt;br /&gt;
: It will try to load two images : &amp;quot;tifs.bin&amp;quot; (embedded) and &amp;quot;tispl.bin&amp;quot; (from SD card)&lt;br /&gt;
* &#039;&#039;&#039;tifs.bin&#039;&#039;&#039;&lt;br /&gt;
: TI Foundational Security (TIFS)&lt;br /&gt;
: This firmware image is also called &amp;quot;SYSFW&amp;quot; and may be included inside &#039;&#039;&#039;tiboot3.bin&#039;&#039;&#039;.&lt;br /&gt;
: It is used for the &amp;quot;Secure Management Services&amp;quot; (SMS), to be run on the corresponding R5F MCU.&lt;br /&gt;
* &#039;&#039;&#039;tispl.bin&#039;&#039;&#039;&lt;br /&gt;
: The second &amp;quot;Secondary Program Loader&amp;quot; (SPL). This one will run on one of the A53 cores.&lt;br /&gt;
: This image includes the &amp;quot;ARM Trusted Firmware&amp;quot; (ATF or Trusted Firmware-A) and the &amp;quot;Trusted Execution Environment&amp;quot; (TEE, provided by OP-TEE).&lt;br /&gt;
: It also includes the &amp;quot;Device Management&amp;quot; (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).&lt;br /&gt;
: And then the &amp;quot;SPL&amp;quot; proper, which may be a reduced U-Boot image, commonly refered to as the &amp;quot;first-stage bootloader&amp;quot; which will mainly initialise the A53 core, the DDR memory, and the required subsystems so that the full U-Boot image can run.&lt;br /&gt;
* &#039;&#039;&#039;uboot.img&#039;&#039;&#039;&lt;br /&gt;
: This is the final U-Boot image, also called &amp;quot;second-stage bootloader&amp;quot;, which will also run on one of the A53 cores.&lt;br /&gt;
: This one will provide a prompt and load the Linux kernel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Where to get more information ===&lt;br /&gt;
Credits : I started finding useful and accurate information on [https://olof-astrand.medium.com/building-u-boot-and-the-linux-kernel-for-the-beagley-ai-board-0942565ab28b 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&#039;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.&lt;br /&gt;
&lt;br /&gt;
Anyway, this post references some useful sources :&lt;br /&gt;
* [https://software-dl.ti.com/tisci/esd/latest/1_intro/TISCI.html Texas Instruments System Controller Interface] (TISCI)&lt;br /&gt;
* [https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-j722s/09_02_00_05/exports/docs/psdk_rtos/docs/user_guide/index.html Processor SDK RTOS J722S]&lt;br /&gt;
* [https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-am67a/latest/exports/docs/devices/J7_Family/linux/index.html Processor SDK Linux Software Developer’s Guide], mainly chapter 3 : Foundational Components.&lt;br /&gt;
&lt;br /&gt;
TI even provides access to the sources of these documentations : https://github.com/TexasInstruments/processor-sdk-doc !!&lt;br /&gt;
&lt;br /&gt;
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/&lt;br /&gt;
&lt;br /&gt;
* 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])&lt;br /&gt;
* 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])&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
=== TI ===&lt;br /&gt;
* git://git.ti.com/processor-sdk/psdk_fw.git&lt;br /&gt;
* git://git.ti.com/ti-u-boot/ti-u-boot.git&lt;br /&gt;
* git://git.ti.com/ti-linux-kernel/ti-linux-kernel.git&lt;br /&gt;
&lt;br /&gt;
Sources, branches and tags are referenced here : https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-am67a/latest/exports/docs/devices/J7_Family/linux/Release_Specific_Release_Notes.html&lt;br /&gt;
&lt;br /&gt;
=== BeagleBone ===&lt;br /&gt;
* https://openbeagle.org/beagleboard/u-boot.git - tag &amp;quot;v2023.04-ti-09.02.00.009-BeagleY-AI&amp;quot;&lt;br /&gt;
: git switch v2023.04-ti-09.02.00.009-BeagleY-AI&lt;br /&gt;
&lt;br /&gt;
=== Others ===&lt;br /&gt;
* https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git&lt;br /&gt;
* https://github.com/OP-TEE/optee_os/&lt;br /&gt;
&lt;br /&gt;
== Configs ==&lt;br /&gt;
=== U-Boot ===&lt;br /&gt;
 make ARCH=arm O=../Build/u-boot/r5 am67a_beagley_ai_r5_defconfig&lt;br /&gt;
 make ARCH=arm O=../Build/u-boot/a53 am67a_beagley_ai_a53_defconfig&lt;br /&gt;
&lt;br /&gt;
=== Linux ===&lt;br /&gt;
* Device tree : arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts&lt;br /&gt;
* Kernel config file : https://git.beagleboard.org/beagleboard/linux/-/blob/d89bfdd19e7161ddba4ce4f5e34425ae6020a6db/arch/arm64/configs/bb.org_defconfig&lt;br /&gt;
&lt;br /&gt;
== Liens officiels ==&lt;br /&gt;
* https://www.beagleboard.org/boards/beagley-ai&lt;br /&gt;
* [https://www.mouser.fr/ProductDetail/BeagleBoard-by-Seeed-Studio/102991834?qs=dbcCsuKDzFXY1JA%252BEGwyow%3D%3D Achat chez Mouser à 77€]&lt;br /&gt;
&lt;br /&gt;
== Pinout ==&lt;br /&gt;
* https://pinout.beagley.ai/&lt;br /&gt;
&lt;br /&gt;
* Tag connect clip : https://www.printables.com/model/879533-beagley-ai-tagconnect-clip-10pin&lt;br /&gt;
&lt;br /&gt;
== Debug port Connection ==&lt;br /&gt;
=== Onboard connector ===&lt;br /&gt;
Despite what some have published about everywhere on the Web (even [https://docs.beagle.cc/boards/beagley/ai/03-design.html#uart within official beagleboard online documentation]), the connector &#039;&#039;&#039;IS NOT&#039;&#039;&#039; 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.&amp;lt;br /&amp;gt;&lt;br /&gt;
The official BOM gives all the information :&lt;br /&gt;
* Manufacturer : MTCONN&lt;br /&gt;
* Manufacturer part number : MTWF63-103SRN-01163&lt;br /&gt;
&lt;br /&gt;
=== Where to find mating connector ===&lt;br /&gt;
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 &amp;quot;WTB10-XX-02-2&amp;quot; ... but I do not know where to get these, much less the mating connector.&amp;lt;br /&amp;gt;&lt;br /&gt;
Some googling gave me another manufacturer with a compatible reference : [https://www.we-online.com/en/components/products/em/connectors/wire-to-board/wr_wtb/wr_wtb_1_00_mm Wurth Elektronik].&amp;lt;br /&amp;gt;&lt;br /&gt;
What&#039;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.&amp;lt;br /&amp;gt;&lt;br /&gt;
Here are the references/links for all the parts :&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_1_00_SMT_MALE_VERTICAL_SHROUDED_HEADER_6653XX124022 WR-WTB 1.00 mm SMT Male Vertical Shrouded Header]&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_1_00_FEMALE_TERMINAL_HOUSING_6650XX113322 WR-WTB 1.00 mm Female Terminal Housing]&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_1_00_FEMALE_CRIMP_CONTACT_665X0113722 WR-WTB 1.00 mm Female Crimp Terminal]&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_PRE-CRIMPED_CABLE_1_00 WR-WTB Pre-crimped wire]&lt;br /&gt;
* And even the [https://www.we-online.com/en/components/products/WTB_MANUAL_CRIMPING_TOOL_11#600665232280 WR-WTB Manual Crimping Tool]&lt;br /&gt;
Choose the number of positions you need (3 for the debug port, but there&#039;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.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* BeagleBoard linux git repository : https://git.beagleboard.org/beagleboard/linux&lt;br /&gt;
* BeagleY-AI design and detailed specifications : https://docs.beagle.cc/boards/beagley/ai/03-design.html&lt;br /&gt;
* [https://olof-astrand.medium.com/building-u-boot-and-the-linux-kernel-for-the-beagley-ai-board-0942565ab28b Building u-boot and the linux kernel for the beagleY AI board]&lt;br /&gt;
* [https://community.element14.com/products/devtools/single-board-computers/next-genbeaglebone/b/blog/posts/beagley-ai-review BeagleY-AI Review - Part 1] and [https://community.element14.com/products/devtools/single-board-computers/next-genbeaglebone/b/blog/posts/beagley-ai-review---part-2 BeagleY-AI Review - Part 2] on element 14 community.&lt;/div&gt;</summary>
		<author><name>Drizzt</name></author>
	</entry>
	<entry>
		<id>http://wiki.nathael.net/index.php?title=Dev/BeagleBone/BeagleYAI&amp;diff=351</id>
		<title>Dev/BeagleBone/BeagleYAI</title>
		<link rel="alternate" type="text/html" href="http://wiki.nathael.net/index.php?title=Dev/BeagleBone/BeagleYAI&amp;diff=351"/>
		<updated>2025-03-13T16:32:22Z</updated>

		<summary type="html">&lt;p&gt;Drizzt: /* Processor */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Description ==&lt;br /&gt;
* https://docs.beagle.cc/boards/beagley/ai/03-design.html&lt;br /&gt;
=== Processor ===&lt;br /&gt;
* The board has a TI Jacinto J722S ([https://www.ti.com/product/TDA4AEN-Q1 TDA4AEN]) AM67A SOC with&lt;br /&gt;
: - four Arm Cortex-A53 cores (main cores, 1.4Ghz)&lt;br /&gt;
: - two C7x DSP cores&lt;br /&gt;
: - one user Arm Cortex-R5F core (MCU channel with FFI, 800Mhz)&lt;br /&gt;
: - two additional Arm Cortex-R5F cores (Device management and Run-time management).&lt;br /&gt;
* BXS-4-64 GPU&lt;br /&gt;
The complete [https://software-dl.ti.com/tisci/esd/latest/5_soc_doc/j722s/processors.html list of processors] and [https://software-dl.ti.com/tisci/esd/latest/5_soc_doc/j722s/hosts.html cores]. Note that a physical processor can have multiple Host IDs (cores) depending on context and domain.&lt;br /&gt;
&lt;br /&gt;
=== Memory ===&lt;br /&gt;
* 4Go LPDDR4&lt;br /&gt;
* EEPROM (FT24C32A) on I2C0&lt;br /&gt;
* microSD Card&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== The Boot process ==&lt;br /&gt;
&lt;br /&gt;
=== Overview ===&lt;br /&gt;
From chapter &amp;quot;[https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-j722s/09_02_00_05/exports/docs/psdk_rtos/docs/user_guide/developer_notes_bootloaders.html 9.2. Understanding bootloaders in Processor SDK J722S (RTOS/Linux)] and [https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-am67a/latest/exports/docs/linux/Foundational_Components/U-Boot/UG-General-Info.html Processor SDK Linux for AM67A, chapter 3.1.1.1 - U-Boot - General Information] :&lt;br /&gt;
: The boot process on the J722S processor requires two different U-Boot images and some firmwares, which will run on different cores.&lt;br /&gt;
Information is a little bit confused, maybe because there may be different ways to achieve the boot process.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;tiboot3.bin&#039;&#039;&#039;&lt;br /&gt;
: The first &amp;quot;Secondary Program Loader&amp;quot; (SPL) that the ROM bootloader will load and execute on the MCU R5F Core0&lt;br /&gt;
: It seems to be an agregate of an U-Boot image (u-boot-spl.bin) and the TIFS firmware (sysfw)&lt;br /&gt;
: It will try to load two images : &amp;quot;tifs.bin&amp;quot; (embedded) and &amp;quot;tispl.bin&amp;quot; (from SD card)&lt;br /&gt;
* &#039;&#039;&#039;tifs.bin&#039;&#039;&#039;&lt;br /&gt;
: TI Foundational Security (TIFS)&lt;br /&gt;
: This firmware image is also called &amp;quot;SYSFW&amp;quot; and may be included inside &#039;&#039;&#039;tiboot3.bin&#039;&#039;&#039;.&lt;br /&gt;
: It is used for the &amp;quot;Secure Management Services&amp;quot; (SMS), to be run on the corresponding R5F MCU.&lt;br /&gt;
* &#039;&#039;&#039;tispl.bin&#039;&#039;&#039;&lt;br /&gt;
: The second &amp;quot;Secondary Program Loader&amp;quot; (SPL). This one will run on one of the A53 cores.&lt;br /&gt;
: This image includes the &amp;quot;ARM Trusted Firmware&amp;quot; (ATF or Trusted Firmware-A) and the &amp;quot;Trusted Execution Environment&amp;quot; (TEE, provided by OP-TEE).&lt;br /&gt;
: It also includes the &amp;quot;Device Management&amp;quot; (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).&lt;br /&gt;
: And then the &amp;quot;SPL&amp;quot; proper, which may be a reduced U-Boot image, commonly refered to as the &amp;quot;first-stage bootloader&amp;quot; which will mainly initialise the A53 core, the DDR memory, and the required subsystems so that the full U-Boot image can run.&lt;br /&gt;
* &#039;&#039;&#039;uboot.img&#039;&#039;&#039;&lt;br /&gt;
: This is the final U-Boot image, also called &amp;quot;second-stage bootloader&amp;quot;, which will also run on one of the A53 cores.&lt;br /&gt;
: This one will provide a prompt and load the Linux kernel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Where to get more information ===&lt;br /&gt;
Credits : I started finding useful and accurate information on [https://olof-astrand.medium.com/building-u-boot-and-the-linux-kernel-for-the-beagley-ai-board-0942565ab28b 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&#039;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.&lt;br /&gt;
&lt;br /&gt;
Anyway, this post references some useful sources :&lt;br /&gt;
* [https://software-dl.ti.com/tisci/esd/latest/1_intro/TISCI.html Texas Instruments System Controller Interface] (TISCI)&lt;br /&gt;
* [https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-j722s/09_02_00_05/exports/docs/psdk_rtos/docs/user_guide/index.html Processor SDK RTOS J722S]&lt;br /&gt;
* [https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-am67a/latest/exports/docs/devices/J7_Family/linux/index.html Processor SDK Linux Software Developer’s Guide], mainly chapter 3 : Foundational Components.&lt;br /&gt;
&lt;br /&gt;
TI even provides access to the sources of these documentations : https://github.com/TexasInstruments/processor-sdk-doc !!&lt;br /&gt;
&lt;br /&gt;
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/&lt;br /&gt;
&lt;br /&gt;
* Trusted Firmware-A https://trustedfirmware-a.readthedocs.io/en/latest/index.html&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
=== TI ===&lt;br /&gt;
* git://git.ti.com/processor-sdk/psdk_fw.git&lt;br /&gt;
* git://git.ti.com/ti-u-boot/ti-u-boot.git&lt;br /&gt;
* git://git.ti.com/ti-linux-kernel/ti-linux-kernel.git&lt;br /&gt;
&lt;br /&gt;
Sources, branches and tags are referenced here : https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-am67a/latest/exports/docs/devices/J7_Family/linux/Release_Specific_Release_Notes.html&lt;br /&gt;
&lt;br /&gt;
=== BeagleBone ===&lt;br /&gt;
* https://openbeagle.org/beagleboard/u-boot.git - tag &amp;quot;v2023.04-ti-09.02.00.009-BeagleY-AI&amp;quot;&lt;br /&gt;
: git switch v2023.04-ti-09.02.00.009-BeagleY-AI&lt;br /&gt;
&lt;br /&gt;
=== Others ===&lt;br /&gt;
* https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git&lt;br /&gt;
* https://github.com/OP-TEE/optee_os/&lt;br /&gt;
&lt;br /&gt;
== Configs ==&lt;br /&gt;
=== U-Boot ===&lt;br /&gt;
 make ARCH=arm O=../Build/u-boot/r5 am67a_beagley_ai_r5_defconfig&lt;br /&gt;
 make ARCH=arm O=../Build/u-boot/a53 am67a_beagley_ai_a53_defconfig&lt;br /&gt;
&lt;br /&gt;
=== Linux ===&lt;br /&gt;
* Device tree : arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts&lt;br /&gt;
* Kernel config file : https://git.beagleboard.org/beagleboard/linux/-/blob/d89bfdd19e7161ddba4ce4f5e34425ae6020a6db/arch/arm64/configs/bb.org_defconfig&lt;br /&gt;
&lt;br /&gt;
== Liens officiels ==&lt;br /&gt;
* https://www.beagleboard.org/boards/beagley-ai&lt;br /&gt;
* [https://www.mouser.fr/ProductDetail/BeagleBoard-by-Seeed-Studio/102991834?qs=dbcCsuKDzFXY1JA%252BEGwyow%3D%3D Achat chez Mouser à 77€]&lt;br /&gt;
&lt;br /&gt;
== Pinout ==&lt;br /&gt;
* https://pinout.beagley.ai/&lt;br /&gt;
&lt;br /&gt;
* Tag connect clip : https://www.printables.com/model/879533-beagley-ai-tagconnect-clip-10pin&lt;br /&gt;
&lt;br /&gt;
== Debug port Connection ==&lt;br /&gt;
=== Onboard connector ===&lt;br /&gt;
Despite what some have published about everywhere on the Web (even [https://docs.beagle.cc/boards/beagley/ai/03-design.html#uart within official beagleboard online documentation]), the connector &#039;&#039;&#039;IS NOT&#039;&#039;&#039; 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.&amp;lt;br /&amp;gt;&lt;br /&gt;
The official BOM gives all the information :&lt;br /&gt;
* Manufacturer : MTCONN&lt;br /&gt;
* Manufacturer part number : MTWF63-103SRN-01163&lt;br /&gt;
&lt;br /&gt;
=== Where to find mating connector ===&lt;br /&gt;
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 &amp;quot;WTB10-XX-02-2&amp;quot; ... but I do not know where to get these, much less the mating connector.&amp;lt;br /&amp;gt;&lt;br /&gt;
Some googling gave me another manufacturer with a compatible reference : [https://www.we-online.com/en/components/products/em/connectors/wire-to-board/wr_wtb/wr_wtb_1_00_mm Wurth Elektronik].&amp;lt;br /&amp;gt;&lt;br /&gt;
What&#039;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.&amp;lt;br /&amp;gt;&lt;br /&gt;
Here are the references/links for all the parts :&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_1_00_SMT_MALE_VERTICAL_SHROUDED_HEADER_6653XX124022 WR-WTB 1.00 mm SMT Male Vertical Shrouded Header]&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_1_00_FEMALE_TERMINAL_HOUSING_6650XX113322 WR-WTB 1.00 mm Female Terminal Housing]&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_1_00_FEMALE_CRIMP_CONTACT_665X0113722 WR-WTB 1.00 mm Female Crimp Terminal]&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_PRE-CRIMPED_CABLE_1_00 WR-WTB Pre-crimped wire]&lt;br /&gt;
* And even the [https://www.we-online.com/en/components/products/WTB_MANUAL_CRIMPING_TOOL_11#600665232280 WR-WTB Manual Crimping Tool]&lt;br /&gt;
Choose the number of positions you need (3 for the debug port, but there&#039;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.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* BeagleBoard linux git repository : https://git.beagleboard.org/beagleboard/linux&lt;br /&gt;
* BeagleY-AI design and detailed specifications : https://docs.beagle.cc/boards/beagley/ai/03-design.html&lt;br /&gt;
* [https://olof-astrand.medium.com/building-u-boot-and-the-linux-kernel-for-the-beagley-ai-board-0942565ab28b Building u-boot and the linux kernel for the beagleY AI board]&lt;br /&gt;
* [https://community.element14.com/products/devtools/single-board-computers/next-genbeaglebone/b/blog/posts/beagley-ai-review BeagleY-AI Review - Part 1] and [https://community.element14.com/products/devtools/single-board-computers/next-genbeaglebone/b/blog/posts/beagley-ai-review---part-2 BeagleY-AI Review - Part 2] on element 14 community.&lt;/div&gt;</summary>
		<author><name>Drizzt</name></author>
	</entry>
	<entry>
		<id>http://wiki.nathael.net/index.php?title=Dev/BeagleBone/BeagleYAI&amp;diff=350</id>
		<title>Dev/BeagleBone/BeagleYAI</title>
		<link rel="alternate" type="text/html" href="http://wiki.nathael.net/index.php?title=Dev/BeagleBone/BeagleYAI&amp;diff=350"/>
		<updated>2025-03-13T16:27:29Z</updated>

		<summary type="html">&lt;p&gt;Drizzt: /* Processor */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Description ==&lt;br /&gt;
* https://docs.beagle.cc/boards/beagley/ai/03-design.html&lt;br /&gt;
=== Processor ===&lt;br /&gt;
* The board has a TI Jacinto J722S ([https://www.ti.com/product/TDA4AEN-Q1 TDA4AEN]) AM67A SOC with&lt;br /&gt;
: - four Arm Cortex-A53 cores (main cores, 1.4Ghz)&lt;br /&gt;
: - two C7x DSP cores&lt;br /&gt;
: - one user Arm Cortex-R5F core (MCU channel with FFI, 800Mhz)&lt;br /&gt;
: - two additional Arm Cortex-R5F cores (Device management and Run-time management).&lt;br /&gt;
* BXS-4-64 GPU&lt;br /&gt;
The complete list of cores can be found [https://software-dl.ti.com/tisci/esd/latest/5_soc_doc/j722s/hosts.html in this &amp;quot;Enumeration of Host IDs&amp;quot; table].&lt;br /&gt;
&lt;br /&gt;
=== Memory ===&lt;br /&gt;
* 4Go LPDDR4&lt;br /&gt;
* EEPROM (FT24C32A) on I2C0&lt;br /&gt;
* microSD Card&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== The Boot process ==&lt;br /&gt;
&lt;br /&gt;
=== Overview ===&lt;br /&gt;
From chapter &amp;quot;[https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-j722s/09_02_00_05/exports/docs/psdk_rtos/docs/user_guide/developer_notes_bootloaders.html 9.2. Understanding bootloaders in Processor SDK J722S (RTOS/Linux)] and [https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-am67a/latest/exports/docs/linux/Foundational_Components/U-Boot/UG-General-Info.html Processor SDK Linux for AM67A, chapter 3.1.1.1 - U-Boot - General Information] :&lt;br /&gt;
: The boot process on the J722S processor requires two different U-Boot images and some firmwares, which will run on different cores.&lt;br /&gt;
Information is a little bit confused, maybe because there may be different ways to achieve the boot process.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;tiboot3.bin&#039;&#039;&#039;&lt;br /&gt;
: The first &amp;quot;Secondary Program Loader&amp;quot; (SPL) that the ROM bootloader will load and execute on the MCU R5F Core0&lt;br /&gt;
: It seems to be an agregate of an U-Boot image (u-boot-spl.bin) and the TIFS firmware (sysfw)&lt;br /&gt;
: It will try to load two images : &amp;quot;tifs.bin&amp;quot; (embedded) and &amp;quot;tispl.bin&amp;quot; (from SD card)&lt;br /&gt;
* &#039;&#039;&#039;tifs.bin&#039;&#039;&#039;&lt;br /&gt;
: TI Foundational Security (TIFS)&lt;br /&gt;
: This firmware image is also called &amp;quot;SYSFW&amp;quot; and may be included inside &#039;&#039;&#039;tiboot3.bin&#039;&#039;&#039;.&lt;br /&gt;
: It is used for the &amp;quot;Secure Management Services&amp;quot; (SMS), to be run on the corresponding R5F MCU.&lt;br /&gt;
* &#039;&#039;&#039;tispl.bin&#039;&#039;&#039;&lt;br /&gt;
: The second &amp;quot;Secondary Program Loader&amp;quot; (SPL). This one will run on one of the A53 cores.&lt;br /&gt;
: This image includes the &amp;quot;ARM Trusted Firmware&amp;quot; (ATF or Trusted Firmware-A) and the &amp;quot;Trusted Execution Environment&amp;quot; (TEE, provided by OP-TEE).&lt;br /&gt;
: It also includes the &amp;quot;Device Management&amp;quot; (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).&lt;br /&gt;
: And then the &amp;quot;SPL&amp;quot; proper, which may be a reduced U-Boot image, commonly refered to as the &amp;quot;first-stage bootloader&amp;quot; which will mainly initialise the A53 core, the DDR memory, and the required subsystems so that the full U-Boot image can run.&lt;br /&gt;
* &#039;&#039;&#039;uboot.img&#039;&#039;&#039;&lt;br /&gt;
: This is the final U-Boot image, also called &amp;quot;second-stage bootloader&amp;quot;, which will also run on one of the A53 cores.&lt;br /&gt;
: This one will provide a prompt and load the Linux kernel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Where to get more information ===&lt;br /&gt;
Credits : I started finding useful and accurate information on [https://olof-astrand.medium.com/building-u-boot-and-the-linux-kernel-for-the-beagley-ai-board-0942565ab28b 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&#039;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.&lt;br /&gt;
&lt;br /&gt;
Anyway, this post references some useful sources :&lt;br /&gt;
* [https://software-dl.ti.com/tisci/esd/latest/1_intro/TISCI.html Texas Instruments System Controller Interface] (TISCI)&lt;br /&gt;
* [https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-j722s/09_02_00_05/exports/docs/psdk_rtos/docs/user_guide/index.html Processor SDK RTOS J722S]&lt;br /&gt;
* [https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-am67a/latest/exports/docs/devices/J7_Family/linux/index.html Processor SDK Linux Software Developer’s Guide], mainly chapter 3 : Foundational Components.&lt;br /&gt;
&lt;br /&gt;
TI even provides access to the sources of these documentations : https://github.com/TexasInstruments/processor-sdk-doc !!&lt;br /&gt;
&lt;br /&gt;
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/&lt;br /&gt;
&lt;br /&gt;
* Trusted Firmware-A https://trustedfirmware-a.readthedocs.io/en/latest/index.html&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
=== TI ===&lt;br /&gt;
* git://git.ti.com/processor-sdk/psdk_fw.git&lt;br /&gt;
* git://git.ti.com/ti-u-boot/ti-u-boot.git&lt;br /&gt;
* git://git.ti.com/ti-linux-kernel/ti-linux-kernel.git&lt;br /&gt;
&lt;br /&gt;
Sources, branches and tags are referenced here : https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-am67a/latest/exports/docs/devices/J7_Family/linux/Release_Specific_Release_Notes.html&lt;br /&gt;
&lt;br /&gt;
=== BeagleBone ===&lt;br /&gt;
* https://openbeagle.org/beagleboard/u-boot.git - tag &amp;quot;v2023.04-ti-09.02.00.009-BeagleY-AI&amp;quot;&lt;br /&gt;
: git switch v2023.04-ti-09.02.00.009-BeagleY-AI&lt;br /&gt;
&lt;br /&gt;
=== Others ===&lt;br /&gt;
* https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git&lt;br /&gt;
* https://github.com/OP-TEE/optee_os/&lt;br /&gt;
&lt;br /&gt;
== Configs ==&lt;br /&gt;
=== U-Boot ===&lt;br /&gt;
 make ARCH=arm O=../Build/u-boot/r5 am67a_beagley_ai_r5_defconfig&lt;br /&gt;
 make ARCH=arm O=../Build/u-boot/a53 am67a_beagley_ai_a53_defconfig&lt;br /&gt;
&lt;br /&gt;
=== Linux ===&lt;br /&gt;
* Device tree : arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts&lt;br /&gt;
* Kernel config file : https://git.beagleboard.org/beagleboard/linux/-/blob/d89bfdd19e7161ddba4ce4f5e34425ae6020a6db/arch/arm64/configs/bb.org_defconfig&lt;br /&gt;
&lt;br /&gt;
== Liens officiels ==&lt;br /&gt;
* https://www.beagleboard.org/boards/beagley-ai&lt;br /&gt;
* [https://www.mouser.fr/ProductDetail/BeagleBoard-by-Seeed-Studio/102991834?qs=dbcCsuKDzFXY1JA%252BEGwyow%3D%3D Achat chez Mouser à 77€]&lt;br /&gt;
&lt;br /&gt;
== Pinout ==&lt;br /&gt;
* https://pinout.beagley.ai/&lt;br /&gt;
&lt;br /&gt;
* Tag connect clip : https://www.printables.com/model/879533-beagley-ai-tagconnect-clip-10pin&lt;br /&gt;
&lt;br /&gt;
== Debug port Connection ==&lt;br /&gt;
=== Onboard connector ===&lt;br /&gt;
Despite what some have published about everywhere on the Web (even [https://docs.beagle.cc/boards/beagley/ai/03-design.html#uart within official beagleboard online documentation]), the connector &#039;&#039;&#039;IS NOT&#039;&#039;&#039; 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.&amp;lt;br /&amp;gt;&lt;br /&gt;
The official BOM gives all the information :&lt;br /&gt;
* Manufacturer : MTCONN&lt;br /&gt;
* Manufacturer part number : MTWF63-103SRN-01163&lt;br /&gt;
&lt;br /&gt;
=== Where to find mating connector ===&lt;br /&gt;
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 &amp;quot;WTB10-XX-02-2&amp;quot; ... but I do not know where to get these, much less the mating connector.&amp;lt;br /&amp;gt;&lt;br /&gt;
Some googling gave me another manufacturer with a compatible reference : [https://www.we-online.com/en/components/products/em/connectors/wire-to-board/wr_wtb/wr_wtb_1_00_mm Wurth Elektronik].&amp;lt;br /&amp;gt;&lt;br /&gt;
What&#039;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.&amp;lt;br /&amp;gt;&lt;br /&gt;
Here are the references/links for all the parts :&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_1_00_SMT_MALE_VERTICAL_SHROUDED_HEADER_6653XX124022 WR-WTB 1.00 mm SMT Male Vertical Shrouded Header]&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_1_00_FEMALE_TERMINAL_HOUSING_6650XX113322 WR-WTB 1.00 mm Female Terminal Housing]&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_1_00_FEMALE_CRIMP_CONTACT_665X0113722 WR-WTB 1.00 mm Female Crimp Terminal]&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_PRE-CRIMPED_CABLE_1_00 WR-WTB Pre-crimped wire]&lt;br /&gt;
* And even the [https://www.we-online.com/en/components/products/WTB_MANUAL_CRIMPING_TOOL_11#600665232280 WR-WTB Manual Crimping Tool]&lt;br /&gt;
Choose the number of positions you need (3 for the debug port, but there&#039;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.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* BeagleBoard linux git repository : https://git.beagleboard.org/beagleboard/linux&lt;br /&gt;
* BeagleY-AI design and detailed specifications : https://docs.beagle.cc/boards/beagley/ai/03-design.html&lt;br /&gt;
* [https://olof-astrand.medium.com/building-u-boot-and-the-linux-kernel-for-the-beagley-ai-board-0942565ab28b Building u-boot and the linux kernel for the beagleY AI board]&lt;br /&gt;
* [https://community.element14.com/products/devtools/single-board-computers/next-genbeaglebone/b/blog/posts/beagley-ai-review BeagleY-AI Review - Part 1] and [https://community.element14.com/products/devtools/single-board-computers/next-genbeaglebone/b/blog/posts/beagley-ai-review---part-2 BeagleY-AI Review - Part 2] on element 14 community.&lt;/div&gt;</summary>
		<author><name>Drizzt</name></author>
	</entry>
	<entry>
		<id>http://wiki.nathael.net/index.php?title=Dev/BeagleBone/BeagleYAI&amp;diff=349</id>
		<title>Dev/BeagleBone/BeagleYAI</title>
		<link rel="alternate" type="text/html" href="http://wiki.nathael.net/index.php?title=Dev/BeagleBone/BeagleYAI&amp;diff=349"/>
		<updated>2025-03-13T12:25:46Z</updated>

		<summary type="html">&lt;p&gt;Drizzt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Description ==&lt;br /&gt;
* https://docs.beagle.cc/boards/beagley/ai/03-design.html&lt;br /&gt;
=== Processor ===&lt;br /&gt;
* The board has a TI Jacinto J722S ([https://www.ti.com/product/TDA4AEN-Q1 TDA4AEN]) AM67A SOC with&lt;br /&gt;
: - four Arm Cortex-A53 cores (main cores, 1.4Ghz)&lt;br /&gt;
: - two C7x DSP cores&lt;br /&gt;
: - one user Arm Cortex-R5F core (MCU channel with FFI, 800Mhz)&lt;br /&gt;
: - two additional Arm Cortex-R5F cores (Device management and Run-time management).&lt;br /&gt;
* BXS-4-64 GPU&lt;br /&gt;
=== Memory ===&lt;br /&gt;
* 4Go LPDDR4&lt;br /&gt;
* EEPROM (FT24C32A) on I2C0&lt;br /&gt;
* microSD Card&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== The Boot process ==&lt;br /&gt;
&lt;br /&gt;
=== Overview ===&lt;br /&gt;
From chapter &amp;quot;[https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-j722s/09_02_00_05/exports/docs/psdk_rtos/docs/user_guide/developer_notes_bootloaders.html 9.2. Understanding bootloaders in Processor SDK J722S (RTOS/Linux)] and [https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-am67a/latest/exports/docs/linux/Foundational_Components/U-Boot/UG-General-Info.html Processor SDK Linux for AM67A, chapter 3.1.1.1 - U-Boot - General Information] :&lt;br /&gt;
: The boot process on the J722S processor requires two different U-Boot images and some firmwares, which will run on different cores.&lt;br /&gt;
Information is a little bit confused, maybe because there may be different ways to achieve the boot process.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;tiboot3.bin&#039;&#039;&#039;&lt;br /&gt;
: The first &amp;quot;Secondary Program Loader&amp;quot; (SPL) that the ROM bootloader will load and execute on the MCU R5F Core0&lt;br /&gt;
: It seems to be an agregate of an U-Boot image (u-boot-spl.bin) and the TIFS firmware (sysfw)&lt;br /&gt;
: It will try to load two images : &amp;quot;tifs.bin&amp;quot; (embedded) and &amp;quot;tispl.bin&amp;quot; (from SD card)&lt;br /&gt;
* &#039;&#039;&#039;tifs.bin&#039;&#039;&#039;&lt;br /&gt;
: TI Foundational Security (TIFS)&lt;br /&gt;
: This firmware image is also called &amp;quot;SYSFW&amp;quot; and may be included inside &#039;&#039;&#039;tiboot3.bin&#039;&#039;&#039;.&lt;br /&gt;
: It is used for the &amp;quot;Secure Management Services&amp;quot; (SMS), to be run on the corresponding R5F MCU.&lt;br /&gt;
* &#039;&#039;&#039;tispl.bin&#039;&#039;&#039;&lt;br /&gt;
: The second &amp;quot;Secondary Program Loader&amp;quot; (SPL). This one will run on one of the A53 cores.&lt;br /&gt;
: This image includes the &amp;quot;ARM Trusted Firmware&amp;quot; (ATF or Trusted Firmware-A) and the &amp;quot;Trusted Execution Environment&amp;quot; (TEE, provided by OP-TEE).&lt;br /&gt;
: It also includes the &amp;quot;Device Management&amp;quot; (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).&lt;br /&gt;
: And then the &amp;quot;SPL&amp;quot; proper, which may be a reduced U-Boot image, commonly refered to as the &amp;quot;first-stage bootloader&amp;quot; which will mainly initialise the A53 core, the DDR memory, and the required subsystems so that the full U-Boot image can run.&lt;br /&gt;
* &#039;&#039;&#039;uboot.img&#039;&#039;&#039;&lt;br /&gt;
: This is the final U-Boot image, also called &amp;quot;second-stage bootloader&amp;quot;, which will also run on one of the A53 cores.&lt;br /&gt;
: This one will provide a prompt and load the Linux kernel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Where to get more information ===&lt;br /&gt;
Credits : I started finding useful and accurate information on [https://olof-astrand.medium.com/building-u-boot-and-the-linux-kernel-for-the-beagley-ai-board-0942565ab28b 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&#039;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.&lt;br /&gt;
&lt;br /&gt;
Anyway, this post references some useful sources :&lt;br /&gt;
* [https://software-dl.ti.com/tisci/esd/latest/1_intro/TISCI.html Texas Instruments System Controller Interface] (TISCI)&lt;br /&gt;
* [https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-j722s/09_02_00_05/exports/docs/psdk_rtos/docs/user_guide/index.html Processor SDK RTOS J722S]&lt;br /&gt;
* [https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-am67a/latest/exports/docs/devices/J7_Family/linux/index.html Processor SDK Linux Software Developer’s Guide], mainly chapter 3 : Foundational Components.&lt;br /&gt;
&lt;br /&gt;
TI even provides access to the sources of these documentations : https://github.com/TexasInstruments/processor-sdk-doc !!&lt;br /&gt;
&lt;br /&gt;
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/&lt;br /&gt;
&lt;br /&gt;
* Trusted Firmware-A https://trustedfirmware-a.readthedocs.io/en/latest/index.html&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
=== TI ===&lt;br /&gt;
* git://git.ti.com/processor-sdk/psdk_fw.git&lt;br /&gt;
* git://git.ti.com/ti-u-boot/ti-u-boot.git&lt;br /&gt;
* git://git.ti.com/ti-linux-kernel/ti-linux-kernel.git&lt;br /&gt;
&lt;br /&gt;
Sources, branches and tags are referenced here : https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-am67a/latest/exports/docs/devices/J7_Family/linux/Release_Specific_Release_Notes.html&lt;br /&gt;
&lt;br /&gt;
=== BeagleBone ===&lt;br /&gt;
* https://openbeagle.org/beagleboard/u-boot.git - tag &amp;quot;v2023.04-ti-09.02.00.009-BeagleY-AI&amp;quot;&lt;br /&gt;
: git switch v2023.04-ti-09.02.00.009-BeagleY-AI&lt;br /&gt;
&lt;br /&gt;
=== Others ===&lt;br /&gt;
* https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git&lt;br /&gt;
* https://github.com/OP-TEE/optee_os/&lt;br /&gt;
&lt;br /&gt;
== Configs ==&lt;br /&gt;
=== U-Boot ===&lt;br /&gt;
 make ARCH=arm O=../Build/u-boot/r5 am67a_beagley_ai_r5_defconfig&lt;br /&gt;
 make ARCH=arm O=../Build/u-boot/a53 am67a_beagley_ai_a53_defconfig&lt;br /&gt;
&lt;br /&gt;
=== Linux ===&lt;br /&gt;
* Device tree : arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts&lt;br /&gt;
* Kernel config file : https://git.beagleboard.org/beagleboard/linux/-/blob/d89bfdd19e7161ddba4ce4f5e34425ae6020a6db/arch/arm64/configs/bb.org_defconfig&lt;br /&gt;
&lt;br /&gt;
== Liens officiels ==&lt;br /&gt;
* https://www.beagleboard.org/boards/beagley-ai&lt;br /&gt;
* [https://www.mouser.fr/ProductDetail/BeagleBoard-by-Seeed-Studio/102991834?qs=dbcCsuKDzFXY1JA%252BEGwyow%3D%3D Achat chez Mouser à 77€]&lt;br /&gt;
&lt;br /&gt;
== Pinout ==&lt;br /&gt;
* https://pinout.beagley.ai/&lt;br /&gt;
&lt;br /&gt;
* Tag connect clip : https://www.printables.com/model/879533-beagley-ai-tagconnect-clip-10pin&lt;br /&gt;
&lt;br /&gt;
== Debug port Connection ==&lt;br /&gt;
=== Onboard connector ===&lt;br /&gt;
Despite what some have published about everywhere on the Web (even [https://docs.beagle.cc/boards/beagley/ai/03-design.html#uart within official beagleboard online documentation]), the connector &#039;&#039;&#039;IS NOT&#039;&#039;&#039; 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.&amp;lt;br /&amp;gt;&lt;br /&gt;
The official BOM gives all the information :&lt;br /&gt;
* Manufacturer : MTCONN&lt;br /&gt;
* Manufacturer part number : MTWF63-103SRN-01163&lt;br /&gt;
&lt;br /&gt;
=== Where to find mating connector ===&lt;br /&gt;
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 &amp;quot;WTB10-XX-02-2&amp;quot; ... but I do not know where to get these, much less the mating connector.&amp;lt;br /&amp;gt;&lt;br /&gt;
Some googling gave me another manufacturer with a compatible reference : [https://www.we-online.com/en/components/products/em/connectors/wire-to-board/wr_wtb/wr_wtb_1_00_mm Wurth Elektronik].&amp;lt;br /&amp;gt;&lt;br /&gt;
What&#039;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.&amp;lt;br /&amp;gt;&lt;br /&gt;
Here are the references/links for all the parts :&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_1_00_SMT_MALE_VERTICAL_SHROUDED_HEADER_6653XX124022 WR-WTB 1.00 mm SMT Male Vertical Shrouded Header]&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_1_00_FEMALE_TERMINAL_HOUSING_6650XX113322 WR-WTB 1.00 mm Female Terminal Housing]&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_1_00_FEMALE_CRIMP_CONTACT_665X0113722 WR-WTB 1.00 mm Female Crimp Terminal]&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_PRE-CRIMPED_CABLE_1_00 WR-WTB Pre-crimped wire]&lt;br /&gt;
* And even the [https://www.we-online.com/en/components/products/WTB_MANUAL_CRIMPING_TOOL_11#600665232280 WR-WTB Manual Crimping Tool]&lt;br /&gt;
Choose the number of positions you need (3 for the debug port, but there&#039;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.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* BeagleBoard linux git repository : https://git.beagleboard.org/beagleboard/linux&lt;br /&gt;
* BeagleY-AI design and detailed specifications : https://docs.beagle.cc/boards/beagley/ai/03-design.html&lt;br /&gt;
* [https://olof-astrand.medium.com/building-u-boot-and-the-linux-kernel-for-the-beagley-ai-board-0942565ab28b Building u-boot and the linux kernel for the beagleY AI board]&lt;br /&gt;
* [https://community.element14.com/products/devtools/single-board-computers/next-genbeaglebone/b/blog/posts/beagley-ai-review BeagleY-AI Review - Part 1] and [https://community.element14.com/products/devtools/single-board-computers/next-genbeaglebone/b/blog/posts/beagley-ai-review---part-2 BeagleY-AI Review - Part 2] on element 14 community.&lt;/div&gt;</summary>
		<author><name>Drizzt</name></author>
	</entry>
	<entry>
		<id>http://wiki.nathael.net/index.php?title=Dev/BeagleBone/BeagleYAI&amp;diff=348</id>
		<title>Dev/BeagleBone/BeagleYAI</title>
		<link rel="alternate" type="text/html" href="http://wiki.nathael.net/index.php?title=Dev/BeagleBone/BeagleYAI&amp;diff=348"/>
		<updated>2025-03-04T16:22:41Z</updated>

		<summary type="html">&lt;p&gt;Drizzt: /* Configs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Description ==&lt;br /&gt;
* https://docs.beagle.cc/boards/beagley/ai/03-design.html&lt;br /&gt;
=== Processor ===&lt;br /&gt;
* The board has a TI Jacinto J722S ([https://www.ti.com/product/TDA4AEN-Q1 TDA4AEN]) AM67A SOC with&lt;br /&gt;
: - four Arm Cortex-A53 cores (main cores, 1.4Ghz)&lt;br /&gt;
: - two C7x DSP cores&lt;br /&gt;
: - one user Arm Cortex-R5F core (MCU channel with FFI, 800Mhz)&lt;br /&gt;
: - two additional Arm Cortex-R5F cores (Device management and Run-time management).&lt;br /&gt;
* BXS-4-64 GPU&lt;br /&gt;
=== Memory ===&lt;br /&gt;
* 4Go LPDDR4&lt;br /&gt;
* EEPROM (FT24C32A) on I2C0&lt;br /&gt;
* microSD Card&lt;br /&gt;
&lt;br /&gt;
== Additional tools ==&lt;br /&gt;
=== TI Firmware Builder ===&lt;br /&gt;
* https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-j722s/09_02_00_05/exports/docs/psdk_rtos/docs/user_guide/firmware_builder.html&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
=== TI ===&lt;br /&gt;
* git://git.ti.com/processor-sdk/psdk_fw.git&lt;br /&gt;
* git://git.ti.com/ti-u-boot/ti-u-boot.git&lt;br /&gt;
* git://git.ti.com/ti-linux-kernel/ti-linux-kernel.git&lt;br /&gt;
&lt;br /&gt;
== Configs ==&lt;br /&gt;
=== U-Boot ===&lt;br /&gt;
The boot process on the J722S processor requires two different uboot images and one (or two) firmwares, which will run on three different cores.&lt;br /&gt;
* &#039;&#039;&#039;tiboot3.bin&#039;&#039;&#039;&lt;br /&gt;
: The first firmware image is the &amp;quot;Secondary Program Loader&amp;quot; (SPL) that the ROM bootloader will load and execute on the MCU R5F Core0&lt;br /&gt;
: It will try to load two images : &amp;quot;tifs.bin&amp;quot; and &amp;quot;tispl.bin&amp;quot;&lt;br /&gt;
* &#039;&#039;&#039;tifs.bin&#039;&#039;&#039;&lt;br /&gt;
: This second firmware image is optionnal.&lt;br /&gt;
: It is used for the &amp;quot;Secure Management Services&amp;quot; (SMS), to be run on the corresponding R5F MCU.&lt;br /&gt;
* &#039;&#039;&#039;tispl.bin&#039;&#039;&#039;&lt;br /&gt;
: The first U-Boot image is the &amp;quot;first-stage bootloader&amp;quot; and will run on one of the A53 cores.&lt;br /&gt;
: It is a reduced U-Boot image which will mainly initialise the memory and the required subsystems so that the full U-Boot image can run.&lt;br /&gt;
* &#039;&#039;&#039;uboot.img&#039;&#039;&#039;&lt;br /&gt;
: This is the final U-Boot image, also called &amp;quot;second-stage bootloader&amp;quot;, which will also run on one of the A53 cores.&lt;br /&gt;
: This one will load the Linux kernel.&lt;br /&gt;
&lt;br /&gt;
=== Linux ===&lt;br /&gt;
* Device tree : arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts&lt;br /&gt;
* Kernel config file : https://git.beagleboard.org/beagleboard/linux/-/blob/d89bfdd19e7161ddba4ce4f5e34425ae6020a6db/arch/arm64/configs/bb.org_defconfig&lt;br /&gt;
&lt;br /&gt;
== Liens officiels ==&lt;br /&gt;
* https://www.beagleboard.org/boards/beagley-ai&lt;br /&gt;
* [https://www.mouser.fr/ProductDetail/BeagleBoard-by-Seeed-Studio/102991834?qs=dbcCsuKDzFXY1JA%252BEGwyow%3D%3D Achat chez Mouser à 77€]&lt;br /&gt;
&lt;br /&gt;
== Pinout ==&lt;br /&gt;
* https://pinout.beagley.ai/&lt;br /&gt;
&lt;br /&gt;
* Tag connect clip : https://www.printables.com/model/879533-beagley-ai-tagconnect-clip-10pin&lt;br /&gt;
&lt;br /&gt;
== Debug port Connection ==&lt;br /&gt;
=== Onboard connector ===&lt;br /&gt;
Despite what some have published about everywhere on the Web (even [https://docs.beagle.cc/boards/beagley/ai/03-design.html#uart within official beagleboard online documentation]), the connector &#039;&#039;&#039;IS NOT&#039;&#039;&#039; 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.&amp;lt;br /&amp;gt;&lt;br /&gt;
The official BOM gives all the information :&lt;br /&gt;
* Manufacturer : MTCONN&lt;br /&gt;
* Manufacturer part number : MTWF63-103SRN-01163&lt;br /&gt;
&lt;br /&gt;
=== Where to find mating connector ===&lt;br /&gt;
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 &amp;quot;WTB10-XX-02-2&amp;quot; ... but I do not know where to get these, much less the mating connector.&amp;lt;br /&amp;gt;&lt;br /&gt;
Some googling gave me another manufacturer with a compatible reference : [https://www.we-online.com/en/components/products/em/connectors/wire-to-board/wr_wtb/wr_wtb_1_00_mm Wurth Elektronik].&amp;lt;br /&amp;gt;&lt;br /&gt;
What&#039;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.&amp;lt;br /&amp;gt;&lt;br /&gt;
Here are the references/links for all the parts :&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_1_00_SMT_MALE_VERTICAL_SHROUDED_HEADER_6653XX124022 WR-WTB 1.00 mm SMT Male Vertical Shrouded Header]&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_1_00_FEMALE_TERMINAL_HOUSING_6650XX113322 WR-WTB 1.00 mm Female Terminal Housing]&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_1_00_FEMALE_CRIMP_CONTACT_665X0113722 WR-WTB 1.00 mm Female Crimp Terminal]&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_PRE-CRIMPED_CABLE_1_00 WR-WTB Pre-crimped wire]&lt;br /&gt;
* And even the [https://www.we-online.com/en/components/products/WTB_MANUAL_CRIMPING_TOOL_11#600665232280 WR-WTB Manual Crimping Tool]&lt;br /&gt;
Choose the number of positions you need (3 for the debug port, but there&#039;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.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* BeagleBoard linux git repository : https://git.beagleboard.org/beagleboard/linux&lt;br /&gt;
* BeagleY-AI design and detailed specifications : https://docs.beagle.cc/boards/beagley/ai/03-design.html&lt;br /&gt;
* [https://olof-astrand.medium.com/building-u-boot-and-the-linux-kernel-for-the-beagley-ai-board-0942565ab28b Building u-boot and the linux kernel for the beagleY AI board]&lt;br /&gt;
* [https://community.element14.com/products/devtools/single-board-computers/next-genbeaglebone/b/blog/posts/beagley-ai-review BeagleY-AI Review - Part 1] and [https://community.element14.com/products/devtools/single-board-computers/next-genbeaglebone/b/blog/posts/beagley-ai-review---part-2 BeagleY-AI Review - Part 2] on element 14 community.&lt;/div&gt;</summary>
		<author><name>Drizzt</name></author>
	</entry>
	<entry>
		<id>http://wiki.nathael.net/index.php?title=Dev/BeagleBone/BeagleYAI&amp;diff=347</id>
		<title>Dev/BeagleBone/BeagleYAI</title>
		<link rel="alternate" type="text/html" href="http://wiki.nathael.net/index.php?title=Dev/BeagleBone/BeagleYAI&amp;diff=347"/>
		<updated>2025-03-04T14:12:14Z</updated>

		<summary type="html">&lt;p&gt;Drizzt: /* Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Description ==&lt;br /&gt;
* https://docs.beagle.cc/boards/beagley/ai/03-design.html&lt;br /&gt;
=== Processor ===&lt;br /&gt;
* The board has a TI Jacinto J722S ([https://www.ti.com/product/TDA4AEN-Q1 TDA4AEN]) AM67A SOC with&lt;br /&gt;
: - four Arm Cortex-A53 cores (main cores, 1.4Ghz)&lt;br /&gt;
: - two C7x DSP cores&lt;br /&gt;
: - one user Arm Cortex-R5F core (MCU channel with FFI, 800Mhz)&lt;br /&gt;
: - two additional Arm Cortex-R5F cores (Device management and Run-time management).&lt;br /&gt;
* BXS-4-64 GPU&lt;br /&gt;
=== Memory ===&lt;br /&gt;
* 4Go LPDDR4&lt;br /&gt;
* EEPROM (FT24C32A) on I2C0&lt;br /&gt;
* microSD Card&lt;br /&gt;
&lt;br /&gt;
== Additional tools ==&lt;br /&gt;
=== TI Firmware Builder ===&lt;br /&gt;
* https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-j722s/09_02_00_05/exports/docs/psdk_rtos/docs/user_guide/firmware_builder.html&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
=== TI ===&lt;br /&gt;
* git://git.ti.com/processor-sdk/psdk_fw.git&lt;br /&gt;
* git://git.ti.com/ti-u-boot/ti-u-boot.git&lt;br /&gt;
* git://git.ti.com/ti-linux-kernel/ti-linux-kernel.git&lt;br /&gt;
&lt;br /&gt;
== Configs ==&lt;br /&gt;
=== Linux ===&lt;br /&gt;
* Device tree : arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts&lt;br /&gt;
* Kernel config file : https://git.beagleboard.org/beagleboard/linux/-/blob/d89bfdd19e7161ddba4ce4f5e34425ae6020a6db/arch/arm64/configs/bb.org_defconfig&lt;br /&gt;
&lt;br /&gt;
== Liens officiels ==&lt;br /&gt;
* https://www.beagleboard.org/boards/beagley-ai&lt;br /&gt;
* [https://www.mouser.fr/ProductDetail/BeagleBoard-by-Seeed-Studio/102991834?qs=dbcCsuKDzFXY1JA%252BEGwyow%3D%3D Achat chez Mouser à 77€]&lt;br /&gt;
&lt;br /&gt;
== Pinout ==&lt;br /&gt;
* https://pinout.beagley.ai/&lt;br /&gt;
&lt;br /&gt;
* Tag connect clip : https://www.printables.com/model/879533-beagley-ai-tagconnect-clip-10pin&lt;br /&gt;
&lt;br /&gt;
== Debug port Connection ==&lt;br /&gt;
=== Onboard connector ===&lt;br /&gt;
Despite what some have published about everywhere on the Web (even [https://docs.beagle.cc/boards/beagley/ai/03-design.html#uart within official beagleboard online documentation]), the connector &#039;&#039;&#039;IS NOT&#039;&#039;&#039; 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.&amp;lt;br /&amp;gt;&lt;br /&gt;
The official BOM gives all the information :&lt;br /&gt;
* Manufacturer : MTCONN&lt;br /&gt;
* Manufacturer part number : MTWF63-103SRN-01163&lt;br /&gt;
&lt;br /&gt;
=== Where to find mating connector ===&lt;br /&gt;
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 &amp;quot;WTB10-XX-02-2&amp;quot; ... but I do not know where to get these, much less the mating connector.&amp;lt;br /&amp;gt;&lt;br /&gt;
Some googling gave me another manufacturer with a compatible reference : [https://www.we-online.com/en/components/products/em/connectors/wire-to-board/wr_wtb/wr_wtb_1_00_mm Wurth Elektronik].&amp;lt;br /&amp;gt;&lt;br /&gt;
What&#039;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.&amp;lt;br /&amp;gt;&lt;br /&gt;
Here are the references/links for all the parts :&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_1_00_SMT_MALE_VERTICAL_SHROUDED_HEADER_6653XX124022 WR-WTB 1.00 mm SMT Male Vertical Shrouded Header]&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_1_00_FEMALE_TERMINAL_HOUSING_6650XX113322 WR-WTB 1.00 mm Female Terminal Housing]&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_1_00_FEMALE_CRIMP_CONTACT_665X0113722 WR-WTB 1.00 mm Female Crimp Terminal]&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_PRE-CRIMPED_CABLE_1_00 WR-WTB Pre-crimped wire]&lt;br /&gt;
* And even the [https://www.we-online.com/en/components/products/WTB_MANUAL_CRIMPING_TOOL_11#600665232280 WR-WTB Manual Crimping Tool]&lt;br /&gt;
Choose the number of positions you need (3 for the debug port, but there&#039;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.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* BeagleBoard linux git repository : https://git.beagleboard.org/beagleboard/linux&lt;br /&gt;
* BeagleY-AI design and detailed specifications : https://docs.beagle.cc/boards/beagley/ai/03-design.html&lt;br /&gt;
* [https://olof-astrand.medium.com/building-u-boot-and-the-linux-kernel-for-the-beagley-ai-board-0942565ab28b Building u-boot and the linux kernel for the beagleY AI board]&lt;br /&gt;
* [https://community.element14.com/products/devtools/single-board-computers/next-genbeaglebone/b/blog/posts/beagley-ai-review BeagleY-AI Review - Part 1] and [https://community.element14.com/products/devtools/single-board-computers/next-genbeaglebone/b/blog/posts/beagley-ai-review---part-2 BeagleY-AI Review - Part 2] on element 14 community.&lt;/div&gt;</summary>
		<author><name>Drizzt</name></author>
	</entry>
	<entry>
		<id>http://wiki.nathael.net/index.php?title=Dev/BeagleBone/BeagleYAI&amp;diff=346</id>
		<title>Dev/BeagleBone/BeagleYAI</title>
		<link rel="alternate" type="text/html" href="http://wiki.nathael.net/index.php?title=Dev/BeagleBone/BeagleYAI&amp;diff=346"/>
		<updated>2025-03-04T11:37:14Z</updated>

		<summary type="html">&lt;p&gt;Drizzt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Description ==&lt;br /&gt;
* https://docs.beagle.cc/boards/beagley/ai/03-design.html&lt;br /&gt;
=== Processor ===&lt;br /&gt;
* The board has a TI Jacinto XJ722S (TDA4AEN) SOC which seems to be an AM67A with&lt;br /&gt;
: four Arm Cortex-A53 cores (main cores, 1.4Ghz)&lt;br /&gt;
: two C7x DSP cores&lt;br /&gt;
: three Arm Cortex-R5F cores (MCU channel with FFI (user apps, 800Mhz), Device management and Run-time management).&lt;br /&gt;
* BXS-4-64 GPU&lt;br /&gt;
=== Memory ===&lt;br /&gt;
* 4Go LPDDR4&lt;br /&gt;
* EEPROM (FT24C32A) on I2C0&lt;br /&gt;
* microSD Card&lt;br /&gt;
&lt;br /&gt;
== Additional tools ==&lt;br /&gt;
=== TI Firmware Builder ===&lt;br /&gt;
* https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-j722s/09_02_00_05/exports/docs/psdk_rtos/docs/user_guide/firmware_builder.html&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
=== TI ===&lt;br /&gt;
* git://git.ti.com/processor-sdk/psdk_fw.git&lt;br /&gt;
* git://git.ti.com/ti-u-boot/ti-u-boot.git&lt;br /&gt;
* git://git.ti.com/ti-linux-kernel/ti-linux-kernel.git&lt;br /&gt;
&lt;br /&gt;
== Configs ==&lt;br /&gt;
=== Linux ===&lt;br /&gt;
* Device tree : arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts&lt;br /&gt;
* Kernel config file : https://git.beagleboard.org/beagleboard/linux/-/blob/d89bfdd19e7161ddba4ce4f5e34425ae6020a6db/arch/arm64/configs/bb.org_defconfig&lt;br /&gt;
&lt;br /&gt;
== Liens officiels ==&lt;br /&gt;
* https://www.beagleboard.org/boards/beagley-ai&lt;br /&gt;
* [https://www.mouser.fr/ProductDetail/BeagleBoard-by-Seeed-Studio/102991834?qs=dbcCsuKDzFXY1JA%252BEGwyow%3D%3D Achat chez Mouser à 77€]&lt;br /&gt;
&lt;br /&gt;
== Pinout ==&lt;br /&gt;
* https://pinout.beagley.ai/&lt;br /&gt;
&lt;br /&gt;
* Tag connect clip : https://www.printables.com/model/879533-beagley-ai-tagconnect-clip-10pin&lt;br /&gt;
&lt;br /&gt;
== Debug port Connection ==&lt;br /&gt;
=== Onboard connector ===&lt;br /&gt;
Despite what some have published about everywhere on the Web (even [https://docs.beagle.cc/boards/beagley/ai/03-design.html#uart within official beagleboard online documentation]), the connector &#039;&#039;&#039;IS NOT&#039;&#039;&#039; 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.&amp;lt;br /&amp;gt;&lt;br /&gt;
The official BOM gives all the information :&lt;br /&gt;
* Manufacturer : MTCONN&lt;br /&gt;
* Manufacturer part number : MTWF63-103SRN-01163&lt;br /&gt;
&lt;br /&gt;
=== Where to find mating connector ===&lt;br /&gt;
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 &amp;quot;WTB10-XX-02-2&amp;quot; ... but I do not know where to get these, much less the mating connector.&amp;lt;br /&amp;gt;&lt;br /&gt;
Some googling gave me another manufacturer with a compatible reference : [https://www.we-online.com/en/components/products/em/connectors/wire-to-board/wr_wtb/wr_wtb_1_00_mm Wurth Elektronik].&amp;lt;br /&amp;gt;&lt;br /&gt;
What&#039;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.&amp;lt;br /&amp;gt;&lt;br /&gt;
Here are the references/links for all the parts :&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_1_00_SMT_MALE_VERTICAL_SHROUDED_HEADER_6653XX124022 WR-WTB 1.00 mm SMT Male Vertical Shrouded Header]&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_1_00_FEMALE_TERMINAL_HOUSING_6650XX113322 WR-WTB 1.00 mm Female Terminal Housing]&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_1_00_FEMALE_CRIMP_CONTACT_665X0113722 WR-WTB 1.00 mm Female Crimp Terminal]&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_PRE-CRIMPED_CABLE_1_00 WR-WTB Pre-crimped wire]&lt;br /&gt;
* And even the [https://www.we-online.com/en/components/products/WTB_MANUAL_CRIMPING_TOOL_11#600665232280 WR-WTB Manual Crimping Tool]&lt;br /&gt;
Choose the number of positions you need (3 for the debug port, but there&#039;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.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* BeagleBoard linux git repository : https://git.beagleboard.org/beagleboard/linux&lt;br /&gt;
* BeagleY-AI design and detailed specifications : https://docs.beagle.cc/boards/beagley/ai/03-design.html&lt;br /&gt;
* [https://olof-astrand.medium.com/building-u-boot-and-the-linux-kernel-for-the-beagley-ai-board-0942565ab28b Building u-boot and the linux kernel for the beagleY AI board]&lt;br /&gt;
* [https://community.element14.com/products/devtools/single-board-computers/next-genbeaglebone/b/blog/posts/beagley-ai-review BeagleY-AI Review - Part 1] and [https://community.element14.com/products/devtools/single-board-computers/next-genbeaglebone/b/blog/posts/beagley-ai-review---part-2 BeagleY-AI Review - Part 2] on element 14 community.&lt;/div&gt;</summary>
		<author><name>Drizzt</name></author>
	</entry>
	<entry>
		<id>http://wiki.nathael.net/index.php?title=Dev/BeagleBone/BeagleYAI&amp;diff=345</id>
		<title>Dev/BeagleBone/BeagleYAI</title>
		<link rel="alternate" type="text/html" href="http://wiki.nathael.net/index.php?title=Dev/BeagleBone/BeagleYAI&amp;diff=345"/>
		<updated>2025-02-27T00:50:17Z</updated>

		<summary type="html">&lt;p&gt;Drizzt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Additional tools ==&lt;br /&gt;
=== TI Firmware Builder ===&lt;br /&gt;
* https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-j722s/09_02_00_05/exports/docs/psdk_rtos/docs/user_guide/firmware_builder.html&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
=== TI ===&lt;br /&gt;
* git://git.ti.com/processor-sdk/psdk_fw.git&lt;br /&gt;
* git://git.ti.com/ti-u-boot/ti-u-boot.git&lt;br /&gt;
* git://git.ti.com/ti-linux-kernel/ti-linux-kernel.git&lt;br /&gt;
&lt;br /&gt;
== Configs ==&lt;br /&gt;
=== Linux ===&lt;br /&gt;
* Device tree : arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts&lt;br /&gt;
* Kernel config file : https://git.beagleboard.org/beagleboard/linux/-/blob/d89bfdd19e7161ddba4ce4f5e34425ae6020a6db/arch/arm64/configs/bb.org_defconfig&lt;br /&gt;
&lt;br /&gt;
== Liens officiels ==&lt;br /&gt;
* https://www.beagleboard.org/boards/beagley-ai&lt;br /&gt;
* [https://www.mouser.fr/ProductDetail/BeagleBoard-by-Seeed-Studio/102991834?qs=dbcCsuKDzFXY1JA%252BEGwyow%3D%3D Achat chez Mouser à 77€]&lt;br /&gt;
&lt;br /&gt;
== Pinout ==&lt;br /&gt;
* https://pinout.beagley.ai/&lt;br /&gt;
&lt;br /&gt;
* Tag connect clip : https://www.printables.com/model/879533-beagley-ai-tagconnect-clip-10pin&lt;br /&gt;
&lt;br /&gt;
== Debug port Connection ==&lt;br /&gt;
=== Onboard connector ===&lt;br /&gt;
Despite what some have published about everywhere on the Web (even [https://docs.beagle.cc/boards/beagley/ai/03-design.html#uart within official beagleboard online documentation]), the connector &#039;&#039;&#039;IS NOT&#039;&#039;&#039; 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.&amp;lt;br /&amp;gt;&lt;br /&gt;
The official BOM gives all the information :&lt;br /&gt;
* Manufacturer : MTCONN&lt;br /&gt;
* Manufacturer part number : MTWF63-103SRN-01163&lt;br /&gt;
&lt;br /&gt;
=== Where to find mating connector ===&lt;br /&gt;
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 &amp;quot;WTB10-XX-02-2&amp;quot; ... but I do not know where to get these, much less the mating connector.&amp;lt;br /&amp;gt;&lt;br /&gt;
Some googling gave me another manufacturer with a compatible reference : [https://www.we-online.com/en/components/products/em/connectors/wire-to-board/wr_wtb/wr_wtb_1_00_mm Wurth Elektronik].&amp;lt;br /&amp;gt;&lt;br /&gt;
What&#039;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.&amp;lt;br /&amp;gt;&lt;br /&gt;
Here are the references/links for all the parts :&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_1_00_SMT_MALE_VERTICAL_SHROUDED_HEADER_6653XX124022 WR-WTB 1.00 mm SMT Male Vertical Shrouded Header]&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_1_00_FEMALE_TERMINAL_HOUSING_6650XX113322 WR-WTB 1.00 mm Female Terminal Housing]&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_1_00_FEMALE_CRIMP_CONTACT_665X0113722 WR-WTB 1.00 mm Female Crimp Terminal]&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_PRE-CRIMPED_CABLE_1_00 WR-WTB Pre-crimped wire]&lt;br /&gt;
* And even the [https://www.we-online.com/en/components/products/WTB_MANUAL_CRIMPING_TOOL_11#600665232280 WR-WTB Manual Crimping Tool]&lt;br /&gt;
Choose the number of positions you need (3 for the debug port, but there&#039;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.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* BeagleBoard linux git repository : https://git.beagleboard.org/beagleboard/linux&lt;br /&gt;
* BeagleY-AI design and detailed specifications : https://docs.beagle.cc/boards/beagley/ai/03-design.html&lt;br /&gt;
* &lt;br /&gt;
* [https://community.element14.com/products/devtools/single-board-computers/next-genbeaglebone/b/blog/posts/beagley-ai-review BeagleY-AI Review - Part 1] and [https://community.element14.com/products/devtools/single-board-computers/next-genbeaglebone/b/blog/posts/beagley-ai-review---part-2 BeagleY-AI Review - Part 2] on element 14 community.&lt;/div&gt;</summary>
		<author><name>Drizzt</name></author>
	</entry>
	<entry>
		<id>http://wiki.nathael.net/index.php?title=Dev/BeagleBone/BeagleYAI&amp;diff=344</id>
		<title>Dev/BeagleBone/BeagleYAI</title>
		<link rel="alternate" type="text/html" href="http://wiki.nathael.net/index.php?title=Dev/BeagleBone/BeagleYAI&amp;diff=344"/>
		<updated>2025-02-19T12:16:54Z</updated>

		<summary type="html">&lt;p&gt;Drizzt: /* Debug port Connection */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Configs ==&lt;br /&gt;
=== Linux ===&lt;br /&gt;
* Device tree : arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts&lt;br /&gt;
* Kernel config file : https://git.beagleboard.org/beagleboard/linux/-/blob/d89bfdd19e7161ddba4ce4f5e34425ae6020a6db/arch/arm64/configs/bb.org_defconfig&lt;br /&gt;
&lt;br /&gt;
== Liens officiels ==&lt;br /&gt;
* https://www.beagleboard.org/boards/beagley-ai&lt;br /&gt;
* [https://www.mouser.fr/ProductDetail/BeagleBoard-by-Seeed-Studio/102991834?qs=dbcCsuKDzFXY1JA%252BEGwyow%3D%3D Achat chez Mouser à 77€]&lt;br /&gt;
&lt;br /&gt;
== Pinout ==&lt;br /&gt;
* https://pinout.beagley.ai/&lt;br /&gt;
&lt;br /&gt;
== Debug port Connection ==&lt;br /&gt;
=== Onboard connector ===&lt;br /&gt;
Despite what some have published about everywhere on the Web (even [https://docs.beagle.cc/boards/beagley/ai/03-design.html#uart within official beagleboard online documentation]), the connector &#039;&#039;&#039;IS NOT&#039;&#039;&#039; 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.&amp;lt;br /&amp;gt;&lt;br /&gt;
The official BOM gives all the information :&lt;br /&gt;
* Manufacturer : MTCONN&lt;br /&gt;
* Manufacturer part number : MTWF63-103SRN-01163&lt;br /&gt;
&lt;br /&gt;
=== Where to find mating connector ===&lt;br /&gt;
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 &amp;quot;WTB10-XX-02-2&amp;quot; ... but I do not know where to get these, much less the mating connector.&amp;lt;br /&amp;gt;&lt;br /&gt;
Some googling gave me another manufacturer with a compatible reference : [https://www.we-online.com/en/components/products/em/connectors/wire-to-board/wr_wtb/wr_wtb_1_00_mm Wurth Elektronik].&amp;lt;br /&amp;gt;&lt;br /&gt;
What&#039;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.&amp;lt;br /&amp;gt;&lt;br /&gt;
Here are the references/links for all the parts :&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_1_00_SMT_MALE_VERTICAL_SHROUDED_HEADER_6653XX124022 WR-WTB 1.00 mm SMT Male Vertical Shrouded Header]&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_1_00_FEMALE_TERMINAL_HOUSING_6650XX113322 WR-WTB 1.00 mm Female Terminal Housing]&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_1_00_FEMALE_CRIMP_CONTACT_665X0113722 WR-WTB 1.00 mm Female Crimp Terminal]&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_PRE-CRIMPED_CABLE_1_00 WR-WTB Pre-crimped wire]&lt;br /&gt;
* And even the [https://www.we-online.com/en/components/products/WTB_MANUAL_CRIMPING_TOOL_11#600665232280 WR-WTB Manual Crimping Tool]&lt;br /&gt;
Choose the number of positions you need (3 for the debug port, but there&#039;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.&lt;/div&gt;</summary>
		<author><name>Drizzt</name></author>
	</entry>
	<entry>
		<id>http://wiki.nathael.net/index.php?title=Dev/BeagleBone/BeagleYAI&amp;diff=343</id>
		<title>Dev/BeagleBone/BeagleYAI</title>
		<link rel="alternate" type="text/html" href="http://wiki.nathael.net/index.php?title=Dev/BeagleBone/BeagleYAI&amp;diff=343"/>
		<updated>2025-02-06T02:28:49Z</updated>

		<summary type="html">&lt;p&gt;Drizzt: /* Onboard connector */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Configs ==&lt;br /&gt;
=== Linux ===&lt;br /&gt;
* Device tree : arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts&lt;br /&gt;
* Kernel config file : https://git.beagleboard.org/beagleboard/linux/-/blob/d89bfdd19e7161ddba4ce4f5e34425ae6020a6db/arch/arm64/configs/bb.org_defconfig&lt;br /&gt;
&lt;br /&gt;
== Liens officiels ==&lt;br /&gt;
* https://www.beagleboard.org/boards/beagley-ai&lt;br /&gt;
* [https://www.mouser.fr/ProductDetail/BeagleBoard-by-Seeed-Studio/102991834?qs=dbcCsuKDzFXY1JA%252BEGwyow%3D%3D Achat chez Mouser à 77€]&lt;br /&gt;
&lt;br /&gt;
== Pinout ==&lt;br /&gt;
* https://pinout.beagley.ai/&lt;br /&gt;
&lt;br /&gt;
== Debug port Connection ==&lt;br /&gt;
=== Onboard connector ===&lt;br /&gt;
Despite what some have published about everywhere on the Web (even [https://docs.beagle.cc/boards/beagley/ai/03-design.html#uart within official beagleboard online documentation]), the connector &#039;&#039;&#039;IS NOT&#039;&#039;&#039; 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.&amp;lt;br /&amp;gt;&lt;br /&gt;
The official BOM gives all the information :&lt;br /&gt;
* Manufacturer : MTCONN&lt;br /&gt;
* Manufacturer part number : MTWF63-103SRN-01163&lt;br /&gt;
&lt;br /&gt;
=== Where to find mating connector ===&lt;br /&gt;
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 &amp;quot;WTB10-XX-02-2&amp;quot; ... but I do not know where to get these, much less the mating connector.&amp;lt;br /&amp;gt;&lt;br /&gt;
Some googling gave me another manufacturer with a compatible reference : [https://www.we-online.com/en/components/products/em/connectors/wire-to-board/wr_wtb/wr_wtb_1_00_mm Wurth Elektronik].&amp;lt;br /&amp;gt;&lt;br /&gt;
What&#039;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.&amp;lt;br /&amp;gt;&lt;br /&gt;
Here are the references/links for all the parts :&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_1_00_SMT_MALE_VERTICAL_SHROUDED_HEADER_6653XX124022 WR-WTB 1.00 mm SMT Male Vertical Shrouded Header]&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_1_00_FEMALE_TERMINAL_HOUSING_6650XX113322 WR-WTB 1.00 mm Female Terminal Housing]&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_1_00_FEMALE_CRIMP_CONTACT_665X0113722 WR-WTB 1.00 mm Female Crimp Terminal]&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_PRE-CRIMPED_CABLE_1_00 WR-WTB Pre-crimped wire]&lt;br /&gt;
* And even the [https://www.we-online.com/en/components/products/WTB_MANUAL_CRIMPING_TOOL_11#600665232280 WR-WTB Manual Crimping Tool]&lt;br /&gt;
Choose the number of positions you need (3 for the debug port, but there&#039;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 selected&lt;/div&gt;</summary>
		<author><name>Drizzt</name></author>
	</entry>
	<entry>
		<id>http://wiki.nathael.net/index.php?title=Dev/BeagleBone/BeagleYAI&amp;diff=342</id>
		<title>Dev/BeagleBone/BeagleYAI</title>
		<link rel="alternate" type="text/html" href="http://wiki.nathael.net/index.php?title=Dev/BeagleBone/BeagleYAI&amp;diff=342"/>
		<updated>2025-02-06T02:23:06Z</updated>

		<summary type="html">&lt;p&gt;Drizzt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Configs ==&lt;br /&gt;
=== Linux ===&lt;br /&gt;
* Device tree : arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts&lt;br /&gt;
* Kernel config file : https://git.beagleboard.org/beagleboard/linux/-/blob/d89bfdd19e7161ddba4ce4f5e34425ae6020a6db/arch/arm64/configs/bb.org_defconfig&lt;br /&gt;
&lt;br /&gt;
== Liens officiels ==&lt;br /&gt;
* https://www.beagleboard.org/boards/beagley-ai&lt;br /&gt;
* [https://www.mouser.fr/ProductDetail/BeagleBoard-by-Seeed-Studio/102991834?qs=dbcCsuKDzFXY1JA%252BEGwyow%3D%3D Achat chez Mouser à 77€]&lt;br /&gt;
&lt;br /&gt;
== Pinout ==&lt;br /&gt;
* https://pinout.beagley.ai/&lt;br /&gt;
&lt;br /&gt;
== Debug port Connection ==&lt;br /&gt;
=== Onboard connector ===&lt;br /&gt;
Despite what some have published about everywhere on the Web, the connector &#039;&#039;&#039;IS NOT&#039;&#039;&#039; 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.&amp;lt;br /&amp;gt;&lt;br /&gt;
The official BOM gives all the information :&lt;br /&gt;
* Manufacturer : MTCONN&lt;br /&gt;
* Manufacturer part number : MTWF63-103SRN-01163&lt;br /&gt;
&lt;br /&gt;
=== Where to find mating connector ===&lt;br /&gt;
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 &amp;quot;WTB10-XX-02-2&amp;quot; ... but I do not know where to get these, much less the mating connector.&amp;lt;br /&amp;gt;&lt;br /&gt;
Some googling gave me another manufacturer with a compatible reference : [https://www.we-online.com/en/components/products/em/connectors/wire-to-board/wr_wtb/wr_wtb_1_00_mm Wurth Elektronik].&amp;lt;br /&amp;gt;&lt;br /&gt;
What&#039;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.&amp;lt;br /&amp;gt;&lt;br /&gt;
Here are the references/links for all the parts :&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_1_00_SMT_MALE_VERTICAL_SHROUDED_HEADER_6653XX124022 WR-WTB 1.00 mm SMT Male Vertical Shrouded Header]&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_1_00_FEMALE_TERMINAL_HOUSING_6650XX113322 WR-WTB 1.00 mm Female Terminal Housing]&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_1_00_FEMALE_CRIMP_CONTACT_665X0113722 WR-WTB 1.00 mm Female Crimp Terminal]&lt;br /&gt;
* [https://www.we-online.com/en/components/products/WTB_PRE-CRIMPED_CABLE_1_00 WR-WTB Pre-crimped wire]&lt;br /&gt;
* And even the [https://www.we-online.com/en/components/products/WTB_MANUAL_CRIMPING_TOOL_11#600665232280 WR-WTB Manual Crimping Tool]&lt;br /&gt;
Choose the number of positions you need (3 for the debug port, but there&#039;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 selected&lt;/div&gt;</summary>
		<author><name>Drizzt</name></author>
	</entry>
	<entry>
		<id>http://wiki.nathael.net/index.php?title=Dev/BeagleBone/BeagleYAI&amp;diff=341</id>
		<title>Dev/BeagleBone/BeagleYAI</title>
		<link rel="alternate" type="text/html" href="http://wiki.nathael.net/index.php?title=Dev/BeagleBone/BeagleYAI&amp;diff=341"/>
		<updated>2025-02-05T01:45:45Z</updated>

		<summary type="html">&lt;p&gt;Drizzt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Configs ==&lt;br /&gt;
=== Linux ===&lt;br /&gt;
* Device tree : arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts&lt;br /&gt;
* Kernel config file : https://git.beagleboard.org/beagleboard/linux/-/blob/d89bfdd19e7161ddba4ce4f5e34425ae6020a6db/arch/arm64/configs/bb.org_defconfig&lt;br /&gt;
&lt;br /&gt;
== Liens officiels ==&lt;br /&gt;
* https://www.beagleboard.org/boards/beagley-ai&lt;br /&gt;
* [https://www.mouser.fr/ProductDetail/BeagleBoard-by-Seeed-Studio/102991834?qs=dbcCsuKDzFXY1JA%252BEGwyow%3D%3D Achat chez Mouser à 77€]&lt;br /&gt;
&lt;br /&gt;
== Pinout ==&lt;br /&gt;
* https://pinout.beagley.ai/&lt;/div&gt;</summary>
		<author><name>Drizzt</name></author>
	</entry>
	<entry>
		<id>http://wiki.nathael.net/index.php?title=Dev/BeagleBone/BeagleYAI&amp;diff=340</id>
		<title>Dev/BeagleBone/BeagleYAI</title>
		<link rel="alternate" type="text/html" href="http://wiki.nathael.net/index.php?title=Dev/BeagleBone/BeagleYAI&amp;diff=340"/>
		<updated>2025-02-03T18:59:50Z</updated>

		<summary type="html">&lt;p&gt;Drizzt: Created page with &amp;quot;== Liens officiels == * https://www.beagleboard.org/boards/beagley-ai * [https://www.mouser.fr/ProductDetail/BeagleBoard-by-Seeed-Studio/102991834?qs=dbcCsuKDzFXY1JA%252BEGwyow%3D%3D Achat chez Mouser à 77€]&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Liens officiels ==&lt;br /&gt;
* https://www.beagleboard.org/boards/beagley-ai&lt;br /&gt;
* [https://www.mouser.fr/ProductDetail/BeagleBoard-by-Seeed-Studio/102991834?qs=dbcCsuKDzFXY1JA%252BEGwyow%3D%3D Achat chez Mouser à 77€]&lt;/div&gt;</summary>
		<author><name>Drizzt</name></author>
	</entry>
	<entry>
		<id>http://wiki.nathael.net/index.php?title=Dev/BeagleBone&amp;diff=339</id>
		<title>Dev/BeagleBone</title>
		<link rel="alternate" type="text/html" href="http://wiki.nathael.net/index.php?title=Dev/BeagleBone&amp;diff=339"/>
		<updated>2025-02-03T18:58:02Z</updated>

		<summary type="html">&lt;p&gt;Drizzt: /* Boards */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:BeagleBone}}&lt;br /&gt;
&lt;br /&gt;
== Common description ==&lt;br /&gt;
BeagleBone Boards are small Open Source SBC&#039;s (Single Board Computer) initially designed by [https://beagleboard.org/ BeagleBoard.org] and initially manufactured by CircuitCo, though others started to produce them and even created derivatives from the best-seller BeagleBone Black.&lt;br /&gt;
&lt;br /&gt;
Most information can be found by looking at [https://beagleboard.org/bone BeagleBoard.org] official website, and many more all over the web.&lt;br /&gt;
&lt;br /&gt;
I&#039;ve been using the BeagleBone Black while teaching embedded Linux at ESCPE Lyon since the very first days (managed to get them a few days before the official release in April 2013), and used them for many professional projects too.&amp;lt;br /&amp;gt;&lt;br /&gt;
The performances were very good when the board was released, and I still prefer it over some fake open-source competitors (hint : they started the &amp;quot;fruit-based&amp;quot; names*), which are no more available, while the BeagleBone Black is still sold for the same price (December 2024, 11 years later).&lt;br /&gt;
&lt;br /&gt;
&#039;* : raspberry Pi boards are not open-source&lt;br /&gt;
&lt;br /&gt;
== Boards ==&lt;br /&gt;
=== [[Dev/BeagleBone/BBB|BeagleBone Black]] ===&lt;br /&gt;
=== [[Dev/BeagleBone/Green|BeagleBone Green]] ===&lt;br /&gt;
=== [[Dev/BeagleBone/PocketBeagle|Pocket Beagle]] ===&lt;br /&gt;
=== [[Dev/BeagleBone/BeagleYAI|BeagleY-AI]] ===&lt;/div&gt;</summary>
		<author><name>Drizzt</name></author>
	</entry>
	<entry>
		<id>http://wiki.nathael.net/index.php?title=Dev/Embedded/Rootfs/BusyBox/Example1&amp;diff=338</id>
		<title>Dev/Embedded/Rootfs/BusyBox/Example1</title>
		<link rel="alternate" type="text/html" href="http://wiki.nathael.net/index.php?title=Dev/Embedded/Rootfs/BusyBox/Example1&amp;diff=338"/>
		<updated>2025-02-03T18:48:43Z</updated>

		<summary type="html">&lt;p&gt;Drizzt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:BusyBox Example 1 : Simple system}}&lt;br /&gt;
&lt;br /&gt;
Most of the time when you start with BusyBox as the heart of your system you do not plan for a multi-user desktop box, but rather aim for a small, single purpose embedded system, so you won&#039;t need too many stuff to get it running.&lt;br /&gt;
&lt;br /&gt;
This example explains how to create a minimal Linux based base system using BusyBox as a base for the userland part of the system.&lt;br /&gt;
&lt;br /&gt;
== Minimal configuration ==&lt;br /&gt;
You can start with this &#039;&#039;&#039;[http://data.nathael.net/Dev/Base/BusyBox/config_mini_example_2025-01-10 example minimal config]&#039;&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
Some information about my choices :&lt;br /&gt;
* This configuration is based upon the &amp;quot;defaultconfig&amp;quot;, but with many modifications (not all listed here)&lt;br /&gt;
* No &amp;quot;/usr&amp;quot; support (all binaries under /bin and /sbin)&lt;br /&gt;
* Archival utilities limited to tar with &amp;quot;xz&amp;quot; and &amp;quot;bz2&amp;quot; support&lt;br /&gt;
* Removed console utilities&lt;br /&gt;
* Removed most users handling utilities : users should be known when building the system (or added by direct editting of the files)&lt;br /&gt;
* Removed disk partitionning and formatting utilities save for UBIFS&lt;br /&gt;
* Removed runit support&lt;br /&gt;
* Removed all commands I never used on a full blown system&lt;br /&gt;
&lt;br /&gt;
== Compile using uClibc ==&lt;br /&gt;
The options selected for a minimal configuration should not impact the compilation process, unless you want a really small system, which is common when using BusyBox due to storage size constraints.&amp;lt;br /&amp;gt;&lt;br /&gt;
In this case using uClibc instead of the GNU libc is a good idea.&amp;lt;br /&amp;gt;&lt;br /&gt;
Most information about using uClibc in a cross-compilation toolchain can be found [https://www.uclibc.org/ on uClibc website].&amp;lt;br /&amp;gt;&lt;br /&gt;
You will then need to use the cross-compilation prefix of your toolchain to build BusyBox.&lt;br /&gt;
&lt;br /&gt;
With a stripped down BusyBox, you may well end up with :&lt;br /&gt;
 Final link with: &amp;lt;none&amp;gt;&lt;br /&gt;
But note that in this case you&#039;ll still need the selected libc (uClibc) !&lt;br /&gt;
&lt;br /&gt;
== Directories and links ==&lt;br /&gt;
Here is a very simple set of directories for a configuration without &amp;quot;/usr&amp;quot;, according to the minimal configuration given above :&lt;br /&gt;
 mkdir -p dev etc lib/{modules,firmware} proc root run sys var/{log,spool/cron}&lt;br /&gt;
Then add some links : &lt;br /&gt;
 ln -s run/tmp tmp &lt;br /&gt;
 ln -s ../run/tmp var/tmp&lt;br /&gt;
&lt;br /&gt;
== Libraries ==&lt;br /&gt;
As this is a very simple system the set of libraries should be very limited. You may need additional ones for your application binaries so I cannot give you a full list, but if you chose to have dynamically linked binaries (which is usually a good idea if your system has more than one or two binaries) you will always need these two :&lt;br /&gt;
* The dynamic linker/loader (name depending on the target architecture/triplet) : ld-linux-*.so.*&lt;br /&gt;
* the libc : libc.so.6&lt;br /&gt;
In order to check for additional library requirements, have a look at this part in the second example.&lt;br /&gt;
&lt;br /&gt;
Once you know which libraries you need, you&#039;ll need to figure which files to put in which directory for each library.&lt;br /&gt;
&lt;br /&gt;
Unless you specified an absolute or relative pathname during the linking stage of the compilation of your binaries, there is no &amp;quot;fixed&amp;quot; location for each library file, save maybe the dynamic linker/loader (ld-linux-*.so.*), which usually goes under &amp;quot;/lib&amp;quot;, and the dynamic linker will end up looking for libraries in some &amp;quot;default&amp;quot; path which usually includes &amp;quot;/lib&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
So the easy way is to create a single &amp;quot;/lib&amp;quot; directory (remember that we chose to desactivate the use of &amp;quot;/usr&amp;quot; in BusyBox configuration).&lt;br /&gt;
&lt;br /&gt;
As for the files, for the dynamic linker/loader and the libc, the files should be shipped with your cross-compilation toolchain. If you&#039;re using the toolchain packaged by Debian, then you will find them under &amp;quot;/usr/${triplet}/lib/&amp;quot; if you installed &amp;quot;libc6-*-cross&amp;quot; package, or under &amp;quot;/usr/lib/${triplet}/&amp;quot; if you installed &amp;quot;libc6:*&amp;quot; package (* is for the Debian architecture name, while you should [[Dev/Embedded/Rootfs/BusyBox/Example2#First,_the_answer_about_the_&amp;quot;triplet&amp;quot;|read the bits I collected about the ${triplet} in the second BusyBox example page]]).&lt;br /&gt;
&lt;br /&gt;
== Bootup script(s) ==&lt;br /&gt;
Now Busybox seems to support two init systems : the historic one sharing similarities to SysVinit (without the runlevels) and one similar to runnit.&lt;br /&gt;
I choose to disable runnit support in this minimal configuration, so the &amp;quot;init&amp;quot; applet will look for the &amp;quot;/etc/inittab&amp;quot; configuration file.&amp;lt;br /&amp;gt;&lt;br /&gt;
There is an example one under &amp;quot;examples/&amp;quot; in BusyBox source tree.&amp;lt;br /&amp;gt;&lt;br /&gt;
Anyway, even without this file the applet will look for a script called &amp;quot;/etc/init.d/rcS&amp;quot; and, even if it found none, start an &amp;quot;askfirst&amp;quot; shell (display the message &amp;quot;Please press Enter to activate this console.&amp;quot; which would then give you a prompt). All the details are explained in the example inittab file in BusyBox sources.&lt;br /&gt;
&lt;br /&gt;
So here is a short list of files for the init part of the base system :&lt;br /&gt;
* /etc/inittab&lt;br /&gt;
* /etc/init.d/rcS&lt;br /&gt;
* Other service or configuration script(s)&lt;br /&gt;
&lt;br /&gt;
What you put in each file depends on your application and your needs, even if some parts are hard to avoid and thus common to every system, like the initial mounts of /dev and /proc at least.&lt;br /&gt;
&lt;br /&gt;
In SysVinit the rcS script (called by init according to inittab content) calls &amp;quot;/etc/init.d/rc&amp;quot; for the runlevel S, which will start all scripts from &amp;quot;/etc/rcS.d&amp;quot;, and after this, init will change to the default runlevel configured in inittab, which will call &amp;quot;/etc/init.d/rc&amp;quot; for the default runlevel (usually 2) which in turn will start all scripts from the corresponding &amp;quot;/etc/rcN.d&amp;quot; directory.&lt;br /&gt;
&lt;br /&gt;
In busybox there are no runlevels, and usually much less configuration to perform, with this configuration being more &amp;quot;static&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
As such, I usually create a single &amp;quot;startup&amp;quot; script (the &amp;quot;/etc/init.d/rcS&amp;quot; one) which does all the usual system configuration and setup (hostname, mounts, hwclock, modules, sysctl, random init, ...) then the network configuration (static IP or DHCP, firewall, ...)&amp;lt;br /&amp;gt;&lt;br /&gt;
Having everything started sequentially by a single script which does not try to read a hundred configuration files is not that much slower than using a heavy, complicated system which tries to run everything in parallel but needs to be heavily configured to avoid race conditions and handle dependencies.&lt;br /&gt;
&lt;br /&gt;
In order to start the services (sshd, inetd, ...) and the main application(s) you have some options :&lt;br /&gt;
* add them at the end of the rcS script (using start-stop-daemon if need be for respawn)&lt;br /&gt;
* create a separate script for them (or one for each) and call them at the end of the rcS one (still using start-stop-daemon if need be)&lt;br /&gt;
* use the &amp;quot;wait&amp;quot;, &amp;quot;once&amp;quot; or &amp;quot;respawn&amp;quot; actions in inittab&lt;br /&gt;
I usually use the inittab solution, sometimes with a wrapper script.&lt;br /&gt;
&lt;br /&gt;
== Configuration files ==&lt;br /&gt;
The list of configuration files depend on what you have selected in you BusyBox configuration and on what you write in your scripts.&amp;lt;br /&amp;gt;&lt;br /&gt;
And their content depends on your needs, of course.&amp;lt;br /&amp;gt;&lt;br /&gt;
In order to know which ones you&#039;ll need, there is no easy way (as far as I know).&amp;lt;br /&amp;gt;&lt;br /&gt;
* Some of them are listed within BusyBox configuration menu and help for each entry, so you can start there, reading the help for each entry you have activated (save thoses you think would not need a configuration file, like archiving related utilities).&lt;br /&gt;
* You can also look at the content of &amp;quot;/etc&amp;quot; on your development host&lt;br /&gt;
* Another solution is to try running the system, try to start the services you want, and check the messages on the console.&lt;br /&gt;
Here is a short list of those I have listed/created for this simple example :&lt;br /&gt;
* /etc/nologin&lt;br /&gt;
* /etc/securetty&lt;br /&gt;
* /etc/shells&lt;br /&gt;
* /etc/{passwd,shadow,groups}&lt;br /&gt;
* &#039;&#039;&#039; TO BE COMPLETED &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Application binaries and related files ==&lt;br /&gt;
This part is really only up to you and your application.&lt;br /&gt;
&lt;br /&gt;
As this simple BusyBox example does not include any kind of &amp;quot;application packaging&amp;quot; support there&#039;s not need (save for your mental health) to stick to any particular organisation for your files.&lt;br /&gt;
&lt;br /&gt;
Remember that if your binaries rely on some more libs than those you already put under &amp;quot;/lib&amp;quot; (or any other place you chose for them), then you&#039;ll need to add them to your base file system too.&lt;/div&gt;</summary>
		<author><name>Drizzt</name></author>
	</entry>
	<entry>
		<id>http://wiki.nathael.net/index.php?title=Dev/Embedded/Rootfs/BusyBox/Example1&amp;diff=337</id>
		<title>Dev/Embedded/Rootfs/BusyBox/Example1</title>
		<link rel="alternate" type="text/html" href="http://wiki.nathael.net/index.php?title=Dev/Embedded/Rootfs/BusyBox/Example1&amp;diff=337"/>
		<updated>2025-01-18T02:28:22Z</updated>

		<summary type="html">&lt;p&gt;Drizzt: /* Bootup script(s) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Example 1 : Simple system}}&lt;br /&gt;
&lt;br /&gt;
Most of the time when you start with BusyBox as the heart of your system you do not plan for a multi-user desktop box, but rather aim for a small, single purpose embedded system, so you won&#039;t need too many stuff to get it running.&lt;br /&gt;
&lt;br /&gt;
This example explains how to create a minimal Linux based base system using BusyBox as a base for the userland part of the system.&lt;br /&gt;
&lt;br /&gt;
== Minimal configuration ==&lt;br /&gt;
You can start with this &#039;&#039;&#039;[http://data.nathael.net/Dev/Base/BusyBox/config_mini_example_2025-01-10 example minimal config]&#039;&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
Some information about my choices :&lt;br /&gt;
* This configuration is based upon the &amp;quot;defaultconfig&amp;quot;, but with many modifications (not all listed here)&lt;br /&gt;
* No &amp;quot;/usr&amp;quot; support (all binaries under /bin and /sbin)&lt;br /&gt;
* Archival utilities limited to tar with &amp;quot;xz&amp;quot; and &amp;quot;bz2&amp;quot; support&lt;br /&gt;
* Removed console utilities&lt;br /&gt;
* Removed most users handling utilities : users should be known when building the system (or added by direct editting of the files)&lt;br /&gt;
* Removed disk partitionning and formatting utilities save for UBIFS&lt;br /&gt;
* Removed runit support&lt;br /&gt;
* Removed all commands I never used on a full blown system&lt;br /&gt;
&lt;br /&gt;
== Compile using uClibc ==&lt;br /&gt;
The options selected for a minimal configuration should not impact the compilation process, unless you want a really small system, which is common when using BusyBox due to storage size constraints.&amp;lt;br /&amp;gt;&lt;br /&gt;
In this case using uClibc instead of the GNU libc is a good idea.&amp;lt;br /&amp;gt;&lt;br /&gt;
Most information about using uClibc in a cross-compilation toolchain can be found [https://www.uclibc.org/ on uClibc website].&amp;lt;br /&amp;gt;&lt;br /&gt;
You will then need to use the cross-compilation prefix of your toolchain to build BusyBox.&lt;br /&gt;
&lt;br /&gt;
With a stripped down BusyBox, you may well end up with :&lt;br /&gt;
 Final link with: &amp;lt;none&amp;gt;&lt;br /&gt;
But note that in this case you&#039;ll still need the selected libc (uClibc) !&lt;br /&gt;
&lt;br /&gt;
== Directories and links ==&lt;br /&gt;
Here is a very simple set of directories for a configuration without &amp;quot;/usr&amp;quot;, according to the minimal configuration given above :&lt;br /&gt;
 mkdir -p dev etc lib/{modules,firmware} proc root run sys var/{log,spool/cron}&lt;br /&gt;
Then add some links : &lt;br /&gt;
 ln -s run/tmp tmp &lt;br /&gt;
 ln -s ../run/tmp var/tmp&lt;br /&gt;
&lt;br /&gt;
== Libraries ==&lt;br /&gt;
As this is a very simple system the set of libraries should be very limited. You may need additional ones for your application binaries so I cannot give you a full list, but if you chose to have dynamically linked binaries (which is usually a good idea if your system has more than one or two binaries) you will always need these two :&lt;br /&gt;
* The dynamic linker/loader (name depending on the target architecture/triplet) : ld-linux-*.so.*&lt;br /&gt;
* the libc : libc.so.6&lt;br /&gt;
In order to check for additional library requirements, have a look at this part in the second example.&lt;br /&gt;
&lt;br /&gt;
Once you know which libraries you need, you&#039;ll need to figure which files to put in which directory for each library.&lt;br /&gt;
&lt;br /&gt;
Unless you specified an absolute or relative pathname during the linking stage of the compilation of your binaries, there is no &amp;quot;fixed&amp;quot; location for each library file, save maybe the dynamic linker/loader (ld-linux-*.so.*), which usually goes under &amp;quot;/lib&amp;quot;, and the dynamic linker will end up looking for libraries in some &amp;quot;default&amp;quot; path which usually includes &amp;quot;/lib&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
So the easy way is to create a single &amp;quot;/lib&amp;quot; directory (remember that we chose to desactivate the use of &amp;quot;/usr&amp;quot; in BusyBox configuration).&lt;br /&gt;
&lt;br /&gt;
As for the files, for the dynamic linker/loader and the libc, the files should be shipped with your cross-compilation toolchain. If you&#039;re using the toolchain packaged by Debian, then you will find them under &amp;quot;/usr/${triplet}/lib/&amp;quot; if you installed &amp;quot;libc6-*-cross&amp;quot; package, or under &amp;quot;/usr/lib/${triplet}/&amp;quot; if you installed &amp;quot;libc6:*&amp;quot; package (* is for the Debian architecture name, while you should [[Dev/Embedded/Rootfs/BusyBox/Example2#First,_the_answer_about_the_&amp;quot;triplet&amp;quot;|read the bits I collected about the ${triplet} in the second BusyBox example page]]).&lt;br /&gt;
&lt;br /&gt;
== Bootup script(s) ==&lt;br /&gt;
Now Busybox seems to support two init systems : the historic one sharing similarities to SysVinit (without the runlevels) and one similar to runnit.&lt;br /&gt;
I choose to disable runnit support in this minimal configuration, so the &amp;quot;init&amp;quot; applet will look for the &amp;quot;/etc/inittab&amp;quot; configuration file.&amp;lt;br /&amp;gt;&lt;br /&gt;
There is an example one under &amp;quot;examples/&amp;quot; in BusyBox source tree.&amp;lt;br /&amp;gt;&lt;br /&gt;
Anyway, even without this file the applet will look for a script called &amp;quot;/etc/init.d/rcS&amp;quot; and, even if it found none, start an &amp;quot;askfirst&amp;quot; shell (display the message &amp;quot;Please press Enter to activate this console.&amp;quot; which would then give you a prompt). All the details are explained in the example inittab file in BusyBox sources.&lt;br /&gt;
&lt;br /&gt;
So here is a short list of files for the init part of the base system :&lt;br /&gt;
* /etc/inittab&lt;br /&gt;
* /etc/init.d/rcS&lt;br /&gt;
* Other service or configuration script(s)&lt;br /&gt;
&lt;br /&gt;
What you put in each file depends on your application and your needs, even if some parts are hard to avoid and thus common to every system, like the initial mounts of /dev and /proc at least.&lt;br /&gt;
&lt;br /&gt;
In SysVinit the rcS script (called by init according to inittab content) calls &amp;quot;/etc/init.d/rc&amp;quot; for the runlevel S, which will start all scripts from &amp;quot;/etc/rcS.d&amp;quot;, and after this, init will change to the default runlevel configured in inittab, which will call &amp;quot;/etc/init.d/rc&amp;quot; for the default runlevel (usually 2) which in turn will start all scripts from the corresponding &amp;quot;/etc/rcN.d&amp;quot; directory.&lt;br /&gt;
&lt;br /&gt;
In busybox there are no runlevels, and usually much less configuration to perform, with this configuration being more &amp;quot;static&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
As such, I usually create a single &amp;quot;startup&amp;quot; script (the &amp;quot;/etc/init.d/rcS&amp;quot; one) which does all the usual system configuration and setup (hostname, mounts, hwclock, modules, sysctl, random init, ...) then the network configuration (static IP or DHCP, firewall, ...)&amp;lt;br /&amp;gt;&lt;br /&gt;
Having everything started sequentially by a single script which does not try to read a hundred configuration files is not that much slower than using a heavy, complicated system which tries to run everything in parallel but needs to be heavily configured to avoid race conditions and handle dependencies.&lt;br /&gt;
&lt;br /&gt;
In order to start the services (sshd, inetd, ...) and the main application(s) you have some options :&lt;br /&gt;
* add them at the end of the rcS script (using start-stop-daemon if need be for respawn)&lt;br /&gt;
* create a separate script for them (or one for each) and call them at the end of the rcS one (still using start-stop-daemon if need be)&lt;br /&gt;
* use the &amp;quot;wait&amp;quot;, &amp;quot;once&amp;quot; or &amp;quot;respawn&amp;quot; actions in inittab&lt;br /&gt;
I usually use the inittab solution, sometimes with a wrapper script.&lt;br /&gt;
&lt;br /&gt;
== Configuration files ==&lt;br /&gt;
The list of configuration files depend on what you have selected in you BusyBox configuration and on what you write in your scripts.&amp;lt;br /&amp;gt;&lt;br /&gt;
And their content depends on your needs, of course.&amp;lt;br /&amp;gt;&lt;br /&gt;
In order to know which ones you&#039;ll need, there is no easy way (as far as I know).&amp;lt;br /&amp;gt;&lt;br /&gt;
* Some of them are listed within BusyBox configuration menu and help for each entry, so you can start there, reading the help for each entry you have activated (save thoses you think would not need a configuration file, like archiving related utilities).&lt;br /&gt;
* You can also look at the content of &amp;quot;/etc&amp;quot; on your development host&lt;br /&gt;
* Another solution is to try running the system, try to start the services you want, and check the messages on the console.&lt;br /&gt;
Here is a short list of those I have listed/created for this simple example :&lt;br /&gt;
* /etc/nologin&lt;br /&gt;
* /etc/securetty&lt;br /&gt;
* /etc/shells&lt;br /&gt;
* /etc/{passwd,shadow,groups}&lt;br /&gt;
* &#039;&#039;&#039; TO BE COMPLETED &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Application binaries and related files ==&lt;br /&gt;
This part is really only up to you and your application.&lt;br /&gt;
&lt;br /&gt;
As this simple BusyBox example does not include any kind of &amp;quot;application packaging&amp;quot; support there&#039;s not need (save for your mental health) to stick to any particular organisation for your files.&lt;br /&gt;
&lt;br /&gt;
Remember that if your binaries rely on some more libs than those you already put under &amp;quot;/lib&amp;quot; (or any other place you chose for them), then you&#039;ll need to add them to your base file system too.&lt;/div&gt;</summary>
		<author><name>Drizzt</name></author>
	</entry>
</feed>