Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RFC: Setup dynamic layers #45

Open
wants to merge 165 commits into
base: kirkstone
Choose a base branch
from

Conversation

drewmoseley
Copy link
Contributor

Thinking about users of non-Toradex platforms, they may not want all the toradex and freescale layers. I used a combination of BBFILES_DYNAMIC and conditional settings in bblayers.conf to only include the needed layers.

We can't completely remove meta-toradex-bsp-common as some of the bbclasses in there are used in the Torizon metadata. In the future it might be nice to refactor that so we do not need the Toradex BSP layer.

Signed-off-by: Matheus Castello <[email protected]>
Signed-off-by: Matheus Castello <[email protected]>
By default it will use sdimgage-sota.wks
that is the correct to be used with rpi

Signed-off-by: Matheus Castello <[email protected]>
We need ota-ext4 and wic for rpi

Signed-off-by: Matheus Castello <[email protected]>
we have to make sure to set the u-boot-fio and use only it

Signed-off-by: Matheus Castello <[email protected]>
meta-lmp is applying some patches for rpi Kernel v4.19

Signed-off-by: Matheus Castello <[email protected]>
Setting uart enabled as default

Signed-off-by: Matheus Castello <[email protected]>
Signed-off-by: Matheus Castello <[email protected]>
Signed-off-by: Matheus Castello <[email protected]>
Changing torizonlogo to add the "Powered by Toradex", since
the hardware is not by Toradex but the software is

Signed-off-by: Matheus Castello <[email protected]>
This is mainly for debug purposes,
we need to add support also to torizoncore-builder
to add custom kernel args in production images.

Signed-off-by: Matheus Castello <[email protected]>
Signed-off-by: Matheus Castello <[email protected]>
Signed-off-by: Matheus Castello <[email protected]>
Ooops, some cherry pick mess up with ostree

Signed-off-by: Matheus Castello <[email protected]>
Using kirkstone Torizon 6.0.0

Signed-off-by: Matheus Castello <[email protected]>
microhobby and others added 22 commits March 18, 2024 19:42
The entry for the /dev/sda1 partition make sense only for x86,
for the other machines this is causing a boot wait for the
/dev/sda1 device that does not exist.

Signed-off-by: Matheus Castello <[email protected]>
Update the feature support table according to the 6.6.0 release table
available on https://github.com/commontorizon/meta-common-torizon/releases/tag/v6.6.0-common

Signed-off-by: Leonardo Graboski Veiga <[email protected]>
Add a distro named "torizon-xenomai" that select the Xenomai kernel and
set the corresponding kernel command-line args.

Add a recipe that build the "linux-evl" Xenomai 4 kernel fork, which
include the EVL co-processor implementation.

Use the active SLTS kernel 5.10.y branch from Xenomai, because it's the
same version as "linux-intel-lts" for kirkstone in meta-common-torizon.

Set minimal kernel config for Xenomai to work. Further optimization may
be possible, but is not covered.

Signed-off-by: Leonardo Graboski Veiga <[email protected]>
Use LABEL=efi instead of /dev/sda1 to mount the EFI partition.
This fix the boot issue under devices that does not create
the /dev/sda1 device node, for example device that uses
eMMC storage or other storage devices.

Signed-off-by: Matheus Castello <[email protected]>
In the Xenomai docs and also on Intel ECI docs, there are comments on
kernel config that help with low latency, which improves the real-time
reliability and performance.

From https://v4.xenomai.org/dovetail/rulesofthumb/:

* CONFIG_DEBUG_IRQ_PIPELINE and CONFIG_DEBUG_DOVETAIL are helpful to
  keep the development process sane.
* CONFIG_RAW_PRINTK is useful and recommended for debugging Xenomai
  out-of-band issues.

From https://v4.xenomai.org/core/user-api/scheduling/:

* CONFIG_EVL_SCHED_QUOTA and CONFIG_EVL_SCHED_TP enabled to give users
  more scheduler options for the Xenomai out-of-band scheduler.

From
https://eci.intel.com/docs/3.1/appendix.html#eci-kernel-configuration-optimizations:

* CONFIG_NO_HZ and CPU_FREQ_STAT disabled to reduce task scheduling
  clock overhead.
* CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE enabled as default to prevent
  the CPU governor from throttling the CPU frequency for power-saving.
* CONFIG_SUSPEND and CONFIG_PM disabled to prevent power management
  features to introduce spikes to latency.
* CONFIG_VIRT_CPU_ACCOUNTING and CONFIG_VIRT_CPU_ACCOUNTING_GEN for more
  accurate task and CPU time accounting.
* CONFIG_RCU_NOCB_CPU for CPU temporal isolation.

Each config in this commit was enabled individually and tested for 5
minutes under stress, using the Scary Grinder workload as defined on the
doc https://v4.xenomai.org/core/benchmarks/#stress-workloads

A final stress test was run for 3 hours. This is the same idea as the
"EVL stress" test defined on https://v4.xenomai.org/ports/, except it
was not run for 24h.

Signed-off-by: Leonardo Graboski Veiga <[email protected]>
When the SRCREV:use-head-next is set to ${AUTOREV} the rac recipe
fails to build because the SRCREV_tough should be exactly the same
as the Cargo.lock file is referencing, and it need to be set
manually.

Signed-off-by: Matheus Castello <[email protected]>
The raspberrypi0-wifi machine does not support the drm renderer, so we
need to force the use of the frame buffer renderer.

Signed-off-by: Matheus Castello <[email protected]>
xenomai: tune kernel config for low latency
On the kernel, Xenomai 3 and 4 use the same base patch set, named
"Dovetail" since the kernel 5.10 and newer.

The difference is the co-kernel: Xenomai 3 uses Cobalt, and Xenomai 4
uses EVL.

Due to this difference, this commit split the current implementation in
two, so users can choose which version of the framework to use.

The kernel is built as recommended on
https://v3.xenomai.org/installation/ and the installation is tested
on a Seeed Studio Odyssey X86J4125 v2 SBC using the official Xenomai
3 tools packaged in a container. Test instructions are available on
https://github.com/leograba/xenomai-torizon-tests

Signed-off-by: Leonardo Graboski Veiga <[email protected]>
xenomai: add Xenomai 3 in addition to Xenomai 4
The ti-soc override is used for some changes needed on verdin-am62.  But
those changes do not work for beagleplay.  Change the override to specifically
use verdin-am62.

Signed-off-by: Drew Moseley <[email protected]>
Signed-off-by: Drew Moseley <[email protected]>
@drewmoseley
Copy link
Contributor Author

For now this is just for discussion. I'll rebase at some point to get rid of the merge conflicts.

@leonheldattoradex
Copy link
Contributor

This makes a lot of sense to me. Will the manifest stay the same or can we use some other tool to also dynamically download just what's needed?

@leograba
Copy link
Contributor

Looks quite an interesting feature, especially for a setup with many machines from several different vendors.

@drewmoseley
Copy link
Contributor Author

Yeah, I'm not sure how well repo would handle this. In past projects we had a base XML repo manifest and many others that included it. And I think our current repo does something like this so we can certainly consider reworking the manifest to make it easier to checkout only a subset of the report.

Alternatively, but more of a change, we could consider using Kas as it has even easier workflows to support this. I've played with it a bit and even wrote a python script to help convert a Toradex repo into a kas file but I have not done much testing on it.

@microhobby microhobby force-pushed the kirkstone branch 3 times, most recently from 62e7de7 to 68a7613 Compare September 19, 2024 14:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants