diff options
Diffstat (limited to 'meta-agl-core')
24 files changed, 392 insertions, 143 deletions
diff --git a/meta-agl-core/conf/distro/poky-agl.conf b/meta-agl-core/conf/distro/poky-agl.conf index 266a06d70..1ce721f59 100644 --- a/meta-agl-core/conf/distro/poky-agl.conf +++ b/meta-agl-core/conf/distro/poky-agl.conf @@ -9,9 +9,9 @@ DISTRO_NAME = "Automotive Grade Linux" # Release flags -DISTRO_CODENAME = "ricefish" +DISTRO_CODENAME = "salmon" AGL_BRANCH = "master" -AGLVERSION = "17.90.0" +AGLVERSION = "18.90.0" # switch devel/release #AGLRELEASETYPE ?= "agldevelopment" @@ -29,8 +29,8 @@ DISTRO_BRANCH_VERSION_TAG = "${DISTRO_CODENAME}/${@'${DISTRO_VERSION}'.replace(' # reproducible builds: # Set the desired timestamps # E.g. update for (major) releases -export SOURCE_DATE_EPOCH = "1706800000" -REPRODUCIBLE_TIMESTAMP_ROOTFS = "1706800000" +export SOURCE_DATE_EPOCH = "1721815278" +REPRODUCIBLE_TIMESTAMP_ROOTFS = "1721815278" # SDK diff --git a/meta-agl-core/conf/templates/base/conf-notes.txt b/meta-agl-core/conf/templates/base/conf-notes.txt index 09ae72647..2e77ae5bf 100644 --- a/meta-agl-core/conf/templates/base/conf-notes.txt +++ b/meta-agl-core/conf/templates/base/conf-notes.txt @@ -6,30 +6,21 @@ Common targets are: * agl-image-minimal-crosssdk (crosssdk for ^^) * agl-image-weston (minimal filesystem with weston) + * agl-image-compositor (minimal filesystem with AGL compositor) - meta-agl-demo: (IVI demo with UI) - with 'agl-demo' - * agl-image-ivi (base for IVI targets) - * agl-image-ivi-crosssdk (sdk for ^^) + * agl-ivi-image (base for IVI targets) + * agl-ivi-image-crosssdk (sdk for ^^) - * agl-image-graphical-qt5 (weston plus qt5 framework libs) - * agl-image-graphical-qt5-crosssdk (sdk for ^^) + * agl-ivi-demo-qt (IVI Qt demo image) + * agl-ivi-demo-qt-crosssdk (sdk for ^^) + * agl-ivi-demo-flutter (IVI Flutter demo image) + * agl-ivi-demo-html5 (IVI HTML5 demo image) - * agl-image-graphical-html5 (weston plus chromium for html5) - - * agl-image-cluster (minimal image with APIs for cluster) - * agl-image-cluster-qt5 (image with QT5 and APIs for cluster) - - * agl-image-telematics (image with APIs for telematics) - - * agl-demo-platform (* default IVI demo target *) - * agl-demo-platform-crosssdk (sdk for ^^) - - * agl-cluster-demo-platform (cluster demo image) - * agl-cluster-demo-platform-crosssdk (sdk for ^^) - * agl-cluster-demo-qtcompositor (cluster demo using own compositor) - - * agl-telematics-demo-platform (telematics demo image) - * agl-telematics-demo-platform-crosssdk (sdk for ^^) + * agl-cluster-demo-qt (cluster Qt demo image) + * agl-cluster-demo-flutter (cluster Flutter demo image) + * agl-telematics-demo (telematics demo image) + * agl-gateway-demo (gateway demo image) diff --git a/meta-agl-core/conf/templates/base/local.conf.sample b/meta-agl-core/conf/templates/base/local.conf.sample index be49ed00d..5e9de61b3 100644 --- a/meta-agl-core/conf/templates/base/local.conf.sample +++ b/meta-agl-core/conf/templates/base/local.conf.sample @@ -279,9 +279,15 @@ PACKAGECONFIG:append:pn-qemu-system-native = " sdl" # # 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. @@ -289,6 +295,10 @@ PACKAGECONFIG:append:pn-qemu-system-native = " sdl" # 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/. diff --git a/meta-agl-core/files/group b/meta-agl-core/files/group index a7e0cd17f..c7d4507b4 100644 --- a/meta-agl-core/files/group +++ b/meta-agl-core/files/group @@ -99,4 +99,5 @@ sgx::1010: kuksa::900: qemu::901: kvm::902: +persistent-api::903: ptest::2001: diff --git a/meta-agl-core/files/passwd b/meta-agl-core/files/passwd index ea54d06e4..3f30a0480 100644 --- a/meta-agl-core/files/passwd +++ b/meta-agl-core/files/passwd @@ -64,5 +64,6 @@ mosquitto::1007:1007::: pipewire::1008:1008::: kuksa::900:900::: qemu::901:901::: +persistent-api::903:903::: user::1004:100::: ptest::2001:2001::: diff --git a/meta-agl-core/recipes-connectivity/connman-ncurses/connman-ncurses/0001-Do-not-overwrite-CFLAGS.patch b/meta-agl-core/recipes-connectivity/connman-ncurses/connman-ncurses/0001-Do-not-overwrite-CFLAGS.patch index 4a86e6c57..479e5c1c7 100644 --- a/meta-agl-core/recipes-connectivity/connman-ncurses/connman-ncurses/0001-Do-not-overwrite-CFLAGS.patch +++ b/meta-agl-core/recipes-connectivity/connman-ncurses/connman-ncurses/0001-Do-not-overwrite-CFLAGS.patch @@ -3,6 +3,8 @@ From: Jan-Simon Moeller <jsmoeller@linuxfoundation.org> Date: Tue, 19 Jul 2022 23:28:21 +0200 Subject: [PATCH] Do not overwrite CFLAGS +Upstream-Status: Pending + Signed-off-by: Jan-Simon Moeller <jsmoeller@linuxfoundation.org> --- configure.ac | 16 ++++++++-------- diff --git a/meta-agl-core/recipes-connectivity/connman-ncurses/connman-ncurses/0001-Initialize-variables.patch b/meta-agl-core/recipes-connectivity/connman-ncurses/connman-ncurses/0001-Initialize-variables.patch index 9a1078426..d106ada00 100644 --- a/meta-agl-core/recipes-connectivity/connman-ncurses/connman-ncurses/0001-Initialize-variables.patch +++ b/meta-agl-core/recipes-connectivity/connman-ncurses/connman-ncurses/0001-Initialize-variables.patch @@ -5,6 +5,8 @@ Subject: [PATCH] Initialize variables This fixes compiler warnings. +Upstream-Status: Pending + Signed-off-by: Jan-Simon Moeller <jsmoeller@linuxfoundation.org> --- main.c | 2 +- diff --git a/meta-agl-core/recipes-graphics/wayland/agl-compositor_git.bb b/meta-agl-core/recipes-graphics/wayland/agl-compositor_git.bb index 41240309b..79b13df71 100644 --- a/meta-agl-core/recipes-graphics/wayland/agl-compositor_git.bb +++ b/meta-agl-core/recipes-graphics/wayland/agl-compositor_git.bb @@ -11,7 +11,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=fac6abe0003c4d142ff8fa1f18316df0" DEPENDS = "wayland wayland-protocols wayland-native weston" SRC_URI = "git://gerrit.automotivelinux.org/gerrit/src/agl-compositor.git;protocol=https;branch=${AGL_BRANCH}" -SRCREV = "18e93caca8ad397d504215d673765871b2c88f25" +SRCREV = "c8ffca8f9c67114ca424b88df0740943fe7768e3" AGL_BRANCH:aglnext = "next" SRCREV:aglnext = "${AUTOREV}" diff --git a/meta-agl-core/recipes-graphics/wayland/weston-ini-conf.bb b/meta-agl-core/recipes-graphics/wayland/weston-ini-conf.bb index 0611ec5b4..f6b27a14b 100644 --- a/meta-agl-core/recipes-graphics/wayland/weston-ini-conf.bb +++ b/meta-agl-core/recipes-graphics/wayland/weston-ini-conf.bb @@ -13,7 +13,6 @@ SRC_URI = " \ 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 \ @@ -31,23 +30,12 @@ WESTON_DISPLAYS ?= "hdmi-a-1-90" # Configuration fragments to use in weston.ini.* # Note that some may be replaced/removed when building the landscape # configuration. -WESTON_FRAGMENTS = "core shell grpc-proxy ${WESTON_DISPLAYS}" +WESTON_FRAGMENTS_BASE = "core shell" +WESTON_FRAGMENTS = "${WESTON_FRAGMENTS_BASE} ${WESTON_DISPLAYS}" # 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 @@ -109,47 +97,42 @@ PACKAGE_ARCH = "${MACHINE_ARCH}" 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) diff --git a/meta-agl-core/recipes-graphics/wayland/weston-ini-conf.bbappend b/meta-agl-core/recipes-graphics/wayland/weston-ini-conf.bbappend index 746bde339..b6095f2fa 100644 --- a/meta-agl-core/recipes-graphics/wayland/weston-ini-conf.bbappend +++ b/meta-agl-core/recipes-graphics/wayland/weston-ini-conf.bbappend @@ -2,8 +2,6 @@ FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:" 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. diff --git a/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/remote-output.cfg.in b/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/remote-output.cfg.in deleted file mode 100644 index 940cbdd0c..000000000 --- a/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/remote-output.cfg.in +++ /dev/null @@ -1,5 +0,0 @@ -[remote-output] -name=remote-1 -mode=640x720@30 -host=192.168.10.3 -port=5005 diff --git a/meta-agl-core/recipes-graphics/wayland/weston/0001-backend-drm-don-t-leak-gem_handle_refcnt-in-drm_dest.patch b/meta-agl-core/recipes-graphics/wayland/weston/0001-backend-drm-don-t-leak-gem_handle_refcnt-in-drm_dest.patch new file mode 100644 index 000000000..0e3ab7613 --- /dev/null +++ b/meta-agl-core/recipes-graphics/wayland/weston/0001-backend-drm-don-t-leak-gem_handle_refcnt-in-drm_dest.patch @@ -0,0 +1,27 @@ +From fb60f9c16ce8865fbdcd181419f44b72af1aa3c2 Mon Sep 17 00:00:00 2001 +From: Ray Smith <rsmith@brightsign.biz> +Date: Tue, 19 Dec 2023 11:43:55 +0000 +Subject: [PATCH 1/2] backend-drm: don't leak gem_handle_refcnt in drm_destroy + +Signed-off-by: Ray Smith <rsmith@brightsign.biz> +--- + libweston/backend-drm/drm.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/libweston/backend-drm/drm.c b/libweston/backend-drm/drm.c +index 8092789..fcececb 100644 +--- a/libweston/backend-drm/drm.c ++++ b/libweston/backend-drm/drm.c +@@ -3364,6 +3364,9 @@ drm_destroy(struct weston_backend *backend) + weston_launcher_close(ec->launcher, device->drm.fd); + weston_launcher_destroy(ec->launcher); + ++ if (device->gem_handle_refcnt) ++ hash_table_destroy(device->gem_handle_refcnt); ++ + free(device->drm.filename); + free(device); + free(b); +-- +2.43.0 + diff --git a/meta-agl-core/recipes-graphics/wayland/weston/0001-libweston-Add-paint-node-destruction-into-weston_lay.patch b/meta-agl-core/recipes-graphics/wayland/weston/0001-libweston-Add-paint-node-destruction-into-weston_lay.patch deleted file mode 100644 index 19eadcf7f..000000000 --- a/meta-agl-core/recipes-graphics/wayland/weston/0001-libweston-Add-paint-node-destruction-into-weston_lay.patch +++ /dev/null @@ -1,60 +0,0 @@ -From cfde02d47a503cbfd0629bbfe0cb776686af8a91 Mon Sep 17 00:00:00 2001 -From: Marius Vlad <marius.vlad@collabora.com> -Date: Tue, 9 Apr 2024 18:34:22 +0300 -Subject: [PATCH] libweston: Add paint node destruction into - weston_layer_entry_remove() - -This prevents a potential crash where users of -weston_layer_entry_insert/layer_entry_remove() would see when moving -views into a NULL layer (effectively unmapping the surface/view). - -Users that have migrated to the weston_view_move_to_layer() are immune -to this issue because that takes care paint node destruction. - -Signed-off-by: Marius Vlad <marius.vlad@collabora.com> ---- - libweston/compositor.c | 17 ++++++++++------- - 1 file changed, 10 insertions(+), 7 deletions(-) - -diff --git a/libweston/compositor.c b/libweston/compositor.c -index bb29b83b5..ea257bb90 100644 ---- a/libweston/compositor.c -+++ b/libweston/compositor.c -@@ -3980,17 +3980,10 @@ weston_view_move_to_layer(struct weston_view *view, - struct weston_layer_entry *layer) - { - bool was_mapped = view->is_mapped; -- struct weston_paint_node *pnode, *pntmp; - - if (layer == &view->layer_link) - return; - -- /* Remove all paint nodes because we have no idea what a layer change -- * does to view visibility on any output. -- */ -- wl_list_for_each_safe(pnode, pntmp, &view->paint_node_list, view_link) -- weston_paint_node_destroy(pnode); -- - view->surface->compositor->view_list_needs_rebuild = true; - - /* Damage the view's old region, and remove it from the layer. */ -@@ -4020,6 +4013,16 @@ weston_view_move_to_layer(struct weston_view *view, - WL_EXPORT void - weston_layer_entry_remove(struct weston_layer_entry *entry) - { -+ struct weston_paint_node *pnode, *pntmp; -+ struct weston_view *view; -+ -+ /* Remove all paint nodes because we have no idea what a layer change -+ * does to view visibility on any output. -+ */ -+ view = container_of(entry, struct weston_view, layer_link); -+ wl_list_for_each_safe(pnode, pntmp, &view->paint_node_list, view_link) -+ weston_paint_node_destroy(pnode); -+ - wl_list_remove(&entry->link); - wl_list_init(&entry->link); - entry->layer = NULL; --- -2.43.0 - diff --git a/meta-agl-core/recipes-graphics/wayland/weston/0002-backend-drm-always-create-gem_handle_refcnt-hash-tab.patch b/meta-agl-core/recipes-graphics/wayland/weston/0002-backend-drm-always-create-gem_handle_refcnt-hash-tab.patch new file mode 100644 index 000000000..0ae82088a --- /dev/null +++ b/meta-agl-core/recipes-graphics/wayland/weston/0002-backend-drm-always-create-gem_handle_refcnt-hash-tab.patch @@ -0,0 +1,56 @@ +From 10fcfd66069c774e28f67b18afd329e4bcf9f5b3 Mon Sep 17 00:00:00 2001 +From: Ray Smith <rsmith@brightsign.biz> +Date: Tue, 19 Dec 2023 11:45:45 +0000 +Subject: [PATCH 2/2] backend-drm: always create gem_handle_refcnt hash table + +Devices created via drm_device_create have this hash table, but those +created via drm_backend_create don't. + +Signed-off-by: Ray Smith <rsmith@brightsign.biz> +--- + libweston/backend-drm/drm.c | 12 +++++++++--- + 1 file changed, 9 insertions(+), 3 deletions(-) + +diff --git a/libweston/backend-drm/drm.c b/libweston/backend-drm/drm.c +index fcececb..9d6a9cf 100644 +--- a/libweston/backend-drm/drm.c ++++ b/libweston/backend-drm/drm.c +@@ -3364,8 +3364,7 @@ drm_destroy(struct weston_backend *backend) + weston_launcher_close(ec->launcher, device->drm.fd); + weston_launcher_destroy(ec->launcher); + +- if (device->gem_handle_refcnt) +- hash_table_destroy(device->gem_handle_refcnt); ++ hash_table_destroy(device->gem_handle_refcnt); + + free(device->drm.filename); + free(device); +@@ -3867,10 +3866,13 @@ drm_backend_create(struct weston_compositor *compositor, + + device = zalloc(sizeof *device); + if (device == NULL) +- return NULL; ++ goto err_backend; + device->state_invalid = true; + device->drm.fd = -1; + device->backend = b; ++ device->gem_handle_refcnt = hash_table_create(); ++ if (!device->gem_handle_refcnt) ++ goto err_device; + + b->drm = device; + wl_list_init(&b->kms_list); +@@ -4108,6 +4110,10 @@ err_compositor: + if (b->gbm) + gbm_device_destroy(b->gbm); + #endif ++ hash_table_destroy(device->gem_handle_refcnt); ++err_device: ++ free(device); ++err_backend: + free(b); + return NULL; + } +-- +2.43.0 + diff --git a/meta-agl-core/recipes-graphics/wayland/weston_13.0_aglcore.inc b/meta-agl-core/recipes-graphics/wayland/weston_13.0_aglcore.inc index 843a068b4..0b5dae715 100644 --- a/meta-agl-core/recipes-graphics/wayland/weston_13.0_aglcore.inc +++ b/meta-agl-core/recipes-graphics/wayland/weston_13.0_aglcore.inc @@ -4,7 +4,8 @@ PACKAGECONFIG:append = "${@bb.utils.contains('DISTRO_FEATURES', 'weston-remoting SRC_URI:append = " \ file://0001-clients-Handle-missing-pointer_surface-is-there-s-no.patch \ - file://0001-libweston-Add-paint-node-destruction-into-weston_lay.patch \ + file://0001-backend-drm-don-t-leak-gem_handle_refcnt-in-drm_dest.patch \ + file://0002-backend-drm-always-create-gem_handle_refcnt-hash-tab.patch \ " diff --git a/meta-agl-core/recipes-kernel/linux/linux-agl-config-virtio.inc b/meta-agl-core/recipes-kernel/linux/linux-agl-config-virtio.inc new file mode 100644 index 000000000..e0d30b1f6 --- /dev/null +++ b/meta-agl-core/recipes-kernel/linux/linux-agl-config-virtio.inc @@ -0,0 +1,8 @@ +AGL_KCONFIG_FRAGMENTS += " \ + virtio-${TUNE_ARCH} \ + virtio-drm.cfg \ + virtio-pci.cfg \ + virtio-scmi.cfg \ + sound-hda.cfg \ + virtio-snd.cfg \ +" diff --git a/meta-agl-core/recipes-kernel/linux/linux-agl-config.inc b/meta-agl-core/recipes-kernel/linux/linux-agl-config.inc index 4799a6180..5cf008a77 100644 --- a/meta-agl-core/recipes-kernel/linux/linux-agl-config.inc +++ b/meta-agl-core/recipes-kernel/linux/linux-agl-config.inc @@ -71,10 +71,6 @@ AGL_KCONFIG_FRAGMENTS:append:qemuall = " \ qemu-drm.cfg \ " -AGL_KCONFIG_FRAGMENTS:append:virtio-all = " \ - sound-hda.cfg \ -" - # Configuration for using the ARM virt machine (and not versatilepb) AGL_KCONFIG_FRAGMENTS:append:qemuarm = " qemuarm.cfg" diff --git a/meta-agl-core/recipes-kernel/linux/linux-agl.inc b/meta-agl-core/recipes-kernel/linux/linux-agl.inc index c318716fe..f41e35bc2 100644 --- a/meta-agl-core/recipes-kernel/linux/linux-agl.inc +++ b/meta-agl-core/recipes-kernel/linux/linux-agl.inc @@ -3,7 +3,8 @@ DEPENDS += "kern-tools-native" -include linux-agl-config.inc +require linux-agl-config.inc +include ${@bb.utils.contains('AGL_FEATURES', 'agl-virtio-guest', 'linux-agl-config-virtio.inc', '', d)} # returns all the elements from the src uri that are .cfg files def find_cfgs(d): diff --git a/meta-agl-core/recipes-kernel/linux/linux/virtio-aarch64.cfg b/meta-agl-core/recipes-kernel/linux/linux/virtio-aarch64.cfg new file mode 100644 index 000000000..25381e133 --- /dev/null +++ b/meta-agl-core/recipes-kernel/linux/linux/virtio-aarch64.cfg @@ -0,0 +1,29 @@ +# SPDX-License-Identifier: MIT +# +# ARM64 +# +CONFIG_ARM64=y +CONFIG_64BIT=y + +# +# Bus support +# +CONFIG_ARM_AMBA=y + +# +# Non-8250 serial port support +# +CONFIG_SERIAL_AMBA_PL011=y +CONFIG_SERIAL_AMBA_PL011_CONSOLE=y + +# +# RTC +# +CONFIG_RTC_HCTOSYS=y +CONFIG_RTC_HCTOSYS_DEVICE="rtc0" + +# +# on-CPU RTC drivers +# +CONFIG_RTC_CLASS=y +CONFIG_RTC_DRV_PL031=y diff --git a/meta-agl-core/recipes-kernel/linux/linux/virtio-drm.cfg b/meta-agl-core/recipes-kernel/linux/linux/virtio-drm.cfg new file mode 100644 index 000000000..2facc345e --- /dev/null +++ b/meta-agl-core/recipes-kernel/linux/linux/virtio-drm.cfg @@ -0,0 +1,3 @@ +CONFIG_DRM=y +CONFIG_FB=y +CONFIG_DRM_FBDEV_EMULATION=y diff --git a/meta-agl-core/recipes-kernel/linux/linux/virtio-pci.cfg b/meta-agl-core/recipes-kernel/linux/linux/virtio-pci.cfg new file mode 100644 index 000000000..bbcaca312 --- /dev/null +++ b/meta-agl-core/recipes-kernel/linux/linux/virtio-pci.cfg @@ -0,0 +1,3 @@ +CONFIG_PCI=y +CONFIG_VIRTIO_PCI=y +CONFIG_PCI_HOST_GENERIC=y diff --git a/meta-agl-core/recipes-kernel/linux/linux/virtio-scmi.cfg b/meta-agl-core/recipes-kernel/linux/linux/virtio-scmi.cfg new file mode 100644 index 000000000..5ae01938e --- /dev/null +++ b/meta-agl-core/recipes-kernel/linux/linux/virtio-scmi.cfg @@ -0,0 +1,25 @@ +# Enable ARM_SCMI_PROTOCOL ("ARM System Control and Management Interface (SCMI) +# Message Protocol") config located in menu +# +# -> Device Drivers +# -> Firmware Drivers +# -> ARM System Control and Management Interface Protocol +# +# After that, in the same menu enabled: +# +# * ARM_SCMI_TRANSPORT_VIRTIO ("SCMI transport based on VirtIO") +# +# and disabled not used features: +# +# * ARM_SCMI_TRANSPORT_SMC ("SCMI transport based on SMC") +# * ARM_SCMI_POWER_DOMAIN ("SCMI power domain driver") + +CONFIG_ARM_SCMI_PROTOCOL=y +CONFIG_ARM_SCMI_HAVE_TRANSPORT=y +CONFIG_ARM_SCMI_HAVE_MSG=y +# CONFIG_ARM_SCMI_TRANSPORT_SMC is not set +CONFIG_ARM_SCMI_TRANSPORT_VIRTIO=y +# CONFIG_ARM_SCMI_POWER_DOMAIN is not set +# CONFIG_SENSORS_ARM_SCMI is not set +# CONFIG_COMMON_CLK_SCMI is not set +CONFIG_IIO_SCMI=y diff --git a/meta-agl-core/recipes-multimedia/gstreamer1.0-plugins-bad/files/rcar-gen3/0001-Added-appid-and-title-support.patch b/meta-agl-core/recipes-multimedia/gstreamer1.0-plugins-bad/files/rcar-gen3/0001-Added-appid-and-title-support.patch new file mode 100644 index 000000000..72b924337 --- /dev/null +++ b/meta-agl-core/recipes-multimedia/gstreamer1.0-plugins-bad/files/rcar-gen3/0001-Added-appid-and-title-support.patch @@ -0,0 +1,166 @@ +From df64f7e34d01a03957d78317ef9a1cf6d6b95055 Mon Sep 17 00:00:00 2001 +From: Marius Vlad <marius.vlad@collabora.com> +Date: Wed, 9 Aug 2023 14:34:19 +0300 +Subject: [PATCH] Added appid and title support + +Bug-AGL: SPEC-4870 +Signed-off-by: Marius Vlad <marius.vlad@collabora.com> +--- + ext/wayland/gstwaylandsink.c | 43 ++++++++++++++++++++++++++++++++++-- + ext/wayland/gstwaylandsink.h | 2 ++ + ext/wayland/wlwindow.c | 10 ++++++++- + ext/wayland/wlwindow.h | 2 +- + 4 files changed, 53 insertions(+), 4 deletions(-) + +diff --git a/ext/wayland/gstwaylandsink.c b/ext/wayland/gstwaylandsink.c +index 4918154..f743cf2 100644 +--- a/ext/wayland/gstwaylandsink.c ++++ b/ext/wayland/gstwaylandsink.c +@@ -66,7 +66,9 @@ enum + PROP_DISPLAY, + PROP_FULLSCREEN, + PROP_USE_SUBSURFACE, +- PROP_SUPPRESS_INTERLACE ++ PROP_SUPPRESS_INTERLACE, ++ PROP_APP_ID, ++ PROP_TITLE + }; + + #define DEFAULT_USE_SUBSURFACE TRUE +@@ -229,6 +231,16 @@ gst_wayland_sink_class_init (GstWaylandSinkClass * klass) + DEFAULT_SUPPRESS_INTERLACE, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + ++ g_object_class_install_property (gobject_class, PROP_APP_ID, ++ g_param_spec_string ("appid", "Top-level application id", "Wayland " ++ "appid, as xdg_shell::set_app_id", ++ NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); ++ ++ g_object_class_install_property (gobject_class, PROP_TITLE, ++ g_param_spec_string ("title", "Top-level title", "Wayland " ++ "title, xdg_shell::set_title", ++ NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); ++ + gst_type_mark_as_plugin_api (GST_TYPE_WAYLAND_VIDEO, 0); + } + +@@ -266,6 +278,16 @@ gst_wayland_sink_get_property (GObject * object, + g_value_set_string (value, sink->display_name); + GST_OBJECT_UNLOCK (sink); + break; ++ case PROP_APP_ID: ++ GST_OBJECT_LOCK (sink); ++ g_value_set_string (value, sink->app_id); ++ GST_OBJECT_UNLOCK (sink); ++ break; ++ case PROP_TITLE: ++ GST_OBJECT_LOCK (sink); ++ g_value_set_string (value, sink->title); ++ GST_OBJECT_UNLOCK (sink); ++ break; + case PROP_FULLSCREEN: + GST_OBJECT_LOCK (sink); + g_value_set_boolean (value, sink->fullscreen); +@@ -298,6 +320,16 @@ gst_wayland_sink_set_property (GObject * object, + sink->display_name = g_value_dup_string (value); + GST_OBJECT_UNLOCK (sink); + break; ++ case PROP_APP_ID: ++ GST_OBJECT_LOCK (sink); ++ sink->app_id = g_value_dup_string (value); ++ GST_OBJECT_UNLOCK (sink); ++ break; ++ case PROP_TITLE: ++ GST_OBJECT_LOCK (sink); ++ sink->title = g_value_dup_string (value); ++ GST_OBJECT_UNLOCK (sink); ++ break; + case PROP_FULLSCREEN: + GST_OBJECT_LOCK (sink); + gst_wayland_sink_set_fullscreen (sink, g_value_get_boolean (value)); +@@ -331,12 +363,18 @@ gst_wayland_sink_finalize (GObject * object) + gst_buffer_unref (sink->last_buffer); + if (sink->display) + g_object_unref (sink->display); ++ if (sink->title) ++ g_object_unref (sink->title); ++ if (sink->app_id) ++ g_object_unref (sink->app_id); + if (sink->window) + g_object_unref (sink->window); + if (sink->pool) + gst_object_unref (sink->pool); + + g_free (sink->display_name); ++ g_free (sink->title); ++ g_free (sink->app_id); + + g_mutex_clear (&sink->display_lock); + g_mutex_clear (&sink->render_lock); +@@ -768,7 +806,8 @@ gst_wayland_sink_show_frame (GstVideoSink * vsink, GstBuffer * buffer) + if (!sink->window) { + /* if we were not provided a window, create one ourselves */ + sink->window = gst_wl_window_new_toplevel (sink->display, +- &sink->video_info, sink->fullscreen, &sink->render_lock); ++ &sink->video_info, sink->fullscreen, sink->app_id, sink->title, ++ &sink->render_lock); + g_signal_connect_object (sink->window, "closed", + G_CALLBACK (on_window_closed), sink, 0); + } +diff --git a/ext/wayland/gstwaylandsink.h b/ext/wayland/gstwaylandsink.h +index 46ea538..e6c94ae 100644 +--- a/ext/wayland/gstwaylandsink.h ++++ b/ext/wayland/gstwaylandsink.h +@@ -64,6 +64,8 @@ struct _GstWaylandSink + gboolean fullscreen; + + gchar *display_name; ++ gchar *app_id; ++ gchar *title; + + gboolean redraw_pending; + GMutex render_lock; +diff --git a/ext/wayland/wlwindow.c b/ext/wayland/wlwindow.c +index 3aace87..16faec8 100644 +--- a/ext/wayland/wlwindow.c ++++ b/ext/wayland/wlwindow.c +@@ -255,7 +255,7 @@ gst_wl_window_ensure_fullscreen (GstWlWindow * window, gboolean fullscreen) + + GstWlWindow * + gst_wl_window_new_toplevel (GstWlDisplay * display, const GstVideoInfo * info, +- gboolean fullscreen, GMutex * render_lock) ++ gboolean fullscreen, gchar *app_id, gchar *title, GMutex * render_lock) + { + GstWlWindow *window; + +@@ -288,6 +288,14 @@ gst_wl_window_new_toplevel (GstWlDisplay * display, const GstVideoInfo * info, + + /* Finally, commit the xdg_surface state as toplevel */ + window->configured = FALSE; ++ if (app_id) ++ xdg_toplevel_set_app_id (window->xdg_toplevel, app_id); ++ else ++ xdg_toplevel_set_app_id (window->xdg_toplevel, "ext.wayland.waylandsink"); ++ if (title) ++ xdg_toplevel_set_title (window->xdg_toplevel, title); ++ else ++ xdg_toplevel_set_title (window->xdg_toplevel, "ext.wayland.waylandsink"); + wl_surface_commit (window->area_surface); + wl_display_flush (display->display); + +diff --git a/ext/wayland/wlwindow.h b/ext/wayland/wlwindow.h +index 034a5a5..6b525c8 100644 +--- a/ext/wayland/wlwindow.h ++++ b/ext/wayland/wlwindow.h +@@ -84,7 +84,7 @@ GType gst_wl_window_get_type (void); + void gst_wl_window_ensure_fullscreen (GstWlWindow * window, + gboolean fullscreen); + GstWlWindow *gst_wl_window_new_toplevel (GstWlDisplay * display, +- const GstVideoInfo * info, gboolean fullscreen, GMutex * render_lock); ++ const GstVideoInfo * info, gboolean fullscreen, gchar * app_id, gchar *title, GMutex * render_lock); + GstWlWindow *gst_wl_window_new_in_surface (GstWlDisplay * display, + struct wl_surface * parent, GMutex * render_lock); + +-- +2.35.1 + diff --git a/meta-agl-core/recipes-support/ptest-runner/ptest-runner/0007-WIP-Initial-LAVA-support.patch b/meta-agl-core/recipes-support/ptest-runner/ptest-runner/0007-WIP-Initial-LAVA-support.patch index 11c6fd27b..3757fe0a7 100644 --- a/meta-agl-core/recipes-support/ptest-runner/ptest-runner/0007-WIP-Initial-LAVA-support.patch +++ b/meta-agl-core/recipes-support/ptest-runner/ptest-runner/0007-WIP-Initial-LAVA-support.patch @@ -23,13 +23,14 @@ Signed-off-by: Tim Orling <timothy.t.orling@linux.intel.com> [updated for ptest-runner 2.3.2] [updated for ptest-runner 2.4.1] [updated for ptest-runner 2.4.2] +[updated for ptest-runner 2.4.4] Signed-off-by: Scott Murray <scott.murray@konsulko.com> --- flags.h | 10 ++++++++++ main.c | 9 ++++++++- - utils.c | 17 ++++++++++++++++- + utils.c | 20 +++++++++++++++++++- utils.h | 2 +- - 4 files changed, 35 insertions(+), 3 deletions(-) + 4 files changed, 38 insertions(+), 3 deletions(-) create mode 100644 flags.h diff --git a/flags.h b/flags.h @@ -84,7 +85,7 @@ index 31e4dd5..f12d6d6 100644 print_usage(stdout, argv[0]); exit(1); diff --git a/utils.c b/utils.c -index 59b8b77..30423c4 100644 +index 6cf7705..f6a3a2a 100644 --- a/utils.c +++ b/utils.c @@ -49,6 +49,7 @@ @@ -95,17 +96,19 @@ index 59b8b77..30423c4 100644 #define GET_STIME_BUF_SIZE 1024 #define WAIT_CHILD_BUF_MAX_SIZE 1024 -@@ -425,6 +426,7 @@ run_ptests(struct ptest_list *head, const struct ptest_options opts, - } +@@ -369,6 +370,9 @@ run_ptests(struct ptest_list *head, const struct ptest_options opts, + strcpy(ptest_dir, p->run_ptest); + dirname(ptest_dir); - char *ptest_dir = strdup(p->run_ptest); + char *ptest = strdup(p->ptest); - if (ptest_dir == NULL) { ++ CHECK_ALLOCATION(ptest, 1, 1); ++ + if (pipe2(pipefd_stdout, 0) == -1) { + fprintf(fp, "ERROR: pipe2() failed with: %s.\n", strerror(errno)); rc = -1; - break; -@@ -477,7 +479,10 @@ run_ptests(struct ptest_list *head, const struct ptest_options opts, - fprintf(fp, "ERROR: setpgid() failed, %s\n", strerror(errno)); - } +@@ -425,7 +429,10 @@ run_ptests(struct ptest_list *head, const struct ptest_options opts, + do_close(&pipefd_stdout[PIPE_WRITE]); + do_close(&pipefd_stderr[PIPE_WRITE]); - time_t start_time= time(NULL); + if (opts.flags & LAVA_SIGNAL_ENABLE) { @@ -115,7 +118,7 @@ index 59b8b77..30423c4 100644 fprintf(fp, "%s\n", get_stime(stime, GET_STIME_BUF_SIZE, start_time)); fprintf(fp, "BEGIN: %s\n", ptest_dir); -@@ -594,6 +599,16 @@ run_ptests(struct ptest_list *head, const struct ptest_options opts, +@@ -542,6 +549,16 @@ run_ptests(struct ptest_list *head, const struct ptest_options opts, fprintf(fp, "END: %s\n", ptest_dir); fprintf(fp, "%s\n", get_stime(stime, GET_STIME_BUF_SIZE, end_time)); @@ -130,8 +133,16 @@ index 59b8b77..30423c4 100644 + fprintf(stdout, "<LAVA_SIGNAL_TESTCASE TEST_CASE_ID=%s RESULT=%s>\n", ptest, result); + } } - free(ptest_dir); - do_close(&pipefd_stdout[PIPE_READ]); + + ptest_list_fail4: +@@ -556,6 +573,7 @@ ptest_list_fail2: + do_close(&pipefd_stdout[PIPE_WRITE]); + + ptest_list_fail1: ++ free(ptest); + fflush(fp); + fflush(fp_stderr); + diff --git a/utils.h b/utils.h index 04fc666..ad702d8 100644 --- a/utils.h @@ -148,5 +159,5 @@ index 04fc666..ad702d8 100644 extern struct ptest_list *get_available_ptests(const char *); extern int print_ptests(struct ptest_list *, FILE *); -- -2.37.3 +2.44.0 |