diff --git a/board/batocera/qualcomm/sm8550/fsoverlay/etc/init.d/S05user b/board/batocera/qualcomm/sm8550/fsoverlay/etc/init.d/S05user
new file mode 100755
index 00000000000..947c749da1a
--- /dev/null
+++ b/board/batocera/qualcomm/sm8550/fsoverlay/etc/init.d/S05user
@@ -0,0 +1,72 @@
+#!/bin/sh
+#
+
+start_services()
+{
+ #QIPCRTR Name Service - dependency of following services
+ printf "Starting QIPCRTR Name Service: "
+ start-stop-daemon -S -b -m -p /var/run/qrtr-ns.pid --exec /usr/bin/qrtr-ns -- -f 1
+ if [ $? != 0 ]; then
+ echo "Starting QIPCRTR Name Service: FAILED"
+ exit 1
+ else
+ echo "OK"
+ fi
+ #Qualcomm PD mapper service
+ printf "Starting Qualcomm PD mapper service: "
+ start-stop-daemon -S -b -m -p /var/run/pd-mapper.pid --exec /usr/bin/pd-mapper
+ if [ $? != 0 ]; then
+ echo "Starting Qualcomm PD mapper service: FAILED"
+ exit 1
+ else
+ echo "OK"
+ fi
+ #QRTR TFTP service
+ printf "Starting QRTR TFTP service: "
+ start-stop-daemon -S -b -m -p /var/run/tqftpserv.pid --exec /usr/bin/tqftpserv
+ if [ $? != 0 ]; then
+ echo "Starting QRTR TFTP service: FAILED"
+ exit 1
+ else
+ echo "OK"
+ fi
+ #Qualcomm remotefs service
+ printf "Starting Qualcomm remotefs service: "
+ start-stop-daemon -S -b -m -p /var/run/rmtfs.pid --exec /usr/bin/rmtfs -- -r -P -s
+ if [ $? != 0 ]; then
+ echo "Starting Qualcomm remotefs service: FAILED"
+ exit 1
+ else
+ echo "OK"
+ fi
+}
+
+stop_services()
+{
+ printf "Stopping QIPCRTR Name Service: "
+ start-stop-daemon -K -q -p /var/run/qrtr-ns.pid
+ killall qrtr-ns
+ start-stop-daemon -K -q -p /var/run/pd-mapper.pid
+ killall pd-mapper
+ start-stop-daemon -K -q -p /var/run/tqftpserv.pid
+ killall tqftpserv
+ start-stop-daemon -K -q -p /var/run/rmtfs.pid
+ killall rmtfs
+ echo "OK"
+}
+
+case "$1" in
+ start)
+ start_services
+ ;;
+ stop)
+ stop_services
+ ;;
+ restart|reload)
+ $0 stop
+ $0 start
+ ;;
+ *)
+ echo "Usage: $0 {start|stop|restart}"
+ exit 1
+esac
diff --git a/board/batocera/qualcomm/sm8550/fsoverlay/etc/init.d/S50btaddr b/board/batocera/qualcomm/sm8550/fsoverlay/etc/init.d/S50btaddr
new file mode 100755
index 00000000000..65724f9b04d
--- /dev/null
+++ b/board/batocera/qualcomm/sm8550/fsoverlay/etc/init.d/S50btaddr
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+if test "$1" != "start"
+then
+ exit 0
+fi
+
+printf "Set Bluetooth Address to MAC: "
+
+mac="$(echo $(cat /userdata/system/machine-id; echo bluetooth)| sha256sum -)"
+bt_mac=$(echo "42:${mac:0:2}:${mac:4:2}:${mac:8:2}:${mac:12:2}:${mac:16:2}")
+echo $bt_mac
+/usr/bin/bluetoothctl mgmt.public-addr $bt_mac
+
+echo " OK"
diff --git a/board/batocera/qualcomm/sm8550/fsoverlay/etc/udev/rules.d/99-ignore-odin2-gamepad.rules b/board/batocera/qualcomm/sm8550/fsoverlay/etc/udev/rules.d/99-ignore-odin2-gamepad.rules
new file mode 100644
index 00000000000..86fb1499033
--- /dev/null
+++ b/board/batocera/qualcomm/sm8550/fsoverlay/etc/udev/rules.d/99-ignore-odin2-gamepad.rules
@@ -0,0 +1 @@
+SUBSYSTEM=="input", ATTRS{name}=="Ayn Odin2 Gamepad", MODE="0666", ENV{ID_INPUT_MOUSE}="0", ENV{ID_INPUT_JOYSTICK}="1"
\ No newline at end of file
diff --git a/board/batocera/qualcomm/sm8550/linux_sm8550-defconfig.config b/board/batocera/qualcomm/sm8550/linux_sm8550-defconfig.config
new file mode 100644
index 00000000000..f96166c4066
--- /dev/null
+++ b/board/batocera/qualcomm/sm8550/linux_sm8550-defconfig.config
@@ -0,0 +1,1248 @@
+# CONFIG_LOCALVERSION_AUTO is not set
+CONFIG_DEFAULT_HOSTNAME="ohmyqcom"
+CONFIG_SYSVIPC=y
+CONFIG_POSIX_MQUEUE=y
+CONFIG_WATCH_QUEUE=y
+CONFIG_AUDIT=y
+# CONFIG_CONTEXT_TRACKING_USER_FORCE is not set
+CONFIG_NO_HZ=y
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_BPF_SYSCALL=y
+CONFIG_BPF_JIT=y
+CONFIG_BPF_JIT_ALWAYS_ON=y
+CONFIG_BPF_PRELOAD=y
+CONFIG_BPF_PRELOAD_UMD=y
+CONFIG_PREEMPT_VOLUNTARY=y
+CONFIG_PREEMPT_DYNAMIC=y
+CONFIG_SCHED_CORE=y
+CONFIG_VIRT_CPU_ACCOUNTING_GEN=y
+CONFIG_IRQ_TIME_ACCOUNTING=y
+CONFIG_BSD_PROCESS_ACCT=y
+CONFIG_BSD_PROCESS_ACCT_V3=y
+CONFIG_TASKSTATS=y
+CONFIG_TASK_DELAY_ACCT=y
+CONFIG_TASK_XACCT=y
+CONFIG_TASK_IO_ACCOUNTING=y
+CONFIG_PSI=y
+CONFIG_IKCONFIG=y
+CONFIG_IKCONFIG_PROC=y
+CONFIG_LOG_BUF_SHIFT=20
+CONFIG_PRINTK_INDEX=y
+CONFIG_UCLAMP_TASK=y
+CONFIG_NUMA_BALANCING=y
+CONFIG_MEMCG=y
+CONFIG_BLK_CGROUP=y
+CONFIG_CFS_BANDWIDTH=y
+CONFIG_UCLAMP_TASK_GROUP=y
+CONFIG_CGROUP_PIDS=y
+CONFIG_CGROUP_RDMA=y
+CONFIG_CGROUP_FREEZER=y
+CONFIG_CPUSETS=y
+CONFIG_CGROUP_DEVICE=y
+CONFIG_CGROUP_CPUACCT=y
+CONFIG_CGROUP_PERF=y
+CONFIG_CGROUP_BPF=y
+CONFIG_CGROUP_MISC=y
+CONFIG_NAMESPACES=y
+CONFIG_USER_NS=y
+CONFIG_CHECKPOINT_RESTORE=y
+CONFIG_SCHED_AUTOGROUP=y
+CONFIG_BLK_DEV_INITRD=y
+# CONFIG_RD_BZIP2 is not set
+# CONFIG_RD_LZMA is not set
+# CONFIG_RD_XZ is not set
+# CONFIG_RD_LZO is not set
+# CONFIG_INITRAMFS_PRESERVE_MTIME is not set
+CONFIG_EXPERT=y
+CONFIG_SGETMASK_SYSCALL=y
+CONFIG_PROFILING=y
+CONFIG_KEXEC=y
+CONFIG_KEXEC_FILE=y
+CONFIG_KEXEC_SIG=y
+CONFIG_ARCH_QCOM=y
+# CONFIG_ARM64_ERRATUM_2658417 is not set
+# CONFIG_ARM64_ERRATUM_3117295 is not set
+CONFIG_ARM64_VA_BITS_48=y
+CONFIG_SCHED_MC=y
+CONFIG_SCHED_SMT=y
+CONFIG_NUMA=y
+CONFIG_NODES_SHIFT=9
+CONFIG_PARAVIRT_TIME_ACCOUNTING=y
+CONFIG_ARM64_SW_TTBR0_PAN=y
+CONFIG_COMPAT=y
+CONFIG_ARMV8_DEPRECATED=y
+CONFIG_SWP_EMULATION=y
+CONFIG_CP15_BARRIER_EMULATION=y
+CONFIG_SETEND_EMULATION=y
+CONFIG_ARM64_PMEM=y
+CONFIG_RANDOMIZE_BASE=y
+CONFIG_PM_DEBUG=y
+CONFIG_PM_TEST_SUSPEND=y
+CONFIG_ENERGY_MODEL=y
+CONFIG_CPU_IDLE=y
+CONFIG_ARM_PSCI_CPUIDLE=y
+CONFIG_CPU_FREQ=y
+CONFIG_CPU_FREQ_STAT=y
+CONFIG_CPU_FREQ_GOV_USERSPACE=y
+CONFIG_ARM_QCOM_CPUFREQ_HW=y
+CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT=y
+# CONFIG_GCC_PLUGINS is not set
+CONFIG_MODULES=y
+CONFIG_MODULE_FORCE_LOAD=y
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODULE_FORCE_UNLOAD=y
+CONFIG_MODVERSIONS=y
+CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS=y
+CONFIG_BLK_DEV_ZONED=y
+CONFIG_BLK_DEV_THROTTLING=y
+CONFIG_BLK_DEV_THROTTLING_LOW=y
+CONFIG_BLK_WBT=y
+CONFIG_BLK_CGROUP_IOLATENCY=y
+CONFIG_BLK_CGROUP_IOCOST=y
+CONFIG_BLK_CGROUP_IOPRIO=y
+CONFIG_BLK_SED_OPAL=y
+CONFIG_BLK_INLINE_ENCRYPTION=y
+CONFIG_BLK_INLINE_ENCRYPTION_FALLBACK=y
+# CONFIG_MQ_IOSCHED_KYBER is not set
+CONFIG_BINFMT_MISC=y
+CONFIG_ZSWAP=y
+CONFIG_ZSWAP_COMPRESSOR_DEFAULT_ZSTD=y
+CONFIG_ZBUD=y
+CONFIG_Z3FOLD=y
+# CONFIG_SLAB_MERGE_DEFAULT is not set
+CONFIG_SLAB_FREELIST_RANDOM=y
+CONFIG_SLAB_FREELIST_HARDENED=y
+CONFIG_SHUFFLE_PAGE_ALLOCATOR=y
+# CONFIG_COMPAT_BRK is not set
+CONFIG_MEMORY_HOTPLUG=y
+CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE=y
+CONFIG_MEMORY_HOTREMOVE=y
+CONFIG_PAGE_REPORTING=y
+CONFIG_KSM=y
+CONFIG_DEFAULT_MMAP_MIN_ADDR=32768
+CONFIG_MEMORY_FAILURE=y
+CONFIG_TRANSPARENT_HUGEPAGE=y
+CONFIG_TRANSPARENT_HUGEPAGE_MADVISE=y
+CONFIG_CMA=y
+CONFIG_CMA_SYSFS=y
+CONFIG_CMA_AREAS=7
+CONFIG_IDLE_PAGE_TRACKING=y
+CONFIG_ZONE_DEVICE=y
+CONFIG_DEVICE_PRIVATE=y
+CONFIG_USERFAULTFD=y
+CONFIG_LRU_GEN=y
+CONFIG_LRU_GEN_ENABLED=y
+CONFIG_DAMON=y
+CONFIG_DAMON_VADDR=y
+CONFIG_DAMON_PADDR=y
+CONFIG_DAMON_SYSFS=y
+CONFIG_DAMON_DBGFS_DEPRECATED=y
+CONFIG_DAMON_RECLAIM=y
+CONFIG_NET=y
+CONFIG_PACKET=y
+CONFIG_PACKET_DIAG=y
+CONFIG_UNIX=y
+CONFIG_UNIX_DIAG=y
+CONFIG_TLS=y
+CONFIG_TLS_DEVICE=y
+CONFIG_TLS_TOE=y
+CONFIG_XFRM_USER=y
+CONFIG_XFRM_INTERFACE=y
+CONFIG_XFRM_SUB_POLICY=y
+CONFIG_XFRM_STATISTICS=y
+CONFIG_NET_KEY=y
+CONFIG_NET_KEY_MIGRATE=y
+CONFIG_XDP_SOCKETS=y
+CONFIG_XDP_SOCKETS_DIAG=y
+CONFIG_INET=y
+CONFIG_IP_MULTICAST=y
+CONFIG_IP_PNP=y
+CONFIG_IP_PNP_DHCP=y
+CONFIG_IP_PNP_BOOTP=y
+CONFIG_IP_MROUTE=y
+CONFIG_IP_PIMSM_V1=y
+CONFIG_IP_PIMSM_V2=y
+CONFIG_INET_AH=y
+CONFIG_INET_ESP=y
+CONFIG_INET_ESP_OFFLOAD=y
+CONFIG_INET_ESPINTCP=y
+CONFIG_INET_UDP_DIAG=y
+CONFIG_INET_RAW_DIAG=y
+CONFIG_INET_DIAG_DESTROY=y
+CONFIG_TCP_CONG_ADVANCED=y
+CONFIG_TCP_CONG_BIC=y
+CONFIG_TCP_CONG_WESTWOOD=y
+CONFIG_TCP_CONG_HTCP=y
+CONFIG_TCP_CONG_HSTCP=y
+CONFIG_TCP_CONG_HYBLA=y
+CONFIG_TCP_CONG_NV=y
+CONFIG_TCP_CONG_SCALABLE=y
+CONFIG_TCP_CONG_LP=y
+CONFIG_TCP_CONG_VENO=y
+CONFIG_TCP_CONG_YEAH=y
+CONFIG_TCP_CONG_ILLINOIS=y
+CONFIG_TCP_CONG_DCTCP=y
+CONFIG_TCP_CONG_CDG=y
+CONFIG_TCP_CONG_BBR=y
+CONFIG_IPV6_ROUTER_PREF=y
+CONFIG_IPV6_ROUTE_INFO=y
+CONFIG_IPV6_OPTIMISTIC_DAD=y
+CONFIG_INET6_AH=y
+CONFIG_INET6_ESP=y
+CONFIG_INET6_ESP_OFFLOAD=y
+CONFIG_INET6_ESPINTCP=y
+# CONFIG_IPV6_SIT is not set
+CONFIG_IPV6_SUBTREES=y
+CONFIG_IPV6_MROUTE=y
+CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y
+CONFIG_IPV6_PIMSM_V2=y
+CONFIG_IPV6_SEG6_LWTUNNEL=y
+CONFIG_IPV6_SEG6_HMAC=y
+CONFIG_IPV6_RPL_LWTUNNEL=y
+CONFIG_IPV6_IOAM6_LWTUNNEL=y
+CONFIG_NETFILTER=y
+CONFIG_BRIDGE_NETFILTER=y
+CONFIG_NETFILTER_NETLINK_HOOK=y
+CONFIG_NF_CONNTRACK=y
+CONFIG_NF_CONNTRACK_SECMARK=y
+CONFIG_NF_CONNTRACK_ZONES=y
+CONFIG_NF_CONNTRACK_PROCFS=y
+CONFIG_NF_CONNTRACK_EVENTS=y
+CONFIG_NF_CONNTRACK_TIMEOUT=y
+CONFIG_NF_CONNTRACK_TIMESTAMP=y
+CONFIG_NF_CONNTRACK_AMANDA=y
+CONFIG_NF_CONNTRACK_FTP=y
+CONFIG_NF_CONNTRACK_H323=y
+CONFIG_NF_CONNTRACK_IRC=y
+CONFIG_NF_CONNTRACK_NETBIOS_NS=y
+CONFIG_NF_CONNTRACK_SNMP=y
+CONFIG_NF_CONNTRACK_PPTP=y
+CONFIG_NF_CONNTRACK_SANE=y
+CONFIG_NF_CONNTRACK_SIP=y
+CONFIG_NF_CONNTRACK_TFTP=y
+CONFIG_NF_CT_NETLINK=y
+CONFIG_NF_CT_NETLINK_TIMEOUT=y
+CONFIG_NF_CT_NETLINK_HELPER=y
+CONFIG_NETFILTER_NETLINK_GLUE_CT=y
+CONFIG_NF_TABLES=y
+CONFIG_NF_TABLES_INET=y
+CONFIG_NF_TABLES_NETDEV=y
+CONFIG_NFT_NUMGEN=y
+CONFIG_NFT_CT=y
+CONFIG_NFT_FLOW_OFFLOAD=y
+CONFIG_NFT_CONNLIMIT=y
+CONFIG_NFT_LOG=y
+CONFIG_NFT_LIMIT=y
+CONFIG_NFT_MASQ=y
+CONFIG_NFT_REDIR=y
+CONFIG_NFT_NAT=y
+CONFIG_NFT_TUNNEL=y
+CONFIG_NFT_QUEUE=y
+CONFIG_NFT_QUOTA=y
+CONFIG_NFT_REJECT=y
+CONFIG_NFT_COMPAT=y
+CONFIG_NFT_HASH=y
+CONFIG_NFT_FIB_INET=y
+CONFIG_NFT_XFRM=y
+CONFIG_NFT_SOCKET=y
+CONFIG_NFT_OSF=y
+CONFIG_NFT_TPROXY=y
+CONFIG_NFT_SYNPROXY=y
+CONFIG_NFT_DUP_NETDEV=y
+CONFIG_NFT_FWD_NETDEV=y
+CONFIG_NFT_FIB_NETDEV=y
+CONFIG_NFT_REJECT_NETDEV=y
+CONFIG_NF_FLOW_TABLE_INET=y
+CONFIG_NF_FLOW_TABLE=y
+CONFIG_NF_FLOW_TABLE_PROCFS=y
+CONFIG_NETFILTER_XTABLES_COMPAT=y
+CONFIG_NETFILTER_XT_SET=y
+CONFIG_NETFILTER_XT_TARGET_AUDIT=y
+CONFIG_NETFILTER_XT_TARGET_CHECKSUM=y
+CONFIG_NETFILTER_XT_TARGET_CLASSIFY=y
+CONFIG_NETFILTER_XT_TARGET_CONNMARK=y
+CONFIG_NETFILTER_XT_TARGET_DSCP=y
+CONFIG_NETFILTER_XT_TARGET_HMARK=y
+CONFIG_NETFILTER_XT_TARGET_IDLETIMER=y
+CONFIG_NETFILTER_XT_TARGET_LED=y
+CONFIG_NETFILTER_XT_TARGET_LOG=y
+CONFIG_NETFILTER_XT_TARGET_MARK=y
+CONFIG_NETFILTER_XT_TARGET_NFLOG=y
+CONFIG_NETFILTER_XT_TARGET_NFQUEUE=y
+CONFIG_NETFILTER_XT_TARGET_NOTRACK=y
+CONFIG_NETFILTER_XT_TARGET_TEE=y
+CONFIG_NETFILTER_XT_TARGET_TPROXY=y
+CONFIG_NETFILTER_XT_TARGET_TRACE=y
+CONFIG_NETFILTER_XT_TARGET_SECMARK=y
+CONFIG_NETFILTER_XT_TARGET_TCPMSS=y
+CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=y
+CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=y
+CONFIG_NETFILTER_XT_MATCH_BPF=y
+CONFIG_NETFILTER_XT_MATCH_CGROUP=y
+CONFIG_NETFILTER_XT_MATCH_CLUSTER=y
+CONFIG_NETFILTER_XT_MATCH_COMMENT=y
+CONFIG_NETFILTER_XT_MATCH_CONNBYTES=y
+CONFIG_NETFILTER_XT_MATCH_CONNLABEL=y
+CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=y
+CONFIG_NETFILTER_XT_MATCH_CONNMARK=y
+CONFIG_NETFILTER_XT_MATCH_CONNTRACK=y
+CONFIG_NETFILTER_XT_MATCH_CPU=y
+CONFIG_NETFILTER_XT_MATCH_DCCP=y
+CONFIG_NETFILTER_XT_MATCH_DEVGROUP=y
+CONFIG_NETFILTER_XT_MATCH_DSCP=y
+CONFIG_NETFILTER_XT_MATCH_ESP=y
+CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=y
+CONFIG_NETFILTER_XT_MATCH_HELPER=y
+CONFIG_NETFILTER_XT_MATCH_IPCOMP=y
+CONFIG_NETFILTER_XT_MATCH_IPRANGE=y
+CONFIG_NETFILTER_XT_MATCH_L2TP=y
+CONFIG_NETFILTER_XT_MATCH_LENGTH=y
+CONFIG_NETFILTER_XT_MATCH_LIMIT=y
+CONFIG_NETFILTER_XT_MATCH_MAC=y
+CONFIG_NETFILTER_XT_MATCH_MARK=y
+CONFIG_NETFILTER_XT_MATCH_MULTIPORT=y
+CONFIG_NETFILTER_XT_MATCH_NFACCT=y
+CONFIG_NETFILTER_XT_MATCH_OSF=y
+CONFIG_NETFILTER_XT_MATCH_OWNER=y
+CONFIG_NETFILTER_XT_MATCH_POLICY=y
+CONFIG_NETFILTER_XT_MATCH_PHYSDEV=y
+CONFIG_NETFILTER_XT_MATCH_PKTTYPE=y
+CONFIG_NETFILTER_XT_MATCH_QUOTA=y
+CONFIG_NETFILTER_XT_MATCH_RATEEST=y
+CONFIG_NETFILTER_XT_MATCH_REALM=y
+CONFIG_NETFILTER_XT_MATCH_RECENT=y
+CONFIG_NETFILTER_XT_MATCH_SOCKET=y
+CONFIG_NETFILTER_XT_MATCH_STATE=y
+CONFIG_NETFILTER_XT_MATCH_STATISTIC=y
+CONFIG_NETFILTER_XT_MATCH_STRING=y
+CONFIG_NETFILTER_XT_MATCH_TCPMSS=y
+CONFIG_NETFILTER_XT_MATCH_TIME=y
+CONFIG_NETFILTER_XT_MATCH_U32=y
+CONFIG_IP_SET=y
+CONFIG_IP_SET_BITMAP_IP=y
+CONFIG_IP_SET_BITMAP_IPMAC=y
+CONFIG_IP_SET_BITMAP_PORT=y
+CONFIG_IP_SET_HASH_IP=y
+CONFIG_IP_SET_HASH_IPMARK=y
+CONFIG_IP_SET_HASH_IPPORT=y
+CONFIG_IP_SET_HASH_IPPORTIP=y
+CONFIG_IP_SET_HASH_IPPORTNET=y
+CONFIG_IP_SET_HASH_IPMAC=y
+CONFIG_IP_SET_HASH_MAC=y
+CONFIG_IP_SET_HASH_NETPORTNET=y
+CONFIG_IP_SET_HASH_NET=y
+CONFIG_IP_SET_HASH_NETNET=y
+CONFIG_IP_SET_HASH_NETPORT=y
+CONFIG_IP_SET_HASH_NETIFACE=y
+CONFIG_IP_SET_LIST_SET=y
+CONFIG_NFT_DUP_IPV4=y
+CONFIG_NFT_FIB_IPV4=y
+CONFIG_NF_TABLES_ARP=y
+CONFIG_IP_NF_IPTABLES=y
+CONFIG_IP_NF_MATCH_AH=y
+CONFIG_IP_NF_MATCH_ECN=y
+CONFIG_IP_NF_MATCH_RPFILTER=y
+CONFIG_IP_NF_MATCH_TTL=y
+CONFIG_IP_NF_FILTER=y
+CONFIG_IP_NF_TARGET_REJECT=y
+CONFIG_IP_NF_TARGET_SYNPROXY=y
+CONFIG_IP_NF_NAT=y
+CONFIG_IP_NF_TARGET_MASQUERADE=y
+CONFIG_IP_NF_TARGET_NETMAP=y
+CONFIG_IP_NF_TARGET_REDIRECT=y
+CONFIG_IP_NF_MANGLE=y
+CONFIG_IP_NF_TARGET_ECN=y
+CONFIG_IP_NF_TARGET_TTL=y
+CONFIG_IP_NF_RAW=y
+CONFIG_IP_NF_SECURITY=y
+CONFIG_IP_NF_ARPFILTER=y
+CONFIG_IP_NF_ARP_MANGLE=y
+CONFIG_NFT_DUP_IPV6=y
+CONFIG_NFT_FIB_IPV6=y
+CONFIG_IP6_NF_IPTABLES=y
+CONFIG_IP6_NF_MATCH_AH=y
+CONFIG_IP6_NF_MATCH_EUI64=y
+CONFIG_IP6_NF_MATCH_FRAG=y
+CONFIG_IP6_NF_MATCH_OPTS=y
+CONFIG_IP6_NF_MATCH_HL=y
+CONFIG_IP6_NF_MATCH_IPV6HEADER=y
+CONFIG_IP6_NF_MATCH_MH=y
+CONFIG_IP6_NF_MATCH_RPFILTER=y
+CONFIG_IP6_NF_MATCH_RT=y
+CONFIG_IP6_NF_MATCH_SRH=y
+CONFIG_IP6_NF_TARGET_HL=y
+CONFIG_IP6_NF_FILTER=y
+CONFIG_IP6_NF_TARGET_REJECT=y
+CONFIG_IP6_NF_TARGET_SYNPROXY=y
+CONFIG_IP6_NF_MANGLE=y
+CONFIG_IP6_NF_RAW=y
+CONFIG_IP6_NF_SECURITY=y
+CONFIG_IP6_NF_NAT=y
+CONFIG_IP6_NF_TARGET_MASQUERADE=y
+CONFIG_IP6_NF_TARGET_NPT=y
+CONFIG_NF_TABLES_BRIDGE=y
+CONFIG_NF_CONNTRACK_BRIDGE=y
+CONFIG_BRIDGE_NF_EBTABLES=y
+CONFIG_BRIDGE_EBT_BROUTE=y
+CONFIG_BRIDGE_EBT_T_FILTER=y
+CONFIG_BRIDGE_EBT_T_NAT=y
+CONFIG_BRIDGE_EBT_802_3=y
+CONFIG_BRIDGE_EBT_AMONG=y
+CONFIG_BRIDGE_EBT_ARP=y
+CONFIG_BRIDGE_EBT_IP=y
+CONFIG_BRIDGE_EBT_IP6=y
+CONFIG_BRIDGE_EBT_LIMIT=y
+CONFIG_BRIDGE_EBT_MARK=y
+CONFIG_BRIDGE_EBT_PKTTYPE=y
+CONFIG_BRIDGE_EBT_STP=y
+CONFIG_BRIDGE_EBT_VLAN=y
+CONFIG_BRIDGE_EBT_ARPREPLY=y
+CONFIG_BRIDGE_EBT_DNAT=y
+CONFIG_BRIDGE_EBT_MARK_T=y
+CONFIG_BRIDGE_EBT_REDIRECT=y
+CONFIG_BRIDGE_EBT_SNAT=y
+CONFIG_BRIDGE=y
+CONFIG_BRIDGE_VLAN_FILTERING=y
+CONFIG_VLAN_8021Q=y
+CONFIG_VLAN_8021Q_GVRP=y
+CONFIG_VLAN_8021Q_MVRP=y
+CONFIG_NET_SCHED=y
+CONFIG_NET_SCH_FQ_CODEL=y
+CONFIG_NET_SCH_DEFAULT=y
+CONFIG_DEFAULT_FQ_CODEL=y
+CONFIG_NET_EMATCH=y
+CONFIG_NET_CLS_ACT=y
+CONFIG_NET_ACT_GATE=y
+CONFIG_NET_TC_SKB_EXT=y
+CONFIG_NET_SWITCHDEV=y
+CONFIG_QRTR=y
+CONFIG_QRTR_SMD=y
+CONFIG_QRTR_TUN=y
+CONFIG_QRTR_MHI=y
+CONFIG_BT=y
+CONFIG_BT_RFCOMM=y
+CONFIG_BT_RFCOMM_TTY=y
+CONFIG_BT_BNEP=y
+CONFIG_BT_BNEP_MC_FILTER=y
+CONFIG_BT_BNEP_PROTO_FILTER=y
+CONFIG_BT_HIDP=y
+CONFIG_BT_LEDS=y
+CONFIG_BT_MSFTEXT=y
+CONFIG_BT_AOSPEXT=y
+CONFIG_BT_HCIUART=y
+CONFIG_BT_HCIUART_QCA=y
+CONFIG_CFG80211=y
+CONFIG_MAC80211=y
+CONFIG_MAC80211_LEDS=y
+CONFIG_RFKILL=y
+CONFIG_NFC=y
+CONFIG_NFC_NCI=y
+CONFIG_PAGE_POOL_STATS=y
+CONFIG_PCI=y
+CONFIG_PCIEPORTBUS=y
+CONFIG_PCIEAER=y
+CONFIG_PCIEASPM_POWER_SUPERSAVE=y
+CONFIG_PCIE_QCOM=y
+CONFIG_PCI_PWRCTL_PWRSEQ=y
+CONFIG_DEVTMPFS=y
+CONFIG_DEVTMPFS_MOUNT=y
+CONFIG_DEVTMPFS_SAFE=y
+CONFIG_FW_LOADER_COMPRESS=y
+CONFIG_FW_LOADER_COMPRESS_ZSTD=y
+CONFIG_FW_UPLOAD=y
+# CONFIG_QCOM_EBI2 is not set
+CONFIG_MHI_BUS=y
+CONFIG_MHI_BUS_PCI_GENERIC=y
+CONFIG_ARM_SCMI_PROTOCOL=y
+CONFIG_ARM_SCMI_POWER_CONTROL=y
+CONFIG_ARM_SCPI_PROTOCOL=y
+CONFIG_DMI_SYSFS=y
+CONFIG_SYSFB_SIMPLEFB=y
+CONFIG_EFI_CAPSULE_LOADER=y
+CONFIG_QCOM_QSEECOM=y
+# CONFIG_ARM_SMCCC_SOC_ID is not set
+CONFIG_OF_OVERLAY=y
+CONFIG_ZRAM=y
+CONFIG_ZRAM_DEF_COMP_ZSTD=y
+CONFIG_ZRAM_WRITEBACK=y
+CONFIG_ZRAM_MULTI_COMP=y
+CONFIG_BLK_DEV_LOOP=y
+CONFIG_BLK_DEV_NBD=y
+CONFIG_BLK_DEV_RAM=y
+CONFIG_BLK_DEV_RAM_COUNT=0
+CONFIG_VIRTIO_BLK=y
+CONFIG_QCOM_COINCELL=y
+CONFIG_QCOM_FASTRPC=y
+CONFIG_SRAM=y
+CONFIG_EEPROM_AT24=y
+CONFIG_EEPROM_AT25=y
+CONFIG_UACCE=y
+CONFIG_RAID_ATTRS=y
+CONFIG_SCSI=y
+CONFIG_BLK_DEV_SD=y
+CONFIG_SCSI_CONSTANTS=y
+CONFIG_SCSI_LOGGING=y
+CONFIG_SCSI_SCAN_ASYNC=y
+CONFIG_SCSI_SAS_LIBSAS=y
+CONFIG_MD=y
+# CONFIG_MD_AUTODETECT is not set
+CONFIG_MD_CLUSTER=y
+CONFIG_BCACHE=y
+CONFIG_BCACHE_ASYNC_REGISTRATION=y
+CONFIG_BLK_DEV_DM=y
+CONFIG_DM_DEBUG_BLOCK_MANAGER_LOCKING=y
+CONFIG_DM_UNSTRIPED=y
+CONFIG_DM_CRYPT=y
+CONFIG_DM_SNAPSHOT=y
+CONFIG_DM_THIN_PROVISIONING=y
+CONFIG_DM_CACHE=y
+CONFIG_DM_WRITECACHE=y
+CONFIG_DM_EBS=y
+CONFIG_DM_ERA=y
+CONFIG_DM_CLONE=y
+CONFIG_DM_MIRROR=y
+CONFIG_DM_LOG_USERSPACE=y
+CONFIG_DM_RAID=y
+CONFIG_DM_ZERO=y
+CONFIG_DM_MULTIPATH=y
+CONFIG_DM_MULTIPATH_QL=y
+CONFIG_DM_MULTIPATH_ST=y
+CONFIG_DM_MULTIPATH_HST=y
+CONFIG_DM_MULTIPATH_IOA=y
+CONFIG_DM_DELAY=y
+CONFIG_DM_DUST=y
+CONFIG_DM_INIT=y
+CONFIG_DM_UEVENT=y
+CONFIG_DM_FLAKEY=y
+CONFIG_DM_VERITY=y
+CONFIG_DM_VERITY_VERIFY_ROOTHASH_SIG=y
+CONFIG_DM_VERITY_FEC=y
+CONFIG_DM_SWITCH=y
+CONFIG_DM_LOG_WRITES=y
+CONFIG_DM_INTEGRITY=y
+CONFIG_DM_ZONED=y
+CONFIG_DM_VDO=y
+CONFIG_TARGET_CORE=y
+CONFIG_TCM_IBLOCK=y
+CONFIG_TCM_PSCSI=y
+CONFIG_NETDEVICES=y
+CONFIG_MACVLAN=y
+CONFIG_MACVTAP=y
+CONFIG_TUN=y
+CONFIG_VETH=y
+CONFIG_VIRTIO_NET=y
+CONFIG_MHI_NET=y
+# CONFIG_NET_VENDOR_3COM is not set
+# CONFIG_NET_VENDOR_ADAPTEC is not set
+# CONFIG_NET_VENDOR_AGERE is not set
+# CONFIG_NET_VENDOR_ALACRITECH is not set
+# CONFIG_NET_VENDOR_ALTEON is not set
+# CONFIG_NET_VENDOR_AMAZON is not set
+# CONFIG_NET_VENDOR_AMD is not set
+# CONFIG_NET_VENDOR_AQUANTIA is not set
+# CONFIG_NET_VENDOR_ARC is not set
+# CONFIG_NET_VENDOR_ASIX is not set
+# CONFIG_NET_VENDOR_ATHEROS is not set
+# CONFIG_NET_VENDOR_BROADCOM is not set
+# CONFIG_NET_VENDOR_CADENCE is not set
+# CONFIG_NET_VENDOR_CAVIUM is not set
+# CONFIG_NET_VENDOR_CHELSIO is not set
+# CONFIG_NET_VENDOR_CISCO is not set
+# CONFIG_NET_VENDOR_CORTINA is not set
+# CONFIG_NET_VENDOR_DAVICOM is not set
+# CONFIG_NET_VENDOR_DEC is not set
+# CONFIG_NET_VENDOR_DLINK is not set
+# CONFIG_NET_VENDOR_EMULEX is not set
+# CONFIG_NET_VENDOR_ENGLEDER is not set
+# CONFIG_NET_VENDOR_EZCHIP is not set
+# CONFIG_NET_VENDOR_FUNGIBLE is not set
+# CONFIG_NET_VENDOR_GOOGLE is not set
+# CONFIG_NET_VENDOR_HISILICON is not set
+# CONFIG_NET_VENDOR_HUAWEI is not set
+# CONFIG_NET_VENDOR_INTEL is not set
+# CONFIG_NET_VENDOR_ADI is not set
+# CONFIG_NET_VENDOR_LITEX is not set
+# CONFIG_NET_VENDOR_MARVELL is not set
+# CONFIG_NET_VENDOR_MELLANOX is not set
+# CONFIG_NET_VENDOR_MICREL is not set
+# CONFIG_NET_VENDOR_MICROCHIP is not set
+# CONFIG_NET_VENDOR_MICROSEMI is not set
+# CONFIG_NET_VENDOR_MICROSOFT is not set
+# CONFIG_NET_VENDOR_MYRI is not set
+# CONFIG_NET_VENDOR_NI is not set
+# CONFIG_NET_VENDOR_NATSEMI is not set
+# CONFIG_NET_VENDOR_NETERION is not set
+# CONFIG_NET_VENDOR_NETRONOME is not set
+# CONFIG_NET_VENDOR_NVIDIA is not set
+# CONFIG_NET_VENDOR_OKI is not set
+# CONFIG_NET_VENDOR_PACKET_ENGINES is not set
+# CONFIG_NET_VENDOR_PENSANDO is not set
+# CONFIG_NET_VENDOR_QLOGIC is not set
+# CONFIG_NET_VENDOR_BROCADE is not set
+# CONFIG_NET_VENDOR_QUALCOMM is not set
+# CONFIG_NET_VENDOR_RDC is not set
+CONFIG_R8169=y
+# CONFIG_NET_VENDOR_RENESAS is not set
+# CONFIG_NET_VENDOR_ROCKER is not set
+# CONFIG_NET_VENDOR_SAMSUNG is not set
+# CONFIG_NET_VENDOR_SEEQ is not set
+# CONFIG_NET_VENDOR_SILAN is not set
+# CONFIG_NET_VENDOR_SIS is not set
+# CONFIG_NET_VENDOR_SOLARFLARE is not set
+# CONFIG_NET_VENDOR_SMSC is not set
+# CONFIG_NET_VENDOR_SOCIONEXT is not set
+# CONFIG_NET_VENDOR_STMICRO is not set
+# CONFIG_NET_VENDOR_SUN is not set
+# CONFIG_NET_VENDOR_SYNOPSYS is not set
+# CONFIG_NET_VENDOR_TEHUTI is not set
+# CONFIG_NET_VENDOR_TI is not set
+# CONFIG_NET_VENDOR_VERTEXCOM is not set
+# CONFIG_NET_VENDOR_VIA is not set
+# CONFIG_NET_VENDOR_WANGXUN is not set
+# CONFIG_NET_VENDOR_WIZNET is not set
+# CONFIG_NET_VENDOR_XILINX is not set
+CONFIG_QCOM_IPA=y
+CONFIG_SMSC_PHY=y
+CONFIG_USB_RTL8152=m
+CONFIG_USB_USBNET=m
+# CONFIG_USB_NET_AX8817X is not set
+# CONFIG_USB_NET_AX88179_178A is not set
+CONFIG_USB_NET_CDC_EEM=m
+CONFIG_USB_NET_SMSC95XX=m
+# CONFIG_USB_NET_NET1080 is not set
+CONFIG_USB_NET_RNDIS_HOST=m
+# CONFIG_USB_NET_CDC_SUBSET is not set
+# CONFIG_USB_NET_ZAURUS is not set
+# CONFIG_WLAN_VENDOR_ADMTEK is not set
+CONFIG_ATH12K=m
+# CONFIG_WLAN_VENDOR_ATMEL is not set
+# CONFIG_WLAN_VENDOR_BROADCOM is not set
+# CONFIG_WLAN_VENDOR_INTEL is not set
+# CONFIG_WLAN_VENDOR_INTERSIL is not set
+# CONFIG_WLAN_VENDOR_MARVELL is not set
+# CONFIG_WLAN_VENDOR_MEDIATEK is not set
+# CONFIG_WLAN_VENDOR_MICROCHIP is not set
+# CONFIG_WLAN_VENDOR_PURELIFI is not set
+# CONFIG_WLAN_VENDOR_RALINK is not set
+# CONFIG_RTL_CARDS is not set
+CONFIG_RTW88=y
+CONFIG_RTW88_8821CU=m
+# CONFIG_WLAN_VENDOR_RSI is not set
+# CONFIG_WLAN_VENDOR_SILABS is not set
+# CONFIG_WLAN_VENDOR_ST is not set
+# CONFIG_WLAN_VENDOR_TI is not set
+# CONFIG_WLAN_VENDOR_ZYDAS is not set
+# CONFIG_WLAN_VENDOR_QUANTENNA is not set
+CONFIG_WWAN=y
+CONFIG_MHI_WWAN_CTRL=y
+CONFIG_MHI_WWAN_MBIM=y
+CONFIG_INPUT_MATRIXKMAP=y
+CONFIG_INPUT_MOUSEDEV=y
+CONFIG_INPUT_MOUSEDEV_PSAUX=y
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1920
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=1080
+CONFIG_INPUT_JOYDEV=y
+CONFIG_INPUT_EVDEV=y
+CONFIG_KEYBOARD_ADC=y
+CONFIG_KEYBOARD_GPIO=y
+CONFIG_MOUSE_ELAN_I2C=y
+CONFIG_INPUT_JOYSTICK=y
+CONFIG_JOYSTICK_ODIN2=y
+CONFIG_INPUT_TOUCHSCREEN=y
+CONFIG_TOUCHSCREEN_ATMEL_MXT=y
+CONFIG_TOUCHSCREEN_GOODIX=y
+CONFIG_TOUCHSCREEN_ELAN=y
+CONFIG_TOUCHSCREEN_EDT_FT5X06=y
+CONFIG_INPUT_MISC=y
+CONFIG_INPUT_PM8941_PWRKEY=y
+CONFIG_RMI4_I2C=y
+CONFIG_RMI4_F3A=y
+CONFIG_RMI4_F54=y
+# CONFIG_SERIO_SERPORT is not set
+CONFIG_SERIO_AMBAKMI=y
+CONFIG_VT_HW_CONSOLE_BINDING=y
+# CONFIG_LEGACY_PTYS is not set
+CONFIG_SERIAL_8250=y
+# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_8250_EXTENDED=y
+CONFIG_SERIAL_8250_SHARE_IRQ=y
+CONFIG_SERIAL_8250_DW=y
+CONFIG_SERIAL_OF_PLATFORM=y
+CONFIG_SERIAL_AMBA_PL011=y
+CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
+CONFIG_SERIAL_MSM=y
+CONFIG_SERIAL_MSM_CONSOLE=y
+CONFIG_SERIAL_QCOM_GENI=y
+CONFIG_SERIAL_QCOM_GENI_CONSOLE=y
+CONFIG_RPMSG_TTY=y
+CONFIG_SERIAL_DEV_BUS=y
+CONFIG_VIRTIO_CONSOLE=y
+CONFIG_HW_RANDOM=y
+CONFIG_HW_RANDOM_VIRTIO=y
+CONFIG_TCG_TIS=y
+CONFIG_I2C_CHARDEV=y
+CONFIG_I2C_MUX_PCA954x=y
+CONFIG_I2C_GPIO=y
+CONFIG_I2C_QCOM_GENI=y
+CONFIG_I2C_SLAVE=y
+CONFIG_SPI=y
+CONFIG_SPI_MEM=y
+CONFIG_SPI_CADENCE_QUADSPI=y
+CONFIG_SPI_PL022=y
+CONFIG_SPI_QCOM_QSPI=y
+CONFIG_SPI_QUP=y
+CONFIG_SPI_QCOM_GENI=y
+CONFIG_SPI_SPIDEV=y
+CONFIG_SPMI=y
+# CONFIG_PTP_1588_CLOCK_KVM is not set
+CONFIG_PINCTRL_SINGLE=y
+CONFIG_PINCTRL_MSM=y
+CONFIG_PINCTRL_SDM845=y
+CONFIG_PINCTRL_SM8250=y
+CONFIG_PINCTRL_SM8350=y
+CONFIG_PINCTRL_SM8450=y
+CONFIG_PINCTRL_SM8550=y
+CONFIG_PINCTRL_QCOM_SPMI_PMIC=y
+CONFIG_PINCTRL_LPASS_LPI=y
+CONFIG_PINCTRL_SM8250_LPASS_LPI=y
+CONFIG_PINCTRL_SM8350_LPASS_LPI=y
+CONFIG_PINCTRL_SM8550_LPASS_LPI=y
+CONFIG_GPIO_SYSFS=y
+CONFIG_GPIO_ALTERA=y
+CONFIG_GPIO_DWAPB=y
+CONFIG_GPIO_GENERIC_PLATFORM=y
+CONFIG_GPIO_WCD934X=y
+CONFIG_GPIO_XGENE=y
+CONFIG_GPIO_MAX732X=y
+CONFIG_GPIO_PCA953X=y
+CONFIG_GPIO_PCA953X_IRQ=y
+CONFIG_POWER_RESET_MSM=y
+CONFIG_POWER_RESET_QCOM_PON=y
+CONFIG_POWER_RESET_SYSCON=y
+CONFIG_SYSCON_REBOOT_MODE=y
+CONFIG_NVMEM_REBOOT_MODE=y
+CONFIG_POWER_SEQUENCING_QCOM_WCN=y
+CONFIG_BATTERY_QCOM_BATTMGR=m
+CONFIG_BATTERY_SBS=y
+CONFIG_SENSORS_ARM_SCMI=y
+CONFIG_SENSORS_ARM_SCPI=y
+CONFIG_SENSORS_GPIO_FAN=y
+CONFIG_SENSORS_JC42=y
+CONFIG_SENSORS_LM75=y
+CONFIG_SENSORS_LM90=y
+CONFIG_SENSORS_PWM_FAN=y
+CONFIG_SENSORS_INA2XX=y
+CONFIG_SENSORS_INA3221=y
+CONFIG_THERMAL=y
+CONFIG_THERMAL_NETLINK=y
+CONFIG_THERMAL_GOV_POWER_ALLOCATOR=y
+CONFIG_CPU_THERMAL=y
+CONFIG_DEVFREQ_THERMAL=y
+CONFIG_THERMAL_EMULATION=y
+CONFIG_GENERIC_ADC_THERMAL=y
+CONFIG_QCOM_TSENS=y
+CONFIG_QCOM_SPMI_ADC_TM5=y
+CONFIG_QCOM_SPMI_TEMP_ALARM=y
+CONFIG_QCOM_LMH=y
+CONFIG_WATCHDOG=y
+CONFIG_WATCHDOG_SYSFS=y
+CONFIG_ARM_SP805_WATCHDOG=y
+CONFIG_ARM_SBSA_WATCHDOG=y
+CONFIG_DW_WATCHDOG=y
+CONFIG_QCOM_WDT=y
+CONFIG_ARM_SMC_WATCHDOG=y
+CONFIG_PM8916_WATCHDOG=y
+CONFIG_MFD_AXP20X_I2C=y
+CONFIG_MFD_SPMI_PMIC=y
+CONFIG_MFD_RK8XX_I2C=y
+CONFIG_MFD_RK8XX_SPI=y
+CONFIG_MFD_WCD934X=y
+CONFIG_REGULATOR_FIXED_VOLTAGE=y
+CONFIG_REGULATOR_VIRTUAL_CONSUMER=y
+CONFIG_REGULATOR_USERSPACE_CONSUMER=y
+CONFIG_REGULATOR_GPIO=y
+CONFIG_REGULATOR_PWM=y
+CONFIG_REGULATOR_QCOM_REFGEN=y
+CONFIG_REGULATOR_QCOM_RPMH=y
+CONFIG_REGULATOR_QCOM_SMD_RPM=y
+CONFIG_REGULATOR_QCOM_SPMI=y
+CONFIG_REGULATOR_QCOM_USB_VBUS=y
+CONFIG_REGULATOR_VCTRL=y
+CONFIG_REGULATOR_QCOM_LABIBB=y
+CONFIG_RC_CORE=y
+CONFIG_LIRC=y
+# CONFIG_RC_MAP is not set
+CONFIG_RC_DECODERS=y
+CONFIG_RC_DEVICES=y
+CONFIG_IR_SPI=y
+CONFIG_MEDIA_SUPPORT=y
+CONFIG_MEDIA_SUPPORT_FILTER=y
+CONFIG_MEDIA_CAMERA_SUPPORT=y
+CONFIG_MEDIA_PLATFORM_SUPPORT=y
+CONFIG_VIDEO_ADV_DEBUG=y
+CONFIG_MEDIA_USB_SUPPORT=y
+CONFIG_USB_VIDEO_CLASS=m
+CONFIG_V4L_PLATFORM_DRIVERS=y
+CONFIG_V4L_MEM2MEM_DRIVERS=y
+CONFIG_VIDEO_MEM2MEM_DEINTERLACE=y
+CONFIG_VIDEO_MUX=y
+CONFIG_DRM=y
+CONFIG_DRM_LOAD_EDID_FIRMWARE=y
+CONFIG_DRM_DP_AUX_CHARDEV=y
+CONFIG_DRM_DP_CEC=y
+CONFIG_DRM_MSM=y
+# CONFIG_DRM_MSM_MDP4 is not set
+# CONFIG_DRM_MSM_MDP5 is not set
+# CONFIG_DRM_MSM_DSI_28NM_PHY is not set
+# CONFIG_DRM_MSM_DSI_20NM_PHY is not set
+# CONFIG_DRM_MSM_DSI_28NM_8960_PHY is not set
+# CONFIG_DRM_MSM_DSI_14NM_PHY is not set
+# CONFIG_DRM_MSM_HDMI is not set
+CONFIG_DRM_PANEL_NOVATEK_NT36523=y
+CONFIG_DRM_PANEL_EDP=m
+CONFIG_DRM_PANEL_SIMPLE=m
+CONFIG_DRM_PANEL_SYNAPTICS_TD4328=y
+CONFIG_DRM_PANEL_VISIONOX_R66451=y
+CONFIG_DRM_DISPLAY_CONNECTOR=m
+CONFIG_DRM_LONTIUM_LT8912B=m
+CONFIG_DRM_LONTIUM_LT9611=m
+CONFIG_DRM_SIMPLE_BRIDGE=y
+CONFIG_DRM_SIMPLEDRM=y
+CONFIG_FB=y
+CONFIG_FB_EFI=y
+CONFIG_FB_MODE_HELPERS=y
+CONFIG_BACKLIGHT_CLASS_DEVICE=y
+CONFIG_BACKLIGHT_KTZ8866=y
+CONFIG_BACKLIGHT_PWM=y
+CONFIG_BACKLIGHT_QCOM_WLED=y
+# CONFIG_FRAMEBUFFER_CONSOLE is not set
+CONFIG_SOUND=y
+CONFIG_SND=y
+# CONFIG_SND_SUPPORT_OLD_API is not set
+# CONFIG_SND_VERBOSE_PROCFS is not set
+# CONFIG_SND_SPI is not set
+CONFIG_SND_USB_AUDIO=m
+CONFIG_SND_USB_AUDIO_MIDI_V2=y
+CONFIG_SND_SOC=y
+CONFIG_SND_SOC_QCOM=y
+CONFIG_SND_SOC_SC8280XP=y
+CONFIG_SND_SOC_SOF_TOPLEVEL=y
+CONFIG_SND_SOC_SOF_OF=y
+CONFIG_SND_SOC_SIMPLE_AMPLIFIER=y
+CONFIG_SND_SOC_SIMPLE_MUX=y
+CONFIG_SND_SOC_WCD938X_SDW=y
+CONFIG_SND_SOC_LPASS_WSA_MACRO=y
+CONFIG_SND_SOC_LPASS_VA_MACRO=y
+CONFIG_SND_SOC_LPASS_RX_MACRO=y
+CONFIG_SND_SOC_LPASS_TX_MACRO=y
+CONFIG_SND_SIMPLE_CARD=y
+CONFIG_SND_AUDIO_GRAPH_CARD=y
+CONFIG_SND_AUDIO_GRAPH_CARD2=y
+CONFIG_HID_BATTERY_STRENGTH=y
+CONFIG_HIDRAW=y
+CONFIG_UHID=y
+CONFIG_HID_A4TECH=y
+CONFIG_HID_APPLE=y
+CONFIG_HID_BELKIN=y
+CONFIG_HID_CHERRY=y
+CONFIG_HID_CHICONY=m
+CONFIG_HID_CYPRESS=y
+CONFIG_HID_EZKEY=y
+CONFIG_HID_ITE=y
+CONFIG_HID_KENSINGTON=y
+CONFIG_HID_LOGITECH=m
+CONFIG_HID_LOGITECH_DJ=m
+CONFIG_LOGITECH_FF=y
+CONFIG_LOGIRUMBLEPAD2_FF=y
+CONFIG_LOGIG940_FF=y
+CONFIG_HID_REDRAGON=y
+CONFIG_HID_MICROSOFT=y
+CONFIG_HID_MONTEREY=y
+CONFIG_HID_MULTITOUCH=y
+CONFIG_HID_NINTENDO=y
+CONFIG_NINTENDO_FF=y
+CONFIG_HID_RMI=y
+CONFIG_HID_PID=y
+CONFIG_USB_HIDDEV=y
+CONFIG_I2C_HID_OF=y
+CONFIG_USB_ULPI_BUS=m
+CONFIG_USB_CONN_GPIO=m
+CONFIG_USB=m
+# CONFIG_USB_PCI is not set
+CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
+CONFIG_USB_OTG=y
+CONFIG_USB_XHCI_HCD=m
+CONFIG_USB_EHCI_HCD=m
+CONFIG_USB_EHCI_ROOT_HUB_TT=y
+CONFIG_USB_EHCI_HCD_PLATFORM=m
+CONFIG_USB_OHCI_HCD=m
+CONFIG_USB_OHCI_HCD_PLATFORM=m
+CONFIG_USB_ACM=m
+CONFIG_USB_STORAGE=m
+CONFIG_USB_UAS=m
+CONFIG_USB_DWC3=m
+CONFIG_USB_DWC3_ULPI=y
+CONFIG_USB_SERIAL=m
+CONFIG_USB_SERIAL_GENERIC=y
+CONFIG_USB_SERIAL_SIMPLE=m
+CONFIG_USB_SERIAL_CH341=m
+CONFIG_USB_SERIAL_CP210X=m
+CONFIG_USB_SERIAL_FTDI_SIO=m
+CONFIG_USB_SERIAL_OPTION=m
+CONFIG_USB_ONBOARD_HUB=m
+CONFIG_NOP_USB_XCEIV=m
+CONFIG_USB_ULPI=y
+CONFIG_USB_GADGET=m
+CONFIG_USB_CONFIGFS=m
+CONFIG_USB_CONFIGFS_SERIAL=y
+CONFIG_USB_CONFIGFS_ACM=y
+CONFIG_USB_CONFIGFS_OBEX=y
+CONFIG_USB_CONFIGFS_NCM=y
+CONFIG_USB_CONFIGFS_ECM=y
+CONFIG_USB_CONFIGFS_ECM_SUBSET=y
+CONFIG_USB_CONFIGFS_RNDIS=y
+CONFIG_USB_CONFIGFS_EEM=y
+CONFIG_USB_CONFIGFS_MASS_STORAGE=y
+CONFIG_USB_CONFIGFS_F_FS=y
+CONFIG_USB_CONFIGFS_F_HID=y
+CONFIG_USB_CONFIGFS_F_TCM=y
+CONFIG_TYPEC=m
+CONFIG_TYPEC_TCPM=m
+CONFIG_TYPEC_QCOM_PMIC=m
+CONFIG_TYPEC_UCSI=m
+CONFIG_UCSI_PMIC_GLINK=m
+CONFIG_TYPEC_MUX_FSA4480=m
+CONFIG_TYPEC_MUX_GPIO_SBU=m
+CONFIG_TYPEC_MUX_NB7VPQ904M=m
+CONFIG_TYPEC_DP_ALTMODE=m
+CONFIG_USB_ROLE_SWITCH=y
+CONFIG_MMC=y
+CONFIG_MMC_CRYPTO=y
+CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_PLTFM=y
+CONFIG_MMC_SDHCI_MSM=y
+CONFIG_MMC_SDHCI_MSM_DOWNSTREAM=y
+CONFIG_MMC_HSQ=y
+CONFIG_SCSI_UFSHCD=y
+CONFIG_SCSI_UFS_BSG=y
+CONFIG_SCSI_UFS_CRYPTO=y
+CONFIG_SCSI_UFS_HWMON=y
+CONFIG_SCSI_UFSHCD_PLATFORM=y
+CONFIG_SCSI_UFS_QCOM=y
+CONFIG_NEW_LEDS=y
+CONFIG_LEDS_CLASS=y
+CONFIG_LEDS_CLASS_MULTICOLOR=y
+CONFIG_LEDS_LM3692X=y
+CONFIG_LEDS_PCA9532=y
+CONFIG_LEDS_GPIO=y
+CONFIG_LEDS_PWM=y
+CONFIG_LEDS_SYSCON=y
+CONFIG_LEDS_PWM_MULTICOLOR=y
+CONFIG_LEDS_QCOM_LPG=y
+CONFIG_LEDS_TRIGGER_TIMER=y
+CONFIG_LEDS_TRIGGER_HEARTBEAT=y
+CONFIG_LEDS_TRIGGER_CPU=y
+CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
+CONFIG_LEDS_TRIGGER_PANIC=y
+CONFIG_EDAC=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_DRV_EFI=y
+CONFIG_RTC_DRV_PM8XXX=y
+CONFIG_DMADEVICES=y
+CONFIG_FSL_EDMA=y
+CONFIG_MV_XOR_V2=y
+CONFIG_PL330_DMA=y
+CONFIG_QCOM_BAM_DMA=y
+CONFIG_QCOM_GPI_DMA=y
+CONFIG_QCOM_HIDMA_MGMT=y
+CONFIG_QCOM_HIDMA=y
+CONFIG_UDMABUF=y
+CONFIG_DMABUF_HEAPS=y
+CONFIG_DMABUF_HEAPS_SYSTEM=y
+CONFIG_DMABUF_HEAPS_CMA=y
+CONFIG_VFIO=y
+CONFIG_VIRT_DRIVERS=y
+# CONFIG_VIRTIO_MENU is not set
+# CONFIG_VHOST_MENU is not set
+CONFIG_STAGING=y
+# CONFIG_SURFACE_PLATFORMS is not set
+CONFIG_COMMON_CLK_SCMI=y
+CONFIG_COMMON_CLK_SCPI=y
+CONFIG_COMMON_CLK_PWM=y
+CONFIG_COMMON_CLK_QCOM=y
+CONFIG_QCOM_CLK_RPMH=y
+CONFIG_SM_CAMCC_8550=y
+CONFIG_SM_DISPCC_8550=y
+CONFIG_SM_GPUCC_8550=y
+CONFIG_SM_TCSRCC_8550=y
+CONFIG_SM_VIDEOCC_8550=y
+CONFIG_SPMI_PMIC_CLKDIV=y
+CONFIG_HWSPINLOCK=y
+CONFIG_HWSPINLOCK_QCOM=y
+CONFIG_MAILBOX=y
+CONFIG_QCOM_APCS_IPC=y
+CONFIG_QCOM_IPCC=y
+CONFIG_IOMMU_IO_PGTABLE_ARMV7S=y
+CONFIG_ARM_SMMU=y
+CONFIG_ARM_SMMU_V3=y
+CONFIG_QCOM_IOMMU=y
+CONFIG_REMOTEPROC=y
+CONFIG_REMOTEPROC_CDEV=y
+CONFIG_QCOM_Q6V5_ADSP=y
+CONFIG_QCOM_Q6V5_MSS=y
+CONFIG_QCOM_Q6V5_PAS=y
+CONFIG_QCOM_SYSMON=y
+CONFIG_QCOM_WCNSS_PIL=y
+CONFIG_RPMSG_CHAR=y
+CONFIG_RPMSG_CTRL=y
+CONFIG_RPMSG_NS=y
+CONFIG_RPMSG_QCOM_GLINK_RPM=y
+CONFIG_RPMSG_QCOM_GLINK_SMEM=y
+CONFIG_RPMSG_QCOM_SMD=y
+CONFIG_SOUNDWIRE=y
+CONFIG_SOUNDWIRE_QCOM=y
+CONFIG_QCOM_AOSS_QMP=y
+CONFIG_QCOM_COMMAND_DB=y
+CONFIG_QCOM_GENI_SE=y
+CONFIG_QCOM_LLCC=y
+CONFIG_QCOM_OCMEM=y
+CONFIG_QCOM_PMIC_GLINK=m
+CONFIG_QCOM_RMTFS_MEM=y
+CONFIG_QCOM_RPMH=y
+CONFIG_QCOM_SMEM=y
+CONFIG_QCOM_SMD_RPM=y
+CONFIG_QCOM_SMP2P=y
+CONFIG_QCOM_SMSM=y
+CONFIG_QCOM_SOCINFO=y
+CONFIG_QCOM_SPM=y
+CONFIG_QCOM_STATS=y
+CONFIG_QCOM_APR=y
+CONFIG_QCOM_ICC_BWMON=y
+CONFIG_QCOM_PBS=y
+CONFIG_QCOM_CPR=y
+CONFIG_QCOM_RPMHPD=y
+CONFIG_QCOM_RPMPD=y
+CONFIG_DEVFREQ_GOV_PERFORMANCE=y
+CONFIG_DEVFREQ_GOV_USERSPACE=y
+CONFIG_DEVFREQ_GOV_PASSIVE=y
+CONFIG_PM_DEVFREQ_EVENT=y
+CONFIG_EXTCON_QCOM_SPMI_MISC=y
+CONFIG_EXTCON_USB_GPIO=y
+CONFIG_MEMORY=y
+CONFIG_IIO=y
+CONFIG_IIO_BUFFER_CB=y
+CONFIG_IIO_BUFFER_DMAENGINE=y
+CONFIG_IIO_BUFFER_HW_CONSUMER=y
+CONFIG_IIO_CONFIGFS=y
+CONFIG_MAX9611=y
+CONFIG_QCOM_SPMI_RRADC=y
+CONFIG_QCOM_SPMI_IADC=y
+CONFIG_QCOM_SPMI_VADC=y
+CONFIG_QCOM_SPMI_ADC5=y
+CONFIG_TI_ADS1015=y
+CONFIG_MPL3115=y
+CONFIG_PWM=y
+CONFIG_PWM_SN3112=y
+CONFIG_QCOM_PDC=y
+CONFIG_QCOM_MPM=y
+CONFIG_RESET_QCOM_AOSS=y
+CONFIG_RESET_QCOM_PDC=y
+CONFIG_PHY_QCOM_QMP=y
+# CONFIG_PHY_QCOM_QMP_PCIE_8996 is not set
+CONFIG_PHY_QCOM_SNPS_EUSB2=y
+CONFIG_PHY_QCOM_EUSB2_REPEATER=y
+CONFIG_ARM_SMMU_V3_PMU=y
+CONFIG_ARM_SPE_PMU=y
+CONFIG_ANDROID_BINDER_IPC=y
+CONFIG_ANDROID_BINDERFS=y
+CONFIG_NVMEM_QCOM_QFPROM=y
+CONFIG_NVMEM_RMEM=y
+CONFIG_NVMEM_SPMI_SDAM=y
+CONFIG_TEE=y
+CONFIG_SLIM_QCOM_CTRL=y
+CONFIG_SLIM_QCOM_NGD_CTRL=y
+CONFIG_INTERCONNECT=y
+CONFIG_INTERCONNECT_QCOM=y
+CONFIG_INTERCONNECT_QCOM_OSM_L3=y
+CONFIG_INTERCONNECT_QCOM_SM8550=y
+CONFIG_COUNTER=y
+CONFIG_VALIDATE_FS_PARSER=y
+CONFIG_EXT4_FS=y
+CONFIG_EXT4_FS_POSIX_ACL=y
+CONFIG_EXT4_FS_SECURITY=y
+CONFIG_BTRFS_FS=y
+CONFIG_BTRFS_FS_POSIX_ACL=y
+CONFIG_F2FS_FS=y
+CONFIG_F2FS_FS_SECURITY=y
+CONFIG_F2FS_CHECK_FS=y
+CONFIG_F2FS_FS_COMPRESSION=y
+CONFIG_F2FS_UNFAIR_RWSEM=y
+CONFIG_FS_DAX=y
+CONFIG_EXPORTFS_BLOCK_OPS=y
+CONFIG_FS_ENCRYPTION=y
+CONFIG_FS_ENCRYPTION_INLINE_CRYPT=y
+CONFIG_FS_VERITY=y
+CONFIG_FS_VERITY_BUILTIN_SIGNATURES=y
+CONFIG_FANOTIFY=y
+CONFIG_QUOTA=y
+CONFIG_QUOTA_NETLINK_INTERFACE=y
+CONFIG_AUTOFS_FS=y
+CONFIG_FUSE_FS=y
+CONFIG_CUSE=y
+CONFIG_OVERLAY_FS=y
+# CONFIG_OVERLAY_FS_REDIRECT_ALWAYS_FOLLOW is not set
+CONFIG_OVERLAY_FS_INDEX=y
+CONFIG_OVERLAY_FS_XINO_AUTO=y
+CONFIG_OVERLAY_FS_METACOPY=y
+CONFIG_ISO9660_FS=y
+CONFIG_JOLIET=y
+CONFIG_ZISOFS=y
+CONFIG_UDF_FS=y
+CONFIG_VFAT_FS=y
+CONFIG_EXFAT_FS=y
+CONFIG_NTFS3_FS=y
+CONFIG_NTFS3_LZX_XPRESS=y
+CONFIG_PROC_KCORE=y
+CONFIG_TMPFS_POSIX_ACL=y
+CONFIG_TMPFS_INODE64=y
+CONFIG_HUGETLBFS=y
+CONFIG_EFIVAR_FS=y
+CONFIG_SQUASHFS=y
+CONFIG_SQUASHFS_FILE_DIRECT=y
+CONFIG_SQUASHFS_CHOICE_DECOMP_BY_MOUNT=y
+CONFIG_SQUASHFS_XATTR=y
+CONFIG_SQUASHFS_LZ4=y
+CONFIG_SQUASHFS_LZO=y
+CONFIG_SQUASHFS_XZ=y
+CONFIG_SQUASHFS_ZSTD=y
+CONFIG_PSTORE=y
+CONFIG_PSTORE_CONSOLE=y
+CONFIG_PSTORE_PMSG=y
+CONFIG_PSTORE_RAM=y
+CONFIG_EROFS_FS=y
+CONFIG_EROFS_FS_ZIP_LZMA=y
+CONFIG_EROFS_FS_ZIP_DEFLATE=y
+CONFIG_EROFS_FS_ONDEMAND=y
+CONFIG_EROFS_FS_PCPU_KTHREAD=y
+CONFIG_NFS_FS=y
+CONFIG_NFS_V4=y
+CONFIG_NFS_V4_1=y
+CONFIG_NFS_V4_2=y
+CONFIG_ROOT_NFS=y
+CONFIG_NFSD=y
+CONFIG_NLS_CODEPAGE_437=y
+CONFIG_NLS_ISO8859_1=y
+CONFIG_DLM=y
+CONFIG_UNICODE=y
+CONFIG_KEYS_REQUEST_CACHE=y
+CONFIG_PERSISTENT_KEYRINGS=y
+CONFIG_BIG_KEYS=y
+CONFIG_TRUSTED_KEYS=y
+CONFIG_KEY_DH_OPERATIONS=y
+CONFIG_KEY_NOTIFICATIONS=y
+CONFIG_SECURITY=y
+CONFIG_HARDENED_USERCOPY=y
+CONFIG_SECURITY_SELINUX=y
+CONFIG_SECURITY_SELINUX_BOOTPARAM=y
+CONFIG_SECURITY_YAMA=y
+CONFIG_SECURITY_LANDLOCK=y
+CONFIG_INTEGRITY_SIGNATURE=y
+CONFIG_INTEGRITY_ASYMMETRIC_KEYS=y
+CONFIG_IMA=y
+CONFIG_IMA_KEXEC=y
+CONFIG_IMA_DEFAULT_HASH_SHA256=y
+CONFIG_IMA_WRITE_POLICY=y
+CONFIG_IMA_APPRAISE=y
+CONFIG_IMA_ARCH_POLICY=y
+CONFIG_EVM=y
+CONFIG_LSM="lockdown,yama,integrity,selinux,bpf,landlock"
+CONFIG_BUG_ON_DATA_CORRUPTION=y
+CONFIG_CRYPTO_USER=y
+CONFIG_CRYPTO_PCRYPT=y
+CONFIG_CRYPTO_CRYPTD=y
+CONFIG_CRYPTO_DH_RFC7919_GROUPS=y
+CONFIG_CRYPTO_ECDSA=y
+CONFIG_CRYPTO_SM2=y
+CONFIG_CRYPTO_CURVE25519=y
+CONFIG_CRYPTO_AES_TI=y
+CONFIG_CRYPTO_BLOWFISH=y
+CONFIG_CRYPTO_CAMELLIA=y
+CONFIG_CRYPTO_CAST5=y
+CONFIG_CRYPTO_CAST6=y
+CONFIG_CRYPTO_DES=y
+CONFIG_CRYPTO_FCRYPT=y
+CONFIG_CRYPTO_KHAZAD=y
+CONFIG_CRYPTO_SEED=y
+CONFIG_CRYPTO_SERPENT=y
+CONFIG_CRYPTO_SM4_GENERIC=y
+CONFIG_CRYPTO_TWOFISH=y
+# CONFIG_CRYPTO_CTS is not set
+CONFIG_CRYPTO_MICHAEL_MIC=y
+CONFIG_CRYPTO_SM3_GENERIC=y
+CONFIG_CRYPTO_DEFLATE=y
+CONFIG_CRYPTO_LZO=y
+CONFIG_CRYPTO_ANSI_CPRNG=y
+CONFIG_CRYPTO_DRBG_HASH=y
+CONFIG_CRYPTO_DRBG_CTR=y
+CONFIG_CRYPTO_USER_API_RNG=y
+CONFIG_CRYPTO_NHPOLY1305_NEON=y
+CONFIG_CRYPTO_CHACHA20_NEON=y
+CONFIG_CRYPTO_GHASH_ARM64_CE=y
+CONFIG_CRYPTO_POLY1305_NEON=y
+CONFIG_CRYPTO_SHA1_ARM64_CE=y
+CONFIG_CRYPTO_SHA2_ARM64_CE=y
+CONFIG_CRYPTO_SHA512_ARM64_CE=y
+CONFIG_CRYPTO_SHA3_ARM64=y
+CONFIG_CRYPTO_SM3_NEON=y
+CONFIG_CRYPTO_SM3_ARM64_CE=y
+CONFIG_CRYPTO_POLYVAL_ARM64_CE=y
+CONFIG_CRYPTO_AES_ARM64=y
+CONFIG_CRYPTO_AES_ARM64_BS=y
+CONFIG_CRYPTO_SM4_ARM64_CE=y
+CONFIG_CRYPTO_SM4_ARM64_NEON_BLK=y
+CONFIG_CRYPTO_AES_ARM64_CE_CCM=y
+CONFIG_CRYPTO_SM4_ARM64_CE_CCM=y
+CONFIG_CRYPTO_SM4_ARM64_CE_GCM=y
+CONFIG_CRYPTO_CRCT10DIF_ARM64_CE=y
+CONFIG_CRYPTO_DEV_QCE=y
+CONFIG_CRYPTO_DEV_QCOM_RNG=y
+CONFIG_SIGNED_PE_FILE_VERIFICATION=y
+# CONFIG_RAID6_PQ_BENCHMARK is not set
+CONFIG_CRYPTO_LIB_CURVE25519=y
+CONFIG_CRYPTO_LIB_CHACHA20POLY1305=y
+CONFIG_CRC_CCITT=y
+CONFIG_CRC7=y
+# CONFIG_XZ_DEC_X86 is not set
+# CONFIG_XZ_DEC_POWERPC is not set
+# CONFIG_XZ_DEC_SPARC is not set
+CONFIG_DMA_CMA=y
+CONFIG_DMA_NUMA_CMA=y
+CONFIG_CMA_SIZE_MBYTES=64
+CONFIG_IRQ_POLL=y
+CONFIG_PRINTK_TIME=y
+CONFIG_CONSOLE_LOGLEVEL_QUIET=3
+CONFIG_BOOT_PRINTK_DELAY=y
+CONFIG_DYNAMIC_DEBUG=y
+# CONFIG_DEBUG_MISC is not set
+CONFIG_DEBUG_INFO_DWARF5=y
+CONFIG_DEBUG_INFO_REDUCED=y
+CONFIG_STRIP_ASM_SYMS=y
+CONFIG_HEADERS_INSTALL=y
+CONFIG_PAGE_OWNER=y
+CONFIG_PAGE_POISONING=y
+CONFIG_DEBUG_WX=y
+CONFIG_SCHED_STACK_END_CHECK=y
+CONFIG_DEBUG_MEMORY_INIT=y
+CONFIG_KFENCE=y
+CONFIG_DEBUG_SHIRQ=y
+CONFIG_PANIC_TIMEOUT=10
+CONFIG_HARDLOCKUP_DETECTOR=y
+# CONFIG_DETECT_HUNG_TASK is not set
+CONFIG_DEBUG_LIST=y
+CONFIG_RCU_CPU_STALL_TIMEOUT=60
+# CONFIG_RCU_TRACE is not set
+# CONFIG_FTRACE is not set
+# CONFIG_STRICT_DEVMEM is not set
+# CONFIG_RUNTIME_TESTING_MENU is not set
+CONFIG_MEMTEST=y
diff --git a/board/batocera/qualcomm/sm8550/odin2/LinuxLoader.cfg b/board/batocera/qualcomm/sm8550/odin2/LinuxLoader.cfg
new file mode 100644
index 00000000000..cfbb8ec82ca
--- /dev/null
+++ b/board/batocera/qualcomm/sm8550/odin2/LinuxLoader.cfg
@@ -0,0 +1,62 @@
+#
+# Configure the LinuxLoader settings
+#
+
+[LinuxLoader]
+
+# Controls on-screen logging
+# This setting can persist without config file or sdcard being present
+Debug = false
+
+# Boot target. Can be one of the following:
+# "default" (ABL default)
+# "Linux" (direct Linux Image load)
+# "EFI"
+# "UEFI Shell" (will execute startup.nsh automatically if found on any FAT partition)
+# "Mass Storage" (will mount the UFS LUN specified below as mass storage)
+Target = "default"
+
+# Default UFS LUN to mount as mass storage
+# Allowed values: 0, 1, 2, 3, 4, 5
+MassStorageLUN = 0
+
+# Volume up boot target. Can be one of the following:
+# "BDS Menu" (will enter the UEFI boot menu provided by Qualcomm, don't touch anything there unless you know what you are doing!)
+# "UEFI Shell" (will execute startup.nsh automatically if found on any FAT partition)
+# "recovery"
+# "Linux"
+DefaultVolUp = "Linux"
+
+# Setting this to *true* will enable USB Host mode in UEFI
+# This might be useful if you want to play with UEFI.
+# Note that you will need an externally powered type-C hub to connect USB devices. (at least for now)
+UsbHostMode = false
+
+# Controls hypervisor UART enablement
+#
+# Setting *true* here will force enable the hypervisor UART
+# Setting *false* here will force disable the hypervisor UART
+# Removing this line will avoid changing the default behavior
+# Please leave it to *false* unless you know what you are doing
+HypUartEnable = false
+
+# Controls display hardware status during exit boot services
+#
+# The dispcc driver from mainline Linux kernel has a bug, which
+# prevents the display hardware from initializing properly if
+# the display hardware is not disabled before exiting boot services.
+#
+# Set this to *true* if you are trying to boot a mainline kernel.
+DisableDisplayHW = true
+
+[Linux]
+# Accept both gzipped and non-gzipped kernel images
+Image = "boot/Image.gz"
+initrd = "boot/initrd.lz4"
+devicetree = "boot/qcs8550-ayn-odin2-hypdtbo.dtb"
+cmdline = "clk_ignore_unused pd_ignore_unused panic=30 loglevel=8 audit=0 allow_mismatched_32bit_el0 mem_sleep_default=s2idle rw rootwait label=BATOCERA"
+
+[EFI]
+Image = "EFI/BOOT/BOOTAA64.EFI"
+# Options to be passed to the EFI Application, could be left empty
+Options = "earlycon=efifb,mem"
\ No newline at end of file
diff --git a/board/batocera/qualcomm/sm8550/odin2/create-boot-script.sh b/board/batocera/qualcomm/sm8550/odin2/create-boot-script.sh
new file mode 100755
index 00000000000..d661c4797a5
--- /dev/null
+++ b/board/batocera/qualcomm/sm8550/odin2/create-boot-script.sh
@@ -0,0 +1,26 @@
+#!/bin/bash
+
+# HOST_DIR = host dir
+# BOARD_DIR = board specific dir
+# BUILD_DIR = base dir/build
+# BINARIES_DIR = images dir
+# TARGET_DIR = target dir
+# BATOCERA_BINARIES_DIR = batocera binaries sub directory
+
+HOST_DIR=$1
+BOARD_DIR=$2
+BUILD_DIR=$3
+BINARIES_DIR=$4
+TARGET_DIR=$5
+BATOCERA_BINARIES_DIR=$6
+
+mkdir -p "${BATOCERA_BINARIES_DIR}/boot/boot" || exit 1
+
+cp "${BINARIES_DIR}/Image.gz" "${BATOCERA_BINARIES_DIR}/boot/boot/Image.gz" || exit 1
+cp "${BINARIES_DIR}/initrd.lz4" "${BATOCERA_BINARIES_DIR}/boot/boot/initrd.lz4" || exit 1
+cp "${BINARIES_DIR}/rootfs.squashfs" "${BATOCERA_BINARIES_DIR}/boot/boot/batocera.update" || exit 1
+
+cp "${BINARIES_DIR}/qcs8550-ayn-odin2-hypdtbo.dtb" "${BATOCERA_BINARIES_DIR}/boot/boot/" || exit 1
+cp -f "${BOARD_DIR}/LinuxLoader.cfg" "${BATOCERA_BINARIES_DIR}/boot/LinuxLoader.cfg" || exit 1
+
+exit 0
diff --git a/board/batocera/qualcomm/sm8550/odin2/genimage.cfg b/board/batocera/qualcomm/sm8550/odin2/genimage.cfg
new file mode 100644
index 00000000000..519b47744ce
--- /dev/null
+++ b/board/batocera/qualcomm/sm8550/odin2/genimage.cfg
@@ -0,0 +1,35 @@
+image boot.vfat {
+ vfat {
+ extraargs = "-F 32 -n BATOCERA"
+ @files
+ }
+
+ size = 4G
+}
+
+image userdata.ext4 {
+ ext4 {
+ label = "SHARE"
+ use-mke2fs = "true"
+ extraargs = "-m 0"
+ }
+ size = "512M"
+ mountpoint = "/userdata"
+}
+
+image batocera.img {
+ hdimage {
+ align = "1M"
+ }
+
+ partition vfat {
+ partition-type = 0xC
+ image = "boot.vfat"
+ offset = 1M
+ }
+
+ partition userdata {
+ partition-type = 0x83
+ image = "userdata.ext4"
+ }
+}
diff --git a/board/batocera/qualcomm/sm8550/patches/mame/switchres-no-xrandr.patch b/board/batocera/qualcomm/sm8550/patches/mame/switchres-no-xrandr.patch
new file mode 100644
index 00000000000..037cde88940
--- /dev/null
+++ b/board/batocera/qualcomm/sm8550/patches/mame/switchres-no-xrandr.patch
@@ -0,0 +1,50 @@
+--- a/scripts/src/3rdparty.lua 2022-08-08 11:13:57.770937867 +0200
++++ b/scripts/src/3rdparty.lua 2022-08-09 10:04:29.103342700 +0200
+@@ -2458,14 +2458,11 @@
+ MAME_DIR .. "3rdparty/switchres/display_linux.h",
+ MAME_DIR .. "3rdparty/switchres/display_sdl2.cpp",
+ MAME_DIR .. "3rdparty/switchres/display_sdl2.h",
+- MAME_DIR .. "3rdparty/switchres/custom_video_xrandr.cpp",
+- MAME_DIR .. "3rdparty/switchres/custom_video_xrandr.h",
+ MAME_DIR .. "3rdparty/switchres/custom_video_drmkms.cpp",
+ MAME_DIR .. "3rdparty/switchres/custom_video_drmkms.h",
+ }
+
+ defines {
+- "SR_WITH_XRANDR",
+ "SR_WITH_KMSDRM",
+ "SR_WITH_SDL2",
+ }
+@@ -2475,10 +2472,6 @@
+ backtick("pkg-config --cflags sdl2"),
+ }
+
+- links {
+- "Xrandr",
+- }
+-
+ local str = backtick("pkg-config --libs libdrm")
+ addlibfromstring(str)
+ addoptionsfromstring(str)
+--- a/3rdparty/switchres/display_sdl2.cpp 2023-10-04 15:44:48.733463162 +0200
++++ b/3rdparty/switchres/display_sdl2.cpp 2023-10-04 15:50:01.748637071 +0200
+@@ -296,7 +296,7 @@
+ video_modes.push_back(mode);
+ backup_modes.push_back(mode);
+
+- log_verbose("Switchres/SDL2: [%3ld] %4dx%4d @%3d%s%s %s: ", video_modes.size(), mode.width, mode.height, mode.refresh, mode.interlace ? "i" : "p", mode.type & MODE_DESKTOP ? "*" : "", mode.type & MODE_ROTATED ? "rot" : "");
++ log_verbose("Switchres/SDL2: [%3lu] %4dx%4d @%3d%s%s %s: ", video_modes.size(), mode.width, mode.height, mode.refresh, mode.interlace ? "i" : "p", mode.type & MODE_DESKTOP ? "*" : "", mode.type & MODE_ROTATED ? "rot" : "");
+ log_mode(&mode);
+ };
+
+--- a/3rdparty/switchres/display_linux.cpp 2023-10-04 15:50:09.632831307 +0200
++++ b/3rdparty/switchres/display_linux.cpp 2023-10-04 15:50:16.324995860 +0200
+@@ -163,7 +163,7 @@
+ video_modes.push_back(mode);
+ backup_modes.push_back(mode);
+
+- log_verbose("Switchres: [%3ld] %4dx%4d @%3d%s%s %s: ", video_modes.size(), mode.width, mode.height, mode.refresh, mode.interlace ? "i" : "p", mode.type & MODE_DESKTOP ? "*" : "", mode.type & MODE_ROTATED ? "rot" : "");
++ log_verbose("Switchres: [%3lu] %4dx%4d @%3d%s%s %s: ", video_modes.size(), mode.width, mode.height, mode.refresh, mode.interlace ? "i" : "p", mode.type & MODE_DESKTOP ? "*" : "", mode.type & MODE_ROTATED ? "rot" : "");
+ log_mode(&mode);
+ };
+
diff --git a/configs/batocera-sm8550.board b/configs/batocera-sm8550.board
new file mode 100644
index 00000000000..9b27ff9ffee
--- /dev/null
+++ b/configs/batocera-sm8550.board
@@ -0,0 +1,41 @@
+include batocera-board.common
+
+# Target definition
+BR2_aarch64=y
+BR2_cortex_a76_a55=y
+BR2_PACKAGE_BATOCERA_TARGET_SM8550=y
+BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_6_9=y
+BR2_TARGET_OPTIMIZATION="-pipe -fsigned-char -march=armv9-a+i8mm+sm4+sha3+rcpc+crypto+nosve+nosve2"
+BR2_CCACHE=y
+BR2_GLOBAL_PATCH_DIR="$(BR2_EXTERNAL_BATOCERA_PATH)/board/batocera/patches $(BR2_EXTERNAL_BATOCERA_PATH)/board/batocera/qualcomm/sm8550/patches"
+BR2_TARGET_GENERIC_ROOT_PASSWD="linux"
+BR2_TARGET_GENERIC_GETTY_PORT="ttyMSM0"
+# BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW is not set
+BR2_ROOTFS_OVERLAY="$(BR2_EXTERNAL_BATOCERA_PATH)/board/batocera/fsoverlay $(BR2_EXTERNAL_BATOCERA_PATH)/board/batocera/qualcomm/sm8550/fsoverlay"
+
+# Kernel
+BR2_LINUX_KERNEL=y
+BR2_LINUX_KERNEL_CUSTOM_GIT=y
+BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/strongtz/linux-next"
+BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="ci/odin2/stable"
+BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL_BATOCERA_PATH)/board/batocera/qualcomm/sm8550/linux_patches"
+BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
+BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_BATOCERA_PATH)/board/batocera/qualcomm/sm8550/linux_sm8550-defconfig.config"
+BR2_LINUX_KERNEL_IMAGEGZ=y
+BR2_LINUX_KERNEL_DTS_SUPPORT=y
+BR2_LINUX_KERNEL_INTREE_DTS_NAME="qcom/qcs8550-ayn-odin2-hypdtbo"
+
+# Filesystem tools
+BR2_PACKAGE_HOST_DOSFSTOOLS=y
+BR2_PACKAGE_HOST_GENIMAGE=y
+BR2_PACKAGE_HOST_MTOOLS=y
+
+# System
+BR2_PACKAGE_BATOCERA_FREEDRENO_MESA3D=y
+BR2_PACKAGE_BATOCERA_WAYLAND_SWAY=y
+BR2_PACKAGE_BATOCERA_XWAYLAND=y
+BR2_PACKAGE_BATOCERA_VIDEO_CODECS=y
+BR2_PACKAGE_FIRMWARE_ARMBIAN=y
+
+# Batocera Splash Support
+BR2_PACKAGE_BATOCERA_SPLASH_MPV=y
\ No newline at end of file
diff --git a/package/batocera/boot/batocera-initramfs/batocera-initramfs.mk b/package/batocera/boot/batocera-initramfs/batocera-initramfs.mk
index f4e20615c81..4334ca1994d 100644
--- a/package/batocera/boot/batocera-initramfs/batocera-initramfs.mk
+++ b/package/batocera/boot/batocera-initramfs/batocera-initramfs.mk
@@ -68,6 +68,16 @@ endef
BATOCERA_INITRAMFS_PRE_INSTALL_TARGET_HOOKS += BATOCERA_INITRAMFS_RISCV_EARLY_FIRMWARE
endif
+ifeq ($(BR2_PACKAGE_BATOCERA_TARGET_SM8550),y)
+BATOCERA_INITRAMFS_DEPENDENCIES += firmware-armbian
+define BATOCERA_INITRAMFS_SM8550_EARLY_FIRMWARE
+ mkdir -p $(INITRAMFS_DIR)/lib/firmware/qcom/sm8550/
+ cp -R $(FIRMWARE_ARMBIAN_DIR)/qcom/sm8550/* \
+ $(INITRAMFS_DIR)/lib/firmware/qcom/sm8550/
+endef
+BATOCERA_INITRAMFS_PRE_INSTALL_TARGET_HOOKS += BATOCERA_INITRAMFS_SM8550_EARLY_FIRMWARE
+endif
+
define BATOCERA_INITRAMFS_INSTALL_TARGET_CMDS
mkdir -p $(INITRAMFS_DIR)
cp $(BR2_EXTERNAL_BATOCERA_PATH)/package/batocera/boot/batocera-initramfs/init \
diff --git a/package/batocera/core/batocera-configgen/batocera-configgen.mk b/package/batocera/core/batocera-configgen/batocera-configgen.mk
index 8ad84a0a5da..c41e3922c43 100644
--- a/package/batocera/core/batocera-configgen/batocera-configgen.mk
+++ b/package/batocera/core/batocera-configgen/batocera-configgen.mk
@@ -88,6 +88,8 @@ else ifeq ($(BR2_PACKAGE_BATOCERA_TARGET_SM8250),y)
BATOCERA_CONFIGGEN_SYSTEM=sm8250
else ifeq ($(BR2_PACKAGE_BATOCERA_TARGET_T527),y)
BATOCERA_CONFIGGEN_SYSTEM=t527
+else ifeq ($(BR2_PACKAGE_BATOCERA_TARGET_SM8550),y)
+ BATOCERA_CONFIGGEN_SYSTEM=sm8550
endif
define BATOCERA_CONFIGGEN_INSTALL_STAGING_CMDS
diff --git a/package/batocera/core/batocera-configgen/configs/configgen-defaults-sm8550.yml b/package/batocera/core/batocera-configgen/configs/configgen-defaults-sm8550.yml
new file mode 100644
index 00000000000..a4ebf99c675
--- /dev/null
+++ b/package/batocera/core/batocera-configgen/configs/configgen-defaults-sm8550.yml
@@ -0,0 +1,109 @@
+default:
+ options:
+ hud_support: true
+
+advision:
+ emulator: mame
+ core: mame
+flash:
+ emulator: lightspark
+ core: lightspark
+fmtowns:
+ emulator: libretro
+ core: mame
+lcdgames:
+ emulator: mame
+ core: mame
+n64:
+ emulator: libretro
+ core: mupen64plus-next
+nds:
+ emulator: libretro
+ core: melonds
+ps2:
+ emulator: libretro
+ core: play
+plugnplay:
+ emulator: mame
+ core: mame
+pdp1:
+ emulator: mame
+ core: mame
+pv1000:
+ emulator: mame
+ core: mame
+gamate:
+ emulator: mame
+ core: mame
+crvision:
+ emulator: mame
+ core: mame
+gamecom:
+ emulator: mame
+ core: mame
+fm7:
+ emulator: mame
+ core: mame
+gamepock:
+ emulator: mame
+ core: mame
+apfm1000:
+ emulator: mame
+ core: mame
+bbc:
+ emulator: mame
+ core: mame
+adam:
+ emulator: mame
+ core: mame
+gmaster:
+ emulator: mame
+ core: mame
+astrocde:
+ emulator: mame
+ core: mame
+ti99:
+ emulator: mame
+ core: mame
+tutor:
+ emulator: mame
+ core: mame
+coco:
+ emulator: mame
+ core: mame
+archimedes:
+ emulator: mame
+ core: mame
+socrates:
+ emulator: mame
+ core: mame
+supracan:
+ emulator: mame
+ core: mame
+vsmile:
+ emulator: mame
+ core: mame
+xegs:
+ emulator: mame
+ core: mame
+atom:
+ emulator: mame
+ core: mame
+electron:
+ emulator: mame
+ core: mame
+camplynx:
+ emulator: mame
+ core: mame
+vgmplay:
+ emulator: mame
+ core: mame
+vc4000:
+ emulator: mame
+ core: mame
+gp32:
+ emulator: mame
+ core: mame
+laser310:
+ emulator: mame
+ core: mame
diff --git a/package/batocera/core/batocera-scripts/batocera-scripts.mk b/package/batocera/core/batocera-scripts/batocera-scripts.mk
index 402a4524e78..252ad3edff7 100644
--- a/package/batocera/core/batocera-scripts/batocera-scripts.mk
+++ b/package/batocera/core/batocera-scripts/batocera-scripts.mk
@@ -23,7 +23,7 @@ ifeq ($(BR2_PACKAGE_BATOCERA_WAYLAND_SWAY),y)
endif
###
-ifeq ($(BR2_PACKAGE_BATOCERA_TARGET_SM8250),y)
+ifeq ($(BR2_PACKAGE_BATOCERA_TARGET_SM8250)$(BR2_PACKAGE_BATOCERA_TARGET_SM8550),y)
BATOCERA_SCRIPTS_POST_INSTALL_TARGET_HOOKS += BATOCERA_SCRIPTS_INSTALL_QCOM
endif
diff --git a/package/batocera/core/batocera-splash/scripts/Ssystem-splash b/package/batocera/core/batocera-splash/scripts/Ssystem-splash
index b33235acdef..237f9acb380 100644
--- a/package/batocera/core/batocera-splash/scripts/Ssystem-splash
+++ b/package/batocera/core/batocera-splash/scripts/Ssystem-splash
@@ -30,7 +30,7 @@ do_start () {
[ -f "$image" ] || exit 1
fi
- if [ "${V_BOARD_MODEL}" = "Loki_Zero" ] || [ "${V_BOARD_MODEL}" = "Retroid_Pocket_5" ]; then
+ if [ "${V_BOARD_MODEL}" = "Loki_Zero" ] || [ "${V_BOARD_MODEL}" = "Retroid_Pocket_5" ] || [ "${V_BOARD_MODEL}" = "AYN_Odin_2" ]; then
image="/usr/share/batocera/splash/boot-logo-1080x1920-left.png"
fi
diff --git a/package/batocera/core/batocera-system/Config.in b/package/batocera/core/batocera-system/Config.in
index 8acf4439e7c..373814d7ee2 100644
--- a/package/batocera/core/batocera-system/Config.in
+++ b/package/batocera/core/batocera-system/Config.in
@@ -96,6 +96,7 @@ if BR2_PACKAGE_BATOCERA_TARGET_X86_ANY || \
BR2_PACKAGE_BATOCERA_TARGET_ROCKCHIP_GLES3 || \
BR2_PACKAGE_BATOCERA_TARGET_ODIN || \
BR2_PACKAGE_BATOCERA_TARGET_SM8250 || \
+ BR2_PACKAGE_BATOCERA_TARGET_SM8550 || \
BR2_PACKAGE_BATOCERA_TARGET_T527
config BR2_PACKAGE_BATOCERA_GLES3
bool "target gles3 support"
@@ -303,7 +304,7 @@ config BR2_PACKAGE_BATOCERA_SYSTEM
select BR2_PACKAGE_XWIIMOTE if !BR2_PACKAGE_BATOCERA_TARGET_BCM2835 && !BR2_PACKAGE_BATOCERA_TARGET_RK3326 # a tool to analye wiimote events (mainly to debug, but helps and is funny)
select BR2_PACKAGE_BATOCERA_GUNS if !BR2_PACKAGE_BATOCERA_TARGET_BCM2835 && !BR2_PACKAGE_BATOCERA_TARGET_RK3326
select BR2_PACKAGE_BATOCERA_WHEEL_CALIBRATOR
- select BR2_PACKAGE_NEW_LG4FF if !BR2_PACKAGE_BATOCERA_TARGET_RK3326 && !BR2_PACKAGE_BATOCERA_TARGET_XU4 && !BR2_PACKAGE_BATOCERA_TARGET_BCM2835 && !BR2_PACKAGE_BATOCERA_TARGET_RK3326 && !BR2_PACKAGE_BATOCERA_TARGET_RK3128 && !BR2_PACKAGE_BATOCERA_TARGET_SM8250 && !BR2_PACKAGE_BATOCERA_TARGET_T527 # Improved Linux module driver for Logitech driving wheels (the lg4ff is disabled in kernels)
+ select BR2_PACKAGE_NEW_LG4FF if !BR2_PACKAGE_BATOCERA_TARGET_RK3326 && !BR2_PACKAGE_BATOCERA_TARGET_XU4 && !BR2_PACKAGE_BATOCERA_TARGET_BCM2835 && !BR2_PACKAGE_BATOCERA_TARGET_RK3326 && !BR2_PACKAGE_BATOCERA_TARGET_RK3128 && !BR2_PACKAGE_BATOCERA_TARGET_SM8250 && !BR2_PACKAGE_BATOCERA_TARGET_SM8550 && !BR2_PACKAGE_BATOCERA_TARGET_T527 # Improved Linux module driver for Logitech driving wheels (the lg4ff is disabled in kernels)
select BR2_PACKAGE_HID_T150 if !BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_4 # Thrustmaster T150 and TMX Force Feedback Wheel Linux drivers
select BR2_PACKAGE_HID_NX if !BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_4 && !BR2_PACKAGE_BATOCERA_TARGET_BCM2835 && !BR2_PACKAGE_BATOCERA_TARGET_RK3326 # updated nintendo switch controller driver, requires kernel > 4.4
select BR2_PACKAGE_JOYCOND if BR2_PACKAGE_HID_NX # nintendo switch joycon daemon (requires hid-nx)
@@ -361,6 +362,7 @@ config BR2_PACKAGE_BATOCERA_SYSTEM
BR2_PACKAGE_BATOCERA_TARGET_BCM2711 || \
BR2_PACKAGE_BATOCERA_TARGET_BCM2712 || \
BR2_PACKAGE_BATOCERA_TARGET_SM8250 || \
+ BR2_PACKAGE_BATOCERA_TARGET_SM8550 || \
BR2_PACKAGE_BATOCERA_TARGET_JH7110
# wireless drivers
@@ -371,6 +373,7 @@ config BR2_PACKAGE_BATOCERA_SYSTEM
!BR2_PACKAGE_BATOCERA_TARGET_RK3128 && \
!BR2_PACKAGE_BATOCERA_TARGET_ODIN && \
!BR2_PACKAGE_BATOCERA_TARGET_SM8250 && \
+ !BR2_PACKAGE_BATOCERA_TARGET_SM8550 && \
!BR2_PACKAGE_BATOCERA_TARGET_X86_ANY
# (6.13 kernel includes 8821au drivers)
@@ -470,10 +473,10 @@ config BR2_PACKAGE_BATOCERA_SYSTEM
select BR2_GCC_ENABLE_OPENMP
# odin wifi baseband dependencies
- select BR2_PACKAGE_PD_MAPPER if BR2_PACKAGE_BATOCERA_TARGET_ODIN
- select BR2_PACKAGE_QRTR if BR2_PACKAGE_BATOCERA_TARGET_ODIN
- select BR2_PACKAGE_RMTFS if BR2_PACKAGE_BATOCERA_TARGET_ODIN
- select BR2_PACKAGE_TQFTPSERV if BR2_PACKAGE_BATOCERA_TARGET_ODIN
+ select BR2_PACKAGE_PD_MAPPER if BR2_PACKAGE_BATOCERA_TARGET_ODIN || BR2_PACKAGE_BATOCERA_TARGET_SM8550
+ select BR2_PACKAGE_QRTR if BR2_PACKAGE_BATOCERA_TARGET_ODIN || BR2_PACKAGE_BATOCERA_TARGET_SM8550
+ select BR2_PACKAGE_RMTFS if BR2_PACKAGE_BATOCERA_TARGET_ODIN || BR2_PACKAGE_BATOCERA_TARGET_SM8550
+ select BR2_PACKAGE_TQFTPSERV if BR2_PACKAGE_BATOCERA_TARGET_ODIN || BR2_PACKAGE_BATOCERA_TARGET_SM8550
# leds
select BR2_PACKAGE_AYN_PLATFORM if BR2_PACKAGE_BATOCERA_TARGET_X86_ANY
@@ -535,6 +538,7 @@ config BR2_TARGET_BATOCERA_IMAGES_DEFINITIONS
default "x86-64-v3" if BR2_PACKAGE_BATOCERA_TARGET_ZEN3
default "qualcomm/sd845/odin" if BR2_PACKAGE_BATOCERA_TARGET_ODIN
default "qualcomm/sm8250/rp5 qualcomm/sm8250/rpmini" if BR2_PACKAGE_BATOCERA_TARGET_SM8250
+ default "qualcomm/sm8550/odin2" if BR2_PACKAGE_BATOCERA_TARGET_SM8550
default "starfive/jh7110" if BR2_PACKAGE_BATOCERA_TARGET_JH7110
default "amlogic/s922x/ogu amlogic/s922x/gtkingpro amlogic/s922x/gtking amlogic/s922x/odroidn2l amlogic/s922x/vim3 amlogic/s922x/odroidn2 amlogic/s922x/odroidn2plus amlogic/s922x/zero2" \
if BR2_PACKAGE_BATOCERA_TARGET_S922X
@@ -655,6 +659,9 @@ config BR2_PACKAGE_BATOCERA_TARGET_ODIN
config BR2_PACKAGE_BATOCERA_TARGET_SM8250
bool "sm8250"
+config BR2_PACKAGE_BATOCERA_TARGET_SM8550
+ bool "sm8550"
+
config BR2_PACKAGE_BATOCERA_TARGET_XU4
bool "xu4"
@@ -784,6 +791,7 @@ config BR2_PACKAGE_BATOCERA_HOMEBREW_SYSTEMS
select BR2_PACKAGE_LIBRETRO_VIRCON32 if BR2_PACKAGE_BATOCERA_TARGET_X86_64_ANY || \
BR2_PACKAGE_BATOCERA_TARGET_BCM2711 || \
BR2_PACKAGE_BATOCERA_TARGET_BCM2712 || \
+ BR2_PACKAGE_BATOCERA_TARGET_SM8550 || \
BR2_PACKAGE_BATOCERA_TARGET_SM8250 # Probably others but not tested yet
# Fighting games engine
@@ -854,7 +862,7 @@ config BR2_PACKAGE_BATOCERA_ARCADE_SYSTEMS
# Standalone Sega Model 3 emulator
select BR2_PACKAGE_SUPERMODEL if BR2_PACKAGE_BATOCERA_TARGET_X86_64_ANY
- select BR2_PACKAGE_SUPERMODEL_LEGACY if BR2_PACKAGE_BATOCERA_XWAYLAND && !BR2_PACKAGE_BATOCERA_TARGET_SM8250
+ select BR2_PACKAGE_SUPERMODEL_LEGACY if BR2_PACKAGE_BATOCERA_XWAYLAND && !BR2_PACKAGE_BATOCERA_TARGET_SM8250 && !BR2_PACKAGE_BATOCERA_TARGET_SM8550
# RetroArch MAME derivatives
select BR2_PACKAGE_LIBRETRO_MAME2003_PLUS # ALL
@@ -900,16 +908,18 @@ config BR2_PACKAGE_BATOCERA_HANDHELD_SYSTEMS
BR2_PACKAGE_BATOCERA_TARGET_XU4 || \
BR2_PACKAGE_BATOCERA_TARGET_H616 || \
BR2_PACKAGE_BATOCERA_TARGET_SM8250 || \
+ BR2_PACKAGE_BATOCERA_TARGET_SM8550 || \
BR2_PACKAGE_BATOCERA_TARGET_H6 || \
BR2_PACKAGE_BATOCERA_TARGET_T527
select BR2_PACKAGE_MELONDS if BR2_PACKAGE_BATOCERA_TARGET_X86_64_ANY || \
BR2_PACKAGE_BATOCERA_TARGET_BCM2712 || \
- BR2_PACKAGE_BATOCERA_TARGET_SM8250 || \
+ BR2_PACKAGE_BATOCERA_TARGET_SM8250 || \
+ BR2_PACKAGE_BATOCERA_TARGET_SM8550 || \
BR2_PACKAGE_BATOCERA_TARGET_RK3588
# 3DS
- select BR2_PACKAGE_CITRA if BR2_PACKAGE_BATOCERA_TARGET_X86_64_ANY
+ select BR2_PACKAGE_CITRA if BR2_PACKAGE_BATOCERA_TARGET_X86_64_ANY || BR2_PACKAGE_BATOCERA_TARGET_SM8550
#select BR2_PACKAGE_LIBRETRO_CITRA if BR2_PACKAGE_BATOCERA_TARGET_X86_64_ANY #disabled, build errors. not well maintained.
# PSP
@@ -944,7 +954,7 @@ config BR2_PACKAGE_BATOCERA_HANDHELD_SYSTEMS
select BR2_PACKAGE_LIBRETRO_ARDUOUS # ALL
# Sony PS Vita
- select BR2_PACKAGE_VITA3K if BR2_PACKAGE_BATOCERA_TARGET_X86_64_ANY
+ select BR2_PACKAGE_VITA3K if BR2_PACKAGE_BATOCERA_TARGET_X86_64_ANY || BR2_PACKAGE_BATOCERA_TARGET_SM8550
# MegaDuck
select BR2_PACKAGE_LIBRETRO_SAMEDUCK # ALL
@@ -1020,7 +1030,7 @@ config BR2_PACKAGE_BATOCERA_PORTS_SYSTEMS
# select BR2_PACKAGE_LIBRETRO_DINOTHAWR if BR2_PACKAGE_BATOCERA_TARGET_X86_64_ANY
# Minecraft mini-clone
- # select BR2_PACKAGE_LIBRETRO_CRAFT if BR2_PACKAGE_BATOCERA_TARGET_X86_64_ANY || BR2_PACKAGE_BATOCERA_TARGET_BCM2712
+ # select BR2_PACKAGE_LIBRETRO_CRAFT if BR2_PACKAGE_BATOCERA_TARGET_X86_64_ANY || BR2_PACKAGE_BATOCERA_TARGET_BCM2712 || BR2_PACKAGE_BATOCERA_TARGET_SM8550
# ChaiScript engine
# select BR2_PACKAGE_LIBRETRO_CHAILOVE if BR2_PACKAGE_BATOCERA_TARGET_X86_64_ANY
@@ -1050,7 +1060,7 @@ config BR2_PACKAGE_BATOCERA_PORTS_SYSTEMS
select BR2_PACKAGE_LIBRETRO_BOOM3 if BR2_PACKAGE_BATOCERA_TARGET_X86_64_ANY # Requires RA with OpenGL
# OpenLara (Tomb Raider)
- select BR2_PACKAGE_LIBRETRO_OPENLARA if BR2_PACKAGE_BATOCERA_TARGET_X86_64_ANY
+ select BR2_PACKAGE_LIBRETRO_OPENLARA if BR2_PACKAGE_BATOCERA_TARGET_X86_64_ANY || BR2_PACKAGE_BATOCERA_TARGET_SM8550
# Quake 3
select BR2_PACKAGE_IOQUAKE3 if !BR2_PACKAGE_BATOCERA_TARGET_BCM2835 && \
@@ -1115,7 +1125,8 @@ config BR2_PACKAGE_BATOCERA_PORTS_SYSTEMS
select BR2_PACKAGE_BATOCERA_DHEWM3 if BR2_x86_64 || \
BR2_PACKAGE_BATOCERA_TARGET_RK3588 || \
BR2_PACKAGE_BATOCERA_TARGET_BCM2712 || \
- BR2_PACKAGE_BATOCERA_TARGET_SM8250
+ BR2_PACKAGE_BATOCERA_TARGET_SM8250 || \
+ BR2_PACKAGE_BATOCERA_TARGET_SM8550
# CatacombGL
select BR2_PACKAGE_CATACOMBGL if BR2_x86_64
@@ -1155,8 +1166,9 @@ config BR2_PACKAGE_BATOCERA_COMPUTER_SYSTEMS
select BR2_PACKAGE_HATARI if !BR2_PACKAGE_BATOCERA_TARGET_BCM2835
select BR2_PACKAGE_LIBRETRO_HATARI # ALL
select BR2_PACKAGE_LIBRETRO_HATARIB if BR2_PACKAGE_BATOCERA_TARGET_X86_64_ANY || \
- BR2_PACKAGE_BATOCERA_TARGET_BCM2711 || \
- BR2_PACKAGE_BATOCERA_TARGET_BCM2712 || \
+ BR2_PACKAGE_BATOCERA_TARGET_BCM2711 || \
+ BR2_PACKAGE_BATOCERA_TARGET_BCM2712 || \
+ BR2_PACKAGE_BATOCERA_TARGET_SM8550 || \
BR2_PACKAGE_BATOCERA_TARGET_SM8250
# MSX range
@@ -1179,8 +1191,9 @@ config BR2_PACKAGE_BATOCERA_COMPUTER_SYSTEMS
# Fujistu FM-Towns computers range
select BR2_PACKAGE_TSUGARU if BR2_PACKAGE_BATOCERA_TARGET_X86_64_ANY || \
- BR2_PACKAGE_BATOCERA_TARGET_BCM2712 || \
- BR2_PACKAGE_BATOCERA_TARGET_RK3588 || \
+ BR2_PACKAGE_BATOCERA_TARGET_BCM2712 || \
+ BR2_PACKAGE_BATOCERA_TARGET_RK3588 || \
+ BR2_PACKAGE_BATOCERA_TARGET_SM8250 || \
BR2_PACKAGE_BATOCERA_TARGET_SM8250
# Macintosh
@@ -1219,7 +1232,8 @@ config BR2_PACKAGE_BATOCERA_CONSOLE_SYSTEMS
BR2_PACKAGE_BATOCERA_TARGET_S922X || \
BR2_PACKAGE_BATOCERA_TARGET_A3GEN2 || \
BR2_PACKAGE_BATOCERA_TARGET_BCM2712 || \
- BR2_PACKAGE_BATOCERA_TARGET_SM8250
+ BR2_PACKAGE_BATOCERA_TARGET_SM8250 || \
+ BR2_PACKAGE_BATOCERA_TARGET_SM8550
# Dreamcast
select BR2_PACKAGE_BATOCERA_SEGADC
@@ -1255,7 +1269,8 @@ config BR2_PACKAGE_BATOCERA_CONSOLE_SYSTEMS
select BR2_PACKAGE_LIBRETRO_BEETLE_SATURN if BR2_PACKAGE_BATOCERA_TARGET_X86_ANY || \
BR2_PACKAGE_BATOCERA_TARGET_BCM2712 || \
BR2_PACKAGE_BATOCERA_TARGET_RK3588 || \
- BR2_PACKAGE_BATOCERA_TARGET_SM8250
+ BR2_PACKAGE_BATOCERA_TARGET_SM8250 || \
+ BR2_PACKAGE_BATOCERA_TARGET_SM8550
select BR2_PACKAGE_LIBRETRO_KRONOS if BR2_PACKAGE_BATOCERA_TARGET_X86_ANY
@@ -1264,8 +1279,9 @@ config BR2_PACKAGE_BATOCERA_CONSOLE_SYSTEMS
# Gamecube / Wii
select BR2_PACKAGE_DOLPHIN_EMU if BR2_PACKAGE_BATOCERA_TARGET_X86_64_ANY || \
- BR2_PACKAGE_BATOCERA_TARGET_BCM2712 || \
- BR2_PACKAGE_BATOCERA_TARGET_SM8250
+ BR2_PACKAGE_BATOCERA_TARGET_BCM2712 || \
+ BR2_PACKAGE_BATOCERA_TARGET_SM8250 || \
+ BR2_PACKAGE_BATOCERA_TARGET_SM8550
# cannot use BR2_PACKAGE_BATOCERA_TARGET_RK3588 as Dolphin requires OpenGL
select BR2_PACKAGE_LIBRETRO_DOLPHIN if BR2_PACKAGE_BATOCERA_TARGET_X86_64_ANY || \
@@ -1273,7 +1289,8 @@ config BR2_PACKAGE_BATOCERA_CONSOLE_SYSTEMS
BR2_PACKAGE_BATOCERA_TARGET_S922X || \
BR2_PACKAGE_BATOCERA_TARGET_A3GEN2 || \
BR2_PACKAGE_BATOCERA_TARGET_RK3588 || \
- BR2_PACKAGE_BATOCERA_TARGET_SM8250
+ BR2_PACKAGE_BATOCERA_TARGET_SM8250 || \
+ BR2_PACKAGE_BATOCERA_TARGET_SM8550
select BR2_PACKAGE_SUYU if BR2_PACKAGE_BATOCERA_TARGET_X86_64_ANY && BR2_PACKAGE_BATOCERA_CORES_STILL_COMMERCIALIZED
select BR2_PACKAGE_RYUJINX if BR2_PACKAGE_BATOCERA_TARGET_X86_64_ANY && BR2_PACKAGE_BATOCERA_CORES_STILL_COMMERCIALIZED
@@ -1282,7 +1299,7 @@ config BR2_PACKAGE_BATOCERA_CONSOLE_SYSTEMS
select BR2_PACKAGE_DOLPHIN_TRIFORCE if BR2_PACKAGE_BATOCERA_TARGET_X86_64_ANY
# Microsoft XBOX
- select BR2_PACKAGE_XEMU if BR2_PACKAGE_BATOCERA_TARGET_X86_64_ANY
+ select BR2_PACKAGE_XEMU if BR2_PACKAGE_BATOCERA_TARGET_X86_64_ANY || BR2_PACKAGE_BATOCERA_TARGET_SM8550
# Microsoft Xbox 360
select BR2_PACKAGE_XENIA if BR2_PACKAGE_BATOCERA_TARGET_X86_64_ANY && BR2_PACKAGE_BATOCERA_WINE_SYSTEMS
@@ -1292,12 +1309,12 @@ config BR2_PACKAGE_BATOCERA_CONSOLE_SYSTEMS
select BR2_PACKAGE_PCSX2 if BR2_PACKAGE_BATOCERA_TARGET_X86_64_ANY
# select BR2_PACKAGE_LIBRETRO_PCSX2 if BR2_PACKAGE_BATOCERA_TARGET_X86_64_ANY # depricated for LR-PS2
select BR2_PACKAGE_LIBRETRO_PS2 if BR2_PACKAGE_BATOCERA_TARGET_X86_64_ANY
- select BR2_PACKAGE_PLAY if BR2_PACKAGE_BATOCERA_TARGET_X86_64_ANY # disabled until play optimised -> || BR2_PACKAGE_BATOCERA_TARGET_BCM2712
+ select BR2_PACKAGE_PLAY if BR2_PACKAGE_BATOCERA_TARGET_X86_64_ANY # disabled until play optimised -> || BR2_PACKAGE_BATOCERA_TARGET_BCM2712 || BR2_PACKAGE_BATOCERA_TARGET_SM8550
select BR2_PACKAGE_LIBRETRO_PLAY if BR2_PACKAGE_BATOCERA_TARGET_X86_64_ANY
- # disabled until play optimised -> || BR2_PACKAGE_BATOCERA_TARGET_SM8250 || BR2_PACKAGE_BATOCERA_TARGET_BCM2712
+ # disabled until play optimised -> || BR2_PACKAGE_BATOCERA_TARGET_SM8250 || BR2_PACKAGE_BATOCERA_TARGET_SM8550 || BR2_PACKAGE_BATOCERA_TARGET_BCM2712
# Sony PS3
- select BR2_PACKAGE_RPCS3 if BR2_PACKAGE_BATOCERA_TARGET_X86_64_ANY
+ select BR2_PACKAGE_RPCS3 if BR2_PACKAGE_BATOCERA_TARGET_X86_64_ANY || BR2_PACKAGE_BATOCERA_TARGET_SM8550
# Sony PS4
select BR2_PACKAGE_SHADPS4 if BR2_PACKAGE_BATOCERA_TARGET_X86_64_ANY && BR2_PACKAGE_BATOCERA_CORES_STILL_COMMERCIALIZED
@@ -1327,7 +1344,8 @@ config BR2_PACKAGE_BATOCERA_CONSOLE_SYSTEMS
BR2_PACKAGE_BATOCERA_TARGET_S922X || \
BR2_PACKAGE_BATOCERA_TARGET_A3GEN2 || \
BR2_PACKAGE_BATOCERA_TARGET_RK3588 || \
- BR2_PACKAGE_BATOCERA_TARGET_SM8250
+ BR2_PACKAGE_BATOCERA_TARGET_SM8250 || \
+ BR2_PACKAGE_BATOCERA_TARGET_SM8550
select BR2_PACKAGE_BIGPEMU if BR2_PACKAGE_BATOCERA_TARGET_X86_64_ANY
@@ -1391,7 +1409,8 @@ config BR2_PACKAGE_BATOCERA_CONSOLE_SYSTEMS
BR2_PACKAGE_BATOCERA_TARGET_BCM2711 || \
BR2_PACKAGE_BATOCERA_TARGET_BCM2712 || \
BR2_PACKAGE_BATOCERA_TARGET_RK3288 || \
- BR2_PACKAGE_BATOCERA_TARGET_SM8250
+ BR2_PACKAGE_BATOCERA_TARGET_SM8250 || \
+ BR2_PACKAGE_BATOCERA_TARGET_SM8550
# Super Nintendo / Super Famicom
select BR2_PACKAGE_LIBRETRO_SNES9X if !BR2_PACKAGE_BATOCERA_TARGET_BCM2835
@@ -1404,7 +1423,8 @@ config BR2_PACKAGE_BATOCERA_CONSOLE_SYSTEMS
BR2_PACKAGE_BATOCERA_TARGET_RK3588 || \
BR2_PACKAGE_BATOCERA_TARGET_S922X || \
BR2_PACKAGE_BATOCERA_TARGET_A3GEN2 || \
- BR2_PACKAGE_BATOCERA_TARGET_SM8250
+ BR2_PACKAGE_BATOCERA_TARGET_SM8250 || \
+ BR2_PACKAGE_BATOCERA_TARGET_SM8550
select BR2_PACKAGE_LIBRETRO_BSNES_HD if BR2_PACKAGE_BATOCERA_TARGET_X86_64_ANY
select BR2_PACKAGE_LIBRETRO_MESENS if BR2_PACKAGE_BATOCERA_TARGET_X86_64_ANY || \
@@ -1413,7 +1433,8 @@ config BR2_PACKAGE_BATOCERA_CONSOLE_SYSTEMS
BR2_PACKAGE_BATOCERA_TARGET_RK3588 || \
BR2_PACKAGE_BATOCERA_TARGET_RK3399 || \
BR2_PACKAGE_BATOCERA_TARGET_A3GEN2 || \
- BR2_PACKAGE_BATOCERA_TARGET_SM8250
+ BR2_PACKAGE_BATOCERA_TARGET_SM8250 || \
+ BR2_PACKAGE_BATOCERA_TARGET_SM8550
# Atari 7800
select BR2_PACKAGE_LIBRETRO_PROSYSTEM # ALL
@@ -1552,6 +1573,7 @@ config BR2_PACKAGE_BATOCERA_CORES_EXPERIMENTAL
BR2_PACKAGE_BATOCERA_TARGET_RK3588 || \
BR2_PACKAGE_BATOCERA_TARGET_H616 || \
BR2_PACKAGE_BATOCERA_TARGET_SM8250 || \
+ BR2_PACKAGE_BATOCERA_TARGET_SM8550 || \
BR2_PACKAGE_BATOCERA_TARGET_T527
help
@@ -1707,18 +1729,19 @@ config BR2_PACKAGE_BATOCERA_KODI21
# GBM
select BR2_PACKAGE_KODI_GBM if BR2_PACKAGE_BATOCERA_TARGET_XU4 || \
BR2_PACKAGE_BATOCERA_TARGET_S922X || \
- BR2_PACKAGE_BATOCERA_TARGET_H3 || \
+ BR2_PACKAGE_BATOCERA_TARGET_H3 || \
BR2_PACKAGE_BATOCERA_TARGET_A3GEN2 || \
BR2_PACKAGE_BATOCERA_TARGET_S9GEN4 || \
- BR2_PACKAGE_BATOCERA_TARGET_H5 || \
- BR2_PACKAGE_BATOCERA_TARGET_S812 || \
+ BR2_PACKAGE_BATOCERA_TARGET_H5 || \
+ BR2_PACKAGE_BATOCERA_TARGET_S812 || \
BR2_PACKAGE_BATOCERA_TARGET_RK3288 || \
BR2_PACKAGE_BATOCERA_TARGET_RK3399 || \
BR2_PACKAGE_BATOCERA_TARGET_RK3588 || \
BR2_PACKAGE_BATOCERA_TARGET_S905GEN3 || \
BR2_PACKAGE_BATOCERA_TARGET_JH7110 || \
- BR2_PACKAGE_BATOCERA_TARGET_ODIN || \
- BR2_PACKAGE_BATOCERA_TARGET_SM8250
+ BR2_PACKAGE_BATOCERA_TARGET_ODIN || \
+ BR2_PACKAGE_BATOCERA_TARGET_SM8250 || \
+ BR2_PACKAGE_BATOCERA_TARGET_SM8550
config BR2_PACKAGE_BATOCERA_WPA
bool "batocera.linux WPA supplicant"
diff --git a/package/batocera/core/batocera-system/batocera-system.mk b/package/batocera/core/batocera-system/batocera-system.mk
index 37dd8da3a76..8ec8a6d6c0f 100644
--- a/package/batocera/core/batocera-system/batocera-system.mk
+++ b/package/batocera/core/batocera-system/batocera-system.mk
@@ -71,6 +71,8 @@ else ifeq ($(BR2_PACKAGE_BATOCERA_TARGET_JH7110),y)
BATOCERA_SYSTEM_ARCH=jh7110
else ifeq ($(BR2_PACKAGE_BATOCERA_TARGET_SM8250),y)
BATOCERA_SYSTEM_ARCH=sm8250
+else ifeq ($(BR2_PACKAGE_BATOCERA_TARGET_SM8550),y)
+ BATOCERA_SYSTEM_ARCH=sm8550
else ifeq ($(BR2_PACKAGE_BATOCERA_TARGET_T527),y)
BATOCERA_SYSTEM_ARCH=t527
else
diff --git a/package/batocera/core/batocera-system/sysconfigs/sm8550/batocera.conf.Ayn_Odin_2 b/package/batocera/core/batocera-system/sysconfigs/sm8550/batocera.conf.Ayn_Odin_2
new file mode 100644
index 00000000000..89d8d6dfc01
--- /dev/null
+++ b/package/batocera/core/batocera-system/sysconfigs/sm8550/batocera.conf.Ayn_Odin_2
@@ -0,0 +1,8 @@
+# Ayn Odin 2 default values
+
+# Rotate DRM for splash
+display.rotate.DSI=3
+display.rotate2.DSI=3
+
+# default suspend on handled boards
+system.suspendmode=suspend
diff --git a/package/batocera/emulationstation/batocera-emulationstation/controllers/es_input.cfg b/package/batocera/emulationstation/batocera-emulationstation/controllers/es_input.cfg
index 92e5919e28e..cbb018b4930 100644
--- a/package/batocera/emulationstation/batocera-emulationstation/controllers/es_input.cfg
+++ b/package/batocera/emulationstation/batocera-emulationstation/controllers/es_input.cfg
@@ -5436,5 +5436,28 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/package/batocera/emulators/dosbox-staging/dosbox-staging.mk b/package/batocera/emulators/dosbox-staging/dosbox-staging.mk
index 911888c18ed..485918cfbd1 100644
--- a/package/batocera/emulators/dosbox-staging/dosbox-staging.mk
+++ b/package/batocera/emulators/dosbox-staging/dosbox-staging.mk
@@ -69,15 +69,15 @@ DOSBOX_STAGING_CFLAGS += -march=armv8.2-a+crc+crypto -mcpu=cortex-a55 -mtune=c
DOSBOX_STAGING_CXXFLAGS += -march=armv8.2-a+crc+crypto -mcpu=cortex-a55 -mtune=cortex-a55
endif
-ifeq ($(BR2_cortex_a75_a55),y)
-DOSBOX_STAGING_CFLAGS += -march=armv8.2-a+crc -mcpu=cortex-a75.cortex-a55 -mtune=cortex-a75.cortex-a55
-DOSBOX_STAGING_CXXFLAGS += -march=armv8.2-a+crc -mcpu=cortex-a75.cortex-a55 -mtune=cortex-a75.cortex-a55
-endif
-
ifeq ($(BR2_cortex_a76_a55),y)
-DOSBOX_STAGING_CFLAGS += -march=armv8.2-a+dotprod+rcpc+ssbs+sb -mcpu=cortex-a76.cortex-a55 -mtune=cortex-a76.cortex-a55
+ifeq ($(BR2_PACKAGE_BATOCERA_TARGET_SM8550),y)
+DOSBOX_STAGING_CFLAGS += -pipe -march=armv9-a+i8mm+sm4+sha3+rcpc+crypto+nosve+nosve2
+DOSBOX_STAGING_CXXFLAGS += -pipe -march=armv9-a+i8mm+sm4+sha3+rcpc+crypto+nosve+nosve2
+else
+DOSBOX_STAGING_CFLAGS += -march=armv8.2-a+dotprod+rcpc+ssbs+sb -mcpu=cortex-a76.cortex-a55 -mtune=cortex-a76.cortex-a55
DOSBOX_STAGING_CXXFLAGS += -march=armv8.2-a+dotprod+rcpc+ssbs+sb -mcpu=cortex-a76.cortex-a55 -mtune=cortex-a76.cortex-a55
endif
+endif
define DOSBOX_STAGING_INSTALL_TARGET_CMDS
$(INSTALL) -D $(@D)/build/dosbox $(TARGET_DIR)/usr/bin/dosbox-staging
diff --git a/package/batocera/emulators/mame/mame.mk b/package/batocera/emulators/mame/mame.mk
index 36e996ba4df..08a603a71dc 100644
--- a/package/batocera/emulators/mame/mame.mk
+++ b/package/batocera/emulators/mame/mame.mk
@@ -26,6 +26,10 @@ MAME_JOBS := $(jobs)
# Set PTR64 on/off according to architecture
ifeq ($(BR2_ARCH_IS_64),y)
MAME_CROSS_OPTS += PTR64=1
+ifeq ($(BR2_PACKAGE_BATOCERA_TARGET_SM8550),y)
+# Temp hack for sm8550 architectures : disable WERROR to avoid C/CXX flag conflict for armv9 and armv8.x architectures as error
+MAME_CROSS_OPTS += NOWERROR=1
+endif
else
MAME_CROSS_OPTS += PTR64=0
# Temp hack for 32-bit architectures : disable WERROR to avoid switchres log warning treated as error
@@ -35,6 +39,9 @@ endif
# x86_64 is desktop linux based on X11 and OpenGL
ifeq ($(BR2_PACKAGE_BATOCERA_TARGET_X86_64_ANY),y)
MAME_CROSS_ARCH = x86_64
+# sm8550 have OpenGL
+else ifeq ($(BR2_PACKAGE_BATOCERA_TARGET_SM8550),y)
+MAME_CROSS_OPTS += NO_X11=1 NO_USE_XINPUT=1 NO_USE_BGFX_KHRONOS=1
# other archs are embedded, no X11, no OpenGL (only ES)
else
MAME_CROSS_OPTS += NO_X11=1 NO_OPENGL=1 NO_USE_XINPUT=1 NO_USE_BGFX_KHRONOS=1 FORCE_DRC_C_BACKEND=1
@@ -94,8 +101,12 @@ MAME_CFLAGS += -mcpu=cortex-a73.cortex-a53 -mtune=cortex-a73.cortex-a53
endif
ifeq ($(BR2_cortex_a76_a55),y)
+ifeq ($(BR2_PACKAGE_BATOCERA_TARGET_SM8550),y)
+MAME_CFLAGS += -pipe -march=armv9-a+i8mm+sm4+sha3+rcpc+crypto+nosve+nosve2
+else
MAME_CFLAGS += -mcpu=cortex-a76.cortex-a55 -mtune=cortex-a76.cortex-a55
endif
+endif
define MAME_BUILD_CMDS
# First, we need to build genie for host
diff --git a/package/batocera/emulators/retroarch/libretro/libretro-beetle-pcfx/libretro-beetle-pcfx.mk b/package/batocera/emulators/retroarch/libretro/libretro-beetle-pcfx/libretro-beetle-pcfx.mk
index 22d01accdb1..a048382f2d0 100644
--- a/package/batocera/emulators/retroarch/libretro/libretro-beetle-pcfx/libretro-beetle-pcfx.mk
+++ b/package/batocera/emulators/retroarch/libretro/libretro-beetle-pcfx/libretro-beetle-pcfx.mk
@@ -47,7 +47,7 @@ LIBRETRO_BEETLE_PCFX_PLATFORM = armv
else ifeq ($(BR2_PACKAGE_BATOCERA_TARGET_ODIN),y)
LIBRETRO_BEETLE_PCFX_PLATFORM = odin
-else ifeq ($(BR2_PACKAGE_BATOCERA_TARGET_SM8250),y)
+else ifeq ($(BR2_PACKAGE_BATOCERA_TARGET_SM8250)$(BR2_PACKAGE_BATOCERA_TARGET_SM8550),y)
LIBRETRO_BEETLE_PCFX_PLATFORM = sm8250
endif
diff --git a/package/batocera/emulators/retroarch/libretro/libretro-gpsp/libretro-gpsp.mk b/package/batocera/emulators/retroarch/libretro/libretro-gpsp/libretro-gpsp.mk
index e4f6a2d2e8f..d508adce0a4 100755
--- a/package/batocera/emulators/retroarch/libretro/libretro-gpsp/libretro-gpsp.mk
+++ b/package/batocera/emulators/retroarch/libretro/libretro-gpsp/libretro-gpsp.mk
@@ -17,11 +17,15 @@ LIBRETRO_GPSP_PLATFORM = rpi1
else ifeq ($(BR2_PACKAGE_BATOCERA_TARGET_BCM2836),y)
LIBRETRO_GPSP_PLATFORM = rpi2
+
+else ifeq ($(BR2_aarch64),y)
+LIBRETRO_GPSP_PLATFORM = arm64
+
endif
define LIBRETRO_GPSP_BUILD_CMDS
$(TARGET_CONFIGURE_OPTS) $(MAKE) CXX="$(TARGET_CXX)" CC="$(TARGET_CC)" \
- -C $(@D) platform=$(LIBRETRO_GPSP_PLATFORM) \
+ -C $(@D) platform=$(LIBRETRO_GPSP_PLATFORM) -j"$(PARALLEL_JOBS)" \
GIT_VERSION="-$(shell echo $(LIBRETRO_GPSP_VERSION) | cut -c 1-7)"
endef
diff --git a/package/batocera/emulators/retroarch/libretro/libretro-melonds/libretro-melonds.mk b/package/batocera/emulators/retroarch/libretro/libretro-melonds/libretro-melonds.mk
index d61f0b700d6..861c37e068a 100644
--- a/package/batocera/emulators/retroarch/libretro/libretro-melonds/libretro-melonds.mk
+++ b/package/batocera/emulators/retroarch/libretro/libretro-melonds/libretro-melonds.mk
@@ -39,7 +39,7 @@ LIBRETRO_MELONDS_PLATFORM = orangepizero2
else ifeq ($(BR2_PACKAGE_BATOCERA_TARGET_H6),y)
LIBRETRO_MELONDS_PLATFORM = orangepizero2
-else ifeq ($(BR2_PACKAGE_BATOCERA_TARGET_SM8250),y)
+else ifeq ($(BR2_PACKAGE_BATOCERA_TARGET_SM8250)$(BR2_PACKAGE_BATOCERA_TARGET_SM8550),y)
LIBRETRO_MELONDS_PLATFORM = sm8250
else ifeq ($(BR2_aarch64),y)
diff --git a/package/batocera/emulators/retroarch/libretro/libretro-mupen64plus-next/libretro-mupen64plus-next.mk b/package/batocera/emulators/retroarch/libretro/libretro-mupen64plus-next/libretro-mupen64plus-next.mk
index 6d8c0ec6fe5..c1128402cc5 100755
--- a/package/batocera/emulators/retroarch/libretro/libretro-mupen64plus-next/libretro-mupen64plus-next.mk
+++ b/package/batocera/emulators/retroarch/libretro/libretro-mupen64plus-next/libretro-mupen64plus-next.mk
@@ -113,7 +113,7 @@ LIBRETRO_MUPEN64PLUS_NEXT_EXTRA_ARGS += WITH_DYNAREC=arm HAVE_NEON=1
else ifeq ($(BR2_PACKAGE_BATOCERA_TARGET_ODIN),y)
LIBRETRO_MUPEN64PLUS_NEXT_PLATFORM = odin
-else ifeq ($(BR2_PACKAGE_BATOCERA_TARGET_SM8250),y)
+else ifeq ($(BR2_PACKAGE_BATOCERA_TARGET_SM8250)$(BR2_PACKAGE_BATOCERA_TARGET_SM8550),y)
LIBRETRO_MUPEN64PLUS_NEXT_PLATFORM = sm8250
else
diff --git a/package/batocera/emulators/retroarch/libretro/libretro-parallel-n64/libretro-parallel-n64.mk b/package/batocera/emulators/retroarch/libretro/libretro-parallel-n64/libretro-parallel-n64.mk
index 8f24969bf15..fff587f80a0 100755
--- a/package/batocera/emulators/retroarch/libretro/libretro-parallel-n64/libretro-parallel-n64.mk
+++ b/package/batocera/emulators/retroarch/libretro/libretro-parallel-n64/libretro-parallel-n64.mk
@@ -34,7 +34,7 @@ LIBRETRO_PARALLEL_N64_BOARD=ODROID-XU4
else ifeq ($(BR2_PACKAGE_BATOCERA_TARGET_RK3588),y)
LIBRETRO_PARALLEL_N64_EXTRA_ARGS+=WITH_DYNAREC=aarch64
LIBRETRO_PARALLEL_N64_PLATFORM=rk3588
-else ifeq ($(BR2_PACKAGE_BATOCERA_TARGET_SM8250),y)
+else ifeq ($(BR2_PACKAGE_BATOCERA_TARGET_SM8250)$(BR2_PACKAGE_BATOCERA_TARGET_SM8550),y)
LIBRETRO_PARALLEL_N64_PLATFORM=sm8250
else ifeq ($(BR2_PACKAGE_BATOCERA_TARGET_S905),y)
LIBRETRO_PARALLEL_N64_EXTRA_ARGS+=WITH_DYNAREC=aarch64
diff --git a/package/batocera/emulators/retroarch/libretro/libretro-yabasanshiro/libretro-yabasanshiro.mk b/package/batocera/emulators/retroarch/libretro/libretro-yabasanshiro/libretro-yabasanshiro.mk
index 9241c156e5d..538145a6a25 100644
--- a/package/batocera/emulators/retroarch/libretro/libretro-yabasanshiro/libretro-yabasanshiro.mk
+++ b/package/batocera/emulators/retroarch/libretro/libretro-yabasanshiro/libretro-yabasanshiro.mk
@@ -45,7 +45,7 @@ LIBRETRO_YABASANSHIRO_PLATFORM = RK3588
else ifeq ($(BR2_PACKAGE_BATOCERA_TARGET_RK3326),y)
LIBRETRO_YABASANSHIRO_PLATFORM = RK3326
-else ifeq ($(BR2_PACKAGE_BATOCERA_TARGET_SM8250),y)
+else ifeq ($(BR2_PACKAGE_BATOCERA_TARGET_SM8250)$(BR2_PACKAGE_BATOCERA_TARGET_SM8550),y)
LIBRETRO_YABASANSHIRO_PLATFORM = sm8250
else ifeq ($(BR2_aarch64),y)
diff --git a/package/batocera/emulators/retroarch/shaders/batocera-shaders/batocera-shaders.mk b/package/batocera/emulators/retroarch/shaders/batocera-shaders/batocera-shaders.mk
index bd62ef69849..e8327bb8310 100644
--- a/package/batocera/emulators/retroarch/shaders/batocera-shaders/batocera-shaders.mk
+++ b/package/batocera/emulators/retroarch/shaders/batocera-shaders/batocera-shaders.mk
@@ -42,6 +42,8 @@ else ifeq ($(BR2_PACKAGE_BATOCERA_TARGET_ODIN),y)
BATOCERA_GPU_SYSTEM=adreno-630
else ifeq ($(BR2_PACKAGE_BATOCERA_TARGET_SM8250),y)
BATOCERA_GPU_SYSTEM=adreno-650
+else ifeq ($(BR2_PACKAGE_BATOCERA_TARGET_SM8550),y)
+ BATOCERA_GPU_SYSTEM=adreno-740
endif
BATOCERA_SHADERS_DIRIN=$(BR2_EXTERNAL_BATOCERA_PATH)/package/batocera/emulators/retroarch/shaders/batocera-shaders/configs
diff --git a/package/batocera/emulators/rpcs3/014-gun-mapping.patch b/package/batocera/emulators/rpcs3/014-gun-mapping.patch
index 1fb69b5e236..ba6e6765577 100644
--- a/package/batocera/emulators/rpcs3/014-gun-mapping.patch
+++ b/package/batocera/emulators/rpcs3/014-gun-mapping.patch
@@ -1,8 +1,8 @@
diff --git a/rpcs3/Emu/Cell/Modules/cellGem.cpp b/rpcs3/Emu/Cell/Modules/cellGem.cpp
-index d92eba4..7ffad64 100644
+index 128ffd0..41170a4 100644
--- a/rpcs3/Emu/Cell/Modules/cellGem.cpp
+++ b/rpcs3/Emu/Cell/Modules/cellGem.cpp
-@@ -912,15 +912,15 @@ static bool gun_input_to_pad(const u32 gem_no, be_t& digital_buttons, be_t<
+@@ -2181,15 +2181,15 @@ static bool gun_input_to_pad(u32 gem_no, be_t& digital_buttons, be_t&
if (gun.handler.get_button(gem_no, gun_button::btn_2) == 1)
digital_buttons |= CELL_GEM_CTRL_CIRCLE;
@@ -18,6 +18,6 @@ index d92eba4..7ffad64 100644
+ if (gun.handler.get_button(gem_no, gun_button::btn_7) == 1)
+ digital_buttons |= CELL_GEM_CTRL_SELECT;
+
- analog_t = gun.handler.get_button(gem_no, gun_button::btn_left) ? 0xFFFF : 0;
+ analog_t = gun.handler.get_button(gem_no, gun_button::btn_left) ? 255 : 0;
return true;
diff --git a/package/batocera/emulators/rpcs3/rpcs3.mk b/package/batocera/emulators/rpcs3/rpcs3.mk
index 0888bbd005f..1fd929c586a 100644
--- a/package/batocera/emulators/rpcs3/rpcs3.mk
+++ b/package/batocera/emulators/rpcs3/rpcs3.mk
@@ -3,8 +3,8 @@
# rpcs3
#
################################################################################
-# Version: 0.0.34-17265, Commits on Dec 29, 2024
-RPCS3_VERSION = 418a99a62b814b7f831072610c9e7d7b5e90610c
+# Version: 0.0.34-17426, Commits on Feb 3, 2025
+RPCS3_VERSION = 6123838a4837a8e78e0d68c4ca07829d13826c23
RPCS3_SITE = https://github.com/RPCS3/rpcs3.git
RPCS3_SITE_METHOD=git
RPCS3_GIT_SUBMODULES=YES
diff --git a/package/batocera/emulators/suyu/Config.in b/package/batocera/emulators/suyu/Config.in
index 02f2cdfb390..8b07b13357f 100644
--- a/package/batocera/emulators/suyu/Config.in
+++ b/package/batocera/emulators/suyu/Config.in
@@ -1,6 +1,6 @@
config BR2_PACKAGE_SUYU
bool "suyu"
- depends on BR2_x86_64
+ depends on (BR2_x86_64 || BR2_aarch64)
depends on BR2_PACKAGE_XORG7
select BR2_PACKAGE_JSON_FOR_MODERN_CPP
select BR2_PACKAGE_BATOCERA_QT6
diff --git a/package/batocera/emulators/suyu/suyu.mk b/package/batocera/emulators/suyu/suyu.mk
index 8a222ede243..a8673243add 100644
--- a/package/batocera/emulators/suyu/suyu.mk
+++ b/package/batocera/emulators/suyu/suyu.mk
@@ -14,13 +14,22 @@ SUYU_DEPENDENCIES = qt6base qt6tools qt6multimedia fmt boost ffmpeg \
SUYU_SUPPORTS_IN_SOURCE_BUILD = NO
-SUYU_CONF_ENV += LDFLAGS=-lpthread ARCHITECTURE_x86_64=1
+SUYU_CONF_ENV += LDFLAGS=-lpthread
+ifeq ($(BR2_x86_64),y)
+ SUYU_DEPENDENCIES += ARCHITECTURE_x86_64=1
+ SUYU_CONF_OPTS += -DARCHITECTURE_x86_64=ON
+endif
+ifeq ($(BR2_aarch64),y)
+ SUYU_CONF_ENV += VCPKG_FORCE_SYSTEM_BINARIES=1
+ SUYU_CONF_OPTS += -DARCHITECTURE_arm64=ON
+ SUYU_CONF_OPTS += -DSUYU_USE_BUNDLED_FFMPEG=OFF
+endif
SUYU_CONF_OPTS += -DCMAKE_BUILD_TYPE=Release
SUYU_CONF_OPTS += -DBUILD_SHARED_LIBS=OFF
-SUYU_CONF_OPTS += -DARCHITECTURE_x86_64=ON
SUYU_CONF_OPTS += -DENABLE_SDL2=ON
SUYU_CONF_OPTS += -DENABLE_QT6=ON
+SUYU_CONF_OPTS += -DENABLE_QT_TRANSLATION=ON
SUYU_CONF_OPTS += -DSUYU_USE_EXTERNAL_SDL2=OFF
SUYU_CONF_OPTS += -DUSE_DISCORD_PRESENCE=OFF
SUYU_CONF_OPTS += -DSUYU_TESTS=OFF
diff --git a/package/batocera/firmwares/alllinuxfirmwares/alllinuxfirmwares.mk b/package/batocera/firmwares/alllinuxfirmwares/alllinuxfirmwares.mk
index 325e1c5231e..762744284e3 100644
--- a/package/batocera/firmwares/alllinuxfirmwares/alllinuxfirmwares.mk
+++ b/package/batocera/firmwares/alllinuxfirmwares/alllinuxfirmwares.mk
@@ -29,7 +29,7 @@ ifeq ($(BR2_PACKAGE_BRCMFMAC_SDIO_FIRMWARE_RPI)$(BR2_PACKAGE_EXTRALINUXFIRMWARES
endif
# Remove qualcomm firmware if not buidling Qualcomm Board
-ifneq ($(BR2_PACKAGE_BATOCERA_TARGET_ODIN)$(BR2_PACKAGE_BATOCERA_TARGET_SM8250),y)
+ifneq ($(BR2_PACKAGE_BATOCERA_TARGET_ODIN)$(BR2_PACKAGE_BATOCERA_TARGET_SM8550)$(BR2_PACKAGE_BATOCERA_TARGET_SM8250),y)
ALLLINUXFIRMWARES_REMOVE_DIRS += $(@D)/qcom
endif
diff --git a/package/batocera/firmwares/firmware-armbian/firmware-armbian.mk b/package/batocera/firmwares/firmware-armbian/firmware-armbian.mk
index 90158476314..d4f62e1b7c6 100644
--- a/package/batocera/firmwares/firmware-armbian/firmware-armbian.mk
+++ b/package/batocera/firmwares/firmware-armbian/firmware-armbian.mk
@@ -8,7 +8,7 @@ FIRMWARE_ARMBIAN_VERSION = 9179a9f05c31505e1bbc90ffb2bfa563e499bfef
FIRMWARE_ARMBIAN_SITE = https://github.com/armbian/firmware
FIRMWARE_ARMBIAN_SITE_METHOD = git
-FIRMWARE_ARMBIAN_TARGET_DIR=$(TARGET_DIR)/lib/firmware/
+FIRMWARE_ARMBIAN_TARGET_DIR=$(TARGET_DIR)/lib/firmware
define FIRMWARE_ARMBIAN_INSTALL_TARGET_CMDS
mkdir -p $(FIRMWARE_ARMBIAN_TARGET_DIR)
diff --git a/package/batocera/libraries/shaderc/shaderc.mk b/package/batocera/libraries/shaderc/shaderc.mk
index 19ef8189787..835d84dc124 100644
--- a/package/batocera/libraries/shaderc/shaderc.mk
+++ b/package/batocera/libraries/shaderc/shaderc.mk
@@ -16,6 +16,10 @@ SHADERC_CONF_OPTS += -DCMAKE_BUILD_TYPE=Release
SHADERC_CONF_OPTS += -DSHADERC_SKIP_TESTS=ON
SHADERC_CONF_OPTS += -DSHADERC_SKIP_EXAMPLES=ON
+ifeq ($(BR2_PACKAGE_SPIRV_HEADERS),y)
+ SHADERC_DEPENDENCIES += spirv-tools
+endif
+
define SHADERC_SYNC_DEPS
cd $(@D) && PATH=$(BR_PATH) ./utils/git-sync-deps
endef
diff --git a/package/batocera/network/qualcomm/pd-mapper/Config.in b/package/batocera/network/qualcomm/pd-mapper/Config.in
index d7b4215ccff..8933cc7ef4b 100644
--- a/package/batocera/network/qualcomm/pd-mapper/Config.in
+++ b/package/batocera/network/qualcomm/pd-mapper/Config.in
@@ -1,6 +1,7 @@
config BR2_PACKAGE_PD_MAPPER
bool "pd-mapper"
select BR2_PACKAGE_QRTR
+ select BR2_PACKAGE_XZ
help
Qualcomm Protection Domain mapper.
diff --git a/package/batocera/network/qualcomm/pd-mapper/pd-mapper.mk b/package/batocera/network/qualcomm/pd-mapper/pd-mapper.mk
index 22d53ee2bca..a3059b29078 100644
--- a/package/batocera/network/qualcomm/pd-mapper/pd-mapper.mk
+++ b/package/batocera/network/qualcomm/pd-mapper/pd-mapper.mk
@@ -4,14 +4,14 @@
#
################################################################################
-PD_MAPPER_VERSION = 9d78fc0c6143c4d1b7198c57be72a6699ce764c4
+PD_MAPPER_VERSION = e7c42e1522249593302a5b8920b9e7b42dc3f25e
PD_MAPPER_SITE = $(call github,andersson,pd-mapper,$(PD_MAPPER_VERSION))
PD_MAPPER_LICENSE_FILE = LICENSE
-PD_MAPPER_DEPENDENCIES = host-qrtr qrtr
+PD_MAPPER_DEPENDENCIES = host-qrtr qrtr xz
define PD_MAPPER_BUILD_CMDS
$(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) CFLAGS="$(TARGET_CFLAGS) -I$(STAGING_DIR)/usr/include" \
- LDFLAGS="$(TARGET_LDFLAGS) -L$(STAGING_DIR)/usr/lib -lqrtr" -C $(@D)
+ LDFLAGS="$(TARGET_LDFLAGS) -L$(STAGING_DIR)/usr/lib -lqrtr -llzma" -C $(@D)
endef
define PD_MAPPER_INSTALL_TARGET_CMDS
diff --git a/package/batocera/network/qualcomm/qrtr/qrtr.mk b/package/batocera/network/qualcomm/qrtr/qrtr.mk
index 14d1317435b..2ae4910cc22 100644
--- a/package/batocera/network/qualcomm/qrtr/qrtr.mk
+++ b/package/batocera/network/qualcomm/qrtr/qrtr.mk
@@ -4,33 +4,13 @@
#
################################################################################
-QRTR_VERSION = 9dc7a88548c27983e06465d3fbba2ba27d4bc050
+QRTR_VERSION = ef44ad10f284410e2db4c4ce22c8645f988f8402
QRTR_SITE = $(call github,andersson,qrtr,$(QRTR_VERSION))
QRTR_LICENSE = BSD-3-Clause license
QRTR_LICENSE_FILE = LICENSE
QRTR_DEPENDENCIES = linux-headers
+QRTR_INSTALL_STAGING = YES
HOST_QRTR_DEPENDENCIES = linux-headers toolchain
-define QRTR_BUILD_CMDS
- $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) all
-endef
-
-define QRTR_INSTALL_TARGET_CMDS
- $(INSTALL) -D -m 0755 $(@D)/qrtr-ns $(TARGET_DIR)/usr/bin
- $(INSTALL) -D -m 0755 $(@D)/qrtr-cfg $(TARGET_DIR)/usr/bin
- $(INSTALL) -D -m 0755 $(@D)/qrtr-lookup $(TARGET_DIR)/usr/bin
- cp $(@D)/libqrtr.so $(TARGET_DIR)/usr/lib
- ln -sf libqrtr.so $(TARGET_DIR)/usr/lib/libqrtr.so.1
- ln -sf libqrtr.so.1 $(TARGET_DIR)/usr/lib/libqrtr.so.1.0
-endef
-
-define HOST_QRTR_BUILD_CMDS
- $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) prefix=$(STAGING_DIR)/usr all
-endef
-
-define HOST_QRTR_INSTALL_CMDS
- $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) prefix=$(STAGING_DIR)/usr install
-endef
-
-$(eval $(generic-package))
-$(eval $(host-generic-package))
+$(eval $(meson-package))
+$(eval $(host-meson-package))
diff --git a/package/batocera/network/qualcomm/rmtfs/rmtfs.mk b/package/batocera/network/qualcomm/rmtfs/rmtfs.mk
index 7ca0888472b..58b54a5d22b 100644
--- a/package/batocera/network/qualcomm/rmtfs/rmtfs.mk
+++ b/package/batocera/network/qualcomm/rmtfs/rmtfs.mk
@@ -4,7 +4,7 @@
#
################################################################################
-RMTFS_VERSION = b08ef6f98ec567876d7d45f15c85c6ed00d7c463
+RMTFS_VERSION = 33e1e40615efc59b17a515afe857c51b8b8c1ad1
RMTFS_SITE = $(call github,andersson,rmtfs,$(RMTFS_VERSION))
RMTFS_LICENSE = BSD-3-Clause license
RMTFS_LICENSE_FILE = LICENSE
diff --git a/package/batocera/network/qualcomm/tqftpserv/Config.in b/package/batocera/network/qualcomm/tqftpserv/Config.in
index bb0ee10c2d9..c8898bc0e14 100644
--- a/package/batocera/network/qualcomm/tqftpserv/Config.in
+++ b/package/batocera/network/qualcomm/tqftpserv/Config.in
@@ -1,6 +1,7 @@
config BR2_PACKAGE_TQFTPSERV
bool "tqftpserv"
select BR2_PACKAGE_QRTR
+ select BR2_PACKAGE_ZSTD
help
Trivial File Transfer Protocol server over AF_QIPCRTR.
diff --git a/package/batocera/network/qualcomm/tqftpserv/tqftpserv.mk b/package/batocera/network/qualcomm/tqftpserv/tqftpserv.mk
index c58440d3bec..ebd3f3c83e6 100644
--- a/package/batocera/network/qualcomm/tqftpserv/tqftpserv.mk
+++ b/package/batocera/network/qualcomm/tqftpserv/tqftpserv.mk
@@ -4,19 +4,10 @@
#
################################################################################
-TQFTPSERV_VERSION = 783425b550de2a359db6aa3b41577c3fbaae5903
+TQFTPSERV_VERSION = 533779cb8a1843581d5422a7f0aae1a35e6ab956
TQFTPSERV_SITE = $(call github,andersson,tqftpserv,$(TQFTPSERV_VERSION))
TQFTPSERV_LICENSE = BSD-3-Clause license
TQFTPSERV_LICENSE_FILE = LICENSE
-TQFTPSERV_DEPENDENCIES = host-qrtr qrtr
+TQFTPSERV_DEPENDENCIES = host-qrtr qrtr zstd
-define TQFTPSERV_BUILD_CMDS
- $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) CFLAGS="$(TARGET_CFLAGS) -I$(STAGING_DIR)/usr/include" \
- LDFLAGS="$(TARGET_LDFLAGS) -L$(STAGING_DIR)/usr/lib -lqrtr" -C $(@D)
-endef
-
-define TQFTPSERV_INSTALL_TARGET_CMDS
- $(INSTALL) -D -m 0755 $(@D)/tqftpserv $(TARGET_DIR)/usr/bin
-endef
-
-$(eval $(generic-package))
+$(eval $(meson-package))
diff --git a/package/batocera/ports/etlegacy/Config.in b/package/batocera/ports/etlegacy/Config.in
index b5a49deb8b8..b8a080baa74 100644
--- a/package/batocera/ports/etlegacy/Config.in
+++ b/package/batocera/ports/etlegacy/Config.in
@@ -11,6 +11,7 @@ config BR2_PACKAGE_ETLEGACY
select BR2_PACKAGE_OPENAL
select BR2_PACKAGE_OPENSSL
select BR2_PACKAGE_SDL2
+ select BR2_PACKAGE_SQLITE
help
ET: Legacy is an open source project based on the code of Wolfenstein: Enemy Territory
which was released in 2010 under the terms of the GPLv3 license.
diff --git a/package/batocera/ports/etlegacy/etlegacy.mk b/package/batocera/ports/etlegacy/etlegacy.mk
index 423095ef62f..ce2a6d2a6c2 100644
--- a/package/batocera/ports/etlegacy/etlegacy.mk
+++ b/package/batocera/ports/etlegacy/etlegacy.mk
@@ -12,7 +12,7 @@ ETLEGACY_LICENSE = GPL-3.0
ETLEGACY_LICENSE_FILE = COPYING.txt
ETLEGACY_DEPENDENCIES += freetype libcurl libglew libpng libtheora libglu
-ETLEGACY_DEPENDENCIES += libvorbis lua openal openssl sdl2
+ETLEGACY_DEPENDENCIES += libvorbis lua openal openssl sdl2 sqlite
ETLEGACY_SUPPORTS_IN_SOURCE_BUILD = NO