add bpi-m2s and bpi-cm4io support

This commit is contained in:
August 2024-03-12 22:52:56 +08:00
parent eed6fed958
commit bf6e570d56
49 changed files with 14473 additions and 5 deletions

View File

@ -0,0 +1,18 @@
# Amlogic A311D 4GB RAM eMMC 2xGBE USB2
BOARD_NAME="BPI CM4IO"
BOARDFAMILY="meson-g12b-bpi"
KERNEL_TARGET="legacy"
FULL_DESKTOP="yes"
SERIALCON="ttyS0"
BOOT_LOGO="desktop"
BOOTCONFIG="bananapi_cm4_defconfig"
LINUXCONFIG="linux-meson64-bpi-cm4io"
BOOTENV_FILE="mesong12b_bpi_uEnv.txt"
BOOTSCRIPT="boot-bpi-cm4io.ini:boot.ini"
OVERLAY_PREFIX="bpi-cm4io"
DEFAULT_OVERLAYS="i2c2 spi0 uart1"
MODULES="88x2cs media_clock firmware decoder_common stream_input amvdec_avs amvdec_h264 amvdec_mh264 amvdec_h264mvc amvdec_h265 amvdec_mjpeg amvdec_mmjpeg amvdec_mpeg12 amvdec_mmpeg12 amvdec_mpeg4 amvdec_mmpeg4 amvdec_real amvdec_vc1 amvdec_vp9 amvdec_avs2 encoder vpu galcore iv009_isp_iq iv009_isp_lens iv009_isp_sensor iv009_isp"

View File

@ -0,0 +1,18 @@
# Amlogic A311D/S922X 2GB/4GB RAM eMMC 2xGBE USB2
BOARD_NAME="BPI M2S"
BOARDFAMILY="meson-g12b-bpi"
KERNEL_TARGET="legacy"
FULL_DESKTOP="yes"
SERIALCON="ttyS0"
BOOT_LOGO="desktop"
BOOTCONFIG="bananapi_m2s_defconfig"
LINUXCONFIG="linux-meson64-bpi-m2s"
BOOTENV_FILE="mesong12b_bpi_uEnv.txt"
BOOTSCRIPT="boot-bpi-m2s.ini:boot.ini"
OVERLAY_PREFIX="bpi-m2s"
DEFAULT_OVERLAYS="i2c2 spi0 uart1"
MODULES="88x2cs media_clock firmware decoder_common stream_input amvdec_avs amvdec_h264 amvdec_mh264 amvdec_h264mvc amvdec_h265 amvdec_mjpeg amvdec_mmjpeg amvdec_mpeg12 amvdec_mmpeg12 amvdec_mpeg4 amvdec_mmpeg4 amvdec_real amvdec_vc1 amvdec_vp9 amvdec_avs2 encoder vpu galcore iv009_isp_iq iv009_isp_lens iv009_isp_sensor iv009_isp"

View File

@ -0,0 +1,76 @@
# DMA coherent_pool size
# Don't touch unless you know what you are doing
dma_size=2M
# HDMI resolution auto detection
# yes - auto detection
# no - set HDMI resolution via 'hdmi' node
hdmi_autodetect=yes
# HDMI mode
# Resolution Configuration
# Symbol | Resolution
# ----------------------+-------------
# "480x272p60hz" | 480x272 Progressive 60Hz
# "480x320p60hz" | 480x320 Progressive 60Hz
# "480p60hz" | 720x480 Progressive 60Hz
# "576p50hz" | 720x576 Progressive 50Hz
# "720p60hz" | 1280x720 Progressive 60Hz
# "720p50hz" | 1280x720 Progressive 50Hz
# "1080p60hz" | 1920x1080 Progressive 60Hz
# "1080p50hz" | 1920x1080 Progressive 50Hz
# "1080p30hz" | 1920x1080 Progressive 30Hz
# "1080p24hz" | 1920x1080 Progressive 24Hz
# "1080i60hz" | 1920x1080 Interlaced 60Hz
# "1080i50hz" | 1920x1080 Interlaced 50Hz
# "2160p60hz" | 3840x2160 Progressive 60Hz
# "2160p50hz" | 3840x2160 Progressive 50Hz
# "2160p30hz" | 3840x2160 Progressive 30Hz
# "2160p25hz" | 3840x2160 Progressive 25Hz
# "2160p24hz" | 3840x2160 Progressive 24Hz
# "smpte24hz" | 3840x2160 Progressive 24Hz SMPTE
# "2160p60hz420" | 3840x2160 Progressive 60Hz YCbCr 4:2:0
# "2160p50hz420" | 3840x2160 Progressive 50Hz YCbCr 4:2:0
# "640x480p60hz" | 640x480 Progressive 60Hz
# "800x480p60hz" | 800x480 Progressive 60Hz
# "800x600p60hz" | 800x600 Progressive 60Hz
# "1024x600p60hz" | 1024x600 Progressive 60Hz
# "1024x768p60hz" | 1024x768 Progressive 60Hz
# "1280x800p60hz" | 1280x800 Progressive 60Hz
# "1280x1024p60hz" | 1280x1024 Progressive 60Hz
# "1360x768p60hz" | 1360x768 Progressive 60Hz
# "1440x900p60hz" | 1440x900 Progressive 60Hz
# "1600x900p60hz" | 1600x900 Progressive 60Hz
# "1600x1200p60hz" | 1600x1200 Progressive 60Hz
# "1680x1050p60hz" | 1680x1050 Progressive 60Hz
# "1920x1200p60hz" | 1920x1200 Progressive 60Hz
# "2560x1080p60hz" | 2560x1080 Progressive 60Hz
# "2560x1440p60hz" | 2560x1440 Progressive 60Hz
# "2560x1600p60hz" | 2560x1600 Progressive 60Hz
# "3440x1440p60hz" | 3440x1440 Progressive 60Hz
hdmi=720p60hz
# Specify the initial console log level (0~8)
loglevel=7
# User kernel args
# Add customer kernel args here
user_kernel_args=pci=pcie_bus_safe
# Maximum CPU Frequency of VIM3 Little Core A53
# 500/667/1000/1200/1398/1512/1608/1704/1800(default)/1908/2016/2100/2208
max_freq_a53=1800
# Maximum CPU Frequency of VIM3 Big Core A73
# 500/667/1000/1200/1398/1512/1608/1704/1800/1908/2016/2100/2208(default)/2304/2400
max_freq_a73=1800
# Framebuffer Rotate
# 0 - origin 0 degree
# 1 - 90 degree
# 2 - 180 degree
# 3 - 270 degree
fb_rotate=0
verbosity=8
console=both

View File

@ -0,0 +1,69 @@
BANANAPI-UBOOT-CONFIG
echo "Starting boot.ini..."
# Address
setenv kernel_loadaddr "0x11000000"
setenv dtb_loadaddr "0x1000000"
setenv dtbo_loadaddr "0x5000000"
setenv initrd_loadaddr "0x13000000"
setenv env_loadaddr "0x20000000"
setenv loadaddr "0x1B00000"
# Default Console Device Setting
setenv condev "console=tty1 console=ttyS0,115200n8" # on both
# load armbianEnv.txt
if ext4load mmc ${devno}:1 0x44000000 /boot/armbianEnv.txt || fatload mmc ${devno}:1 0x44000000 armbianEnv.txt || ext4load mmc ${devno}:1 0x44000000 armbianEnv.txt; then env import -t 0x44000000 ${filesize}; fi
if test "${bootlogo}" = "true"; then setenv bootsplash "bootsplash.bootfile=bootsplash.armbian"; fi
# Lcd display bootargs
if test "X${lcd_exist}" = "X1"; then
setenv panelargs "panel_exist=${lcd_exist} panel_type=${panel_type}";
fi;
# Hdmi display bootargs
setenv hdmiargs "logo=${display_layer},loaded,${fb_addr},${outputmode} vout=${outputmode},enable"
if test "X${hdmi_autodetect}" != "Xyes"; then
if test "X${hdmi}" = "X"; then
echo "HDMI: 'hdmi' value is missing, set to default value 720p60hz!";
setenv hdmi 720p60hz;
fi;
echo "HDMI: Custom mode: ${hdmi}";
setenv hdmiargs "${hdmiargs} hdmimode=${hdmi}";
else
echo "HDMI: Autodetect: ${hdmimode}";
setenv hdmiargs "${hdmiargs} hdmimode=${hdmimode}";
fi;
if test "${hdmimode}" = "custombuilt"; then setenv cmode "modeline=${modeline}"; fi
# Boot Args
setenv bootargs "root=${rootdev} rootwait rootflags=data=writeback rw rootfstype=${rootfstype} ${condev} board=${board} loglevel=${verbosity} fsck.mode=force fsck.repair=yes ${hdmiargs} ${cmode} ${panelargs} fbcon=rotate:${fb_rotate} net.ifnames=0 wol_enable=${wol_enable} max_freq_a53=${max_freq_a53} max_freq_a73=${max_freq_a73} serial=${serial} systemd.machine_id=${serial} jtag=disable coherent_pool=${dma_size} ${user_kernel_args}";
# Load kernel, dtb and initrd
load ${devtype} ${devno}:1 ${kernel_loadaddr} /boot/Image
load ${devtype} ${devno}:1 ${dtb_loadaddr} /boot/dtb/amlogic/${fdtfile}
load ${devtype} ${devno}:1 ${initrd_loadaddr} /boot/uInitrd
fdt addr ${dtb_loadaddr}
# Load overlays
setenv overlay_resize "16384"
if test "x{overlays}" != "x"; then
fdt resize ${overlay_resize}
for overlay_file in ${overlays}; do
load ${devtype} ${devno}:1 ${dtbo_loadaddr} /boot/dtb/amlogic/overlay/${overlay_prefix}-${overlay_file}.dtbo && fdt apply ${dtbo_loadaddr}
done
fi
# eth0 auto cali
if test ${eth_bestwindow} -ne 0 ; then
fdt set /ethernet@ff3f0000 auto_cali_idx <${eth_bestwindow}>
fi
# unzip the kernel
unzip ${kernel_loadaddr} ${loadaddr}
# boot
booti ${loadaddr} ${initrd_loadaddr} ${dtb_loadaddr}

View File

@ -0,0 +1,69 @@
BANANAPI-UBOOT-CONFIG
echo "Starting boot.ini..."
# Address
setenv kernel_loadaddr "0x11000000"
setenv dtb_loadaddr "0x1000000"
setenv dtbo_loadaddr "0x5000000"
setenv initrd_loadaddr "0x13000000"
setenv env_loadaddr "0x20000000"
setenv loadaddr "0x1B00000"
# Default Console Device Setting
setenv condev "console=tty1 console=ttyS0,115200n8" # on both
# load armbianEnv.txt
if ext4load mmc ${devno}:1 0x44000000 /boot/armbianEnv.txt || fatload mmc ${devno}:1 0x44000000 armbianEnv.txt || ext4load mmc ${devno}:1 0x44000000 armbianEnv.txt; then env import -t 0x44000000 ${filesize}; fi
if test "${bootlogo}" = "true"; then setenv bootsplash "bootsplash.bootfile=bootsplash.armbian"; fi
# Lcd display bootargs
if test "X${lcd_exist}" = "X1"; then
setenv panelargs "panel_exist=${lcd_exist} panel_type=${panel_type}";
fi;
# Hdmi display bootargs
setenv hdmiargs "logo=${display_layer},loaded,${fb_addr},${outputmode} vout=${outputmode},enable"
if test "X${hdmi_autodetect}" != "Xyes"; then
if test "X${hdmi}" = "X"; then
echo "HDMI: 'hdmi' value is missing, set to default value 720p60hz!";
setenv hdmi 720p60hz;
fi;
echo "HDMI: Custom mode: ${hdmi}";
setenv hdmiargs "${hdmiargs} hdmimode=${hdmi}";
else
echo "HDMI: Autodetect: ${hdmimode}";
setenv hdmiargs "${hdmiargs} hdmimode=${hdmimode}";
fi;
if test "${hdmimode}" = "custombuilt"; then setenv cmode "modeline=${modeline}"; fi
# Boot Args
setenv bootargs "root=${rootdev} rootwait rootflags=data=writeback rw rootfstype=${rootfstype} ${condev} board=${board} loglevel=${verbosity} fsck.mode=force fsck.repair=yes ${hdmiargs} ${cmode} ${panelargs} fbcon=rotate:${fb_rotate} net.ifnames=0 wol_enable=${wol_enable} max_freq_a53=${max_freq_a53} max_freq_a73=${max_freq_a73} serial=${serial} systemd.machine_id=${serial} jtag=disable coherent_pool=${dma_size} ${user_kernel_args}";
# Load kernel, dtb and initrd
load ${devtype} ${devno}:1 ${kernel_loadaddr} /boot/Image
load ${devtype} ${devno}:1 ${dtb_loadaddr} /boot/dtb/amlogic/${fdtfile}
load ${devtype} ${devno}:1 ${initrd_loadaddr} /boot/uInitrd
fdt addr ${dtb_loadaddr}
# Load overlays
setenv overlay_resize "16384"
if test "x{overlays}" != "x"; then
fdt resize ${overlay_resize}
for overlay_file in ${overlays}; do
load ${devtype} ${devno}:1 ${dtbo_loadaddr} /boot/dtb/amlogic/overlay/${overlay_prefix}-${overlay_file}.dtbo && fdt apply ${dtbo_loadaddr}
done
fi
# eth0 auto cali
if test ${eth_bestwindow} -ne 0 ; then
fdt set /ethernet@ff3f0000 auto_cali_idx <${eth_bestwindow}>
fi
# unzip the kernel
unzip ${kernel_loadaddr} ${loadaddr}
# boot
booti ${loadaddr} ${initrd_loadaddr} ${dtb_loadaddr}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -39,16 +39,12 @@ function write_uboot_platform()
}
family_tweaks_bsp() {
if [[ ${DESKTOP_ENVIRONMENT} == "gnome" ]]; then
return 0;
fi
mkdir -p $destination/etc/udev/rules.d
mkdir -p $destination/usr/local/bin
mkdir -p "$destination"/etc/X11/xorg.conf.d
case "${BOARD}" in
"bpi-m5")
"bpi-m5"|"bpi-m2s")
cat <<-EOF > "$destination"/etc/X11/xorg.conf
Section "Device"
Identifier "DRM Graphics Acclerated"

