Khadas VIM1S & VIM4 - 5.15 kernel bump (#6201)

* meson-s4t7: bump u-boot to khadas-vims-u-boot-2019.01-v1.6-release
* Use khadas default bootargs as much as possible
* Add new hook to allow copying code into kernel
* meson-s4t7: legacy: Switch to 5.15 kernel
* meson-s4t7: add kernel-config for 5.15 kernel
* device tree overlays for 5.15 kernel for vim1s and vim4
* restructure packaging of bsp files for vim1s/vim4
* silence vblank warning on boot
* Remove display workaround as it doesn't work with 5.15 kernel
* Remove 5.4 kernel patches
This commit is contained in:
Gunjan Gupta
2024-01-26 13:10:11 +05:30
committed by GitHub
parent 96caa18e95
commit c47c9372bf
46 changed files with 4513 additions and 2808 deletions

View File

@@ -14,12 +14,6 @@ declare -g KHADAS_OOWOW_BOARD_ID="VIM1S" # for use with EXT=output-image-oowow
OVERLAY_PREFIX='s4-s905y4'
function image_specific_armbian_env_ready__set_vim1s_specific_parameters() {
display_alert "Writing vim1s parameters in /boot/armbianEnv.txt"
run_host_command_logged echo "earlycon=on" >>${SDCARD}/boot/armbianEnv.txt
run_host_command_logged echo "extraboardargs=meson-gx-mmc.caps2_quirks=mmc-hs400" >>${SDCARD}/boot/armbianEnv.txt
}
function post_family_tweaks_bsp__populate_etc_firmware() {
# The hciattach command needs firmware to be placed in /etc/firmware directory.
# Populate the same.

View File

@@ -14,18 +14,6 @@ declare -g KHADAS_OOWOW_BOARD_ID="VIM4" # for use with EXT=output-image-oowow
OVERLAY_PREFIX='t7-a311d2'
# Add modprobe configuration for the ISP, see https://github.com/khadas/fenix/blob/master/archives/filesystem/special/VIM4/etc/modprobe.d/isp.conf
# This avoids a kernel panic related to the ISP firmware; see https://armbian.atlassian.net/browse/AR-1801?focusedCommentId=11995
function post_family_tweaks_bsp__kvim4_isp_modprobe() {
: "${destination:?}"
display_alert "${BOARD}" "Adding modprobe configuration for the ISP" "info"
mkdir -p "${destination}"/etc/modprobe.d
cat <<- EOD > "${destination}"/etc/modprobe.d/isp.conf
options iv009_isp dcam=2
softdep iv009_isp pre: iv009_isp_iq iv009_isp_lens iv009_isp_sensor
EOD
}
function post_family_tweaks_bsp__enable_fan_service() {
if [[ ${BRANCH} = "legacy" ]]; then
run_host_command_logged mkdir -p "${destination}"/etc/systemd/system/mutli-user.target.wants

View File

@@ -8,12 +8,9 @@ setenv console "both"
setenv verbosity "1"
setenv earlycon "off"
setenv bootlogo "false"
setenv earlyconuart "0xfe078000"
setenv displaymode "1080p60hz"
setenv force_16x9_display "false"
if test "${board_name}" = "kvim1s"; then setenv earlyconuart "0xfe07a000"; fi
# Show what uboot default fdtfile is
echo "U-boot default fdtfile: ${fdtfile}"
@@ -26,34 +23,22 @@ if test "${console}" = "both"; then setenv console_serial "true"; setenv console
if test "${console}" = "serial"; then setenv console_serial "true"; fi
if test "${console}" = "display"; then setenv console_display "true"; fi
if test "${console_serial}" = "true"; then setenv consoleargs "console=ttyS0,921600"; fi
if test "${console_display}" = "true"; then setenv consoleargs "console=tty1 ${consoleargs}"; fi
if test "${console_display}" = "true"; then setenv consoleargs "console=tty0"; fi
if test "${console_serial}" = "true"; then setenv consoleargs "console=ttyS0,921600 ${consoleargs}"; fi
if test "${earlycon}" = "on"; then setenv consoleargs "earlycon=aml-uart,${earlyconuart} ${consoleargs}"; fi
if test "${earlycon}" != "on"; then
setexpr bootargs sub " earlycon=\\S* " " " "${bootargs}"
fi
if test "${bootlogo}" = "true"; then
setenv consoleargs "splash plymouth.ignore-serial-consoles ${consoleargs}"
setenv plymouthargs "splash plymouth.ignore-serial-consoles"
else
setenv consoleargs "splash=verbose ${consoleargs}"
setenv plymouthargs "splash=verbose"
fi
if test -n "${hdmimode}" ; then
if test ${display_height} -ge 2160 ; then
setenv displaymode "2160p60hz"
elif test ${display_height} -ge 1080 ; then
setenv displaymode "1080p60hz"
else
setenv displaymode "720p60hz"
fi
fi
setexpr bootargs sub "rootfstype=\\S*" "rootfstype=${rootfstype}" "${bootargs}"
if test "${force_16x9_display}" = "true"; then
setenv hdmimode ${displaymode}
fi
setenv displayargs "logo=${display_layer},loaded,${fb_addr} vout=${hdmimode},${vout_init} panel_type=${panel_type} hdmitx=${cecconfig},${colorattribute} hdmimode=${hdmimode} hdmichecksum=${hdmichecksum} dolby_vision_on=${dolby_vision_on} hdr_policy=${hdr_policy} hdr_priority=${hdr_priority} frac_rate_policy=${frac_rate_policy} hdmi_read_edid=${hdmi_read_edid} cvbsmode=${cvbsmode} osd_reverse=${osd_reverse} video_reverse=${video_reverse}"
setenv bootargs "root=${rootdev} rootwait rootfstype=${rootfstype} ${consoleargs} no_console_suspend ${displayargs} loglevel=${verbosity} mac=${eth_mac} khadas.serial=${usid} partition_type=generic ${extraargs} ${extraboardargs}"
setenv bootargs "root=${rootdev} ${bootargs} ${consoleargs} partition_type=generic loglevel=${verbosity} ${plymouthargs} ${extraargs} ${extraboardargs}"
load ${devtype} ${devnum} ${fdt_addr_r} ${prefix}dtb/${fdtfile}
fdt addr ${fdt_addr_r}

File diff suppressed because it is too large Load Diff

View File

@@ -15,17 +15,19 @@ enable_extension "bluetooth-hciattach" # E
case $BRANCH in
legacy)
declare -g KERNEL_MAJOR_MINOR="5.4" # Major and minor versions of this kernel. For mainline caching.
declare -g KERNEL_MAJOR_MINOR="5.15" # Major and minor versions of this kernel. For mainline caching.
declare -g KERNELSOURCE="https://github.com/khadas/linux.git" # Khadas kernel
declare -g KERNELBRANCH="branch:khadas-vims-5.4.y" # Branch or tag to build from. It should match MAJOR_MINOR
declare -g KERNELPATCHDIR='archive/meson-s4t7-5.4'
declare -g KERNELBRANCH="branch:khadas-vims-5.15.y" # Branch or tag to build from. It should match MAJOR_MINOR
declare -g KERNELPATCHDIR="archive/meson-s4t7-5.15"
declare -g EXTRAWIFI=no
;;
esac
# Lets build uboot from source
BOOTSOURCE="https://github.com/khadas/u-boot.git"
BOOTBRANCH="tag:khadas-vims-u-boot-2019.01-v1.5.2-release"
BOOTBRANCH="tag:khadas-vims-u-boot-2019.01-v1.6-release"
BOOTPATCHDIR="u-boot-meson-s4t7"
BOOTENV_FILE='meson.txt'
BOOTSCRIPT="boot-meson-s4t7.cmd:boot.cmd"
UBOOT_TARGET_MAP=";;build/u-boot.bin.sd.bin.signed:u-boot.bin.sd.bin.signed build/u-boot.bin.signed:u-boot.bin.signed"
@@ -42,6 +44,29 @@ function add_host_dependencies__khadas_fips_needs_xxd() {
declare -g EXTRA_BUILD_DEPS="${EXTRA_BUILD_DEPS} xxd"
}
function fetch_sources_tools__download_linaro_toolchain() {
display_alert "$BOARD" "preparing linaro toolchain for bootloader fip" "info"
if [[ "${HOSTARCH}" != "amd64" ]]; then
exit_with_error "vim1s/vim4 uboot requires amd64 system to build"
fi
declare tversion="7.3.1-2018.05"
declare tbasedir="${SRC}/cache/toolchain"
declare tdir="${tbasedir}/gcc-linaro-${tversion}-x86_64_aarch64-elf"
declare tfile="gcc-linaro-${tversion}-x86_64_aarch64-elf.tar.xz"
declare turl="https://dl.armbian.com/_toolchain/${tfile}"
if [[ ! -d "${tdir}" ]]; then
run_host_command_logged wget --progress=dot:giga -O "${tbasedir}/${tfile}" "${turl}"
run_host_command_logged tar -C "${tbasedir}" -xf "${tbasedir}/${tfile}"
run_host_command_logged rm -fv "${tbasedir}/${tfile}"
fi
# Symlinks are not enough: riscv-none-embed-ld: cannot find -lgcc, So we need to add the toolchain to the PATH
export PATH="${tdir}/bin:${PATH}"
}
# To be able to build the fip blobs, we need a riscv toolchain.
function pre_config_uboot_target__prepare_riscv_toolchain() {
display_alert "$BOARD" "preparing riscv toolchain for bootloader fip" "info"
@@ -53,7 +78,7 @@ function pre_config_uboot_target__prepare_riscv_toolchain() {
declare tbasedir="${SRC}/cache/toolchain"
declare tdir="${tbasedir}/xpack-riscv-none-embed-gcc-${tversion}"
declare tfile="xpack-riscv-none-embed-gcc-${tversion}-linux-${tos}.tar.gz"
declare turl="https://github.com/xpack-dev-tools/riscv-none-embed-gcc-xpack/releases/download/v${tversion}/${tfile}"
declare turl="https://dl.armbian.com/_toolchain/${tfile}"
mkdir -p "${tbasedir}"
@@ -79,14 +104,39 @@ function post_uboot_custom_postprocess__build_fip() {
: "${KHADAS_BOARD_ID:?KHADAS_BOARD_ID not set}"
display_alert "$BOARD" "building fip" "info"
cd "${uboot_work_dir}" || exit_with_error "cray-cray about ${uboot_work_dir}"
export CROSS_COMPILE="aarch64-elf-"
run_host_command_logged bash fip/mk_script.sh "${KHADAS_BOARD_ID}" "${uboot_work_dir}"
return 0
}
function armbian_kernel_config__add_khadas_common_drivers() {
common_driver_source_loc="${SRC}/cache/sources/khadas_common_drivers/${KERNELBRANCH#*:}"
if [[ ! -f .config ]]; then
display_alert "$BOARD" "Fetching khadas common drivers" "info"
fetch_from_repo "https://github.com/khadas/common_drivers" "khadas_common_drivers" "${KERNELBRANCH}" "yes"
common_drivers_hash=$(git -C ${common_driver_source_loc} rev-parse HEAD)
# Hack to ensure that we will recreate kernel if common_drivers source changes
kernel_config_modifying_hashes+=( "khadas_common_drivers=${common_drivers_hash}" )
fi
}
function kernel_copy_extra_sources__khadas_common_drivers() {
display_alert "$BOARD" "Copying khadas common drivers" "info"
common_driver_source_loc="${SRC}/cache/sources/khadas_common_drivers/${KERNELBRANCH#*:}"
[[ -d common_drivers ]] && rm -rf common_drivers
mkdir common_drivers
cp -aR ${common_driver_source_loc}/* common_drivers/
}
function pre_package_kernel_image__copy_meson_s4t7_overlays() {
display_alert "Copy meson s4t7 overlays"
declare dtbo_destination="${tmp_kernel_install_dirs[INSTALL_DTBS_PATH]}"/amlogic
# the directory structure is changed between 5.4 and 5.15 kernel
# Lets make it consistent
run_host_command_logged mkdir -p ${dtbo_destination}
run_host_command_logged mv "${tmp_kernel_install_dirs[INSTALL_DTBS_PATH]}"/*.dtb ${dtbo_destination}/
run_host_command_logged cp -r ${SRC}/patch/kernel/${KERNELPATCHDIR}/overlay ${dtbo_destination}/
display_alert "Enable Device Tree Overlays"
@@ -99,24 +149,14 @@ function post_family_tweaks_bsp__disable_uinitrd_generation() {
fi
}
function meson_s4t7_change_initrd_compression() {
sed -i 's/COMPRESS=.*/COMPRESS=xz/g' /etc/initramfs-tools/initramfs.conf
}
function post_family_tweaks_bsp__add_postinst_function() {
postinst_functions+=('meson_s4t7_change_initrd_compression')
}
function image_specific_armbian_env_ready__force_16x9_display() {
if [[ ${BRANCH} == "legacy" ]]; then
display_alert "Forcing 16x9 display"
run_host_command_logged echo "force_16x9_display=true" >> ${SDCARD}/boot/armbianEnv.txt
fi
function image_specific_armbian_env_ready__enable_earlycon() {
display_alert "Enabling earlycon"
run_host_command_logged echo "earlycon=on" >>${SDCARD}/boot/armbianEnv.txt
}
function post_family_tweaks_bsp__add_fan_service() {
if [[ ${BRANCH} = "legacy" ]]; then
run_host_command_logged mkdir -p "${destination}"/etc/systemd/system
run_host_command_logged cp "${SRC}"/packages/bsp/meson-s4t7/fan.service "${destination}"/etc/systemd/system
run_host_command_logged cp -R "${SRC}"/packages/bsp/meson-s4t7/common/* "${destination}"/
run_host_command_logged cp -R "${SRC}"/packages/bsp/meson-s4t7/${BOARD}/* "${destination}"/
fi
}

View File

@@ -143,7 +143,7 @@ function artifact_kernel_prepare_version() {
declare var_config_hash_short="${vars_config_hash:0:${short_hash_size}}"
# Hash the extension hooks
declare -a extension_hooks_to_hash=("pre_package_kernel_image")
declare -a extension_hooks_to_hash=("pre_package_kernel_image" "kernel_copy_extra_sources")
declare -a extension_hooks_hashed=("$(dump_extension_method_sources_functions "${extension_hooks_to_hash[@]}")")
declare hash_hooks="undetermined"
hash_hooks="$(echo "${extension_hooks_hashed[@]}" | sha256sum | cut -d' ' -f1)"

View File

@@ -41,6 +41,12 @@ function compile_kernel() {
kernel_base_revision_date="$(LC_ALL=C date -d "@${kernel_base_revision_ts}")"
display_alert "Using Kernel git revision" "${kernel_git_revision} at '${kernel_base_revision_date}'"
# Call extension method to prepare extra sources
call_extension_method "kernel_copy_extra_sources" <<- 'ARMBIAN_KERNEL_SOURCES_EXTRA'
*Hook to copy extra kernel sources to the kernel under compilation*
ARMBIAN_KERNEL_SOURCES_EXTRA
# Possibly 'make clean'.
LOG_SECTION="kernel_maybe_clean" do_with_logging do_with_hooks kernel_maybe_clean

View File

@@ -0,0 +1 @@
options dhd firmware_path=./brcm/ nvram_path=./brcm/

View File

@@ -0,0 +1,46 @@
# 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"
# 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"
# heap
KERNEL=="system-uncached", MODE="0777"
KERNEL=="heap-gfx", MODE="0777"
KERNEL=="heap-secure", MODE="0777"
KERNEL=="heap-codecmm", MODE="0777"
# Others
KERNEL=="env", MODE="0666"

View File

@@ -0,0 +1,57 @@
# List of modules that you want to include in your initramfs.
# They will be loaded at boot time in the order below.
#
# Syntax: module_name [args ...]
#
# You must run update-initramfs(8) to effect this change.
#
# Examples:
#
# raid1
# sd_mod
amlogic-gkitool
amlogic-debug-iotrace
amlogic-uart
amlogic-hwspinlock
page_trace
amlogic-debug
amlogic-memory-debug
amlogic-secmon
amlogic-clk
amlogic-clk-soc-s4
amlogic-aoclk-g12a
amlogic-gpio
amlogic-pinctrl-soc-s4
amlogic-mailbox
amlogic-pwm
pwm-regulator
amlogic-reset
amlogic-power
amlogic-cpuinfo
amlogic-cpufreq
amlogic-efuse-unifykey
cqhci
amlogic-mmc
amlogic-i2c
amlogic-spi
amlogic-rng
tee
amlogic-tee
optee
aml_smmu
videobuf-core
dvb-core
amlogic-pm
amlogic-input
amlogic-watchdog
amlogic-dvb
aml_media
amlogic-camera
amlogic-adc
amlogic-thermal
amlogic-usb
amlogic-irblaster
amlogic-phy-debug
amlogic-inphy
aml_drm

View File

@@ -0,0 +1 @@
options amvdec_mh264 error_proc_policy=4181938

View File

@@ -0,0 +1 @@
options amvdec_ports multiplanar=1 vp9_need_prefix=1 av1_need_prefix=1

View File

@@ -0,0 +1,45 @@
# Initramfs modules load order
softdep amlogic-debug-iotrace pre: amlogic-gkitool
softdep amlogic-uart pre: amlogic-debug-iotrace
softdep amlogic-hwspinlock pre: amlogic-uart
softdep page_trace pre: amlogic-hwspinlock
softdep amlogic-debug pre: page_trace
softdep amlogic-memory-debug pre: amlogic-debug
softdep amlogic-secmon pre: amlogic-memory-debug
softdep amlogic-clk pre: amlogic-secmon
softdep amlogic-clk-soc-s4 pre: amlogic-clk
softdep amlogic-aoclk-g12a pre: amlogic-clk-soc-s4
softdep amlogic-gpio pre: amlogic-aoclk-g12a
softdep amlogic-pinctrl-soc-s4 pre: amlogic-gpio
softdep amlogic-mailbox pre: amlogic-pinctrl-soc-s4
softdep amlogic-pwm pre: amlogic-mailbox
softdep pwm-regulator pre: amlogic-pwm
softdep amlogic-reset pre: pwm-regulator
softdep amlogic-power pre: amlogic-reset
softdep amlogic-cpuinfo pre: amlogic-power
softdep amlogic-cpufreq pre: amlogic-cpuinfo
softdep amlogic-efuse-unifykey pre: amlogic-cpufreq
softdep cqhci pre: amlogic-efuse-unifykey
softdep amlogic-mmc pre: cqhci
softdep amlogic-i2c pre: amlogic-mmc
softdep amlogic-spi pre: amlogic-i2c
softdep amlogic-rng pre: amlogic-spi
softdep tee pre: amlogic-rng
softdep amlogic-tee pre: tee
softdep optee pre: amlogic-tee
softdep aml_smmu pre: optee
softdep videobuf-core pre: aml_smmu
softdep dvb-core pre: videobuf-core
softdep amlogic-pm pre: dvb-core
softdep amlogic-input pre: amlogic-pm
softdep amlogic-watchdog pre: amlogic-input
softdep amlogic-dvb pre: amlogic-watchdog
softdep aml_media pre: amlogic-dvb
softdep amlogic-camera pre: aml_media
softdep amlogic-adc pre: amlogic-camera
softdep amlogic-thermal pre: amlogic-adc
softdep amlogic-usb pre: amlogic-thermal
softdep amlogic-irblaster pre: amlogic-usb
softdep amlogic-phy-debug pre: amlogic-irblaster
softdep amlogic-inphy pre: amlogic-phy-debug
softdep aml_drm pre: amlogic-inphy

View File

@@ -0,0 +1,89 @@
amlogic-crypto-dma
amlogic-usb
amlogic-wireless
amlogic_pcie_v2_host
sha1-ce
zsmalloc
ntfs3
gpio-regulator
system_heap
mdio-mux
pcs_xpcs
stmmac
stmmac-platform
dwmac-meson
amlogic-mdio-g12a
dwmac-meson8b
dwmac-dwc-qos-eth
i2c-dev
amlogic-audio-utils
amlogic-dvb-demux
amlogic-dvb-ci
dwc_otg
amlogic-rtc
aml_fixed_area_cma
tee
optee
amlogic-socinfo
amlogic-hifidsp
amlogic-led
amlogic-jtag
amlogic-hwspinlock
amlogic-algorithm
amlogic-snd-codec-dummy
amlogic-snd-soc
amlogic-snd-codec-t9015
amlogic-snd-codec-tl1
amlogic-snd-codec-tas5707
amlogic-snd-codec-tas5805
amlogic-snd-codec-ad82128
amlogic-spi
amlogic-input
cfg80211
mac80211
v4l2-fwnode
v4l2-async
# Media modules
media_clock
firmware
video_framerate_adapter
pts_server
decoder_common
stream_input
amvdec_mh264
amvdec_mh264_v4l
amvdec_h264mvc
amvdec_h265
amvdec_h265_v4l
amvdec_mmjpeg
amvdec_mmjpeg_v4l
amvdec_mmpeg12
amvdec_mmpeg12_v4l
amvdec_mmpeg4
amvdec_mmpeg4_v4l
amvdec_vc1
amvdec_vp9
amvdec_vp9_v4l
amvdec_avs2
amvdec_ports
amvdec_mavs
amvdec_av1
amvdec_av1_v4l
amvdec_avs3_v4l
amvdec_avs2_v4l
amvdec_mavs_v4l
amvdec_avs2_fb_v4l
media_sync
nft_chain_nat
nft_counter
nft_compat
nf_tables
xt_conntrack
xt_MASQUERADE
xt_addrtype
veth
dhd
zram

View File

@@ -0,0 +1,57 @@
# List of modules that you want to include in your initramfs.
# They will be loaded at boot time in the order below.
#
# Syntax: module_name [args ...]
#
# You must run update-initramfs(8) to effect this change.
#
# Examples:
#
# raid1
# sd_mod
amlogic-gkitool
amlogic-debug-iotrace
amlogic-uart
amlogic-hwspinlock
page_trace
amlogic-debug
amlogic-memory-debug
amlogic-secmon
amlogic-clk
amlogic-clk-soc-t7
amlogic-aoclk-g12a
amlogic-gpio
amlogic-pinctrl-soc-t7
amlogic-mailbox
amlogic-pwm
pwm-regulator
amlogic-reset
amlogic-power
amlogic-cpuinfo
amlogic-cpufreq
amlogic-efuse-unifykey
cqhci
amlogic-mmc
amlogic-i2c
amlogic-spi
amlogic-rng
tee
amlogic-tee
optee
aml_smmu
videobuf-core
dvb-core
amlogic-pm
amlogic-input
amlogic-watchdog
amlogic-dvb
aml_media
amlogic-camera
amlogic-adc
amlogic-thermal
amlogic-usb
amlogic-irblaster
amlogic-phy-debug
amlogic-inphy
aml_drm

View File

@@ -0,0 +1 @@
options amvdec_mh264 error_proc_policy=8376246

View File

@@ -0,0 +1 @@
options amvdec_ports multiplanar=1 vp9_need_prefix=1 av1_need_prefix=1

View File

@@ -0,0 +1,45 @@
# Initramfs modules load order
softdep amlogic-debug-iotrace pre: amlogic-gkitool
softdep amlogic-uart pre: amlogic-debug-iotrace
softdep amlogic-hwspinlock pre: amlogic-uart
softdep page_trace pre: amlogic-hwspinlock
softdep amlogic-debug pre: page_trace
softdep amlogic-memory-debug pre: amlogic-debug
softdep amlogic-secmon pre: amlogic-memory-debug
softdep amlogic-clk pre: amlogic-secmon
softdep amlogic-clk-soc-t7 pre: amlogic-clk
softdep amlogic-aoclk-g12a pre: amlogic-clk-soc-t7
softdep amlogic-gpio pre: amlogic-aoclk-g12a
softdep amlogic-pinctrl-soc-t7 pre: amlogic-gpio
softdep amlogic-mailbox pre: amlogic-pinctrl-soc-t7
softdep amlogic-pwm pre: amlogic-mailbox
softdep pwm-regulator pre: amlogic-pwm
softdep amlogic-reset pre: pwm-regulator
softdep amlogic-power pre: amlogic-reset
softdep amlogic-cpuinfo pre: amlogic-power
softdep amlogic-cpufreq pre: amlogic-cpuinfo
softdep amlogic-efuse-unifykey pre: amlogic-cpufreq
softdep cqhci pre: amlogic-efuse-unifykey
softdep amlogic-mmc pre: cqhci
softdep amlogic-i2c pre: amlogic-mmc
softdep amlogic-spi pre: amlogic-i2c
softdep amlogic-rng pre: amlogic-spi
softdep tee pre: amlogic-rng
softdep amlogic-tee pre: tee
softdep optee pre: amlogic-tee
softdep aml_smmu pre: optee
softdep videobuf-core pre: aml_smmu
softdep dvb-core pre: videobuf-core
softdep amlogic-pm pre: dvb-core
softdep amlogic-input pre: amlogic-pm
softdep amlogic-watchdog pre: amlogic-input
softdep amlogic-dvb pre: amlogic-watchdog
softdep aml_media pre: amlogic-dvb
softdep amlogic-camera pre: aml_media
softdep amlogic-adc pre: amlogic-camera
softdep amlogic-thermal pre: amlogic-adc
softdep amlogic-usb pre: amlogic-thermal
softdep amlogic-irblaster pre: amlogic-usb
softdep amlogic-phy-debug pre: amlogic-irblaster
softdep amlogic-inphy pre: amlogic-phy-debug
softdep aml_drm pre: amlogic-inphy

View File

@@ -0,0 +1,8 @@
options iv009_isp dcam=2
softdep iv009_isp pre: iv009_isp_iq iv009_isp_lens iv009_isp_sensor
blacklist iv009_isp_g12b
blacklist iv009_isp_iq_g12b
blacklist iv009_isp_lens_g12b
blacklist iv009_isp_sensor_g12b

View File

@@ -0,0 +1,91 @@
amlogic-crypto-dma
amlogic-usb
amlogic-wireless
amlogic_pcie_v2_host
sha1-ce
zsmalloc
ntfs3
gpio-regulator
system_heap
mdio-mux
pcs_xpcs
stmmac
stmmac-platform
dwmac-meson
amlogic-mdio-g12a
dwmac-meson8b
dwmac-dwc-qos-eth
i2c-dev
amlogic-audio-utils
amlogic-dvb-demux
amlogic-dvb-ci
dwc_otg
amlogic-rtc
aml_fixed_area_cma
tee
optee
amlogic-socinfo
amlogic-input
amlogic-hifidsp
amlogic-led
amlogic-jtag
amlogic-hwspinlock
amlogic-algorithm
amlogic-snd-codec-dummy
amlogic-snd-soc
amlogic-snd-codec-t9015
amlogic-snd-codec-tl1
amlogic-snd-codec-tas5707
amlogic-snd-codec-tas5805
amlogic-snd-codec-ad82128
amlogic-spi
cfg80211
mac80211
v4l2-fwnode
v4l2-async
# Media modules
media_clock
firmware
video_framerate_adapter
pts_server
decoder_common
stream_input
amvdec_mh264
amvdec_mh264_v4l
amvdec_h264mvc
amvdec_h265
amvdec_h265_v4l
amvdec_mmjpeg
amvdec_mmjpeg_v4l
amvdec_mmpeg12
amvdec_mmpeg12_v4l
amvdec_mmpeg4
amvdec_mmpeg4_v4l
amvdec_vc1
amvdec_vp9
amvdec_vp9_v4l
amvdec_avs2
amvdec_ports
amvdec_mavs
amvdec_av1
amvdec_av1_v4l
amvdec_avs3_v4l
amvdec_avs2_v4l
amvdec_mavs_v4l
amvdec_avs2_fb_v4l
media_sync
amlogic-jpegenc
amlogic-multienc
nft_chain_nat
nft_counter
nft_compat
nf_tables
xt_conntrack
xt_MASQUERADE
xt_addrtype
veth
dhd
zram

View File

@@ -0,0 +1,2 @@
# adla
KERNEL=="adla*", MODE="0666"

View File

@@ -0,0 +1,12 @@
diff --git a/common_drivers/drivers/drm/meson_fbdev.c b/common_drivers/drivers/drm/meson_fbdev.c
index 3d1cb62aab44..3718a39888f2 100644
--- a/common_drivers/drivers/drm/meson_fbdev.c
+++ b/common_drivers/drivers/drm/meson_fbdev.c
@@ -447,7 +447,6 @@ int am_meson_drm_fb_helper_set_par(struct fb_info *info)
MESON_DRM_FBDEV("%s reallocate success.\n", __func__);
}
}
- drm_wait_one_vblank(fb_helper->dev, 0);
DRM_INFO("fb_set_par: %s OUT\n", __func__);
return 0;

View File

@@ -1,40 +0,0 @@
From f2655b7411f3c4f0bb6efc7f1f4ebd9c15a30df5 Mon Sep 17 00:00:00 2001
From: Gunjan Gupta <viraniac@gmail.com>
Date: Wed, 6 Sep 2023 08:30:29 +0000
Subject: [PATCH 1/2] vim1s: Port hotplug fix from hdmitx21 to hdmi_tx_20
Based on 69d6ec4d3228db1b5d82b308b668e913beeda6a9
---
.../amlogic/media/vout/hdmitx/hdmi_tx_20/hdmi_tx_main.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/drivers/amlogic/media/vout/hdmitx/hdmi_tx_20/hdmi_tx_main.c b/drivers/amlogic/media/vout/hdmitx/hdmi_tx_20/hdmi_tx_main.c
index af24acb190df..6ca181b6c79a 100644
--- a/drivers/amlogic/media/vout/hdmitx/hdmi_tx_20/hdmi_tx_main.c
+++ b/drivers/amlogic/media/vout/hdmitx/hdmi_tx_20/hdmi_tx_main.c
@@ -5830,7 +5830,9 @@ static int hdmitx_set_current_vmode(enum vmode_e mode, void *data)
recalc_vinfo_sync_duration(vinfo,
hdmitx_device.frac_rate_policy);
- if (!(mode & VMODE_INIT_BIT_MASK)) {
+ if (!(mode & VMODE_INIT_BIT_MASK) || !hdmitx_device.hpd_state) {
+ pr_info("HDMI display force init (%d)\n", hdmitx_device.hpd_state);
+ edidinfo_attach_to_vinfo(&hdmitx_device);
set_disp_mode_auto();
} else {
pr_info("alread display in uboot\n");
@@ -6331,6 +6333,11 @@ static void hdmitx_hpd_plugin_handler(struct work_struct *work)
/*notify to drm hdmi*/
if (hdmitx_device.drm_hpd_cb.callback)
hdmitx_device.drm_hpd_cb.callback(hdmitx_device.drm_hpd_cb.data);
+
+ if (info && info->mode == VMODE_HDMI) {
+ pr_info("HDMI display force refresh\n");
+ set_disp_mode_auto();
+ }
}
static void clear_rx_vinfo(struct hdmitx_dev *hdev)
--
2.34.1

View File

@@ -1,41 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Ricardo Pardini <ricardo@pardini.net>
Date: Tue, 8 Aug 2023 12:29:37 +0200
Subject: kvim4/kvim4n: use different model names in DT
So we can tell them apart in userspace.
I wasted a month booting the wrong DT, since Khadas's upstream didn't differentiate them.
---
arch/arm64/boot/dts/amlogic/kvim4.dts | 2 +-
arch/arm64/boot/dts/amlogic/kvim4n.dts | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/arm64/boot/dts/amlogic/kvim4.dts b/arch/arm64/boot/dts/amlogic/kvim4.dts
index d9e4ac48ee55..1599d39ebcfb 100644
--- a/arch/arm64/boot/dts/amlogic/kvim4.dts
+++ b/arch/arm64/boot/dts/amlogic/kvim4.dts
@@ -12,7 +12,7 @@
#include "khadas-panel.dtsi"
/ {
- model = "Khadas VIM4";
+ model = "Khadas VIM4 Classic (without NPU, A311D2 Revision B, T7 family)";
amlogic-dt-id = "t7_a311d2_vim4";
compatible = "amlogic, t7";
interrupt-parent = <&gic>;
diff --git a/arch/arm64/boot/dts/amlogic/kvim4n.dts b/arch/arm64/boot/dts/amlogic/kvim4n.dts
index 666ca5733331..8441b7f3dd6a 100644
--- a/arch/arm64/boot/dts/amlogic/kvim4n.dts
+++ b/arch/arm64/boot/dts/amlogic/kvim4n.dts
@@ -12,7 +12,7 @@
#include "khadas-panel.dtsi"
/ {
- model = "Khadas VIM4";
+ model = "Khadas VIM4 New (with NPU, A311D2 Revision C A311D2-N0D, T7C family)";
amlogic-dt-id = "t7c_a311d2_vim4";
compatible = "amlogic, t7c";
interrupt-parent = <&gic>;
--
Armbian

View File

@@ -0,0 +1,33 @@
From 7b53a1d36bd076d8d23afc132b3a35b6050fbf3d Mon Sep 17 00:00:00 2001
From: Gunjan Gupta <viraniac@gmail.com>
Date: Sat, 13 Jan 2024 10:30:29 +0000
Subject: [PATCH] Enable setexpr sub command
---
board/khadas/defconfigs/kvim1s_defconfig | 2 ++
board/khadas/defconfigs/kvim4_defconfig | 2 ++
2 files changed, 4 insertions(+)
diff --git a/board/khadas/defconfigs/kvim1s_defconfig b/board/khadas/defconfigs/kvim1s_defconfig
index 0455b3bf9d8..6ae8b7e0c8b 100644
--- a/board/khadas/defconfigs/kvim1s_defconfig
+++ b/board/khadas/defconfigs/kvim1s_defconfig
@@ -128,3 +128,5 @@ CONFIG_SHA1=y
CONFIG_LZ4=y
CONFIG_ZSTD=y
CONFIG_OF_LIBFDT_OVERLAY=y
+CONFIG_CMD_SETEXPR=y
+CONFIG_REGEX=y
diff --git a/board/khadas/defconfigs/kvim4_defconfig b/board/khadas/defconfigs/kvim4_defconfig
index 4f6a4aad8ca..221ec4ad255 100644
--- a/board/khadas/defconfigs/kvim4_defconfig
+++ b/board/khadas/defconfigs/kvim4_defconfig
@@ -138,3 +138,5 @@ CONFIG_SHA1=y
CONFIG_LZ4=y
CONFIG_ZSTD=y
CONFIG_OF_LIBFDT_OVERLAY=y
+CONFIG_CMD_SETEXPR=y
+CONFIG_REGEX=y
--
2.34.1