This adds sections for the PRserv and HASHserv in the local.conf templates (for r/o upstream).
Also we add comments to the r/w part that is reserved for CI.
Change-Id: Id39b11bc9664b441f5dcae3646259401b5d9a6aa
Signed-off-by: Jan-Simon Moeller <jsmoeller@linuxfoundation.org>
Reviewed-on: https://gerrit.automotivelinux.org/gerrit/c/AGL/meta-agl/+/29945
Tested-by: Jenkins Job builder account
ci-image-boot-test: Jenkins Job builder account
ci-image-build: Jenkins Job builder account
# Psplash causes crash on first boot on RPi
IMAGE_FEATURES:remove = "splash"
-# Build updatable image. Only takes effect when sota.bbclass is inherited
-DISTRO_FEATURES:append = " sota"
-
-# Add xen build, if the xen feature activated
-DISTRO_FEATURES:append = " ${@bb.utils.contains('AGL_XEN_WANTED', '1', ' xen', '', d)}"
-
-# add xen-tools to build
-IMAGE_INSTALL:append = " ${@bb.utils.contains('AGL_XEN_WANTED', '1', 'xen-tools xen-mkimage-rpi4', '', d)}"
-
-# Add xen-raspberry binary to boot files
-IMAGE_BOOT_FILES:append = " ${@bb.utils.contains('AGL_XEN_WANTED','1', 'xen-${MACHINE}', '',d)}"
-
#DISPLAY CONFIGURATION
WESTON_DISPLAYS:raspberrypi4 = " hdmi-a-1-90 hdmi-a-2-90"
# Add CMA to the kernel arguments for SOTA
OSTREE_KERNEL_ARGS:sota:append = " cma=256M"
-# use u-boot always (RPi5 U-boot is not ready yet)
-RPI_USE_U_BOOT = "0"
+# use u-boot always
+RPI_USE_U_BOOT = "1"
+
+# Re-enable U-Boot for raspberrypi5 here until upstream is fixed.
+# Note that this assumes the use of scarthgap/u-boot meta-lts-mixins
+# branch.
+UBOOT_MACHINE = "rpi_arm64_config"
+COMPATIBLE_MACHINE:pn-u-boot:forcevariable = ""
+KERNEL_IMAGETYPE_UBOOT ?= "Image"
+KERNEL_BOOTCMD ?= "booti"
# Use UART for serial console
ENABLE_UART ?= "1"
# For libomxil
#LICENSE_FLAGS_ACCEPTED = "commercial"
-IMAGE_INSTALL:append = " kernel-modules linux-firmware-rpidistro-bcm43430 linux-firmware-rpidistro-bcm43455 create-combined-dtb "
+# For linux-firmware-rpidistro
+LICENSE_FLAGS_ACCEPTED += "synaptics-killswitch"
+
+IMAGE_INSTALL:append = " kernel-modules create-combined-dtb "
# Psplash causes crash on first boot on RPi
IMAGE_FEATURES:remove = "splash"
-# Build updatable image. Only takes effect when sota.bbclass is inherited
-DISTRO_FEATURES:append = " sota"
-
-# Add xen build, if the xen feature activated
-DISTRO_FEATURES:append = " ${@bb.utils.contains('AGL_XEN_WANTED', '1', ' xen', '', d)}"
-
-# add xen-tools to build
-IMAGE_INSTALL:append = " ${@bb.utils.contains('AGL_XEN_WANTED', '1', 'xen-tools xen-mkimage-rpi4', '', d)}"
-
-# Add xen-raspberry binary to boot files
-IMAGE_BOOT_FILES:append = " ${@bb.utils.contains('AGL_XEN_WANTED','1', 'xen-${MACHINE}', '',d)}"
-
#DISPLAY CONFIGURATION
WESTON_DISPLAYS:raspberrypi5 = " hdmi-a-1-90 hdmi-a-2-90"
+++ /dev/null
-From 57575ce80a96411bce828be6fc84ebd2ed003810 Mon Sep 17 00:00:00 2001
-From: Jan-Simon Moeller <jsmoeller@linuxfoundation.org>
-Date: Tue, 12 Sep 2023 22:50:28 +0200
-Subject: [PATCH] [WIP] Make BSP work under YP kirkstone
-
-This fixes build issues when using the layer with YP 'kirkstone' branch.
-
-check-config.sh can be solved differently as well.
-binman/control.py needs a little investigation
-
-Upstream-Status: Inappropriate
-Signed-off-by: Jan-Simon Moeller <jsmoeller@linuxfoundation.org>
----
- scripts/check-config.sh | 2 +-
- tools/binman/control.py | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/scripts/check-config.sh b/scripts/check-config.sh
-index cc1c9a54d9..633c69eb76 100755
---- a/scripts/check-config.sh
-+++ b/scripts/check-config.sh
-@@ -57,7 +57,7 @@ if [ -s ${new_adhoc} ]; then
- echo >&2 "Please add these via Kconfig instead. Find a suitable Kconfig"
- echo >&2 "file and add a 'config' or 'menuconfig' option."
- # Don't delete the temporary files in case they are useful
-- exit 1
-+ exit 0
- else
- rm ${suspects} ${ok} ${new_adhoc}
- fi
-diff --git a/tools/binman/control.py b/tools/binman/control.py
-index 47aac207b4..3d013dea17 100644
---- a/tools/binman/control.py
-+++ b/tools/binman/control.py
-@@ -8,7 +8,7 @@
- from collections import OrderedDict
- import glob
- import os
--import pkg_resources
-+#import pkg_resources
- import re
-
- import sys
---
-2.35.3
-
+++ /dev/null
-FILESEXTRAPATHS:prepend := "${THISDIR}/files:"
-
-SRC_URI:append = " file://0001-WIP-Make-BSP-work-under-YP-kirkstone.patch "
--- /dev/null
+From 7335a36d0b5c1c597566f9aa3f458a5b6817c3b4 Mon Sep 17 00:00:00 2001
+From: aurel32 <aurelien@aurel32.net>
+Date: Fri, 22 Mar 2024 14:21:13 -0700
+Subject: [PATCH] PR #1644: unscaledcycleclock: remove RISC-V support
+
+Imported from GitHub PR https://github.com/abseil/abseil-cpp/pull/1644
+
+Starting with Linux 6.6 [1], RDCYCLE is a privileged instruction on RISC-V and can't be used directly from userland. There is a sysctl option to change that as a transition period, but it will eventually disappear.
+
+The RDTIME instruction is another less accurate alternative, however its frequency varies from board to board, and there is currently now way to get its frequency from userland [2].
+
+Therefore this patch just removes the code for unscaledcycleclock on RISC-V. Without processor specific implementation, abseil relies on std::chrono::steady_clock::now().time_since_epoch() which is basically a wrapper around clock_gettime (CLOCK_MONOTONIC), which in turns use __vdso_clock_gettime(). On RISC-V this VDSO is just a wrapper around RDTIME correctly scaled to use nanoseconds units.
+
+This fixes the testsuite on riscv64, tested on a VisionFive 2 board.
+
+[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=cc4c07c89aada16229084eeb93895c95b7eabaa3
+[2] https://github.com/abseil/abseil-cpp/pull/1631
+Merge 43356a2548cfde76e164d446cb69004b488c6a71 into 76f8011beabdaee872b5fde7546e02407b220cb1
+
+Merging this change closes #1644
+
+COPYBARA_INTEGRATE_REVIEW=https://github.com/abseil/abseil-cpp/pull/1644 from aurel32:rv64-no-unscaledcycleclock 43356a2548cfde76e164d446cb69004b488c6a71
+PiperOrigin-RevId: 618286262
+Change-Id: Ie4120a727e7d0bb185df6e06ea145c780ebe6652
+
+Upstream-Status: Backport [https://github.com/abseil/abseil-cpp/commit/7335a36d]
+[Adapted to apply on top of meta-oe's patch stack]
+Signed-off-by: Scott Murray <scott.murray@konsulko.com>
+---
+ absl/base/internal/unscaledcycleclock.cc | 12 ------------
+ absl/base/internal/unscaledcycleclock_config.h | 5 ++---
+ 2 files changed, 2 insertions(+), 15 deletions(-)
+
+diff --git a/absl/base/internal/unscaledcycleclock.cc b/absl/base/internal/unscaledcycleclock.cc
+index f11fecb3..103b4f6a 100644
+--- a/absl/base/internal/unscaledcycleclock.cc
++++ b/absl/base/internal/unscaledcycleclock.cc
+@@ -121,18 +121,6 @@ double UnscaledCycleClock::Frequency() {
+ return aarch64_timer_frequency;
+ }
+
+-#elif defined(__riscv)
+-
+-int64_t UnscaledCycleClock::Now() {
+- int64_t virtual_timer_value;
+- asm volatile("rdcycle %0" : "=r"(virtual_timer_value));
+- return virtual_timer_value;
+-}
+-
+-double UnscaledCycleClock::Frequency() {
+- return base_internal::NominalCPUFrequency();
+-}
+-
+ #elif defined(_M_IX86) || defined(_M_X64)
+
+ #pragma intrinsic(__rdtsc)
+diff --git a/absl/base/internal/unscaledcycleclock_config.h b/absl/base/internal/unscaledcycleclock_config.h
+index 5e232c1a..83552fc5 100644
+--- a/absl/base/internal/unscaledcycleclock_config.h
++++ b/absl/base/internal/unscaledcycleclock_config.h
+@@ -22,7 +22,6 @@
+ // The following platforms have an implementation of a hardware counter.
+ #if defined(__i386__) || defined(__x86_64__) || defined(__aarch64__) || \
+ ((defined(__powerpc__) || defined(__ppc__)) && defined(__GLIBC__)) || \
+- defined(__riscv) || \
+ defined(_M_IX86) || (defined(_M_X64) && !defined(_M_ARM64EC))
+ #define ABSL_HAVE_UNSCALED_CYCLECLOCK_IMPLEMENTATION 1
+ #else
+@@ -54,8 +53,8 @@
+ #if ABSL_USE_UNSCALED_CYCLECLOCK
+ // This macro can be used to test if UnscaledCycleClock::Frequency()
+ // is NominalCPUFrequency() on a particular platform.
+-#if (defined(__i386__) || defined(__x86_64__) || defined(__riscv) || \
+- defined(_M_IX86) || defined(_M_X64))
++#if (defined(__i386__) || defined(__x86_64__) || defined(_M_IX86) || \
++ defined(_M_X64))
+ #define ABSL_INTERNAL_UNSCALED_CYCLECLOCK_FREQUENCY_IS_CPU_FREQUENCY
+ #endif
+ #endif
+--
+2.44.0
+
--- /dev/null
+FILESEXTRAPATHS:prepend := "${THISDIR}/${BPN}:"
+
+SRC_URI += "file://0001-PR-1644-unscaledcycleclock-remove-RISC-V-support.patch"
--- /dev/null
+From 7335a36d0b5c1c597566f9aa3f458a5b6817c3b4 Mon Sep 17 00:00:00 2001
+From: aurel32 <aurelien@aurel32.net>
+Date: Fri, 22 Mar 2024 14:21:13 -0700
+Subject: [PATCH] PR #1644: unscaledcycleclock: remove RISC-V support
+
+Imported from GitHub PR https://github.com/abseil/abseil-cpp/pull/1644
+
+Starting with Linux 6.6 [1], RDCYCLE is a privileged instruction on RISC-V and can't be used directly from userland. There is a sysctl option to change that as a transition period, but it will eventually disappear.
+
+The RDTIME instruction is another less accurate alternative, however its frequency varies from board to board, and there is currently now way to get its frequency from userland [2].
+
+Therefore this patch just removes the code for unscaledcycleclock on RISC-V. Without processor specific implementation, abseil relies on std::chrono::steady_clock::now().time_since_epoch() which is basically a wrapper around clock_gettime (CLOCK_MONOTONIC), which in turns use __vdso_clock_gettime(). On RISC-V this VDSO is just a wrapper around RDTIME correctly scaled to use nanoseconds units.
+
+This fixes the testsuite on riscv64, tested on a VisionFive 2 board.
+
+[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=cc4c07c89aada16229084eeb93895c95b7eabaa3
+[2] https://github.com/abseil/abseil-cpp/pull/1631
+Merge 43356a2548cfde76e164d446cb69004b488c6a71 into 76f8011beabdaee872b5fde7546e02407b220cb1
+
+Merging this change closes #1644
+
+COPYBARA_INTEGRATE_REVIEW=https://github.com/abseil/abseil-cpp/pull/1644 from aurel32:rv64-no-unscaledcycleclock 43356a2548cfde76e164d446cb69004b488c6a71
+PiperOrigin-RevId: 618286262
+Change-Id: Ie4120a727e7d0bb185df6e06ea145c780ebe6652
+
+Upstream-Status: Backport [https://github.com/abseil/abseil-cpp/commit/7335a36d]
+[Adapted to apply on top of meta-oe's patch stack]
+Signed-off-by: Scott Murray <scott.murray@konsulko.com>
+---
+ .../absl/base/internal/unscaledcycleclock.cc | 12 ------------
+ .../absl/base/internal/unscaledcycleclock_config.h | 5 ++---
+ 2 files changed, 2 insertions(+), 15 deletions(-)
+
+diff --git a/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc b/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc
+index f11fecb..103b4f6 100644
+--- a/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc
++++ b/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc
+@@ -121,18 +121,6 @@ double UnscaledCycleClock::Frequency() {
+ return aarch64_timer_frequency;
+ }
+
+-#elif defined(__riscv)
+-
+-int64_t UnscaledCycleClock::Now() {
+- int64_t virtual_timer_value;
+- asm volatile("rdcycle %0" : "=r"(virtual_timer_value));
+- return virtual_timer_value;
+-}
+-
+-double UnscaledCycleClock::Frequency() {
+- return base_internal::NominalCPUFrequency();
+-}
+-
+ #elif defined(_M_IX86) || defined(_M_X64)
+
+ #pragma intrinsic(__rdtsc)
+diff --git a/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock_config.h b/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock_config.h
+index 5e232c1..83552fc 100644
+--- a/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock_config.h
++++ b/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock_config.h
+@@ -22,7 +22,6 @@
+ // The following platforms have an implementation of a hardware counter.
+ #if defined(__i386__) || defined(__x86_64__) || defined(__aarch64__) || \
+ ((defined(__powerpc__) || defined(__ppc__)) && defined(__GLIBC__)) || \
+- defined(__riscv) || \
+ defined(_M_IX86) || (defined(_M_X64) && !defined(_M_ARM64EC))
+ #define ABSL_HAVE_UNSCALED_CYCLECLOCK_IMPLEMENTATION 1
+ #else
+@@ -54,8 +53,8 @@
+ #if ABSL_USE_UNSCALED_CYCLECLOCK
+ // This macro can be used to test if UnscaledCycleClock::Frequency()
+ // is NominalCPUFrequency() on a particular platform.
+-#if (defined(__i386__) || defined(__x86_64__) || defined(__riscv) || \
+- defined(_M_IX86) || defined(_M_X64))
++#if (defined(__i386__) || defined(__x86_64__) || defined(_M_IX86) || \
++ defined(_M_X64))
+ #define ABSL_INTERNAL_UNSCALED_CYCLECLOCK_FREQUENCY_IS_CPU_FREQUENCY
+ #endif
+ #endif
+--
+2.44.0
+
--- /dev/null
+FILESEXTRAPATHS:prepend := "${THISDIR}/${BPN}:"
+
+SRC_URI += "file://0001-PR-1644-unscaledcycleclock-remove-RISC-V-support.patch"
#
# A shared hash equivalent server can be set with "<HOSTNAME>:<PORT>" format
#
+# local only
#BB_HASHSERVE = "auto"
#BB_SIGNATURE_HANDLER = "OEEquivHash"
-
+#
+# online/upstream r/o
+#AGL_HOST_HASHSERV = "prserv.automotivelinux.org"
+#BB_SIGNATURE_HANDLER = "OEEquivHash"
+#BB_HASHSERVE = "auto"
+#BB_HASHSERVE_UPSTREAM = "${AGL_HOST_HASHSERV}:8888"
# The network based PR service host and port
# Uncomment the following lines to enable PRservice.
# start local PRService.
# Set to other values to use remote PRService.
#PRSERV_HOST = "localhost:0"
+#
+# r/o upstream prserv
+#AGL_HOST_PRSERV = "prserv.automotivelinux.org"
+#PRSERV_HOST = "prserv.automotivelinux.org:8686"
# Archive the source and put them to ${DEPLOY_DIR}/sources/.
file://hdmi-a-2-90.cfg \
file://hdmi-a-2-180.cfg \
file://hdmi-a-2-270.cfg \
- file://remote-output.cfg.in \
file://virtual-0.cfg \
file://virtual-90.cfg \
file://virtual-180.cfg \
# On-target weston.ini directory
weston_ini_dir = "${sysconfdir}/xdg/weston"
-# Options for the user to change in local.conf
-# e.g. REMOTING_OUTPUT_MODE = "1080x1488"
-REMOTING_OUTPUT_MODE ??= "640x720@30"
-REMOTING_OUTPUT_HOST ??= "192.168.10.3"
-REMOTING_OUTPUT_PORT ??= "5005"
-
-do_configure() {
- sed -e "s#host=.*#host=${REMOTING_OUTPUT_HOST}#" \
- -e "s#port=.*#port=${REMOTING_OUTPUT_PORT}#" \
- ${WORKDIR}/remote-output.cfg.in > ${WORKDIR}/remote-output.cfg
-}
-
do_compile() {
# Put all of our cfg files together for a default portrait
# orientation configuration
ALTERNATIVE_LINK_NAME[weston.ini] = "${weston_ini_dir}/weston.ini"
RPROVIDES:${PN} = "weston-ini"
-RCONFLICTS:${PN} = "${PN}-landscape"
ALTERNATIVE:${PN} = "weston.ini"
ALTERNATIVE_TARGET_${PN} = "${weston_ini_dir}/weston.ini.default"
-PACKAGE_BEFORE_PN += "${PN}-landscape"
+# landscape
+PACKAGE_BEFORE_PN += "${PN}-landscape"
FILES:${PN}-landscape = "${weston_ini_dir}/weston.ini.landscape"
-
RPROVIDES:${PN}-landscape = "weston-ini"
-RCONFLICTS:${PN}-landscape = "${PN}"
ALTERNATIVE:${PN}-landscape = "weston.ini"
ALTERNATIVE_TARGET_${PN}-landscape = "${weston_ini_dir}/weston.ini.landscape"
+ALTERNATIVE_PRIORITY_${PN}-landscape = "20"
-PACKAGE_BEFORE_PN += "${PN}-landscape-inverted"
+# landscape-inverted
+PACKAGE_BEFORE_PN += "${PN}-landscape-inverted"
FILES:${PN}-landscape-inverted = "${weston_ini_dir}/weston.ini.landscape-inverted"
-
RPROVIDES:${PN}-landscape-inverted = "weston-ini"
-RCONFLICTS:${PN}-landscape-inverted = "${PN}"
ALTERNATIVE:${PN}-landscape-inverted = "weston.ini"
ALTERNATIVE_TARGET_${PN}-landscape-inverted = "${weston_ini_dir}/weston.ini.landscape-inverted"
+ALTERNATIVE_PRIORITY_${PN}-landscape-inverted = "25"
-# no activation by default
+# no-activate, no activation by default
PACKAGE_BEFORE_PN += "${PN}-no-activate"
-
FILES:${PN}-no-activate = "${weston_ini_dir}/weston.ini.default-no-activate"
-
RPROVIDES:${PN}-no-activate = "weston-ini"
-RCONFLICTS:${PN}-no-activate = "${PN}"
ALTERNATIVE:${PN}-no-activate = "weston.ini"
ALTERNATIVE_TARGET_${PN}-no-activate = "${weston_ini_dir}/weston.ini.default-no-activate"
+ALTERNATIVE_PRIORITY_${PN}-no-activate = "21"
-# landscape, no activation by default
+# landscape-no-activate, no activation by default
PACKAGE_BEFORE_PN += "${PN}-landscape-no-activate"
-
FILES:${PN}-landscape-no-activate = "${weston_ini_dir}/weston.ini.landscape-no-activate"
-
RPROVIDES:${PN}-landscape-no-activate = "weston-ini"
-RCONFLICTS:${PN}-landscape-no-activate = "${PN}"
ALTERNATIVE:${PN}-landscape-no-activate = "weston.ini"
ALTERNATIVE_TARGET_${PN}-landscape-no-activate = "${weston_ini_dir}/weston.ini.landscape-no-activate"
+ALTERNATIVE_PRIORITY_${PN}-landscape-no-activate = "26"
# This is a settings-only package, we do not need a development package
# (and its fixed dependency to ${PN} being installed)
PACKAGE_ARCH = "${MACHINE_ARCH}"
-WESTON_DISPLAYS:append = "${@bb.utils.contains("DISTRO_FEATURES", "weston-remoting", " remote-output", "", d)}"
-
# For virtual machines and intel-corei7-64 we want to support both the HDMI-A-1
# and Virtual-1 outputs. This allows us to run virtual images on real hardware
# and vice versa.
+++ /dev/null
-[remote-output]
-name=remote-1
-mode=640x720@30
-host=192.168.10.3
-port=5005
#AGL_HOST_PRSERV ?= "10.30.72.18"
#AGL_HOST_HASHSERV ?= "10.30.72.18"
-#BB_HASHSERVE = "${AGL_HOST_HASHSERV}:8383"
+# r/w hashserv
+#BB_HASHSERVE = "${AGL_HOST_HASHSERV}:8787"
#BB_SIGNATURE_HANDLER = "OEEquivHash"
-#PRSERV_HOST = "${AGL_HOST_PRSERV}:8181"
+# r/w prserv
+#PRSERV_HOST = "${AGL_HOST_PRSERV}:8585"
IMAGE_INSTALL:append = " curl"
AGL_META_PYTHON = "${METADIR}/external/meta-openembedded/meta-python"
+# Needed to satisfy uutils-coreutils DEPENDS when using SELinux
+AGL_META_CLANG = "${METADIR}/external/meta-clang"
+
BBLAYERS =+ " \
${METADIR}/external/meta-selinux \
"
-BBLAYERS =+ "${METADIR}/bsp/meta-raspberrypi"
+BBLAYERS =+ " \
+ ${METADIR}/bsp/meta-raspberrypi \
+ ${METADIR}/bsp/meta-lts-mixins_u-boot \
+"
# This is the original place, but we need to tweak layer.conf
BBLAYERS =+ "${METADIR}/bsp/meta-sifive"
-
-# For now, tweak the layer's compatibility to allow using with kirkstone,
-# since we know it works without major issues.
-LAYERSERIES_COMPAT_meta-sifive:append = " kirkstone"