View File

@ -0,0 +1,139 @@
#
# SPDX-License-Identifier: GPL-2.0
#
# Copyright (c) 2013-2023 Igor Pecovnik, igor@armbian.com
#
# This file is a part of the Armbian Build Framework
# https://github.com/armbian/build/
#
source "${BASH_SOURCE%/*}/include/meson64_common_bpi.inc"
ASOUND_STATE="${ASOUND_STATE:-"asound.state.meson64"}"
CPUMIN=667000
CPUMAX=1908000
GOVERNOR=ondemand
# Determine kernel
case $BRANCH in
legacy)
declare -g KERNEL_MAJOR_MINOR="4.9"
declare -g KERNELSOURCE="https://github.com/Dangku/amlogic-linux.git"
declare -g KERNELBRANCH="branch:g12b-4.9.y-m2s-cm4"
declare -g KERNELPATCHDIR="archive/meson64-4.9-g12b"
declare -g KERNELDIR="linux-bpi-meson64-g12b"
declare -g KERNEL_IMAGE_TYPE="Image.gz"
declare -g KERNEL_INSTALL_TYPE="zinstall"
declare -g KERNEL_COMPILER="aarch64-linux-gnu-"
declare -g KERNEL_USE_GCC="< 7.4"
declare -g EXTRAWIFI=no
;;
esac
BOOTSOURCE="https://github.com/Dangku/amlogic-u-boot.git"
BOOTBRANCH="branch:g12b-v2015.01-m2s-cm4"
BOOTPATCHDIR="legacy/u-boot-bpi-meson-g12b"
BOOTDIR="u-boot-bpi-meson"
FORCE_BOOTSCRIPT_UPDATE="yes"
FORCE_UBOOT_UPDATE="yes"
UBOOT_TARGET_MAP=";;sd_fuse/u-boot.bin"
UBOOT_USE_GCC="< 4.9"
UBOOT_TOOLCHAIN2="arm-none-eabi-:< 5.0"
UBOOT_COMPILER="aarch64-none-elf-"
SKIP_EXTERNAL_TOOLCHAINS="no"
VENDOR="Bananapi"
VENDORURL="https://www.banana-pi.org/"
VENDORSUPPORT="https://forum.banana-pi.org/"
VENDORPRIVACY="https://www.banana-pi.org/"
VENDORBUGS="https://forum.banana-pi.org/"
VENDORDOCS="https://wiki.banana-pi.org/"
VENDORLOGO="bpi-logo"
ROOTPWD="1234"
MAINTAINER="Dangku" # deb signature
MAINTAINERMAIL="dangku@bananapi.com"
function uboot_custom_postprocess()
{
:
}
function post_family_tweaks_bsp__mesong12b_bpi_desktop() {
display_alert "$BOARD" "Installing board tweaks bsp" "info"
if [[ "$BUILD_DESKTOP" = "yes" ]]; then
# install desktop application
mkdir -p "${destination}"/etc/skel
cp -R "${SRC}"/packages/blobs/bpi-meson-g12b/desktop/skel/. "${destination}"/etc/skel
# install application icons
mkdir -p "${destination}"/usr/share/icons/armbian
cp "${SRC}"/packages/blobs/bpi-meson-g12b/desktop/desktop-icons/*.png "${destination}"/usr/share/icons/armbian
fi
}
function post_family_tweaks__mesong12b_bpi()
{
display_alert "$BOARD" "Installing board tweaks" "info"
# replace bpi bootlogo
if [[ -f "${SDCARD}/boot/boot.bmp" ]]; then
rm ${SDCARD}/boot/boot.bmp
fi
cp ${SRC}/packages/blobs/bpi-meson-g12b/bsp/boot-logo-24.bmp ${SDCARD}/boot/boot-logo.bmp
# uboot env file
cp ${SRC}/packages/blobs/bpi-meson-g12b/bsp/lcd_env.txt ${SDCARD}/boot/lcd_env.txt
# copy common board files
run_host_command_logged rsync -a "${SRC}"/packages/bsp/bpi-meson-g12b/common/* "${SDCARD}"
# vendor hw deb related board files
if [[ ${RELEASE} == "focal" && ${DESKTOP_ENVIRONMENT} == "gnome" ]]; then
run_host_command_logged rsync -a "${SRC}"/packages/bsp/bpi-meson-g12b/vendor/* "${SDCARD}"
fi
# enable systemd service
[[ -f "${SDCARD}"/lib/systemd/system/hdmi_resolution.service ]] && chroot_sdcard systemctl --no-reload enable hdmi_resolution.service
[[ -f "${SDCARD}"/lib/systemd/system/rtk-hciuart.service ]] && chroot_sdcard systemctl --no-reload enable rtk-hciuart.service
[[ -f "${SDCARD}"/lib/systemd/system/camera_isp_3a_server.service ]] && chroot_sdcard systemctl --no-reload enable camera_isp_3a_server.service
# disable systemd service
[[ -f "${SDCARD}"/lib/systemd/system/apt-daily.service ]] && disable_systemd_service_sdcard apt-daily.service
[[ -f "${SDCARD}"/lib/systemd/system/apt-daily.timer ]] && disable_systemd_service_sdcard apt-daily.timer
[[ -f "${SDCARD}"/lib/systemd/system/apt-daily-upgrade.service ]] && disable_systemd_service_sdcard apt-daily-upgrade.service
[[ -f "${SDCARD}"/lib/systemd/system/apt-daily-upgrade.timer ]] && disable_systemd_service_sdcard apt-daily-upgrade.timer
}
function post_family_config__mesong12b_bpi_imagedebs(){
display_alert "${BOARD}" "Adding packages to image" "info"
# install packages to image
add_packages_to_image edid-decode yad firefox
# aml hw debs related debs
if [[ ${RELEASE} == "focal" && ${DESKTOP_ENVIRONMENT} == "gnome" ]]; then
add_packages_to_image libjpeg9 libconfig9 libconfig++9v5 gstreamer1.0-tools gstreamer1.0-plugins-bad gstreamer1.0-plugins-bad gstreamer1.0-alsa gstreamer1.0-libav
fi
# remove packages from image
# exo-utils
remove_packages btrfs-progs update-manager
}
function pre_customize_image__mesong12b_bpi()
{
display_alert "$BOARD" "Customizing board image" "info"
if [[ ${BUILD_MINIMAL} != "yes" ]]; then
# common prebuilt debs
cp -a ${SRC}/packages/extras-buildpkgs/bananapi/bpi-meson-g12b/common/${RELEASE} ${SDCARD}/tmp/tmp-debs
# aml hw debs only support jammy gnome
if [[ ${RELEASE} == "focal" && ${DESKTOP_ENVIRONMENT} == "gnome" ]]; then
cp -a ${SRC}/packages/extras-buildpkgs/bananapi/bpi-meson-g12b/vendor/${RELEASE}/*.deb ${SDCARD}/tmp/tmp-debs/
fi
chroot $SDCARD /bin/bash -c "dpkg -i --force-bad-version,confdef /tmp/tmp-debs/*.deb"
chroot $SDCARD /bin/bash -c "apt --fix-broken --option Dpkg::Options::="--force-confdef" install -y"
fi
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 513 KiB

View File

@ -0,0 +1,6 @@
# Mipi panel type
# Symbol | Resolution
# ----------------------+-------------
# "lcd_0" | 10" 800x1280 panel
# "lcd_1" | 10" 1200x1920 panel
panel_type=lcd_0

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.8 KiB

View File

@ -0,0 +1,12 @@
[Desktop Entry]
Version=1.0
Type=Application
Name=HDMI Resolution Setting
Name[zh_CN]=HDMI
Comment=Configure screen resolution
Comment[zh_CN]=
Exec=/usr/local/bin/hdmi_setup.sh
Icon=/usr/share/icons/armbian/hdmi_resolution.png
Terminal=false
StartupNotify=true
Categories=GTK;GNOME;Settings;HardwareSettings;

View File

@ -0,0 +1,4 @@
#choose camera calibration parameters
options iv009_isp_iq cali_name=0
#choose isp register sequence
options iv009_isp_sensor isp_seq_num=0

View File

@ -0,0 +1,14 @@
# /etc/ppp/peers/quectel-chat-connect
ABORT "BUSY"
ABORT "NO CARRIER"
ABORT "NO DIALTONE"
ABORT "ERROR"
ABORT "NO ANSWER"
TIMEOUT 30
"" AT
OK ATE0
OK ATI;+CSUB;+CSQ;+CPIN?;+COPS?;+CGREG?;&D2
# Insert the APN provided by your network operator, default apn is 3gnet
OK AT+CGDCONT=1,"IP","3gnet",,0,0
OK ATD*99#
CONNECT

View File

@ -0,0 +1,8 @@
# /etc/ppp/peers/quectel-chat-disconnect
ABORT "ERROR"
ABORT "NO DIALTONE"
SAY "\nSending break to the modem\n"
"" +++
"" +++
"" +++
SAY "\nGoodbay\n"

View File

@ -0,0 +1,39 @@
# /etc/ppp/peers/quectel-pppd
# Usage:root>pppd call quectel-pppd
#Modem path, like /dev/ttyUSB3,/dev/ttyACM0, depend on your module, default path is /dev/ttyUSB3
/dev/ttyUSB3 115200
#Insert the username and password for authentication, default user and password are test
user "test" password "test"
# The chat script, customize your APN in this file
connect 'chat -s -v -f /etc/ppp/peers/quectel-chat-connect'
# The close script
disconnect 'chat -s -v -f /etc/ppp/peers/quectel-chat-disconnect'
# Hide password in debug messages
hide-password
# The phone is not required to authenticate
noauth
# Debug info from pppd
debug
# If you want to use the HSDPA link as your gateway
defaultroute
# pppd must not propose any IP address to the peer
noipdefault
# No ppp compression
novj
novjccomp
noccp
ipcp-accept-local
ipcp-accept-remote
local
# For sanity, keep a lock on the serial line
lock
modem
dump
nodetach
# Hardware flow control
nocrtscts
remotename 3gppp
ipparam 3gppp
ipcp-max-failure 30
# Ask the peer for up to 2 DNS server addresses
usepeerdns

View File

@ -0,0 +1,21 @@
#!/bin/sh
timeout=5
killall -15 pppd
sleep 1
killall -0 pppd
while [ $? -eq 0 ]
do
timeout=`expr $timeout - 1`
if [ $timeout -eq 0 ]
then
exit 1
fi
sleep 1
killall -0 pppd
done
if [ $? -ne 0 ]
then
killall -9 pppd
fi

View File

@ -0,0 +1,41 @@
#!/bin/sh
#quectel-pppd devname apn user password
echo "quectel-pppd options in effect:"
QL_DEVNAME=/dev/ttyUSB3
QL_APN=3gnet
QL_USER=user
QL_PASSWORD=passwd
if [ $# -ge 1 ]; then
QL_DEVNAME=$1
echo "devname $QL_DEVNAME # (from command line)"
else
echo "devname $QL_DEVNAME # (default)"
fi
if [ $# -ge 2 ]; then
QL_APN=$2
echo "apn $QL_APN # (from command line)"
else
echo "apn $QL_APN # (default)"
fi
if [ $# -ge 3 ]; then
QL_USER=$3
echo "user $QL_USER # (from command line)"
else
echo "user $QL_USER # (default)"
fi
if [ $# -ge 4 ]; then
QL_PASSWORD=$4
echo "password $QL_PASSWORD # (from command line)"
else
echo "password $QL_PASSWORD # (default)"
fi
CONNECT="'chat -s -v ABORT BUSY ABORT \"NO CARRIER\" ABORT \"NO DIALTONE\" ABORT ERROR ABORT \"NO ANSWER\" TIMEOUT 30 \
\"\" AT OK ATE0 OK ATI\;+CSUB\;+CSQ\;+CPIN?\;+COPS?\;+CGREG?\;\&D2 \
OK AT+CGDCONT=1,\\\"IP\\\",\\\"$QL_APN\\\",,0,0 OK ATD*99# CONNECT'"
pppd $QL_DEVNAME 115200 user "$QL_USER" password "$QL_PASSWORD" \
connect "'$CONNECT'" \
disconnect 'chat -s -v ABORT ERROR ABORT "NO DIALTONE" SAY "\nSending break to the modem\n" "" +++ "" +++ "" +++ SAY "\nGood bay\n"' \
noauth debug defaultroute noipdefault novj novjccomp noccp ipcp-accept-local ipcp-accept-remote ipcp-max-configure 30 local lock modem dump nodetach nocrtscts usepeerdns &

View File

@ -0,0 +1,43 @@
# Misc video rules
KERNEL=="event*", SUBSYSTEM=="input", MODE="0777"
KERNEL=="CEC", MODE="0777"
KERNEL=="am*", MODE="0666"
KERNEL=="HevcEnc", MODE="0666"
KERNEL=="jpegenc", MODE="0666"
# ge2d
KERNEL=="ge2d", MODE="0666"
# ion
KERNEL=="ion", MODE="0666"
# adla
KERNEL=="adla*", MODE="0666"
# uio0
KERNEL=="uio*", MODE="0666"
# GPIO Mem
KERNEL=="gpiomem*", MODE="0660"
# CEC Compat
KERNEL=="cec", SYMLINK+="aocec"
# mali
KERNEL=="mali*",SUBSYSTEM=="misc",MODE="0777"
KERNEL=="ump",SUBSYSTEM=="ump",MODE="0777"
#npu
KERNEL=="galcore", MODE="0777"
# spi
KERNEL=="spidev*", MODE="0660"
# vfm_grabber
KERNEL=="vfm_grabber", MODE="0666"
# gsensor
KERNEL=="accel", MODE="0666"
# Others
KERNEL=="env", MODE="0666"

View File

@ -0,0 +1,12 @@
[Unit]
Description=ISP Service
ConditionPathExists=/dev/video0
#Before=ipc-property.service
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/local/bin/iv009_isp -n 2
[Install]
WantedBy=multi-user.target

View File

@ -0,0 +1,10 @@
[Unit]
Description=amlbian HDMI Resolution Service
[Service]
#Type=forking
ExecStart=/usr/local/bin/hdmi_resolution_daemon.sh
Restart=always
[Install]
WantedBy=multi-user.target

View File

@ -0,0 +1,15 @@
[Unit]
Description=Attach /dev/ttyS1 to BlueZ stack
ConditionPathExists=/dev/ttyS1
Wants=bluetooth.service
Before=bluetooth.service
After=dev-ttyS1.device
[Service]
Type=simple
ExecStartPre=/usr/sbin/rfkill unblock bluetooth
ExecStart=/usr/local/bin/rtk_hciattach -n -s 115200 ttyS1 rtk_h5
ExecStopPost=/usr/sbin/rfkill block bluetooth
[Install]
WantedBy=multi-user.target

View File

@ -0,0 +1,208 @@
#!/bin/sh
hpd_state=`cat /sys/class/amhdmitx/amhdmitx0/hpd_state`
#bpp=24
bpp=32
mode=${1:-720p60hz}
#mode=2160p60hz
#mode=720p60hz
if [ $hpd_state -eq 0 ]; then
# Exit if HDMI cable is not connected
exit 0
fi
common_display_setup() {
M="0 0 $(($X - 1)) $(($Y - 1))"
Y_VIRT=$(($Y * 2))
fbset -fb /dev/fb0 -g $X $Y $X $Y_VIRT $bpp
echo null > /sys/class/display/mode
echo $mode > /sys/class/display/mode
echo $M > /sys/class/graphics/fb0/free_scale_axis
echo $M > /sys/class/graphics/fb0/window_axis
echo 0 > /sys/class/graphics/fb0/free_scale
echo 1 > /sys/class/graphics/fb0/freescale_mode
}
case $mode in
480*)
export X=720
export Y=480
;;
576*)
export X=720
export Y=576
;;
720p*)
export X=1280
export Y=720
;;
1080*)
export X=1920
export Y=1080
;;
2160p*)
export X=3840
export Y=2160
;;
smpte24hz*)
export X=3840
export Y=2160
;;
640x480p60hz*)
export X=640
export Y=480
;;
800x480p60hz*)
export X=800
export Y=480
;;
800x600p60hz*)
export X=800
export Y=600
;;
1024x600p60hz*)
export X=1024
export Y=600
;;
1024x768p60hz*)
export X=1024
export Y=768
;;
1280x800p60hz*)
export X=1280
export Y=800
;;
1280x960p60hz*)
export X=1280
export Y=960
;;
1280x1024p60hz*)
export X=1280
export Y=1024
;;
1360x768p60hz*)
export X=1360
export Y=768
;;
1400x1050p60hz*)
export X=1400
export Y=1050
;;
1440x900p60hz*)
export X=1440
export Y=900
;;
1600x900p60hz*)
export X=1600
export Y=900
;;
1680x1050p60hz*)
export X=1680
export Y=1050
;;
1600x1200p60hz*)
export X=1600
export Y=1200
;;
1920x1200p60hz*)
export X=1920
export Y=1200
;;
2560x1080p60hz*)
export X=2560
export Y=1080
;;
2560x1440p60hz*)
export X=2560
export Y=1440
;;
2560x1600p60hz*)
export X=2560
export Y=1600
;;
3440x1440p60hz*)
export X=3440
export Y=1440
;;
*)
exit 2
;;
esac
common_display_setup
# Enable framebuffer device
echo 0 > /sys/class/graphics/fb0/blank
# Blank fb1 to prevent static noise
echo 1 > /sys/class/graphics/fb1/blank
if ! which lightdm; then
echo 1 > /sys/devices/virtual/graphics/fbcon/cursor_blink
else
echo 0 > /sys/devices/virtual/graphics/fbcon/cursor_blink
fi
exit 0
################# manual ######################
# 480 Lines (720x480)
# "480i60hz" Interlaced 60Hz
# "480i_rpt" Interlaced for Rear Projection Televisions 60Hz
# "480p60hz" 480 Progressive 60Hz
# "480p_rpt" 480 Progressive for Rear Projection Televisions 60Hz
# 576 Lines (720x576)
# "576i50hz" Interlaced 50Hz
# "576i_rpt" Interlaced for Rear Projection Televisions 50Hz
# "576p50hz" Progressive 50Hz
# "576p_rpt" Progressive for Rear Projection Televisions 50Hz
# 720 Lines (1280x720)
# "720p50hz" 50Hz
# "720p60hz" 60Hz
# 1080 Lines (1920x1080)
# "1080i60hz" Interlaced 60Hz
# "1080p60hz" Progressive 60Hz
# "1080i50hz" Interlaced 50Hz
# "1080p50hz" Progressive 50Hz
# "1080p24hz" Progressive 24Hz
# 4K (3840x2160)
# "2160p30hz" Progressive 30Hz
# "2160p25hz" Progressive 25Hz
# "2160p24hz" Progressive 24Hz
# "smpte24hz" Progressive 24Hz SMPTE
# "2160p50hz" Progressive 50Hz
# "2160p60hz" Progressive 60Hz
# "2160p50hz420" Progressive 50Hz with YCbCr 4:2:0 (Requires TV/Monitor that supports it)
# "2160p60hz420" Progressive 60Hz with YCbCr 4:2:0 (Requires TV/Monitor that supports it)
### VESA modes ###
# "640x480p60hz"
# "800x480p60hz"
# "800x600p60hz"
# "1024x600p60hz"
# "1024x768p60hz"
# "1280x800p60hz"
# "1280x1024p60hz"
# "1360x768p60hz"
# "1440x900p60hz"
# "1600x900p60hz"
# "1680x1050p60hz"
# "1600x1200p60hz"
# "1920x1200p60hz"
# "2560x1080p60hz"
# "2560x1440p60hz"
# "2560x1600p60hz"
# "3440x1440p60hz"
# HDMI BPP Mode
# "32"
# "24"
# "16"

View File

@ -0,0 +1,60 @@
#!/bin/bash
PIPE="/tmp/hdmi_resolution_pipe"
HDMI_HANDLER="/usr/local/bin/hdmi.sh"
INIT_RES_CONFIG="/var/local/hdmi_resolution"
# Create a pipe for communication with clients
if [[ ! -p "${PIPE}" ]]; then
mkfifo "${PIPE}"
fi
if [[ ! -d ${INIT_RES_CONFIG} ]]; then
mkdir ${INIT_RES_CONFIG}
fi
chmod 777 ${PIPE}
check_resolution() {
resolution="$1"
case $resolution in
*p60hz|*p30hz)
return 0
;;
*)
return -1
;;
esac
}
hdmi_resolution_handler() {
resolution=`echo $1 | awk -F "_" '{print $3}'`
if ! check_resolution $resolution; then
return -1
fi
echo "$resolution" > ${INIT_RES_CONFIG}/resolution
sudo systemctl stop lightdm.service
$HDMI_HANDLER $resolution
sudo systemctl start lightdm.service
}
res=`cat ${INIT_RES_CONFIG}/resolution`
INIT_EVENT="change_resolution_$res"
hdmi_resolution_handler $INIT_EVENT
while true
do
if read EVENT <> "${PIPE}"; then
case $EVENT in
change_resolution_*)
hdmi_resolution_handler $EVENT
;;
esac
fi
done

View File

@ -0,0 +1,85 @@
#!/bin/bash
# Only for desktop
if ! which lightdm; then
exit
fi
source /etc/lsb-release
PIPE="/tmp/hdmi_resolution_pipe"
resolutions=()
tempfile=$(mktemp)
# Create a pipe for communication with clients
if [[ ! -p "${PIPE}" ]]; then
mkfifo "${PIPE}"
fi
chmod 777 ${PIPE}
# Established timings supported
if [ "$DISTRIB_CODENAME" == "focal" ]; then
edid-decode < /sys/class/amhdmitx/amhdmitx0/rawedid | grep "E:" > $tempfile
while read line
do
resolutions+=(`echo $line | grep -v i | awk -F ":" '{print $2}' | awk '{print $1}'`)
done < $tempfile
# Standard timings supported
edid-decode < /sys/class/amhdmitx/amhdmitx0/rawedid | grep "S:" > $tempfile
while read line
do
resolutions+=(`echo $line | grep -v i | awk -F ":" '{print $2}' | awk '{print $1}'`)
done < $tempfile
# CEA modes
edid-decode < /sys/class/amhdmitx/amhdmitx0/rawedid | grep "VIC " > $tempfile
while read line
do
resolutions+=(`echo $line | grep -v i | awk '{print $1}'`)
done < $tempfile
elif [ "$DISTRIB_CODENAME" == "jammy" ]; then
edid-decode < /sys/class/amhdmitx/amhdmitx0/rawedid | grep "S:" > $tempfile
while read line
do
resolutions+=(`echo $line | grep -v i | awk -F ":" '{print $3}' | awk '{print $1}'`)
done < $tempfile
fi
##################
resolutions=(`echo ${resolutions[@]} | tr 'A-Z' 'a-z' | sed s/@/p/g`)
echo ${resolutions[@]} | tr ' ' '\n' > $tempfile
resolutions=(`sort -n -k 1 -k 2 -t x $tempfile | uniq | sed -e s/640x480.*/640x480p60hz/g -e s/720x480.*/480p60hz/g -e s/720x576.*/576p60hz/g -e s/1280x720.*/720p60hz/g -e s/1920x1080.*/1080p60hz/g -e s/3840x2160.*/2160p60hz/g | uniq | tr '\n' ' '`)
current_resolution=`cat /sys/class/display/mode`
res=$(yad --entry "${resolutions[@]}" \
--entry-text=$current_resolution \
--entry-label 'Resolution' \
--title 'HDMI Resolution Setting' \
--width=300 \
--height=50 \
--window-icon=/usr/share/icons/armbian/hdmi_resolution.png)
if [ -z "$res" ] || [ "$res" == "$current_resolution" ]; then
exit
fi
zenity --question --text 'Change the resolution will logout your system, please save your files!' \
--title 'Warning' \
--window-icon /usr/share/icons/armbian/warning.png \
--width=350 \
--height=50
if [ $? -ne 0 ]; then
exit
fi
EVENT="change_resolution_$res"
echo $EVENT > $PIPE
exit

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1 @@
v4l2_test -c 1 -p 0 -F 0 -f 0 -D 0 -R 1 -r 2 -d 2 -N 1000 -n 800 -w 0 -e 1 -I 0 -b /dev/fb0 -v /dev/video0

View File

@ -0,0 +1,85 @@
#!/bin/bash
# Only for desktop
if ! which lightdm; then
exit
fi
source /etc/lsb-release
PIPE="/tmp/hdmi_resolution_pipe"
resolutions=()
tempfile=$(mktemp)
# Create a pipe for communication with clients
if [[ ! -p "${PIPE}" ]]; then
mkfifo "${PIPE}"
fi
chmod 777 ${PIPE}
# Established timings supported
if [ "$DISTRIB_CODENAME" == "focal" ]; then
edid-decode < /sys/class/amhdmitx/amhdmitx0/rawedid | grep "E:" > $tempfile
while read line
do
resolutions+=(`echo $line | grep -v i | awk -F ":" '{print $2}' | awk '{print $1}'`)
done < $tempfile
# Standard timings supported
edid-decode < /sys/class/amhdmitx/amhdmitx0/rawedid | grep "S:" > $tempfile
while read line
do
resolutions+=(`echo $line | grep -v i | awk -F ":" '{print $2}' | awk '{print $1}'`)
done < $tempfile
# CEA modes
edid-decode < /sys/class/amhdmitx/amhdmitx0/rawedid | grep " VIC" | grep -v HDMI > $tempfile
while read line
do
resolutions+=(`echo $line | grep -v i | awk '{print $3}'`)
done < $tempfile
elif [ "$DISTRIB_CODENAME" == "jammy" ]; then
edid-decode < /sys/class/amhdmitx/amhdmitx0/rawedid | grep "S:" > $tempfile
while read line
do
resolutions+=(`echo $line | grep -v i | awk -F ":" '{print $3}' | awk '{print $1}'`)
done < $tempfile
fi
##################
resolutions=(`echo ${resolutions[@]} | tr 'A-Z' 'a-z' | sed s/@/p/g`)
echo ${resolutions[@]} | tr ' ' '\n' > $tempfile
resolutions=(`sort -n -k 1 -k 2 -t x $tempfile | uniq | sed -e s/720x480.*/480p60hz/g -e s/720x576.*/576p60hz/g -e s/1280x720.*/720p60hz/g -e s/1920x1080.*/1080p60hz/g -e s/3840x2160.*/2160p60hz/g | uniq | tr '\n' ' '`)
current_resolution=`cat /sys/class/display/mode`
res=$(yad --entry "${resolutions[@]}" \
--entry-text=$current_resolution \
--entry-label 'Resolution' \
--title 'HDMI Resolution Setting' \
--width=300 \
--height=50 \
--window-icon=/usr/share/icons/armbian/hdmi_resolution.png)
if [ -z "$res" ] || [ "$res" == "$current_resolution" ]; then
exit
fi
zenity --question --text 'Change the resolution will logout your system, please save your files!' \
--title 'Warning' \
--window-icon /usr/share/icons/armbian/warning.png \
--width=350 \
--height=50
if [ $? -ne 0 ]; then
exit
fi
EVENT="change_resolution_$res"
echo $EVENT > $PIPE
exit

View File

@ -0,0 +1,471 @@
From c2466dcbec1a28df9fa2a9e27f551aab1201c90f Mon Sep 17 00:00:00 2001
From: August <2819763+Dangku@users.noreply.github.com>
Date: Mon, 11 Mar 2024 22:04:54 +0800
Subject: [PATCH] bpi mesong12b dtbo for armbian config
Signed-off-by: August <2819763+Dangku@users.noreply.github.com>
---
arch/arm64/boot/dts/amlogic/Makefile | 9 ++--
arch/arm64/boot/dts/amlogic/overlay/Makefile | 47 +++++++++++++++++++
.../bpi-cm4io-ds3231.dts} | 0
.../bpi-cm4io-hifi_pcm5102a.dts} | 0
.../bpi-cm4io-hifi_pcm5122.dts} | 0
.../i2c2.dts => overlay/bpi-cm4io-i2c2.dts} | 0
.../bpi-cm4io-i2smic.dts} | 0
.../bpi-cm4io-i2smic_bpicm4io.dts} | 0
.../bpi-cm4io-os08a10.dts} | 0
.../bpi-cm4io-otg-device.dts} | 0
.../bpi-cm4io-otg-host.dts} | 0
.../bpi-cm4io-pwm_c-beeper.dts} | 0
.../bpi-cm4io-pwm_cd-c.dts} | 0
.../bpi-cm4io-pwm_cd.dts} | 0
.../bpi-cm4io-pwm_ef-f.dts} | 0
.../spi0.dts => overlay/bpi-cm4io-spi0.dts} | 0
.../bpi-cm4io-spi0_flash.dts} | 0
.../uart2.dts => overlay/bpi-cm4io-uart2.dts} | 0
.../bpi-cm4io-waveshare_hdmi35_tp.dts} | 0
.../bpi-cm4io-waveshare_tft24_lcd.dts} | 0
.../bpi-cm4io-waveshare_tft35c_lcd.dts} | 0
.../bpi-cm4io-waveshare_tft35c_rtp.dts} | 0
.../ds3231.dts => overlay/bpi-m2s-ds3231.dts} | 0
.../bpi-m2s-hifi_pcm5102a.dts} | 0
.../bpi-m2s-hifi_pcm5122.dts} | 0
.../m2s/i2c1.dts => overlay/bpi-m2s-i2c1.dts} | 0
.../m2s/i2c2.dts => overlay/bpi-m2s-i2c2.dts} | 0
.../m2s/i2s.dts => overlay/bpi-m2s-i2s.dts} | 0
.../i2smic.dts => overlay/bpi-m2s-i2smic.dts} | 0
.../bpi-m2s-os08a10.dts} | 0
.../bpi-m2s-otg-device.dts} | 0
.../bpi-m2s-otg-host.dts} | 0
.../pdmmic.dts => overlay/bpi-m2s-pdmmic.dts} | 0
.../bpi-m2s-pwm_c-beeper.dts} | 0
.../bpi-m2s-pwm_cd-c.dts} | 0
.../pwm_cd.dts => overlay/bpi-m2s-pwm_cd.dts} | 0
.../bpi-m2s-pwm_ef-f.dts} | 0
.../pwm_ef.dts => overlay/bpi-m2s-pwm_ef.dts} | 0
.../m2s/sdio.dts => overlay/bpi-m2s-sdio.dts} | 0
.../m2s/spi0.dts => overlay/bpi-m2s-spi0.dts} | 0
.../bpi-m2s-spi0_flash.dts} | 0
.../uart1.dts => overlay/bpi-m2s-uart1.dts} | 0
.../bpi-m2s-uart1_cts_rts.dts} | 0
.../uart2.dts => overlay/bpi-m2s-uart2.dts} | 0
.../bpi-m2s-waveshare_tft24_lcd.dts} | 0
.../bpi-m2s-waveshare_tft35c_lcd.dts} | 0
.../bpi-m2s-waveshare_tft35c_rtp.dts} | 0
.../bpi-m2s-wifi_bt_rtl8822cs.dts} | 0
arch/arm64/boot/dts/amlogic/overlays/bpi-cm4 | 1 -
arch/arm64/boot/dts/amlogic/overlays/bpi-m2s | 1 -
.../boot/dts/amlogic/overlays/cm4io/Makefile | 23 ---------
.../boot/dts/amlogic/overlays/m2s/Makefile | 26 ----------
52 files changed, 52 insertions(+), 55 deletions(-)
create mode 100644 arch/arm64/boot/dts/amlogic/overlay/Makefile
rename arch/arm64/boot/dts/amlogic/{overlays/cm4io/ds3231.dts => overlay/bpi-cm4io-ds3231.dts} (100%)
rename arch/arm64/boot/dts/amlogic/{overlays/cm4io/hifi_pcm5102a.dts => overlay/bpi-cm4io-hifi_pcm5102a.dts} (100%)
rename arch/arm64/boot/dts/amlogic/{overlays/cm4io/hifi_pcm5122.dts => overlay/bpi-cm4io-hifi_pcm5122.dts} (100%)
rename arch/arm64/boot/dts/amlogic/{overlays/cm4io/i2c2.dts => overlay/bpi-cm4io-i2c2.dts} (100%)
rename arch/arm64/boot/dts/amlogic/{overlays/cm4io/i2smic.dts => overlay/bpi-cm4io-i2smic.dts} (100%)
rename arch/arm64/boot/dts/amlogic/{overlays/cm4io/i2smic_bpicm4io.dts => overlay/bpi-cm4io-i2smic_bpicm4io.dts} (100%)
rename arch/arm64/boot/dts/amlogic/{overlays/cm4io/os08a10.dts => overlay/bpi-cm4io-os08a10.dts} (100%)
rename arch/arm64/boot/dts/amlogic/{overlays/cm4io/otg-device.dts => overlay/bpi-cm4io-otg-device.dts} (100%)
rename arch/arm64/boot/dts/amlogic/{overlays/cm4io/otg-host.dts => overlay/bpi-cm4io-otg-host.dts} (100%)
rename arch/arm64/boot/dts/amlogic/{overlays/cm4io/pwm_c-beeper.dts => overlay/bpi-cm4io-pwm_c-beeper.dts} (100%)
rename arch/arm64/boot/dts/amlogic/{overlays/cm4io/pwm_cd-c.dts => overlay/bpi-cm4io-pwm_cd-c.dts} (100%)
rename arch/arm64/boot/dts/amlogic/{overlays/cm4io/pwm_cd.dts => overlay/bpi-cm4io-pwm_cd.dts} (100%)
rename arch/arm64/boot/dts/amlogic/{overlays/cm4io/pwm_ef-f.dts => overlay/bpi-cm4io-pwm_ef-f.dts} (100%)
rename arch/arm64/boot/dts/amlogic/{overlays/cm4io/spi0.dts => overlay/bpi-cm4io-spi0.dts} (100%)
rename arch/arm64/boot/dts/amlogic/{overlays/cm4io/spi0_flash.dts => overlay/bpi-cm4io-spi0_flash.dts} (100%)
rename arch/arm64/boot/dts/amlogic/{overlays/cm4io/uart2.dts => overlay/bpi-cm4io-uart2.dts} (100%)
rename arch/arm64/boot/dts/amlogic/{overlays/cm4io/waveshare_hdmi35_tp.dts => overlay/bpi-cm4io-waveshare_hdmi35_tp.dts} (100%)
rename arch/arm64/boot/dts/amlogic/{overlays/cm4io/waveshare_tft24_lcd.dts => overlay/bpi-cm4io-waveshare_tft24_lcd.dts} (100%)
rename arch/arm64/boot/dts/amlogic/{overlays/cm4io/waveshare_tft35c_lcd.dts => overlay/bpi-cm4io-waveshare_tft35c_lcd.dts} (100%)
rename arch/arm64/boot/dts/amlogic/{overlays/cm4io/waveshare_tft35c_rtp.dts => overlay/bpi-cm4io-waveshare_tft35c_rtp.dts} (100%)
rename arch/arm64/boot/dts/amlogic/{overlays/m2s/ds3231.dts => overlay/bpi-m2s-ds3231.dts} (100%)
mode change 100755 => 100644
rename arch/arm64/boot/dts/amlogic/{overlays/m2s/hifi_pcm5102a.dts => overlay/bpi-m2s-hifi_pcm5102a.dts} (100%)
mode change 100755 => 100644
rename arch/arm64/boot/dts/amlogic/{overlays/m2s/hifi_pcm5122.dts => overlay/bpi-m2s-hifi_pcm5122.dts} (100%)
mode change 100755 => 100644
rename arch/arm64/boot/dts/amlogic/{overlays/m2s/i2c1.dts => overlay/bpi-m2s-i2c1.dts} (100%)
rename arch/arm64/boot/dts/amlogic/{overlays/m2s/i2c2.dts => overlay/bpi-m2s-i2c2.dts} (100%)
rename arch/arm64/boot/dts/amlogic/{overlays/m2s/i2s.dts => overlay/bpi-m2s-i2s.dts} (100%)
rename arch/arm64/boot/dts/amlogic/{overlays/m2s/i2smic.dts => overlay/bpi-m2s-i2smic.dts} (100%)
mode change 100755 => 100644
rename arch/arm64/boot/dts/amlogic/{overlays/m2s/os08a10.dts => overlay/bpi-m2s-os08a10.dts} (100%)
rename arch/arm64/boot/dts/amlogic/{overlays/m2s/otg-device.dts => overlay/bpi-m2s-otg-device.dts} (100%)
rename arch/arm64/boot/dts/amlogic/{overlays/m2s/otg-host.dts => overlay/bpi-m2s-otg-host.dts} (100%)
rename arch/arm64/boot/dts/amlogic/{overlays/m2s/pdmmic.dts => overlay/bpi-m2s-pdmmic.dts} (100%)
mode change 100755 => 100644
rename arch/arm64/boot/dts/amlogic/{overlays/m2s/pwm_c-beeper.dts => overlay/bpi-m2s-pwm_c-beeper.dts} (100%)
rename arch/arm64/boot/dts/amlogic/{overlays/m2s/pwm_cd-c.dts => overlay/bpi-m2s-pwm_cd-c.dts} (100%)
rename arch/arm64/boot/dts/amlogic/{overlays/m2s/pwm_cd.dts => overlay/bpi-m2s-pwm_cd.dts} (100%)
rename arch/arm64/boot/dts/amlogic/{overlays/m2s/pwm_ef-f.dts => overlay/bpi-m2s-pwm_ef-f.dts} (100%)
rename arch/arm64/boot/dts/amlogic/{overlays/m2s/pwm_ef.dts => overlay/bpi-m2s-pwm_ef.dts} (100%)
rename arch/arm64/boot/dts/amlogic/{overlays/m2s/sdio.dts => overlay/bpi-m2s-sdio.dts} (100%)
rename arch/arm64/boot/dts/amlogic/{overlays/m2s/spi0.dts => overlay/bpi-m2s-spi0.dts} (100%)
rename arch/arm64/boot/dts/amlogic/{overlays/m2s/spi0_flash.dts => overlay/bpi-m2s-spi0_flash.dts} (100%)
rename arch/arm64/boot/dts/amlogic/{overlays/m2s/uart1.dts => overlay/bpi-m2s-uart1.dts} (100%)
rename arch/arm64/boot/dts/amlogic/{overlays/m2s/uart1_cts_rts.dts => overlay/bpi-m2s-uart1_cts_rts.dts} (100%)
rename arch/arm64/boot/dts/amlogic/{overlays/m2s/uart2.dts => overlay/bpi-m2s-uart2.dts} (100%)
rename arch/arm64/boot/dts/amlogic/{overlays/m2s/waveshare_tft24_lcd.dts => overlay/bpi-m2s-waveshare_tft24_lcd.dts} (100%)
mode change 100755 => 100644
rename arch/arm64/boot/dts/amlogic/{overlays/m2s/waveshare_tft35c_lcd.dts => overlay/bpi-m2s-waveshare_tft35c_lcd.dts} (100%)
mode change 100755 => 100644
rename arch/arm64/boot/dts/amlogic/{overlays/m2s/waveshare_tft35c_rtp.dts => overlay/bpi-m2s-waveshare_tft35c_rtp.dts} (100%)
mode change 100755 => 100644
rename arch/arm64/boot/dts/amlogic/{overlays/m2s/wifi_bt_rtl8822cs.dts => overlay/bpi-m2s-wifi_bt_rtl8822cs.dts} (100%)
delete mode 120000 arch/arm64/boot/dts/amlogic/overlays/bpi-cm4
delete mode 120000 arch/arm64/boot/dts/amlogic/overlays/bpi-m2s
delete mode 100644 arch/arm64/boot/dts/amlogic/overlays/cm4io/Makefile
delete mode 100644 arch/arm64/boot/dts/amlogic/overlays/m2s/Makefile
diff --git a/arch/arm64/boot/dts/amlogic/Makefile b/arch/arm64/boot/dts/amlogic/Makefile
index 4656976e08fe..6fcba2528c7f 100644
--- a/arch/arm64/boot/dts/amlogic/Makefile
+++ b/arch/arm64/boot/dts/amlogic/Makefile
@@ -3,8 +3,9 @@ dtb-$(CONFIG_ARCH_BANANAPI_M2S) += bananapi_m2s.dtb \
dtb-$(CONFIG_ARCH_BANANAPI_CM4) += bananapi_cm4io.dtb \
raspberrypi_cm4io.dtb
-always := $(dtb-y)
-subdir-y := $(dts-dirs)
-subdir-$(CONFIG_ARCH_BANANAPI_M2S) += overlays/m2s
-subdir-$(CONFIG_ARCH_BANANAPI_CM4) += overlays/cm4io
+always := $(dtb-y)
+subdir-y := $(dts-dirs)
+
+subdir-y += overlay
+
clean-files := *.dtb *.dtbo
diff --git a/arch/arm64/boot/dts/amlogic/overlay/Makefile b/arch/arm64/boot/dts/amlogic/overlay/Makefile
new file mode 100644
index 000000000000..ba85570b172c
--- /dev/null
+++ b/arch/arm64/boot/dts/amlogic/overlay/Makefile
@@ -0,0 +1,47 @@
+dtbo-$(CONFIG_ARCH_BANANAPI_M2S) += bpi-m2s-i2c1.dtbo \
+ bpi-m2s-i2c2.dtbo \
+ bpi-m2s-i2s.dtbo \
+ bpi-m2s-os08a10.dtbo \
+ bpi-m2s-pwm_c-beeper.dtbo \
+ bpi-m2s-pwm_cd-c.dtbo \
+ bpi-m2s-pwm_cd.dtbo \
+ bpi-m2s-pwm_ef.dtbo \
+ bpi-m2s-pwm_ef-f.dtbo \
+ bpi-m2s-sdio.dtbo \
+ bpi-m2s-spi0.dtbo \
+ bpi-m2s-spi0_flash.dtbo \
+ bpi-m2s-uart1_cts_rts.dtbo \
+ bpi-m2s-uart1.dtbo \
+ bpi-m2s-uart2.dtbo \
+ bpi-m2s-wifi_bt_rtl8822cs.dtbo \
+ bpi-m2s-waveshare_tft35c_lcd.dtbo \
+ bpi-m2s-waveshare_tft24_lcd.dtbo \
+ bpi-m2s-hifi_pcm5122.dtbo \
+ bpi-m2s-i2smic.dtbo \
+ bpi-m2s-pdmmic.dtbo \
+ bpi-m2s-otg-device.dtbo \
+ bpi-m2s-otg-host.dtbo
+
+dtbo-$(CONFIG_ARCH_BANANAPI_CM4) += bpi-cm4io-i2c2.dtbo \
+ bpi-cm4io-uart2.dtbo \
+ bpi-cm4io-spi0.dtbo \
+ bpi-cm4io-spi0_flash.dtbo \
+ bpi-cm4io-os08a10.dtbo \
+ bpi-cm4io-pwm_cd.dtbo \
+ bpi-cm4io-pwm_cd-c.dtbo \
+ bpi-cm4io-pwm_c-beeper.dtbo \
+ bpi-cm4io-pwm_ef-f.dtbo \
+ bpi-cm4io-i2smic.dtbo \
+ bpi-cm4io-i2smic_bpicm4io.dtbo \
+ bpi-cm4io-ds3231.dtbo \
+ bpi-cm4io-hifi_pcm5102a.dtbo \
+ bpi-cm4io-hifi_pcm5122.dtbo \
+ bpi-cm4io-waveshare_tft24_lcd.dtbo \
+ bpi-cm4io-waveshare_tft35c_lcd.dtbo \
+ bpi-cm4io-waveshare_tft35c_rtp.dtbo \
+ bpi-cm4io-waveshare_hdmi35_tp.dtbo \
+ bpi-cm4io-otg-device.dtbo \
+ bpi-cm4io-otg-host.dtbo
+
+targets += $(dtbo-y)
+always := $(dtbo-y)
diff --git a/arch/arm64/boot/dts/amlogic/overlays/cm4io/ds3231.dts b/arch/arm64/boot/dts/amlogic/overlay/bpi-cm4io-ds3231.dts
similarity index 100%
rename from arch/arm64/boot/dts/amlogic/overlays/cm4io/ds3231.dts
rename to arch/arm64/boot/dts/amlogic/overlay/bpi-cm4io-ds3231.dts
diff --git a/arch/arm64/boot/dts/amlogic/overlays/cm4io/hifi_pcm5102a.dts b/arch/arm64/boot/dts/amlogic/overlay/bpi-cm4io-hifi_pcm5102a.dts
similarity index 100%
rename from arch/arm64/boot/dts/amlogic/overlays/cm4io/hifi_pcm5102a.dts
rename to arch/arm64/boot/dts/amlogic/overlay/bpi-cm4io-hifi_pcm5102a.dts
diff --git a/arch/arm64/boot/dts/amlogic/overlays/cm4io/hifi_pcm5122.dts b/arch/arm64/boot/dts/amlogic/overlay/bpi-cm4io-hifi_pcm5122.dts
similarity index 100%
rename from arch/arm64/boot/dts/amlogic/overlays/cm4io/hifi_pcm5122.dts
rename to arch/arm64/boot/dts/amlogic/overlay/bpi-cm4io-hifi_pcm5122.dts
diff --git a/arch/arm64/boot/dts/amlogic/overlays/cm4io/i2c2.dts b/arch/arm64/boot/dts/amlogic/overlay/bpi-cm4io-i2c2.dts
similarity index 100%
rename from arch/arm64/boot/dts/amlogic/overlays/cm4io/i2c2.dts
rename to arch/arm64/boot/dts/amlogic/overlay/bpi-cm4io-i2c2.dts
diff --git a/arch/arm64/boot/dts/amlogic/overlays/cm4io/i2smic.dts b/arch/arm64/boot/dts/amlogic/overlay/bpi-cm4io-i2smic.dts
similarity index 100%
rename from arch/arm64/boot/dts/amlogic/overlays/cm4io/i2smic.dts
rename to arch/arm64/boot/dts/amlogic/overlay/bpi-cm4io-i2smic.dts
diff --git a/arch/arm64/boot/dts/amlogic/overlays/cm4io/i2smic_bpicm4io.dts b/arch/arm64/boot/dts/amlogic/overlay/bpi-cm4io-i2smic_bpicm4io.dts
similarity index 100%
rename from arch/arm64/boot/dts/amlogic/overlays/cm4io/i2smic_bpicm4io.dts
rename to arch/arm64/boot/dts/amlogic/overlay/bpi-cm4io-i2smic_bpicm4io.dts
diff --git a/arch/arm64/boot/dts/amlogic/overlays/cm4io/os08a10.dts b/arch/arm64/boot/dts/amlogic/overlay/bpi-cm4io-os08a10.dts
similarity index 100%
rename from arch/arm64/boot/dts/amlogic/overlays/cm4io/os08a10.dts
rename to arch/arm64/boot/dts/amlogic/overlay/bpi-cm4io-os08a10.dts
diff --git a/arch/arm64/boot/dts/amlogic/overlays/cm4io/otg-device.dts b/arch/arm64/boot/dts/amlogic/overlay/bpi-cm4io-otg-device.dts
similarity index 100%
rename from arch/arm64/boot/dts/amlogic/overlays/cm4io/otg-device.dts
rename to arch/arm64/boot/dts/amlogic/overlay/bpi-cm4io-otg-device.dts
diff --git a/arch/arm64/boot/dts/amlogic/overlays/cm4io/otg-host.dts b/arch/arm64/boot/dts/amlogic/overlay/bpi-cm4io-otg-host.dts
similarity index 100%
rename from arch/arm64/boot/dts/amlogic/overlays/cm4io/otg-host.dts
rename to arch/arm64/boot/dts/amlogic/overlay/bpi-cm4io-otg-host.dts
diff --git a/arch/arm64/boot/dts/amlogic/overlays/cm4io/pwm_c-beeper.dts b/arch/arm64/boot/dts/amlogic/overlay/bpi-cm4io-pwm_c-beeper.dts
similarity index 100%
rename from arch/arm64/boot/dts/amlogic/overlays/cm4io/pwm_c-beeper.dts
rename to arch/arm64/boot/dts/amlogic/overlay/bpi-cm4io-pwm_c-beeper.dts
diff --git a/arch/arm64/boot/dts/amlogic/overlays/cm4io/pwm_cd-c.dts b/arch/arm64/boot/dts/amlogic/overlay/bpi-cm4io-pwm_cd-c.dts
similarity index 100%
rename from arch/arm64/boot/dts/amlogic/overlays/cm4io/pwm_cd-c.dts
rename to arch/arm64/boot/dts/amlogic/overlay/bpi-cm4io-pwm_cd-c.dts
diff --git a/arch/arm64/boot/dts/amlogic/overlays/cm4io/pwm_cd.dts b/arch/arm64/boot/dts/amlogic/overlay/bpi-cm4io-pwm_cd.dts
similarity index 100%
rename from arch/arm64/boot/dts/amlogic/overlays/cm4io/pwm_cd.dts
rename to arch/arm64/boot/dts/amlogic/overlay/bpi-cm4io-pwm_cd.dts
diff --git a/arch/arm64/boot/dts/amlogic/overlays/cm4io/pwm_ef-f.dts b/arch/arm64/boot/dts/amlogic/overlay/bpi-cm4io-pwm_ef-f.dts
similarity index 100%
rename from arch/arm64/boot/dts/amlogic/overlays/cm4io/pwm_ef-f.dts
rename to arch/arm64/boot/dts/amlogic/overlay/bpi-cm4io-pwm_ef-f.dts
diff --git a/arch/arm64/boot/dts/amlogic/overlays/cm4io/spi0.dts b/arch/arm64/boot/dts/amlogic/overlay/bpi-cm4io-spi0.dts
similarity index 100%
rename from arch/arm64/boot/dts/amlogic/overlays/cm4io/spi0.dts
rename to arch/arm64/boot/dts/amlogic/overlay/bpi-cm4io-spi0.dts
diff --git a/arch/arm64/boot/dts/amlogic/overlays/cm4io/spi0_flash.dts b/arch/arm64/boot/dts/amlogic/overlay/bpi-cm4io-spi0_flash.dts
similarity index 100%
rename from arch/arm64/boot/dts/amlogic/overlays/cm4io/spi0_flash.dts
rename to arch/arm64/boot/dts/amlogic/overlay/bpi-cm4io-spi0_flash.dts
diff --git a/arch/arm64/boot/dts/amlogic/overlays/cm4io/uart2.dts b/arch/arm64/boot/dts/amlogic/overlay/bpi-cm4io-uart2.dts
similarity index 100%
rename from arch/arm64/boot/dts/amlogic/overlays/cm4io/uart2.dts
rename to arch/arm64/boot/dts/amlogic/overlay/bpi-cm4io-uart2.dts
diff --git a/arch/arm64/boot/dts/amlogic/overlays/cm4io/waveshare_hdmi35_tp.dts b/arch/arm64/boot/dts/amlogic/overlay/bpi-cm4io-waveshare_hdmi35_tp.dts
similarity index 100%
rename from arch/arm64/boot/dts/amlogic/overlays/cm4io/waveshare_hdmi35_tp.dts
rename to arch/arm64/boot/dts/amlogic/overlay/bpi-cm4io-waveshare_hdmi35_tp.dts
diff --git a/arch/arm64/boot/dts/amlogic/overlays/cm4io/waveshare_tft24_lcd.dts b/arch/arm64/boot/dts/amlogic/overlay/bpi-cm4io-waveshare_tft24_lcd.dts
similarity index 100%
rename from arch/arm64/boot/dts/amlogic/overlays/cm4io/waveshare_tft24_lcd.dts
rename to arch/arm64/boot/dts/amlogic/overlay/bpi-cm4io-waveshare_tft24_lcd.dts
diff --git a/arch/arm64/boot/dts/amlogic/overlays/cm4io/waveshare_tft35c_lcd.dts b/arch/arm64/boot/dts/amlogic/overlay/bpi-cm4io-waveshare_tft35c_lcd.dts
similarity index 100%
rename from arch/arm64/boot/dts/amlogic/overlays/cm4io/waveshare_tft35c_lcd.dts
rename to arch/arm64/boot/dts/amlogic/overlay/bpi-cm4io-waveshare_tft35c_lcd.dts
diff --git a/arch/arm64/boot/dts/amlogic/overlays/cm4io/waveshare_tft35c_rtp.dts b/arch/arm64/boot/dts/amlogic/overlay/bpi-cm4io-waveshare_tft35c_rtp.dts
similarity index 100%
rename from arch/arm64/boot/dts/amlogic/overlays/cm4io/waveshare_tft35c_rtp.dts
rename to arch/arm64/boot/dts/amlogic/overlay/bpi-cm4io-waveshare_tft35c_rtp.dts
diff --git a/arch/arm64/boot/dts/amlogic/overlays/m2s/ds3231.dts b/arch/arm64/boot/dts/amlogic/overlay/bpi-m2s-ds3231.dts
old mode 100755
new mode 100644
similarity index 100%
rename from arch/arm64/boot/dts/amlogic/overlays/m2s/ds3231.dts
rename to arch/arm64/boot/dts/amlogic/overlay/bpi-m2s-ds3231.dts
diff --git a/arch/arm64/boot/dts/amlogic/overlays/m2s/hifi_pcm5102a.dts b/arch/arm64/boot/dts/amlogic/overlay/bpi-m2s-hifi_pcm5102a.dts
old mode 100755
new mode 100644
similarity index 100%
rename from arch/arm64/boot/dts/amlogic/overlays/m2s/hifi_pcm5102a.dts
rename to arch/arm64/boot/dts/amlogic/overlay/bpi-m2s-hifi_pcm5102a.dts
diff --git a/arch/arm64/boot/dts/amlogic/overlays/m2s/hifi_pcm5122.dts b/arch/arm64/boot/dts/amlogic/overlay/bpi-m2s-hifi_pcm5122.dts
old mode 100755
new mode 100644
similarity index 100%
rename from arch/arm64/boot/dts/amlogic/overlays/m2s/hifi_pcm5122.dts
rename to arch/arm64/boot/dts/amlogic/overlay/bpi-m2s-hifi_pcm5122.dts
diff --git a/arch/arm64/boot/dts/amlogic/overlays/m2s/i2c1.dts b/arch/arm64/boot/dts/amlogic/overlay/bpi-m2s-i2c1.dts
similarity index 100%
rename from arch/arm64/boot/dts/amlogic/overlays/m2s/i2c1.dts
rename to arch/arm64/boot/dts/amlogic/overlay/bpi-m2s-i2c1.dts
diff --git a/arch/arm64/boot/dts/amlogic/overlays/m2s/i2c2.dts b/arch/arm64/boot/dts/amlogic/overlay/bpi-m2s-i2c2.dts
similarity index 100%
rename from arch/arm64/boot/dts/amlogic/overlays/m2s/i2c2.dts
rename to arch/arm64/boot/dts/amlogic/overlay/bpi-m2s-i2c2.dts
diff --git a/arch/arm64/boot/dts/amlogic/overlays/m2s/i2s.dts b/arch/arm64/boot/dts/amlogic/overlay/bpi-m2s-i2s.dts
similarity index 100%
rename from arch/arm64/boot/dts/amlogic/overlays/m2s/i2s.dts
rename to arch/arm64/boot/dts/amlogic/overlay/bpi-m2s-i2s.dts
diff --git a/arch/arm64/boot/dts/amlogic/overlays/m2s/i2smic.dts b/arch/arm64/boot/dts/amlogic/overlay/bpi-m2s-i2smic.dts
old mode 100755
new mode 100644
similarity index 100%
rename from arch/arm64/boot/dts/amlogic/overlays/m2s/i2smic.dts
rename to arch/arm64/boot/dts/amlogic/overlay/bpi-m2s-i2smic.dts
diff --git a/arch/arm64/boot/dts/amlogic/overlays/m2s/os08a10.dts b/arch/arm64/boot/dts/amlogic/overlay/bpi-m2s-os08a10.dts
similarity index 100%
rename from arch/arm64/boot/dts/amlogic/overlays/m2s/os08a10.dts
rename to arch/arm64/boot/dts/amlogic/overlay/bpi-m2s-os08a10.dts
diff --git a/arch/arm64/boot/dts/amlogic/overlays/m2s/otg-device.dts b/arch/arm64/boot/dts/amlogic/overlay/bpi-m2s-otg-device.dts
similarity index 100%
rename from arch/arm64/boot/dts/amlogic/overlays/m2s/otg-device.dts
rename to arch/arm64/boot/dts/amlogic/overlay/bpi-m2s-otg-device.dts
diff --git a/arch/arm64/boot/dts/amlogic/overlays/m2s/otg-host.dts b/arch/arm64/boot/dts/amlogic/overlay/bpi-m2s-otg-host.dts
similarity index 100%
rename from arch/arm64/boot/dts/amlogic/overlays/m2s/otg-host.dts
rename to arch/arm64/boot/dts/amlogic/overlay/bpi-m2s-otg-host.dts
diff --git a/arch/arm64/boot/dts/amlogic/overlays/m2s/pdmmic.dts b/arch/arm64/boot/dts/amlogic/overlay/bpi-m2s-pdmmic.dts
old mode 100755
new mode 100644
similarity index 100%
rename from arch/arm64/boot/dts/amlogic/overlays/m2s/pdmmic.dts
rename to arch/arm64/boot/dts/amlogic/overlay/bpi-m2s-pdmmic.dts
diff --git a/arch/arm64/boot/dts/amlogic/overlays/m2s/pwm_c-beeper.dts b/arch/arm64/boot/dts/amlogic/overlay/bpi-m2s-pwm_c-beeper.dts
similarity index 100%
rename from arch/arm64/boot/dts/amlogic/overlays/m2s/pwm_c-beeper.dts
rename to arch/arm64/boot/dts/amlogic/overlay/bpi-m2s-pwm_c-beeper.dts
diff --git a/arch/arm64/boot/dts/amlogic/overlays/m2s/pwm_cd-c.dts b/arch/arm64/boot/dts/amlogic/overlay/bpi-m2s-pwm_cd-c.dts
similarity index 100%
rename from arch/arm64/boot/dts/amlogic/overlays/m2s/pwm_cd-c.dts
rename to arch/arm64/boot/dts/amlogic/overlay/bpi-m2s-pwm_cd-c.dts
diff --git a/arch/arm64/boot/dts/amlogic/overlays/m2s/pwm_cd.dts b/arch/arm64/boot/dts/amlogic/overlay/bpi-m2s-pwm_cd.dts
similarity index 100%
rename from arch/arm64/boot/dts/amlogic/overlays/m2s/pwm_cd.dts
rename to arch/arm64/boot/dts/amlogic/overlay/bpi-m2s-pwm_cd.dts
diff --git a/arch/arm64/boot/dts/amlogic/overlays/m2s/pwm_ef-f.dts b/arch/arm64/boot/dts/amlogic/overlay/bpi-m2s-pwm_ef-f.dts
similarity index 100%
rename from arch/arm64/boot/dts/amlogic/overlays/m2s/pwm_ef-f.dts
rename to arch/arm64/boot/dts/amlogic/overlay/bpi-m2s-pwm_ef-f.dts
diff --git a/arch/arm64/boot/dts/amlogic/overlays/m2s/pwm_ef.dts b/arch/arm64/boot/dts/amlogic/overlay/bpi-m2s-pwm_ef.dts
similarity index 100%
rename from arch/arm64/boot/dts/amlogic/overlays/m2s/pwm_ef.dts
rename to arch/arm64/boot/dts/amlogic/overlay/bpi-m2s-pwm_ef.dts
diff --git a/arch/arm64/boot/dts/amlogic/overlays/m2s/sdio.dts b/arch/arm64/boot/dts/amlogic/overlay/bpi-m2s-sdio.dts
similarity index 100%
rename from arch/arm64/boot/dts/amlogic/overlays/m2s/sdio.dts
rename to arch/arm64/boot/dts/amlogic/overlay/bpi-m2s-sdio.dts
diff --git a/arch/arm64/boot/dts/amlogic/overlays/m2s/spi0.dts b/arch/arm64/boot/dts/amlogic/overlay/bpi-m2s-spi0.dts
similarity index 100%
rename from arch/arm64/boot/dts/amlogic/overlays/m2s/spi0.dts
rename to arch/arm64/boot/dts/amlogic/overlay/bpi-m2s-spi0.dts
diff --git a/arch/arm64/boot/dts/amlogic/overlays/m2s/spi0_flash.dts b/arch/arm64/boot/dts/amlogic/overlay/bpi-m2s-spi0_flash.dts
similarity index 100%
rename from arch/arm64/boot/dts/amlogic/overlays/m2s/spi0_flash.dts
rename to arch/arm64/boot/dts/amlogic/overlay/bpi-m2s-spi0_flash.dts
diff --git a/arch/arm64/boot/dts/amlogic/overlays/m2s/uart1.dts b/arch/arm64/boot/dts/amlogic/overlay/bpi-m2s-uart1.dts
similarity index 100%
rename from arch/arm64/boot/dts/amlogic/overlays/m2s/uart1.dts
rename to arch/arm64/boot/dts/amlogic/overlay/bpi-m2s-uart1.dts
diff --git a/arch/arm64/boot/dts/amlogic/overlays/m2s/uart1_cts_rts.dts b/arch/arm64/boot/dts/amlogic/overlay/bpi-m2s-uart1_cts_rts.dts
similarity index 100%
rename from arch/arm64/boot/dts/amlogic/overlays/m2s/uart1_cts_rts.dts
rename to arch/arm64/boot/dts/amlogic/overlay/bpi-m2s-uart1_cts_rts.dts
diff --git a/arch/arm64/boot/dts/amlogic/overlays/m2s/uart2.dts b/arch/arm64/boot/dts/amlogic/overlay/bpi-m2s-uart2.dts
similarity index 100%
rename from arch/arm64/boot/dts/amlogic/overlays/m2s/uart2.dts
rename to arch/arm64/boot/dts/amlogic/overlay/bpi-m2s-uart2.dts
diff --git a/arch/arm64/boot/dts/amlogic/overlays/m2s/waveshare_tft24_lcd.dts b/arch/arm64/boot/dts/amlogic/overlay/bpi-m2s-waveshare_tft24_lcd.dts
old mode 100755
new mode 100644
similarity index 100%
rename from arch/arm64/boot/dts/amlogic/overlays/m2s/waveshare_tft24_lcd.dts
rename to arch/arm64/boot/dts/amlogic/overlay/bpi-m2s-waveshare_tft24_lcd.dts
diff --git a/arch/arm64/boot/dts/amlogic/overlays/m2s/waveshare_tft35c_lcd.dts b/arch/arm64/boot/dts/amlogic/overlay/bpi-m2s-waveshare_tft35c_lcd.dts
old mode 100755
new mode 100644
similarity index 100%
rename from arch/arm64/boot/dts/amlogic/overlays/m2s/waveshare_tft35c_lcd.dts
rename to arch/arm64/boot/dts/amlogic/overlay/bpi-m2s-waveshare_tft35c_lcd.dts
diff --git a/arch/arm64/boot/dts/amlogic/overlays/m2s/waveshare_tft35c_rtp.dts b/arch/arm64/boot/dts/amlogic/overlay/bpi-m2s-waveshare_tft35c_rtp.dts
old mode 100755
new mode 100644
similarity index 100%
rename from arch/arm64/boot/dts/amlogic/overlays/m2s/waveshare_tft35c_rtp.dts
rename to arch/arm64/boot/dts/amlogic/overlay/bpi-m2s-waveshare_tft35c_rtp.dts
diff --git a/arch/arm64/boot/dts/amlogic/overlays/m2s/wifi_bt_rtl8822cs.dts b/arch/arm64/boot/dts/amlogic/overlay/bpi-m2s-wifi_bt_rtl8822cs.dts
similarity index 100%
rename from arch/arm64/boot/dts/amlogic/overlays/m2s/wifi_bt_rtl8822cs.dts
rename to arch/arm64/boot/dts/amlogic/overlay/bpi-m2s-wifi_bt_rtl8822cs.dts
diff --git a/arch/arm64/boot/dts/amlogic/overlays/bpi-cm4 b/arch/arm64/boot/dts/amlogic/overlays/bpi-cm4
deleted file mode 120000
index 9d6d80764698..000000000000
--- a/arch/arm64/boot/dts/amlogic/overlays/bpi-cm4
+++ /dev/null
@@ -1 +0,0 @@
-cm4io
\ No newline at end of file
diff --git a/arch/arm64/boot/dts/amlogic/overlays/bpi-m2s b/arch/arm64/boot/dts/amlogic/overlays/bpi-m2s
deleted file mode 120000
index 322db486a728..000000000000
--- a/arch/arm64/boot/dts/amlogic/overlays/bpi-m2s
+++ /dev/null
@@ -1 +0,0 @@
-m2s
\ No newline at end of file
diff --git a/arch/arm64/boot/dts/amlogic/overlays/cm4io/Makefile b/arch/arm64/boot/dts/amlogic/overlays/cm4io/Makefile
deleted file mode 100644
index b8043020ca09..000000000000
--- a/arch/arm64/boot/dts/amlogic/overlays/cm4io/Makefile
+++ /dev/null
@@ -1,23 +0,0 @@
-dtbo-y += i2c2.dtbo \
- uart2.dtbo \
- spi0.dtbo \
- spi0_flash.dtbo \
- os08a10.dtbo \
- pwm_cd.dtbo \
- pwm_cd-c.dtbo \
- pwm_c-beeper.dtbo \
- pwm_ef-f.dtbo \
- i2smic.dtbo \
- i2smic_bpicm4io.dtbo \
- ds3231.dtbo \
- hifi_pcm5102a.dtbo \
- hifi_pcm5122.dtbo \
- waveshare_tft24_lcd.dtbo \
- waveshare_tft35c_lcd.dtbo \
- waveshare_tft35c_rtp.dtbo \
- waveshare_hdmi35_tp.dtbo \
- otg-device.dtbo \
- otg-host.dtbo
-
-targets += $(dtbo-y)
-always := $(dtbo-y)
diff --git a/arch/arm64/boot/dts/amlogic/overlays/m2s/Makefile b/arch/arm64/boot/dts/amlogic/overlays/m2s/Makefile
deleted file mode 100644
index 2be953e9fc47..000000000000
--- a/arch/arm64/boot/dts/amlogic/overlays/m2s/Makefile
+++ /dev/null
@@ -1,26 +0,0 @@
-dtbo-y += i2c1.dtbo \
- i2c2.dtbo \
- i2s.dtbo \
- os08a10.dtbo \
- pwm_c-beeper.dtbo \
- pwm_cd-c.dtbo \
- pwm_cd.dtbo \
- pwm_ef.dtbo \
- pwm_ef-f.dtbo \
- sdio.dtbo \
- spi0.dtbo \
- spi0_flash.dtbo \
- uart1_cts_rts.dtbo \
- uart1.dtbo \
- uart2.dtbo \
- wifi_bt_rtl8822cs.dtbo \
- waveshare_tft35c_lcd.dtbo \
- waveshare_tft24_lcd.dtbo \
- hifi_pcm5122.dtbo \
- i2smic.dtbo \
- pdmmic.dtbo \
- otg-device.dtbo \
- otg-host.dtbo
-
-targets += $(dtbo-y)
-always := $(dtbo-y)
--
2.25.1

View File

@ -0,0 +1,232 @@
From 5734c53c540c7ef6f5d479820829250f31f7662b Mon Sep 17 00:00:00 2001
From: August <2819763+Dangku@users.noreply.github.com>
Date: Mon, 11 Mar 2024 15:29:27 +0800
Subject: [PATCH] bpi mesong12b update buildeb for armbian build
Signed-off-by: August <2819763+Dangku@users.noreply.github.com>
---
scripts/Makefile.dtbinst | 20 +++-----
scripts/package/builddeb | 105 +++++----------------------------------
2 files changed, 20 insertions(+), 105 deletions(-)
diff --git a/scripts/Makefile.dtbinst b/scripts/Makefile.dtbinst
index a1be75d0a5fd..5cc1ddca85e8 100644
--- a/scripts/Makefile.dtbinst
+++ b/scripts/Makefile.dtbinst
@@ -20,14 +20,9 @@ include include/config/auto.conf
include scripts/Kbuild.include
include $(src)/Makefile
-PHONY += __dtbs_install_prep
-__dtbs_install_prep:
-ifeq ("$(dtbinst-root)", "$(obj)")
- $(Q)mkdir -p $(INSTALL_DTBS_PATH)
-endif
-
-dtbinst-files := $(dtb-y)
-dtbinst-dirs := $(dts-dirs)
+dtbinst-files := $(sort $(dtb-y) $(if $(CONFIG_OF_ALL_DTBS), $(dtb-)))
+dtboinst-files := $(sort $(dtbo-y) $(if $(CONFIG_OF_ALL_DTBS), $(dtbo-)))
+dtbinst-dirs := $(subdir-y) $(subdir-m)
# Helper targets for Installing DTBs into the boot directory
quiet_cmd_dtb_install = INSTALL $<
@@ -35,15 +30,16 @@ quiet_cmd_dtb_install = INSTALL $<
install-dir = $(patsubst $(dtbinst-root)%,$(INSTALL_DTBS_PATH)%,$(obj))
-$(dtbinst-files) $(dtbinst-dirs): | __dtbs_install_prep
-
$(dtbinst-files): %.dtb: $(obj)/%.dtb
$(call cmd,dtb_install,$(install-dir))
+$(dtboinst-files): %.dtbo: $(obj)/%.dtbo
+ $(call cmd,dtb_install,$(install-dir))
+
$(dtbinst-dirs):
$(Q)$(MAKE) $(dtbinst)=$(obj)/$@
-PHONY += $(dtbinst-files) $(dtbinst-dirs)
-__dtbs_install: $(dtbinst-files) $(dtbinst-dirs)
+PHONY += $(dtbinst-files) $(dtboinst-files) $(dtbinst-dirs)
+__dtbs_install: $(dtbinst-files) $(dtboinst-files) $(dtbinst-dirs)
.PHONY: $(PHONY)
diff --git a/scripts/package/builddeb b/scripts/package/builddeb
index 65cdd07ca5f7..0a2a7372538c 100644
--- a/scripts/package/builddeb
+++ b/scripts/package/builddeb
@@ -23,38 +23,6 @@ create_package() {
sh -c "cd '$pdir'; find . -type f ! -path './DEBIAN/*' -printf '%P\0' \
| xargs -r0 md5sum > DEBIAN/md5sums"
- # Create preinstall and post install script to remove dtb
- if [[ "$1" == *dtb* ]]; then
- echo "#!/bin/bash" >> $pdir/DEBIAN/postinst
- cat <<-EOF >> $pdir/DEBIAN/postinst
- if [ -d /boot/dtb ]; then rm -rf /boot/dtb; fi
- mv /boot/dtb-$version /boot/dtb
- if [ -f /etc/amlbian-release ]; then
- source /etc/amlbian-release
- case \$BOARD in
- cm4io)
- DTB=bananapi_cm4io.dtb
- ;;
- m2s)
- DTB=bananapi_m2s.dtb
- ;;
- esac
- if [ \$INSTALL_TYPE != EMMC ]; then
- ln -sf dtb/amlogic/\$DTB /boot/dtb.img
- ln -sf dtb/amlogic/overlays/\$BOARD /boot/overlays
- fi
- fi
- exit 0
- EOF
- chmod 775 $pdir/DEBIAN/postinst
- fi
-
- # Create postinstall script for headers
- if [[ "$1" == *headers* ]]; then
- echo "cd /usr/src/linux-headers-$version; echo \"Compiling headers - please wait ...\";find -type f -exec touch {} +; make -s scripts >/dev/null 2>&1" >> $pdir/DEBIAN/postinst
- echo "exit 0" >> $pdir/DEBIAN/postinst
- chmod 775 $pdir/DEBIAN/postinst
- fi
# Fix ownership and permissions
chown -R root:root "$pdir"
chmod -R go-w "$pdir"
@@ -63,7 +31,7 @@ create_package() {
# Create the package
dpkg-gencontrol $forcearch -Vkernel:debarch="${debarch}" -p$pname -P"$pdir"
- dpkg-deb --build -Zxz "$pdir" ..
+ dpkg --build "$pdir" ..
}
set_debarch() {
@@ -127,13 +95,11 @@ tmpdir="$objtree/debian/tmp"
fwdir="$objtree/debian/fwtmp"
kernel_headers_dir="$objtree/debian/hdrtmp"
libc_headers_dir="$objtree/debian/headertmp"
-dtb_dir="$objtree/debian/dtbtmp"
dbg_dir="$objtree/debian/dbgtmp"
-packagename=linux-image"$LOCAL_VERSION"
-fwpackagename=linux-firmware-image"$LOCAL_VERSION"
-kernel_headers_packagename=linux-headers"$LOCAL_VERSION"
-dtb_packagename=linux-dtb"$LOCAL_VERSION"
-libc_headers_packagename=linux-libc-dev"$LOCAL_VERSION"
+packagename=linux-image-$version
+fwpackagename=linux-firmware-image-$version
+kernel_headers_packagename=linux-headers-$version
+libc_headers_packagename=linux-libc-dev
dbg_packagename=$packagename-dbg
debarch=
forcearch=
@@ -160,9 +126,7 @@ esac
BUILD_DEBUG="$(grep -s '^CONFIG_DEBUG_INFO=y' $KCONFIG_CONFIG || true)"
# Setup the directory structure
-rm -rf "$tmpdir" "$fwdir" "$kernel_headers_dir" "$libc_headers_dir" "$dbg_dir" "$dtb_dir" $objtree/debian/files
-mkdir -m 755 -p "$dtb_dir/DEBIAN"
-mkdir -p $dtb_dir/boot/dtb-$version/amlogic/overlays/"$BOARD" "$dtb_dir/usr/share/doc/$dtb_packagename"
+rm -rf "$tmpdir" "$fwdir" "$kernel_headers_dir" "$libc_headers_dir" "$dbg_dir" $objtree/debian/files
mkdir -m 755 -p "$tmpdir/DEBIAN"
mkdir -p "$tmpdir/lib" "$tmpdir/boot"
mkdir -p "$fwdir/lib/firmware/$version/"
@@ -179,8 +143,12 @@ else
cp System.map "$tmpdir/boot/System.map-$version"
cp $KCONFIG_CONFIG "$tmpdir/boot/config-$version"
fi
-
-cp arch/$ARCH/boot/Image "$tmpdir/$installed_image_path"
+# Not all arches include the boot path in KBUILD_IMAGE
+if [ -e $KBUILD_IMAGE ]; then
+ cp $KBUILD_IMAGE "$tmpdir/$installed_image_path"
+else
+ cp arch/$ARCH/boot/$KBUILD_IMAGE "$tmpdir/$installed_image_path"
+fi
if grep -q "^CONFIG_OF=y" $KCONFIG_CONFIG ; then
# Only some architectures with OF support have this target
@@ -217,12 +185,6 @@ if grep -q '^CONFIG_MODULES=y' $KCONFIG_CONFIG ; then
fi
fi
-if grep -q '^CONFIG_ARM64=y' $KCONFIG_CONFIG ; then
- mkdir -p "$tmpdir/boot/dtb-""$version"/amlogic/overlays/"$BOARD"
- cp $objtree/arch/$SRCARCH/boot/dts/amlogic/*.dtb $dtb_dir/boot/dtb-$version/amlogic
- cp $objtree/arch/$SRCARCH/boot/dts/amlogic/overlays/"$BOARD"/*.dtbo $dtb_dir/boot/dtb-$version/amlogic/overlays/"$BOARD"
-fi
-
if [ "$ARCH" != "um" ]; then
$MAKE headers_check KBUILD_SRC=
$MAKE headers_install KBUILD_SRC= INSTALL_HDR_PATH="$libc_headers_dir/usr"
@@ -258,37 +220,6 @@ EOF
chmod 755 "$tmpdir/DEBIAN/$script"
done
-##
-## Create sym link to kernel image
-##
-sed -e "s/set -e//g" -i $tmpdir/DEBIAN/postinst
-sed -e "s/exit 0//g" -i $tmpdir/DEBIAN/postinst
-cat >> $tmpdir/DEBIAN/postinst <<EOF
-mv /$installed_image_path /boot/Image
-exit 0
-EOF
-
-## backup kernel image, config and System.map, fixup kernel upgrade issue
-sed -e "s/exit 0//g" -i $tmpdir/DEBIAN/preinst
-cat >> $tmpdir/DEBIAN/preinst <<EOF
-if [ -f /$installed_image_path ]; then
- mv /$installed_image_path /$installed_image_path.old
-fi
-
-if [ -f /boot/Image ]; then
- mv /boot/Image /boot/Image.old
-fi
-
-if [ -f /boot/System.map-$version ]; then
- mv /boot/System.map-$version /boot/System.map-$version.old
-fi
-
-if [ -f /boot/config-$version ]; then
- mv /boot/config-$version /boot/config-$version.old
-fi
-exit 0
-EOF
-
# Try to determine maintainer and email values
if [ -n "$DEBEMAIL" ]; then
email=$DEBEMAIL
@@ -395,10 +326,8 @@ fi
# Build kernel header package
(cd $srctree; find . -name Makefile\* -o -name Kconfig\* -o -name \*.pl) > "$objtree/debian/hdrsrcfiles"
(cd $srctree; find arch/*/include include scripts -type f -o -type l) >> "$objtree/debian/hdrsrcfiles"
-(cd $srctree; find security/*/include -type f) >> "$objtree/debian/hdrsrcfiles"
(cd $srctree; find arch/$SRCARCH -name module.lds -o -name Kbuild.platforms -o -name Platform) >> "$objtree/debian/hdrsrcfiles"
(cd $srctree; find $(find arch/$SRCARCH -name include -o -name scripts -type d) -type f) >> "$objtree/debian/hdrsrcfiles"
-(cd $srctree; find drivers/amlogic/debug -name *.h) >> "$objtree/debian/hdrsrcfiles"
if grep -q '^CONFIG_STACK_VALIDATION=y' $KCONFIG_CONFIG ; then
(cd $objtree; find tools/objtool -type f -executable) >> "$objtree/debian/hdrobjfiles"
fi
@@ -443,16 +372,6 @@ fi
cat <<EOF >> debian/control
-Package: $dtb_packagename
-Architecture: any
-Description: Linux DTB, version $version
- This package contains device blobs from the Linux kernel, version $version.
-EOF
-
-create_package "$dtb_packagename" "$dtb_dir"
-
-cat <<EOF >> debian/control
-
Package: $libc_headers_packagename
Section: devel
Provides: linux-kernel-headers
--
2.25.1

View File

@ -0,0 +1,39 @@
diff --git a/board/bananapi/bananapi_cm4/bananapi_cm4.c b/board/bananapi/bananapi_cm4/bananapi_cm4.c
index 4dc1529f10..a7af1d330f 100644
--- a/board/bananapi/bananapi_cm4/bananapi_cm4.c
+++ b/board/bananapi/bananapi_cm4/bananapi_cm4.c
@@ -687,7 +687,7 @@ int board_get_panel_type(void)
addr_r = getenv("loadaddr");
setenv("filesize", "0");
- sprintf(cmd, "fatload mmc %d:1 %s lcd_env.txt", mmc_dev, addr_r);
+ sprintf(cmd, "load mmc %d:1 %s /boot/lcd_env.txt", mmc_dev, addr_r);
run_command(cmd, 0);
filesize = getenv_ulong("filesize", 16, 0);
diff --git a/board/bananapi/bananapi_m2s/bananapi_m2s.c b/board/bananapi/bananapi_m2s/bananapi_m2s.c
index a23b3e523d..c9fbb4a99a 100644
--- a/board/bananapi/bananapi_m2s/bananapi_m2s.c
+++ b/board/bananapi/bananapi_m2s/bananapi_m2s.c
@@ -683,7 +683,7 @@ int board_get_panel_type(void)
addr_r = getenv("loadaddr");
setenv("filesize", "0");
- sprintf(cmd, "fatload mmc %d:1 %s lcd_env.txt", mmc_dev, addr_r);
+ sprintf(cmd, "load mmc %d:1 %s /boot/lcd_env.txt", mmc_dev, addr_r);
run_command(cmd, 0);
filesize = getenv_ulong("filesize", 16, 0);
diff --git a/include/configs/bananapi_g12b_common.h b/include/configs/bananapi_g12b_common.h
index e604873242..7c72993e6d 100755
--- a/include/configs/bananapi_g12b_common.h
+++ b/include/configs/bananapi_g12b_common.h
@@ -138,7 +138,7 @@
"osd open;"\
"osd clear;"\
"for n in ${mmc_list}; do "\
- "if load mmc ${n} ${loadaddr} /boot-logo.bmp; then "\
+ "if load mmc ${n} ${loadaddr} /boot/boot-logo.bmp; then "\
"bmp display ${loadaddr};"\
"bmp scale;"\
"fi;"\

View File

@ -0,0 +1,55 @@
From 001bcba84e1f3ad0f605e5a9bb2fb5cb0e9c605d Mon Sep 17 00:00:00 2001
From: Hugo Grostabussiat <bonstra@bonstra.fr.eu.org>
Date: Fri, 11 Jan 2019 21:33:19 +0100
Subject: [PATCH] tools: fix build for recent host-side libfdt
Recent versions of libfdt removed the _ prefix in the header guards,
causing clashes with the libfdt version embedded in U-boot source tree.
---
include/fdt.h | 3 ++-
include/libfdt.h | 3 ++-
include/libfdt_env.h | 3 ++-
3 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/include/fdt.h b/include/fdt.h
index 526aedb515..3dd42971eb 100644
--- a/include/fdt.h
+++ b/include/fdt.h
@@ -1,5 +1,6 @@
-#ifndef _FDT_H
+#if !defined(_FDT_H) && !defined(FDT_H)
#define _FDT_H
+#define FDT_H
/*
* libfdt - Flat Device Tree manipulation
* Copyright (C) 2006 David Gibson, IBM Corporation.
diff --git a/include/libfdt.h b/include/libfdt.h
index e2bc2e00c1..9d0d4b98ea 100644
--- a/include/libfdt.h
+++ b/include/libfdt.h
@@ -1,5 +1,6 @@
-#ifndef _LIBFDT_H
+#if !defined(_LIBFDT_H) && !defined(LIBFDT_H)
#define _LIBFDT_H
+#define LIBFDT_H
/*
* libfdt - Flat Device Tree manipulation
* Copyright (C) 2006 David Gibson, IBM Corporation.
diff --git a/include/libfdt_env.h b/include/libfdt_env.h
index 6c6845f76c..216e5c6fa1 100644
--- a/include/libfdt_env.h
+++ b/include/libfdt_env.h
@@ -6,8 +6,9 @@
* SPDX-License-Identifier: LGPL-2.1+
*/
-#ifndef _LIBFDT_ENV_H
+#if !defined(_LIBFDT_ENV_H) && !defined(LIBFDT_ENV_H)
#define _LIBFDT_ENV_H
+#define LIBFDT_ENV_H
#include "compiler.h"
#include "linux/types.h"
--
GitLab