diff --git a/package/boot/uboot-amlogic/Makefile b/package/boot/uboot-amlogic/Makefile new file mode 100644 index 000000000..93e8f3bdb --- /dev/null +++ b/package/boot/uboot-amlogic/Makefile @@ -0,0 +1,57 @@ +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# +include $(TOPDIR)/rules.mk + +PKG_VERSION:=20240315 +PKG_RELEASE:=$(AUTORELEASE) + +PKG_SOURCE_PROTO:=default +PKG_SOURCE:=ophub-uboot-prebuilt-git-$(PKG_VERSION).tar.gz +PKG_SOURCE_VERSION:=abe491ab386607f9ab0d66728e5766bc5d7e8a20 +PKG_SOURCE_URL_FILE:=$(PKG_SOURCE_VERSION).tar.gz +PKG_SOURCE_URL:=https://github.com/ophub/u-boot/archive/ +PKG_HASH:=3f98f5728f48d13f33cf4fd21fb6032a625ad3c61aa2e8073dda821f71f067ec + +PKG_MAINTAINER:=ophub + +include $(INCLUDE_DIR)/u-boot.mk +include $(INCLUDE_DIR)/package.mk + +TAR_OPTIONS:=--strip-components 1 $(TAR_OPTIONS) +TAR_CMD=$(HOST_TAR) -C $(1) $(TAR_OPTIONS) + +define U-Boot/Default + BUILD_TARGET:=amlogic + UENV:=default + HIDDEN:=1 + DEFAULT:=y +endef + +define U-Boot/phicomm-n1 + NAME:=Phicomm N1 + OVERLAY:=u-boot-n1.bin + BUILD_SUBTARGET:=mesongx + BUILD_DEVICES:=phicomm_n1 +endef + +UBOOT_TARGETS := phicomm-n1 + +define Build/Configure + true +endef + +define Build/Compile + true +endef + +define Build/InstallDev + $(INSTALL_DIR) $(STAGING_DIR_IMAGE) + $(CP) $(PKG_BUILD_DIR)/u-boot/amlogic/overload/$(OVERLAY) $(STAGING_DIR_IMAGE)/$(BUILD_VARIANT)-u-boot-overlay.bin +endef + +define Package/u-boot/install/default +endef + +$(eval $(call BuildPackage/U-Boot)) diff --git a/package/kernel/mac80211/broadcom.mk b/package/kernel/mac80211/broadcom.mk index 67d04192c..a36f92477 100644 --- a/package/kernel/mac80211/broadcom.mk +++ b/package/kernel/mac80211/broadcom.mk @@ -432,6 +432,7 @@ define KernelPackage/brcmfmac/config default y if TARGET_bcm27xx default y if TARGET_sunxi default y if TARGET_rockchip + default y if TARGET_amlogic default n help Enable support for cards attached to an SDIO bus. diff --git a/target/linux/meson/Makefile b/target/linux/amlogic/Makefile similarity index 71% rename from target/linux/meson/Makefile rename to target/linux/amlogic/Makefile index 19e97332a..31dfb3ab1 100644 --- a/target/linux/meson/Makefile +++ b/target/linux/amlogic/Makefile @@ -4,11 +4,11 @@ include $(TOPDIR)/rules.mk -ARCH:=arm -BOARD:=meson +BOARD:=amlogic +BOARDNAME:=Amlogic BOARDNAME:=Amlogic Meson family -FEATURES:=boot-part ext4 fpu legacy-sdcard squashfs usbgadget -SUBTARGETS:=meson8b +FEATURES:=boot-part ext4 audio usb fpu legacy-sdcard squashfs usbgadget display gpio fpu pci pcie +SUBTARGETS:=meson8b mesongx KERNEL_PATCHVER:=6.1 @@ -25,7 +25,7 @@ DEFAULT_PACKAGES += \ automount \ resize2fs \ partx-utils \ - losetup + losetup htop autocore-arm KERNELNAME:=Image dtbs diff --git a/target/linux/amlogic/config-5.15 b/target/linux/amlogic/config-5.15 new file mode 100644 index 000000000..6922acd2f --- /dev/null +++ b/target/linux/amlogic/config-5.15 @@ -0,0 +1,46 @@ +CONFIG_AMLOGIC_THERMAL=y +CONFIG_CONSOLE_TRANSLATIONS=y +CONFIG_DEVFREQ_THERMAL=y +# CONFIG_DRM_MESON is not set +# CONFIG_DRM_MESON_DW_HDMI is not set +CONFIG_HW_CONSOLE=y +CONFIG_HW_RANDOM_MESON=y +CONFIG_HW_RANDOM_OPTEE=y +CONFIG_INPUT=y +CONFIG_KVM_ARM_PMU=y +# CONFIG_MAX77620_WATCHDOG is not set +# CONFIG_MAX77620_THERMAL is not set +CONFIG_MESON_EFUSE=y +# CONFIG_MESON_MX_EFUSE is not set +# CONFIG_MFD_KHADAS_MCU is not set +# CONFIG_MMC_DEBUG is not set +# CONFIG_MMC_UNSAFE_RESUME is not set +# CONFIG_MMC_TIFM_SD is not set +# CONFIG_MMC_WBSD is not set +# CONFIG_NVMEM_SPMI_SDAM is not set +# CONFIG_PHY_MESON8B_USB2 is not set +# CONFIG_PINCTRL_MESON8_PMX is not set +# CONFIG_REGULATOR_S2MPA01 is not set +# CONFIG_REGULATOR_S2MPS11 is not set +# CONFIG_REGULATOR_S5M8767 is not set +# CONFIG_REGULATOR_VEXPRESS is not set +# CONFIG_SDIO_UART is not set +CONFIG_SENSORS_ARM_SCMI=y +CONFIG_SENSORS_ARM_SCPI=y +# CONFIG_SND_MESON_AIU is not set +# CONFIG_SND_MESON_AXG_FRDDR is not set +# CONFIG_SND_MESON_AXG_TODDR is not set +# CONFIG_SND_MESON_AXG_TDMIN is not set +# CONFIG_SND_MESON_AXG_TDMOUT is not set +# CONFIG_SND_MESON_AXG_SOUND_CARD is not set +# CONFIG_SND_MESON_AXG_SPDIFOUT is not set +# CONFIG_SND_MESON_AXG_SPDIFIN is not set +# CONFIG_SND_MESON_AXG_PDM is not set +# CONFIG_SND_MESON_GX_SOUND_CARD is not set +# CONFIG_SND_MESON_G12A_TOACODEC is not set +# CONFIG_SND_MESON_G12A_TOHDMITX is not set +# CONFIG_SND_SOC_MESON_T9015 is not set +CONFIG_VT=y +CONFIG_VT_CONSOLE=y +CONFIG_VT_CONSOLE_SLEEP=y +CONFIG_VT_HW_CONSOLE_BINDING=y diff --git a/target/linux/meson/files/arch/arm/boot/dts/meson8b-onecloud.dts b/target/linux/amlogic/files/arch/arm/boot/dts/meson8b-onecloud.dts similarity index 100% rename from target/linux/meson/files/arch/arm/boot/dts/meson8b-onecloud.dts rename to target/linux/amlogic/files/arch/arm/boot/dts/meson8b-onecloud.dts diff --git a/target/linux/amlogic/image/Makefile b/target/linux/amlogic/image/Makefile new file mode 100644 index 000000000..3190b93d7 --- /dev/null +++ b/target/linux/amlogic/image/Makefile @@ -0,0 +1,91 @@ +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# +include $(TOPDIR)/rules.mk +include $(INCLUDE_DIR)/image.mk + +DEVICE_VARS += UBOOT_DEVICE_NAME + +FAT32_BLOCK_SIZE=1024 +FAT32_BLOCKS=$(shell echo $$(($(CONFIG_TARGET_KERNEL_PARTSIZE)*1024*1024/$(FAT32_BLOCK_SIZE)))) + +define Build/boot-script + # Make an U-boot image and copy it to the boot partition + mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n "boot.scr" -d boot.txt $(KDIR)/boot.scr +endef + +define Build/emmc-common + $(RM) -f $@.boot + mkfs.fat -C $@.boot $(FAT32_BLOCKS) + + mkdir -p $(KDIR)/boot.fat + + $(CP) $(KDIR)/boot.scr $(KDIR)/boot.fat/boot.scr + mcopy -i $@.boot $(KDIR)/boot.scr :: + $(CP) $(IMAGE_KERNEL) $(KDIR)/boot.fat/uImage + mcopy -i $@.boot $(KDIR)/boot.fat/uImage :: + + $(foreach dts,$(shell echo $(DEVICE_DTS)),$(CP) $(DTS_DIR)/$(dts).dtb $(KDIR)/boot.fat/dtb;) + mcopy -i $@.boot $(KDIR)/boot.fat/dtb :: + + $(RM) -rf $(KDIR)/boot.fat + + ./gen_aml_emmc_img.sh $@ $@.boot $(IMAGE_ROOTFS) \ + $(CONFIG_TARGET_KERNEL_PARTSIZE) $(CONFIG_TARGET_ROOTFS_PARTSIZE) +endef + +### Image scripts ### + +define Build/boot-common + # This creates a new folder copies the dtb (as amlogic.dtb) + # and the kernel image (as kernel.img) + rm -fR $@.boot + mkdir -p $@.boot + + $(CP) $(KDIR)/image-$(firstword $(DEVICE_DTS)).dtb $@.boot/amlogic.dtb + $(CP) $(IMAGE_KERNEL) $@.boot/kernel.img + $(CP) "$(STAGING_DIR_IMAGE)"/$(UBOOT_DEVICE_NAME)-u-boot-overlay.bin $@.boot/u-boot.emmc +endef + +define Build/boot-combined + # This creates a new folder copies the dtbs (as amlogic*.dtb) + # and the kernel image (as kernel.img) + rm -fR $@.boot + mkdir -p $@.boot + + i=0; \ + for dts in $(DEVICE_DTS); do \ + $(CP) $(KDIR)/image-$${dts}.dtb $@.boot/amlogic$$(perl -e 'printf "%b\n",'$$i).dtb; \ + let i+=1; \ + done + $(CP) $(IMAGE_KERNEL) $@.boot/kernel.img + $(CP) "$(STAGING_DIR_IMAGE)"/$(UBOOT_DEVICE_NAME)-u-boot-overlay.bin $@.boot/u-boot.emmc +endef + +define Build/boot-combined-script + # Make an U-boot image and copy it to the boot partition + mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d aml_autoscript.cmd $@.boot/aml_autoscript + mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d emmc_autoscript.cmd $@.boot/emmc_autoscript + mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d s905_autoscript.cmd $@.boot/s905_autoscript + mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d $(if $(1),$(1),amlogic).bootscript $@.boot/boot.scr +endef + +define Build/aml-img + # Creates the final SD/USB images, + # combining boot partition, root partition + + SIGNATURE="$(IMG_PART_SIGNATURE)" \ + ./gen_amlogic_image.sh \ + $@ \ + 64 $@.boot \ + 256 $(IMAGE_ROOTFS) \ + 2048 + +endef + +### Devices ### + +include $(SUBTARGET).mk + +$(eval $(call BuildImage)) diff --git a/target/linux/amlogic/image/aml_autoscript.cmd b/target/linux/amlogic/image/aml_autoscript.cmd new file mode 100644 index 000000000..637f7e4cd --- /dev/null +++ b/target/linux/amlogic/image/aml_autoscript.cmd @@ -0,0 +1,10 @@ +if printenv bootfromsd; then exit; else setenv ab 0; fi; +setenv bootcmd 'run start_autoscript; run storeboot' +setenv start_autoscript 'if mmcinfo; then run start_mmc_autoscript; fi; if usb start; then run start_usb_autoscript; fi; run start_emmc_autoscript' +setenv start_emmc_autoscript 'if fatload mmc 1 1020000 emmc_autoscript; then autoscr 1020000; fi;' +setenv start_mmc_autoscript 'if fatload mmc 0 1020000 s905_autoscript; then env delete usbdev; autoscr 1020000; fi;' +setenv start_usb_autoscript 'for usbdev in 0 1 2 3; do if fatload usb ${usbdev} 1020000 s905_autoscript; then autoscr 1020000; fi; done' +setenv upgrade_step 2 +saveenv +sleep 1 +reboot \ No newline at end of file diff --git a/target/linux/amlogic/image/amlogic.bootscript b/target/linux/amlogic/image/amlogic.bootscript new file mode 100644 index 000000000..3369e5c4f --- /dev/null +++ b/target/linux/amlogic/image/amlogic.bootscript @@ -0,0 +1,34 @@ +echo "Start AMLOGIC mainline U-boot" +setenv l_mmc "0" +for l_devtype in "sd usb mmc" ; do + if test "${l_devtype}" = "usb"; then + setenv l_mmc "0 1 2 3" + fi + if test "${l_devtype}" = "mmc"; then + setenv l_mmc "1" + fi + if test "${l_devtype}" = "sd"; then + setenv devtype "mmc" + else + setenv devtype "${l_devtype}" + fi + for devnum in ${l_mmc} ; do + if test -e ${devtype} ${devnum}:1 /boot.scr; then + part uuid ${devtype} ${devnum}:2 uuid + setenv bootargs "console=tty0 no_console_suspend consoleblank=0 console=ttyAML0,115200n8 root=PARTUUID=${uuid} rw rootwait" + if printenv mac; then + setenv bootargs ${bootargs} mac=${mac} + elif printenv eth_mac; then + setenv bootargs ${bootargs} mac=${eth_mac} + elif printenv ethaddr; then + setenv bootargs ${bootargs} mac=${ethaddr} + fi + load ${devtype} ${devnum}:1 ${fdt_addr_r} /amlogic.dtb + load ${devtype} ${devnum}:1 ${kernel_addr_r} /kernel.img + fdt addr ${fdt_addr_r} + booti ${kernel_addr_r} - ${fdt_addr_r} + fi + done +done +# Recompile with: +# mkimage -C none -A arm -T script -d /boot/boot.cmd /boot/boot.scr \ No newline at end of file diff --git a/target/linux/meson/image/boot.txt b/target/linux/amlogic/image/boot.txt similarity index 100% rename from target/linux/meson/image/boot.txt rename to target/linux/amlogic/image/boot.txt diff --git a/target/linux/amlogic/image/emmc_autoscript.cmd b/target/linux/amlogic/image/emmc_autoscript.cmd new file mode 100755 index 000000000..eec1c7fd2 --- /dev/null +++ b/target/linux/amlogic/image/emmc_autoscript.cmd @@ -0,0 +1,8 @@ +if fatload mmc 1 0x1000000 u-boot.emmc; then go 0x1000000; fi; +setenv dtb_addr 0x1000000 +setenv env_addr 0x1040000 +setenv kernel_addr 0x11000000 +setenv initrd_addr 0x13000000 +setenv boot_start booti ${kernel_addr} ${initrd_addr} ${dtb_addr} +setenv addmac 'if printenv mac; then setenv bootargs ${bootargs} mac=${mac}; elif printenv eth_mac; then setenv bootargs ${bootargs} mac=${eth_mac}; elif printenv ethaddr; then setenv bootargs ${bootargs} mac=${ethaddr}; fi' +if fatload mmc 1 ${env_addr} uEnv.txt && env import -t ${env_addr} ${filesize}; setenv bootargs ${APPEND}; then if fatload mmc 1 ${kernel_addr} ${LINUX}; then if fatload mmc 1 ${initrd_addr} ${INITRD}; then if fatload mmc 1 ${dtb_addr} ${FDT}; then run addmac; run boot_start; fi; fi; fi; fi; diff --git a/target/linux/meson/image/gen_aml_emmc_img.sh b/target/linux/amlogic/image/gen_aml_emmc_img.sh similarity index 100% rename from target/linux/meson/image/gen_aml_emmc_img.sh rename to target/linux/amlogic/image/gen_aml_emmc_img.sh diff --git a/target/linux/amlogic/image/gen_amlogic_image.sh b/target/linux/amlogic/image/gen_amlogic_image.sh new file mode 100755 index 000000000..650df1304 --- /dev/null +++ b/target/linux/amlogic/image/gen_amlogic_image.sh @@ -0,0 +1,60 @@ +#!/bin/sh +# Copyright (C) 2006-2012 OpenWrt.org +set -e -x +if [ $# -ne 5 ] && [ $# -ne 6 ]; then + echo "SYNTAX: $0 []" + exit 1 +fi + +OUTPUT="$1" +KERNELSIZE="$2" +KERNELDIR="$3" +ROOTFSSIZE="$4" +ROOTFSIMAGE="$5" +ALIGN="$6" +USERDATASIZE="2048" + +rm -f "$OUTPUT" + +head=16 +sect=63 + +# create partition table +set $(ptgen -o "$OUTPUT" -h $head -s $sect -p "${KERNELSIZE}m" -p "${ROOTFSSIZE}m" -p "${USERDATASIZE}m" ${ALIGN:+-l $ALIGN} ${SIGNATURE:+-S 0x$SIGNATURE}) + +KERNELOFFSET="$(($1 / 512))" +KERNELSIZE="$2" +ROOTFSOFFSET="$(($3 / 512))" +ROOTFSSIZE="$(($4 / 512))" +USERDATAOFFSET="$(($5 / 512))" +USERDATASIZE="$(($6 / 512))" + +# Using mcopy -s ... is using READDIR(3) to iterate through the directory +# entries, hence they end up in the FAT filesystem in traversal order which +# breaks reproducibility. +# Implement recursive copy with reproducible order. +dos_dircopy() { + local entry + local baseentry + for entry in "$1"/* ; do + if [ -f "$entry" ]; then + mcopy -i "$OUTPUT.kernel" "$entry" ::"$2" + elif [ -d "$entry" ]; then + baseentry="$(basename "$entry")" + mmd -i "$OUTPUT.kernel" ::"$2""$baseentry" + dos_dircopy "$entry" "$2""$baseentry"/ + fi + done +} + +dd if=/dev/zero of="$OUTPUT" bs=512 seek="$ROOTFSOFFSET" conv=notrunc count="$ROOTFSSIZE" +dd if="$ROOTFSIMAGE" of="$OUTPUT" bs=512 seek="$ROOTFSOFFSET" conv=notrunc + +[ -n "$PADDING" ] && dd if=/dev/zero of="$OUTPUT" bs=512 seek="$USERDATAOFFSET" conv=notrunc count="$USERDATASIZE" +echo "RESET000" | dd of="$OUTPUT" bs=512 seek="$USERDATAOFFSET" conv=notrunc,sync count=1 + +mkfs.fat --invariant -n kernel -C "$OUTPUT.kernel" -S 512 "$((KERNELSIZE / 1024))" +LC_ALL=C dos_dircopy "$KERNELDIR" / + +dd if="$OUTPUT.kernel" of="$OUTPUT" bs=512 seek="$KERNELOFFSET" conv=notrunc +rm -f "$OUTPUT.kernel" diff --git a/target/linux/amlogic/image/meson8b.mk b/target/linux/amlogic/image/meson8b.mk new file mode 100644 index 000000000..bab17477e --- /dev/null +++ b/target/linux/amlogic/image/meson8b.mk @@ -0,0 +1,18 @@ + +define Device/Default + FILESYSTEMS := ext4 + IMAGES := emmc.img + KERNEL_DEPENDS = $$(wildcard $(DTS_DIR)/$$(DEVICE_DTS).dts) + KERNEL_LOADADDR := 0x01080000 + KERNEL_NAME := Image + KERNEL := kernel-bin | uImage none + PROFILES = Default $$(DEVICE_NAME) +endef + +define Device/thunder-onecloud + DEVICE_DTS := meson8b-onecloud + DEVICE_TITLE := Thunder OneCloud + KERNEL_LOADADDR := 0x00208000 + IMAGE/emmc.img := boot-script onecloud | emmc-common $$(DEVICE_NAME) +endef +TARGET_DEVICES += thunder-onecloud diff --git a/target/linux/amlogic/image/mesongx.mk b/target/linux/amlogic/image/mesongx.mk new file mode 100644 index 000000000..c285014d8 --- /dev/null +++ b/target/linux/amlogic/image/mesongx.mk @@ -0,0 +1,19 @@ +# SPDX-License-Identifier: GPL-2.0-only + +define Device/Default + PROFILES := Default + KERNEL := kernel-bin + IMAGES := sysupgrade.img.gz + DEVICE_DTS_DIR := $(DTS_DIR)/amlogic + DEVICE_DTS = $$(SOC)-$(subst _,-,$(1)) +endef + +define Device/phicomm_n1 + DEVICE_VENDOR := Phicomm + DEVICE_MODEL := N1 + SOC := meson-gxl-s905d + UBOOT_DEVICE_NAME := phicomm-n1 + IMAGE/sysupgrade.img.gz := boot-common | boot-combined-script | aml-img | gzip | append-metadata + DEVICE_PACKAGES := ethtool kmod-brcmfmac brcmfmac-firmware-43455-sdio-phicomm-n1 wpad-openssl +endef +TARGET_DEVICES += phicomm_n1 \ No newline at end of file diff --git a/target/linux/amlogic/image/s905_autoscript.cmd b/target/linux/amlogic/image/s905_autoscript.cmd new file mode 100755 index 000000000..16ad8df4b --- /dev/null +++ b/target/linux/amlogic/image/s905_autoscript.cmd @@ -0,0 +1,16 @@ +if test "${usbdev}" = ""; then + setenv devtype "mmc" + setenv devnum 0 +else + setenv devtype "usb" + setenv devnum ${usbdev} +fi + +if fatload ${devtype} ${devnum} 0x1000000 u-boot.emmc; then go 0x1000000; fi; +setenv dtb_addr 0x1000000 +setenv env_addr 0x1040000 +setenv kernel_addr 0x11000000 +setenv initrd_addr 0x13000000 +setenv boot_start booti ${kernel_addr} ${initrd_addr} ${dtb_addr} +setenv addmac 'if printenv mac; then setenv bootargs ${bootargs} mac=${mac}; elif printenv eth_mac; then setenv bootargs ${bootargs} mac=${eth_mac}; elif printenv ethaddr; then setenv bootargs ${bootargs} mac=${ethaddr}; fi' +if fatload ${devtype} ${devnum} ${env_addr} uEnv.txt && env import -t ${env_addr} ${filesize}; setenv bootargs ${APPEND}; then if fatload ${devtype} ${devnum} ${kernel_addr} ${LINUX}; then if fatload ${devtype} ${devnum} ${initrd_addr} ${INITRD}; then if fatload ${devtype} ${devnum} ${dtb_addr} ${FDT}; then run addmac; run boot_start; fi; fi; fi; fi; diff --git a/target/linux/meson/base-files/etc/inittab b/target/linux/amlogic/meson8b/base-files/etc/inittab similarity index 100% rename from target/linux/meson/base-files/etc/inittab rename to target/linux/amlogic/meson8b/base-files/etc/inittab diff --git a/target/linux/meson/base-files/etc/rc.local b/target/linux/amlogic/meson8b/base-files/etc/rc.local similarity index 100% rename from target/linux/meson/base-files/etc/rc.local rename to target/linux/amlogic/meson8b/base-files/etc/rc.local diff --git a/target/linux/meson/base-files/lib/preinit/79_move_config b/target/linux/amlogic/meson8b/base-files/lib/preinit/79_move_config similarity index 100% rename from target/linux/meson/base-files/lib/preinit/79_move_config rename to target/linux/amlogic/meson8b/base-files/lib/preinit/79_move_config diff --git a/target/linux/meson/base-files/lib/upgrade/platform.sh b/target/linux/amlogic/meson8b/base-files/lib/upgrade/platform.sh similarity index 100% rename from target/linux/meson/base-files/lib/upgrade/platform.sh rename to target/linux/amlogic/meson8b/base-files/lib/upgrade/platform.sh diff --git a/target/linux/meson/base-files/root/resize.sh b/target/linux/amlogic/meson8b/base-files/root/resize.sh similarity index 100% rename from target/linux/meson/base-files/root/resize.sh rename to target/linux/amlogic/meson8b/base-files/root/resize.sh diff --git a/target/linux/meson/meson8b/config-6.1 b/target/linux/amlogic/meson8b/config-6.1 similarity index 100% rename from target/linux/meson/meson8b/config-6.1 rename to target/linux/amlogic/meson8b/config-6.1 diff --git a/target/linux/meson/meson8b/target.mk b/target/linux/amlogic/meson8b/target.mk similarity index 100% rename from target/linux/meson/meson8b/target.mk rename to target/linux/amlogic/meson8b/target.mk diff --git a/target/linux/amlogic/mesongx/base-files/etc/board.d/02_network b/target/linux/amlogic/mesongx/base-files/etc/board.d/02_network new file mode 100755 index 000000000..187c66c7a --- /dev/null +++ b/target/linux/amlogic/mesongx/base-files/etc/board.d/02_network @@ -0,0 +1,59 @@ +#!/bin/sh +# +# Copyright (C) 2013-2015 OpenWrt.org +# + +. /lib/functions/uci-defaults.sh +. /lib/functions/system.sh + +amlogic_setup_interfaces() +{ + local board="$1" + + case "$board" in + *) + ucidef_set_interface_lan 'eth0' + ;; + esac +} + +generate_mac_from_mmc() +{ + local sd_hash + local bootdisk=$( + . /lib/upgrade/common.sh + export_bootdevice && export_partdevice bootdisk 0 && echo $bootdisk + ) + if echo "$bootdisk" | grep -q '^mmcblk' && [ -f "/sys/class/block/$bootdisk/device/cid" ]; then + sd_hash=$(sha256sum /sys/class/block/$bootdisk/device/cid | head -n 1) + else + sd_hash=$(sha256sum /sys/class/block/mmcblk*/device/cid | head -n 1) + fi + local mac_base=$(macaddr_canonicalize "$(echo "${sd_hash}" | dd bs=1 count=12 2>/dev/null)") + echo "$(macaddr_unsetbit_mc "$(macaddr_setbit_la "${mac_base}")")" +} + +amlogic_setup_macs() +{ + local board="$1" + local lan_mac="" + local wan_mac="" + + case "$board" in + *) + lan_mac=$(generate_mac_from_mmc) + ;; + esac + + [ -n "$wan_mac" ] && ucidef_set_interface_macaddr "wan" $wan_mac + [ -n "$lan_mac" ] && ucidef_set_interface_macaddr "lan" $lan_mac +} + + +board_config_update +board=$(board_name) +amlogic_setup_interfaces $board +amlogic_setup_macs $board +board_config_flush + +exit 0 diff --git a/target/linux/amlogic/mesongx/base-files/etc/uci-defaults/12_enable-netifd-smp-tune b/target/linux/amlogic/mesongx/base-files/etc/uci-defaults/12_enable-netifd-smp-tune new file mode 100755 index 000000000..e6a9e6a9a --- /dev/null +++ b/target/linux/amlogic/mesongx/base-files/etc/uci-defaults/12_enable-netifd-smp-tune @@ -0,0 +1,7 @@ +#!/bin/sh +uci -q batch <<-EOF >/dev/null + set network.globals.packet_steering=1 + commit network +EOF + +exit 0 diff --git a/target/linux/amlogic/mesongx/base-files/lib/preinit/79_move_config b/target/linux/amlogic/mesongx/base-files/lib/preinit/79_move_config new file mode 100644 index 000000000..10d9181d5 --- /dev/null +++ b/target/linux/amlogic/mesongx/base-files/lib/preinit/79_move_config @@ -0,0 +1,16 @@ +move_config() { + local partdev parttype=ext4 + + . /lib/upgrade/common.sh + + if export_bootdevice && export_partdevice partdev 1; then + mkdir -p /boot + part_magic_fat "/dev/$partdev" && parttype=vfat + mount -t $parttype -o rw,noatime "/dev/$partdev" /boot + if [ -f "/boot/$BACKUP_FILE" ]; then + mv -f "/boot/$BACKUP_FILE" / + fi + fi +} + +boot_hook_add preinit_mount_root move_config diff --git a/target/linux/amlogic/mesongx/base-files/lib/upgrade/platform.sh b/target/linux/amlogic/mesongx/base-files/lib/upgrade/platform.sh new file mode 100644 index 000000000..8de2e1a9a --- /dev/null +++ b/target/linux/amlogic/mesongx/base-files/lib/upgrade/platform.sh @@ -0,0 +1,84 @@ + +platform_check_image() { + local diskdev partdev diff + + export_bootdevice && export_partdevice diskdev 0 || { + v "Unable to determine upgrade device" + return 1 + } + [ "$SAVE_CONFIG" -eq 1 ] && return 0 + + get_partitions "/dev/$diskdev" bootdisk + + #extract the boot sector from the image + get_image "$@" | dd of=/tmp/image.bs count=1 bs=512b 2>/dev/null + + get_partitions /tmp/image.bs image + + #compare tables + diff="$(grep -F -x -v -f /tmp/partmap.bootdisk /tmp/partmap.image)" + + rm -f /tmp/image.bs /tmp/partmap.bootdisk /tmp/partmap.image + + if [ -n "$diff" ]; then + v "Partition layout has changed. Full image will be written." + ask_bool 0 "Abort" && exit 1 + return 0 + fi +} + +platform_do_upgrade() { + local diskdev partdev part start size cursize + + export_bootdevice && export_partdevice diskdev 0 || { + v "Unable to determine upgrade device" + return 1 + } + + sync + + get_partitions "/dev/$diskdev" bootdisk + + #extract the boot sector from the image + get_image "$@" | dd of=/tmp/image.bs count=1 bs=512b + + get_partitions /tmp/image.bs image + + #iterate over each partition from the image and check boot disk partition size + while read part start size; do + if [ -n "$UPGRADE_BACKUP" -a "$part" -ge 3 ]; then + continue + fi + cursize=$(echo $(grep -m1 '^ *'"$part"' *' /tmp/partmap.bootdisk) | cut -d' ' -f 3) + if [ -z "$cursize" ]; then + v "Unable to find partition $part on boot disk" + return 1 + fi + if [ "$size" -gt "$cursize" ]; then + v "Partition $part on image is bigger than boot disk ($size > $cursize)" + return 1 + fi + done < /tmp/partmap.image + + #iterate over each partition from the image and write it to the boot disk + while read part start size; do + if [ -n "$UPGRADE_BACKUP" -a "$part" -ge 3 ]; then + v "Skip partition $part >= 3 when upgrading" + continue + fi + if export_partdevice partdev $part; then + v "Writing image to /dev/$partdev..." + if [ "$part" -eq 3 ]; then + echo "RESET000" | dd of="/dev/$partdev" bs=512 count=1 conv=sync,fsync 2>/dev/null + else + get_image "$@" | dd of="/dev/$partdev" ibs="512" obs=1M skip="$start" count="$size" conv=fsync + fi + else + v "Unable to find partition $part device, skipped." + fi + done < /tmp/partmap.image + + #copy partition uuid + v "Writing new UUID to /dev/$diskdev..." + get_image "$@" | dd of="/dev/$diskdev" bs=1 skip=440 count=4 seek=440 conv=fsync +} diff --git a/target/linux/amlogic/mesongx/base-files/usr/sbin/install-to-emmc.sh b/target/linux/amlogic/mesongx/base-files/usr/sbin/install-to-emmc.sh new file mode 100755 index 000000000..299684c18 --- /dev/null +++ b/target/linux/amlogic/mesongx/base-files/usr/sbin/install-to-emmc.sh @@ -0,0 +1,144 @@ +#!/bin/sh +# Copy running OpenWrt to eMMC for amlogic + +. /lib/functions.sh +. /lib/functions/system.sh + +include /lib/upgrade +NEWLINE=" +" + +function umount_disk() { + local mounted + local to="${1#/dev/}" + umount "/dev/$to"* 2>/dev/null + mounted="`mount | cut -d' ' -f1 | grep -Fm1 "/dev/$to"`" + if [ -n "$mounted" ] ; then + echo "can not umount $mounted" >&2 + return 1 + fi + return 0 +} + +function part_disk() { + local to="${1#/dev/}" + dd if=/dev/zero of="/dev/$to" bs=512 count=1 conv=notrunc 2>/dev/null + parted --script "/dev/$to" \ + mktable msdos \ + mkpart primary 68MiB 132MiB \ + mkpart primary 132MiB 388MiB \ + mkpart primary 764MiB 2812MiB +} + +function get_bootdisk() { + local var=$1 + local diskdev + export_bootdevice && export_partdevice diskdev 0 || { + echo "Unable to determine upgrade device" >&2 + return 1 + } + export "$var=$diskdev" + return 0 +} + +function get_emmcs() { + local disk index disks + local bootdisk=$1 + + index=1 + for disk in `cd /sys/block && ls | grep '^mmcblk' | grep -Ev 'mmcblk\d+boot\d+'`; do + [[ "$bootdisk" = "$disk" ]] && continue + [ -b /dev/$disk ] && [ "`cat /sys/block/$disk/size`" -gt 0 ] || continue + local diskinfo="`parted -ms "/dev/$disk" unit GiB print 2>/dev/null | grep -m1 "^/dev/$disk:"`" + [ -z "$diskinfo" ] && continue + local size="`echo "$diskinfo" | cut -d: -f2`" + # check disk greater than 2.8GB + [ $(( `echo "${size%%GiB}" | sed 's/\.\(.\).*/ * 10 + \1/'` )) -ge 28 ] || continue + local model="`echo "$diskinfo" | cut -d: -f7 | sed 's/"/_/g'`" + disks="${disks}$index. $disk $size \"$model\"$NEWLINE" + index=$(($index + 1)) + done + echo "$disks" + return 0 +} + +function get_emmc() { + local index + local var=$2 + local emmcs="$(get_emmcs $1)" + [ -z "$emmcs" ] && { + echo "Get eMMC list failed! (Maybe already running on eMMC? Current boot disk is $1)" >&2 + return 1 + } + local count=$(echo "$emmcs" | wc -l) + if [ "$count" -gt 1 ]; then + while true; do + echo "Found these eMMC devices:" + echo "Index. device size model" + echo "$emmcs" + echo -n "Select a disk to install (input index then press Enter): " + read index || { + echo "No input!" >&2 + exit 1 + } + if [ -z "$index" ]; then + echo "Empty input!" + else + echo "$emmcs" | grep -q "^${index}. " && break + echo "Wrong index!" + fi + done + else + echo "Found eMMC device:" + echo "Index. device size model" + echo "$emmcs" + index=1 + fi + local value=$(echo "$emmcs" | grep "^${index}. " | cut -d' ' -f 2) + export "$var=$value" +} + +function main() { + local bootdisk yn partdev part partdevto to + get_bootdisk bootdisk + [ -z "$bootdisk" ] && return 1 + get_emmc $bootdisk to + [ -n "$to" ] || return 1 + echo -ne "Will install to $to, confirm? y/N [n]\b\b" + read yn + if [ "$yn" = Y -o "$yn" = y ]; then + echo "" + echo "umount /dev/$to*" + umount_disk "$to" || return 1 + echo "part /dev/$to" + part_disk "$to" || return 1 + partprobe "/dev/$to" + if export_partdevice partdev 1; then + # umount /boot + echo "try umount /boot" + /bin/mount -o noatime,remount,ro /dev/$partdev + /usr/bin/umount -R -d -l /dev/$partdev 2>/dev/null || /bin/umount -l /dev/$partdev + fi + sleep 1 + echo "copy rom data from /dev/$bootdisk to /dev/$to" + for part in 1 2; do + # copy boot and rootfs partitions + export_partdevice partdev $part + partdevto=${to}p$part + echo "copy /dev/$partdev to /dev/$partdevto" + dd if=/dev/$partdev of=/dev/$partdevto bs=1M conv=notrunc + done + # mark RESET overlay partition + partdevto=${to}p3 + echo "mark /dev/$partdevto as RESET" + echo "RESET000" | dd of="/dev/$partdevto" bs=512 count=1 conv=sync,fsync + echo "All Done!" + else + echo "Bye!" + fi +} + +echo "Copy running OpenWrt to eMMC for amlogic" +echo "" + +main diff --git a/target/linux/amlogic/mesongx/config-5.15 b/target/linux/amlogic/mesongx/config-5.15 new file mode 100644 index 000000000..d3dc2df62 --- /dev/null +++ b/target/linux/amlogic/mesongx/config-5.15 @@ -0,0 +1,710 @@ +CONFIG_64BIT=y +CONFIG_ARCH_DMA_ADDR_T_64BIT=y +CONFIG_ARCH_HIBERNATION_HEADER=y +CONFIG_ARCH_HIBERNATION_POSSIBLE=y +CONFIG_ARCH_KEEP_MEMBLOCK=y +CONFIG_ARCH_MESON=y +CONFIG_ARCH_MMAP_RND_BITS=18 +CONFIG_ARCH_MMAP_RND_BITS_MAX=33 +CONFIG_ARCH_MMAP_RND_BITS_MIN=18 +CONFIG_ARCH_MMAP_RND_COMPAT_BITS=11 +CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=11 +CONFIG_ARCH_PROC_KCORE_TEXT=y +CONFIG_ARCH_SELECT_MEMORY_MODEL=y +CONFIG_ARCH_SPARSEMEM_DEFAULT=y +CONFIG_ARCH_SPARSEMEM_ENABLE=y +CONFIG_ARCH_STACKWALK=y +CONFIG_ARCH_SUSPEND_POSSIBLE=y +CONFIG_ARM64=y +CONFIG_ARM64_4K_PAGES=y +CONFIG_ARM64_CRYPTO=y +CONFIG_ARM64_MODULE_PLTS=y +CONFIG_ARM64_PAGE_SHIFT=12 +CONFIG_ARM64_PA_BITS=48 +CONFIG_ARM64_PA_BITS_48=y +CONFIG_ARM64_PTR_AUTH=y +CONFIG_ARM64_TAGGED_ADDR_ABI=y +CONFIG_ARM64_VA_BITS=48 +# CONFIG_ARM64_VA_BITS_39 is not set +CONFIG_ARM64_VA_BITS_48=y +# CONFIG_ARMV8_DEPRECATED is not set +CONFIG_ARM_AMBA=y +CONFIG_ARM_ARCH_TIMER=y +CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y +CONFIG_ARM_GIC=y +CONFIG_ARM_GIC_V2M=y +CONFIG_ARM_GIC_V3=y +CONFIG_ARM_GIC_V3_ITS=y +CONFIG_ARM_GIC_V3_ITS_PCI=y +CONFIG_ARM_MHU=y +# CONFIG_ARM_PL172_MPMC is not set +CONFIG_ARM_PSCI_CPUIDLE=y +CONFIG_ARM_PSCI_CPUIDLE_DOMAIN=y +CONFIG_ARM_PSCI_FW=y +CONFIG_ARM_SBSA_WATCHDOG=y +CONFIG_ARM_SCMI_CPUFREQ=y +CONFIG_ARM_SCMI_POWER_DOMAIN=y +CONFIG_ARM_SCMI_PROTOCOL=y +CONFIG_ARM_SCPI_CPUFREQ=y +CONFIG_ARM_SCPI_POWER_DOMAIN=y +CONFIG_ARM_SCPI_PROTOCOL=y +CONFIG_ARM_SMC_WATCHDOG=y +CONFIG_ARM_SP805_WATCHDOG=y +CONFIG_ASSOCIATIVE_ARRAY=y +CONFIG_ASYNC_TX_ENABLE_CHANNEL_SWITCH=y +CONFIG_ATA=y +CONFIG_ATA_LINK_SUPPORTS_LEDS=y +CONFIG_AUDIT_ARCH_COMPAT_GENERIC=y +CONFIG_BALLOON_COMPACTION=y +CONFIG_BINFMT_MISC=y +CONFIG_BLK_CGROUP=y +CONFIG_BLK_DEV_BSG=y +CONFIG_BLK_DEV_BSGLIB=y +# CONFIG_BLK_DEV_DM is not set +CONFIG_BLK_DEV_INTEGRITY=y +CONFIG_BLK_DEV_INTEGRITY_T10=y +CONFIG_BLK_DEV_LOOP=y +# CONFIG_BLK_DEV_MD is not set +CONFIG_BLK_DEV_SD=y +CONFIG_BLK_MQ_PCI=y +CONFIG_BLK_MQ_VIRTIO=y +CONFIG_BLK_PM=y +CONFIG_BLK_SCSI_REQUEST=y +CONFIG_BLOCK_COMPAT=y +CONFIG_BRCMSTB_GISB_ARB=y +CONFIG_BSD_PROCESS_ACCT=y +CONFIG_BSD_PROCESS_ACCT_V3=y +CONFIG_CC_HAVE_STACKPROTECTOR_SYSREG=y +# CONFIG_CFS_BANDWIDTH is not set +CONFIG_CGROUPS=y +CONFIG_CGROUP_BPF=y +CONFIG_CGROUP_CPUACCT=y +# CONFIG_CGROUP_DEBUG is not set +CONFIG_CGROUP_DEVICE=y +CONFIG_CGROUP_FREEZER=y +CONFIG_CGROUP_HUGETLB=y +# CONFIG_CGROUP_NET_CLASSID is not set +# CONFIG_CGROUP_NET_PRIO is not set +CONFIG_CGROUP_PIDS=y +# CONFIG_CGROUP_RDMA is not set +CONFIG_CGROUP_SCHED=y +CONFIG_CGROUP_WRITEBACK=y +CONFIG_CLKDEV_LOOKUP=y +CONFIG_CLONE_BACKWARDS=y +CONFIG_COMMON_CLK=y +CONFIG_COMMON_CLK_AXG=y +# CONFIG_COMMON_CLK_AXG_AUDIO is not set +CONFIG_COMMON_CLK_CS2000_CP=y +CONFIG_COMMON_CLK_G12A=y +CONFIG_COMMON_CLK_GXBB=y +CONFIG_COMMON_CLK_MESON_AO_CLKC=y +CONFIG_COMMON_CLK_MESON_CPU_DYNDIV=y +CONFIG_COMMON_CLK_MESON_DUALDIV=y +CONFIG_COMMON_CLK_MESON_EE_CLKC=y +CONFIG_COMMON_CLK_MESON_MPLL=y +CONFIG_COMMON_CLK_MESON_PLL=y +CONFIG_COMMON_CLK_MESON_REGMAP=y +CONFIG_COMMON_CLK_MESON_VID_PLL_DIV=y +CONFIG_COMMON_CLK_PWM=y +CONFIG_COMMON_CLK_S2MPS11=y +CONFIG_COMMON_CLK_SCMI=y +CONFIG_COMMON_CLK_SCPI=y +CONFIG_COMMON_CLK_VC5=y +CONFIG_COMMON_CLK_XGENE=y +CONFIG_COMPAT=y +CONFIG_COMPAT_32BIT_TIME=y +CONFIG_COMPAT_BINFMT_ELF=y +CONFIG_COMPAT_NETLINK_MESSAGES=y +CONFIG_COMPAT_OLD_SIGACTION=y +CONFIG_CONFIGFS_FS=y +CONFIG_CONTIG_ALLOC=y +CONFIG_CPUFREQ_DT=y +CONFIG_CPUFREQ_DT_PLATDEV=y +CONFIG_CPUSETS=y +CONFIG_CPU_FREQ=y +# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set +CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL=y +CONFIG_CPU_FREQ_GOV_ATTR_SET=y +CONFIG_CPU_FREQ_GOV_COMMON=y +# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set +CONFIG_CPU_FREQ_GOV_ONDEMAND=y +CONFIG_CPU_FREQ_GOV_PERFORMANCE=y +# CONFIG_CPU_FREQ_GOV_POWERSAVE is not set +CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y +CONFIG_CPU_FREQ_GOV_USERSPACE=y +CONFIG_CPU_FREQ_STAT=y +CONFIG_CPU_IDLE=y +CONFIG_CPU_IDLE_GOV_MENU=y +CONFIG_CPU_IDLE_MULTIPLE_DRIVERS=y +CONFIG_CPU_PM=y +CONFIG_CPU_RMAP=y +CONFIG_CRASH_CORE=y +CONFIG_CRASH_DUMP=y +CONFIG_CRC16=y +CONFIG_CRC7=y +CONFIG_CRC_ITU_T=y +CONFIG_CRC_T10DIF=y +CONFIG_CRYPTO_AES_ARM64=y +CONFIG_CRYPTO_AES_ARM64_CE=y +CONFIG_CRYPTO_AES_ARM64_CE_BLK=y +CONFIG_CRYPTO_AES_ARM64_CE_CCM=y +CONFIG_CRYPTO_ANSI_CPRNG=y +CONFIG_CRYPTO_CRC32=y +CONFIG_CRYPTO_CRC32C=y +CONFIG_CRYPTO_CRCT10DIF=y +CONFIG_CRYPTO_CRYPTD=y +CONFIG_CRYPTO_DRBG=y +CONFIG_CRYPTO_DRBG_HMAC=y +CONFIG_CRYPTO_DRBG_MENU=y +CONFIG_CRYPTO_ECHAINIV=y +CONFIG_CRYPTO_GHASH_ARM64_CE=y +CONFIG_CRYPTO_HASH_INFO=y +CONFIG_CRYPTO_HMAC=y +CONFIG_CRYPTO_JITTERENTROPY=y +CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=y +CONFIG_CRYPTO_LIB_SHA256=y +CONFIG_CRYPTO_RNG=y +CONFIG_CRYPTO_RNG2=y +CONFIG_CRYPTO_RNG_DEFAULT=y +CONFIG_CRYPTO_SHA1=y +CONFIG_CRYPTO_SHA1_ARM64_CE=y +CONFIG_CRYPTO_SHA256=y +CONFIG_CRYPTO_SHA256_ARM64=y +CONFIG_CRYPTO_SHA2_ARM64_CE=y +CONFIG_CRYPTO_SIMD=y +CONFIG_DCACHE_WORD_ACCESS=y +# CONFIG_DEVFREQ_GOV_PASSIVE is not set +# CONFIG_DEVFREQ_GOV_PERFORMANCE is not set +# CONFIG_DEVFREQ_GOV_POWERSAVE is not set +CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=y +# CONFIG_DEVFREQ_GOV_USERSPACE is not set +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +CONFIG_DEV_COREDUMP=y +CONFIG_DMADEVICES=y +CONFIG_DMA_DIRECT_REMAP=y +CONFIG_DMA_ENGINE=y +CONFIG_DMA_ENGINE_RAID=y +CONFIG_DMA_OF=y +CONFIG_DMA_REMAP=y +CONFIG_DMA_SHARED_BUFFER=y +CONFIG_DMA_VIRTUAL_CHANNELS=y +CONFIG_DNS_RESOLVER=y +CONFIG_DTC=y +CONFIG_DT_IDLE_STATES=y +CONFIG_DWMAC_GENERIC=y +CONFIG_DWMAC_MESON=y +CONFIG_DW_WATCHDOG=y +CONFIG_EDAC=y +# CONFIG_EDAC_DEBUG is not set +# CONFIG_EDAC_DMC520 is not set +CONFIG_EDAC_LEGACY_SYSFS=y +CONFIG_EDAC_SUPPORT=y +# CONFIG_EDAC_THUNDERX is not set +# CONFIG_EDAC_XGENE is not set +CONFIG_ENERGY_MODEL=y +CONFIG_EXT2_FS=y +# CONFIG_EXT2_FS_POSIX_ACL is not set +# CONFIG_EXT2_FS_SECURITY is not set +CONFIG_EXT3_FS=y +# CONFIG_EXT3_FS_POSIX_ACL is not set +# CONFIG_EXT3_FS_SECURITY is not set +CONFIG_EXT4_FS=y +CONFIG_EXT4_FS_POSIX_ACL=y +CONFIG_EXTCON=y +CONFIG_EXTCON_USB_GPIO=y +CONFIG_F2FS_FS=y +CONFIG_FAILOVER=y +CONFIG_FAIR_GROUP_SCHED=y +CONFIG_FANOTIFY=y +CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y +CONFIG_FAT_FS=y +CONFIG_FB=y +CONFIG_FB_CFB_COPYAREA=y +CONFIG_FB_CFB_FILLRECT=y +CONFIG_FB_CFB_IMAGEBLIT=y +CONFIG_FB_SIMPLE=y +CONFIG_FIXED_PHY=y +CONFIG_FIX_EARLYCON_MEM=y +# CONFIG_FLATMEM_MANUAL is not set +CONFIG_FRAME_POINTER=y +CONFIG_FREEZER=y +CONFIG_FS_IOMAP=y +CONFIG_FS_MBCACHE=y +CONFIG_FS_POSIX_ACL=y +CONFIG_FW_CACHE=y +CONFIG_FW_LOADER_PAGED_BUF=y +CONFIG_GARP=y +CONFIG_GENERIC_ALLOCATOR=y +CONFIG_GENERIC_ARCH_TOPOLOGY=y +CONFIG_GENERIC_BUG=y +CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y +CONFIG_GENERIC_CLOCKEVENTS=y +CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y +CONFIG_GENERIC_CPU_AUTOPROBE=y +CONFIG_GENERIC_CPU_VULNERABILITIES=y +CONFIG_GENERIC_CSUM=y +CONFIG_GENERIC_EARLY_IOREMAP=y +CONFIG_GENERIC_GETTIMEOFDAY=y +CONFIG_GENERIC_IDLE_POLL_SETUP=y +CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y +CONFIG_GENERIC_IRQ_MIGRATION=y +CONFIG_GENERIC_IRQ_MULTI_HANDLER=y +CONFIG_GENERIC_IRQ_SHOW=y +CONFIG_GENERIC_IRQ_SHOW_LEVEL=y +CONFIG_GENERIC_MSI_IRQ=y +CONFIG_GENERIC_MSI_IRQ_DOMAIN=y +CONFIG_GENERIC_PCI_IOMAP=y +CONFIG_GENERIC_PHY=y +CONFIG_GENERIC_PINCONF=y +CONFIG_GENERIC_PINCTRL_GROUPS=y +CONFIG_GENERIC_PINMUX_FUNCTIONS=y +CONFIG_GENERIC_SCHED_CLOCK=y +CONFIG_GENERIC_SMP_IDLE_THREAD=y +CONFIG_GENERIC_STRNCPY_FROM_USER=y +CONFIG_GENERIC_STRNLEN_USER=y +CONFIG_GENERIC_TIME_VSYSCALL=y +CONFIG_GLOB=y +CONFIG_GPIOLIB=y +CONFIG_GPIO_GENERIC=y +CONFIG_GPIO_GENERIC_PLATFORM=y +CONFIG_HANDLE_DOMAIN_IRQ=y +CONFIG_HARDIRQS_SW_RESEND=y +CONFIG_HAS_DMA=y +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT_MAP=y +CONFIG_HIBERNATE_CALLBACKS=y +CONFIG_HIBERNATION=y +CONFIG_HIBERNATION_SNAPSHOT_DEV=y +CONFIG_HOLES_IN_ZONE=y +CONFIG_HOTPLUG_CPU=y +CONFIG_HUGETLBFS=y +CONFIG_HUGETLB_PAGE=y +CONFIG_HVC_DRIVER=y +CONFIG_HWMON=y +# CONFIG_HWPOISON_INJECT is not set +CONFIG_HWSPINLOCK=y +CONFIG_I2C=y +CONFIG_I2C_ALGOBIT=y +CONFIG_I2C_BOARDINFO=y +CONFIG_I2C_CHARDEV=y +CONFIG_I2C_DESIGNWARE_CORE=y +CONFIG_I2C_DESIGNWARE_PLATFORM=y +CONFIG_I2C_MESON=y +CONFIG_I2C_MUX=y +CONFIG_I2C_MUX_PCA954x=y +CONFIG_I2C_SLAVE=y +# CONFIG_I2C_SLAVE_TESTUNIT is not set +CONFIG_IIO=y +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=y +CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000 +CONFIG_INDIRECT_PIO=y +CONFIG_INITRAMFS_SOURCE="" +CONFIG_INTERCONNECT=y +CONFIG_INTERVAL_TREE=y +CONFIG_IOMMU_API=y +CONFIG_IPC_NS=y +CONFIG_IP_PNP=y +CONFIG_IP_PNP_BOOTP=y +CONFIG_IP_PNP_DHCP=y +# CONFIG_IP_PNP_RARP is not set +CONFIG_IRQCHIP=y +CONFIG_IRQ_BYPASS_MANAGER=y +CONFIG_IRQ_DOMAIN=y +CONFIG_IRQ_DOMAIN_HIERARCHY=y +CONFIG_IRQ_FORCED_THREADING=y +CONFIG_IRQ_POLL=y +CONFIG_IRQ_TIME_ACCOUNTING=y +CONFIG_IRQ_WORK=y +CONFIG_JBD2=y +CONFIG_JUMP_LABEL=y +CONFIG_KALLSYMS=y +CONFIG_KEXEC=y +CONFIG_KEXEC_CORE=y +CONFIG_KEXEC_FILE=y +CONFIG_KEYS=y +CONFIG_KSM=y +CONFIG_KVM=y +CONFIG_KVM_GENERIC_DIRTYLOG_READ_PROTECT=y +CONFIG_KVM_MMIO=y +CONFIG_KVM_VFIO=y +CONFIG_LEDS_GPIO=y +CONFIG_LEDS_PWM=y +CONFIG_LEDS_SYSCON=y +CONFIG_LEDS_TRIGGER_CPU=y +CONFIG_LEDS_TRIGGER_DISK=y +CONFIG_LEDS_TRIGGER_PANIC=y +CONFIG_LIBFDT=y +CONFIG_LOCK_DEBUGGING_SUPPORT=y +CONFIG_LOCK_SPIN_ON_OWNER=y +CONFIG_LZO_COMPRESS=y +CONFIG_LZO_DECOMPRESS=y +CONFIG_MAGIC_SYSRQ=y +CONFIG_MAILBOX=y +# CONFIG_MAILBOX_TEST is not set +CONFIG_MD=y +CONFIG_MDIO_BITBANG=y +CONFIG_MDIO_BUS=y +CONFIG_MDIO_BUS_MUX=y +CONFIG_MDIO_BUS_MUX_MESON_G12A=y +CONFIG_MDIO_BUS_MUX_MMIOREG=y +CONFIG_MDIO_BUS_MUX_MULTIPLEXER=y +CONFIG_MDIO_DEVICE=y +CONFIG_MDIO_DEVRES=y +# CONFIG_MDIO_GPIO is not set +CONFIG_MEMCG=y +CONFIG_MEMCG_KMEM=y +CONFIG_MEMCG_SWAP=y +CONFIG_MEMFD_CREATE=y +CONFIG_MEMORY=y +CONFIG_MEMORY_BALLOON=y +CONFIG_MEMORY_FAILURE=y +CONFIG_MEMORY_HOTPLUG=y +# CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE is not set +CONFIG_MEMORY_HOTPLUG_SPARSE=y +CONFIG_MEMORY_HOTREMOVE=y +CONFIG_MEMORY_ISOLATION=y +CONFIG_MEMTEST=y +# CONFIG_MESON_CANVAS is not set +CONFIG_MESON_CLK_MEASURE=y +CONFIG_MESON_EE_PM_DOMAINS=y +CONFIG_MESON_GXBB_WATCHDOG=y +CONFIG_MESON_GXL_PHY=y +CONFIG_MESON_GX_PM_DOMAINS=y +CONFIG_MESON_GX_SOCINFO=y +CONFIG_MESON_IRQ_GPIO=y +CONFIG_MESON_MX_SOCINFO=y +CONFIG_MESON_SARADC=y +CONFIG_MESON_SECURE_PM_DOMAINS=y +CONFIG_MESON_SM=y +# CONFIG_MESON_WATCHDOG is not set +CONFIG_MFD_CORE=y +CONFIG_MFD_SEC_CORE=y +CONFIG_MFD_SYSCON=y +CONFIG_MFD_VEXPRESS_SYSREG=y +CONFIG_MIGRATION=y +CONFIG_MMC=y +CONFIG_MMC_ARMMMCI=y +CONFIG_MMC_BLOCK=y +CONFIG_MMC_CQHCI=y +CONFIG_MMC_DW=y +# CONFIG_MMC_DW_BLUEFIELD is not set +# CONFIG_MMC_DW_EXYNOS is not set +# CONFIG_MMC_DW_HI3798CV200 is not set +# CONFIG_MMC_DW_K3 is not set +# CONFIG_MMC_DW_PCI is not set +CONFIG_MMC_DW_PLTFM=y +CONFIG_MMC_MESON_GX=y +# CONFIG_MMC_MESON_MX_SDIO is not set +CONFIG_MMC_MTK=y +CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_IO_ACCESSORS=y +CONFIG_MMC_SDHCI_OF_DWCMSHC=y +# CONFIG_MMC_SDHCI_PCI is not set +CONFIG_MMC_SDHCI_PLTFM=y +CONFIG_MMC_SPI=y +CONFIG_MMU_NOTIFIER=y +CONFIG_MODULES_USE_ELF_RELA=y +CONFIG_MRP=y +CONFIG_MULTIPLEXER=y +# CONFIG_MUSB_PIO_ONLY is not set +CONFIG_MUTEX_SPIN_ON_OWNER=y +CONFIG_MUX_MMIO=y +CONFIG_MV_XOR_V2=y +CONFIG_NAMESPACES=y +CONFIG_NEED_DMA_MAP_STATE=y +CONFIG_NEED_SG_DMA_LENGTH=y +CONFIG_NETFILTER=y +CONFIG_NET_CLS_ACT=y +# CONFIG_NET_CLS_CGROUP is not set +CONFIG_NET_FAILOVER=y +CONFIG_NET_FLOW_LIMIT=y +CONFIG_NET_NS=y +CONFIG_NLS=y +CONFIG_NLS_CODEPAGE_437=y +CONFIG_NLS_ISO8859_1=y +CONFIG_NOP_USB_XCEIV=y +CONFIG_NO_HZ_COMMON=y +CONFIG_NO_HZ_IDLE=y +CONFIG_NR_CPUS=256 +CONFIG_NVMEM=y +CONFIG_NVMEM_SYSFS=y +CONFIG_OF=y +CONFIG_OF_ADDRESS=y +CONFIG_OF_EARLY_FLATTREE=y +CONFIG_OF_FLATTREE=y +CONFIG_OF_GPIO=y +CONFIG_OF_IRQ=y +CONFIG_OF_KOBJ=y +CONFIG_OF_MDIO=y +CONFIG_OF_NET=y +CONFIG_OID_REGISTRY=y +CONFIG_OLD_SIGSUSPEND3=y +CONFIG_OPTEE=y +CONFIG_OPTEE_SHM_NUM_PRIV_PAGES=1 +CONFIG_PADATA=y +CONFIG_PAGE_COUNTER=y +CONFIG_PAGE_REPORTING=y +CONFIG_PARAVIRT=y +CONFIG_PARTITION_PERCPU=y +CONFIG_PCI=y +CONFIG_PCIEAER=y +CONFIG_PCIEPORTBUS=y +CONFIG_PCIE_DW=y +CONFIG_PCIE_DW_HOST=y +CONFIG_PCIE_PME=y +CONFIG_PCI_HOST_COMMON=y +CONFIG_PCI_HOST_GENERIC=y +CONFIG_PCI_IOV=y +CONFIG_PCI_PASID=y +CONFIG_PCS_XPCS=y +CONFIG_PGTABLE_LEVELS=4 +CONFIG_PHYLIB=y +CONFIG_PHYLINK=y +CONFIG_PHYS_ADDR_T_64BIT=y +CONFIG_PHY_MESON8B_USB2=y +CONFIG_PHY_MESON_AXG_MIPI_PCIE_ANALOG=y +CONFIG_PHY_MESON_AXG_PCIE=y +CONFIG_PHY_MESON_G12A_USB2=y +CONFIG_PHY_MESON_G12A_USB3_PCIE=y +CONFIG_PHY_MESON_GXL_USB2=y +CONFIG_PHY_SAMSUNG_USB2=y +CONFIG_PHY_XGENE=y +CONFIG_PID_NS=y +CONFIG_PINCTRL=y +CONFIG_PINCTRL_MESON=y +CONFIG_PINCTRL_MESON8_PMX=y +CONFIG_PINCTRL_MESON_A1=y +CONFIG_PINCTRL_MESON_AXG=y +CONFIG_PINCTRL_MESON_AXG_PMX=y +CONFIG_PINCTRL_MESON_G12A=y +CONFIG_PINCTRL_MESON_GXBB=y +CONFIG_PINCTRL_MESON_GXL=y +CONFIG_PL330_DMA=y +CONFIG_PLATFORM_MHU=y +CONFIG_PM=y +CONFIG_PM_CLK=y +CONFIG_PM_DEVFREQ=y +# CONFIG_PM_DEVFREQ_EVENT is not set +CONFIG_PM_GENERIC_DOMAINS=y +CONFIG_PM_GENERIC_DOMAINS_OF=y +CONFIG_PM_GENERIC_DOMAINS_SLEEP=y +CONFIG_PM_OPP=y +CONFIG_PM_SLEEP=y +CONFIG_PM_SLEEP_SMP=y +CONFIG_PM_STD_PARTITION="" +CONFIG_POSIX_MQUEUE=y +CONFIG_POSIX_MQUEUE_SYSCTL=y +CONFIG_POWER_RESET=y +CONFIG_POWER_RESET_SYSCON=y +# CONFIG_POWER_RESET_VEXPRESS is not set +CONFIG_POWER_SUPPLY=y +CONFIG_PREEMPT_NOTIFIERS=y +CONFIG_PRINTK_TIME=y +CONFIG_PRINT_QUOTA_WARNING=y +CONFIG_PROC_PID_CPUSET=y +CONFIG_PROC_VMCORE=y +CONFIG_PROFILING=y +CONFIG_PSTORE=y +CONFIG_PWM=y +CONFIG_PWM_MESON=y +CONFIG_PWM_SYSFS=y +# CONFIG_QFMT_V1 is not set +# CONFIG_QFMT_V2 is not set +CONFIG_QUEUED_RWLOCKS=y +CONFIG_QUEUED_SPINLOCKS=y +CONFIG_QUOTA=y +CONFIG_QUOTACTL=y +# CONFIG_QUOTA_NETLINK_INTERFACE is not set +CONFIG_RANDOMIZE_BASE=y +CONFIG_RANDOMIZE_MODULE_REGION_FULL=y +CONFIG_RAS=y +CONFIG_RATIONAL=y +# CONFIG_RAVE_SP_CORE is not set +CONFIG_REALTEK_PHY=y +CONFIG_REBOOT_MODE=y +CONFIG_REGMAP=y +CONFIG_REGMAP_I2C=y +CONFIG_REGMAP_IRQ=y +CONFIG_REGMAP_MMIO=y +CONFIG_REGULATOR=y +CONFIG_REGULATOR_FAN53555=y +CONFIG_REGULATOR_FIXED_VOLTAGE=y +CONFIG_REGULATOR_GPIO=y +CONFIG_REGULATOR_PWM=y +CONFIG_RELOCATABLE=y +CONFIG_REMOTEPROC=y +# CONFIG_REMOTEPROC_CDEV is not set +CONFIG_RESET_CONTROLLER=y +CONFIG_RESET_MESON=y +# CONFIG_RESET_MESON_AUDIO_ARB is not set +CONFIG_RESET_SCMI=y +CONFIG_RFS_ACCEL=y +CONFIG_RODATA_FULL_DEFAULT_ENABLED=y +CONFIG_RPMSG=y +# CONFIG_RPMSG_CHAR is not set +CONFIG_RPS=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_DRV_MESON_VRTC=y +# CONFIG_RTC_DRV_S5M is not set +CONFIG_RTC_I2C_AND_SPI=y +# CONFIG_RT_GROUP_SCHED is not set +CONFIG_RWSEM_SPIN_ON_OWNER=y +CONFIG_SATA_AHCI=y +CONFIG_SATA_AHCI_PLATFORM=y +CONFIG_SATA_HOST=y +CONFIG_SCHED_AUTOGROUP=y +CONFIG_SCHED_INFO=y +CONFIG_SCHED_MC=y +CONFIG_SCHED_SMT=y +CONFIG_SCSI=y +CONFIG_SCSI_HISI_SAS=y +# CONFIG_SCSI_PROC_FS is not set +CONFIG_SCSI_SAS_ATA=y +CONFIG_SCSI_SAS_ATTRS=y +CONFIG_SCSI_SAS_HOST_SMP=y +CONFIG_SCSI_SAS_LIBSAS=y +CONFIG_SCSI_UFSHCD=y +# CONFIG_SCSI_UFSHCD_PCI is not set +CONFIG_SCSI_UFSHCD_PLATFORM=y +# CONFIG_SCSI_UFS_BSG is not set +# CONFIG_SCSI_UFS_CDNS_PLATFORM is not set +# CONFIG_SCSI_UFS_DWC_TC_PLATFORM is not set +CONFIG_SECURITY=y +# CONFIG_SECURITY_NETWORK is not set +CONFIG_SERIAL_DEV_BUS=y +CONFIG_SERIAL_DEV_CTRL_TTYPORT=y +CONFIG_SERIAL_MCTRL_GPIO=y +CONFIG_SERIAL_MESON=y +CONFIG_SERIAL_MESON_CONSOLE=y +CONFIG_SERIAL_OF_PLATFORM=y +CONFIG_SG_POOL=y +CONFIG_SMP=y +CONFIG_SOCK_CGROUP_DATA=y +CONFIG_SOC_BRCMSTB=y +CONFIG_SOC_BUS=y +CONFIG_SPARSEMEM=y +CONFIG_SPARSEMEM_EXTREME=y +CONFIG_SPARSEMEM_MANUAL=y +CONFIG_SPARSEMEM_VMEMMAP=y +CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y +CONFIG_SPARSE_IRQ=y +CONFIG_SPI=y +CONFIG_SPI_CADENCE_QUADSPI=y +CONFIG_SPI_MASTER=y +CONFIG_SPI_MEM=y +# CONFIG_SPI_MESON_SPICC is not set +# CONFIG_SPI_MESON_SPIFC is not set +CONFIG_SRAM=y +CONFIG_SRCU=y +CONFIG_STMMAC_ETH=y +CONFIG_STMMAC_PLATFORM=y +# CONFIG_STMMAC_SELFTESTS is not set +CONFIG_SWIOTLB=y +CONFIG_SWPHY=y +CONFIG_SYSCON_REBOOT_MODE=y +CONFIG_SYSCTL_EXCEPTION_TRACE=y +CONFIG_SYSVIPC_COMPAT=y +CONFIG_SYS_SUPPORTS_HUGETLBFS=y +CONFIG_TASKSTATS=y +CONFIG_TASK_DELAY_ACCT=y +CONFIG_TASK_IO_ACCOUNTING=y +CONFIG_TASK_XACCT=y +CONFIG_TCG_TIS_I2C_INFINEON=y +CONFIG_TCG_TPM=y +CONFIG_TEE=y +CONFIG_THERMAL=y +CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y +CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0 +CONFIG_THERMAL_GOV_STEP_WISE=y +CONFIG_THERMAL_OF=y +CONFIG_THREAD_INFO_IN_TASK=y +CONFIG_TICK_CPU_ACCOUNTING=y +CONFIG_TIMER_OF=y +CONFIG_TIMER_PROBE=y +CONFIG_TIME_NS=y +CONFIG_TMPFS_POSIX_ACL=y +CONFIG_TRANSPARENT_HUGEPAGE=y +CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y +# CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is not set +CONFIG_TREE_RCU=y +CONFIG_TREE_SRCU=y +CONFIG_TUN=y +# CONFIG_UACCE is not set +# CONFIG_UCLAMP_TASK is not set +CONFIG_UNMAP_KERNEL_AT_EL0=y +CONFIG_USB=y +CONFIG_USB_BDC_UDC=y +CONFIG_USB_CHIPIDEA=y +CONFIG_USB_CHIPIDEA_HOST=y +CONFIG_USB_CHIPIDEA_UDC=y +CONFIG_USB_COMMON=y +CONFIG_USB_CONN_GPIO=y +CONFIG_USB_DWC2=y +CONFIG_USB_DWC2_DUAL_ROLE=y +CONFIG_USB_DWC3=y +CONFIG_USB_DWC3_DUAL_ROLE=y +# CONFIG_USB_DWC3_GADGET is not set +# CONFIG_USB_DWC3_HOST is not set +CONFIG_USB_DWC3_MESON_G12A=y +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_EHCI_HCD_PLATFORM=y +CONFIG_USB_GADGET=y +CONFIG_USB_HSIC_USB3503=y +CONFIG_USB_ISP1760=y +CONFIG_USB_ISP1760_DUAL_ROLE=y +# CONFIG_USB_ISP1760_GADGET_ROLE is not set +CONFIG_USB_ISP1760_HCD=y +# CONFIG_USB_ISP1760_HOST_ROLE is not set +CONFIG_USB_ISP1761_UDC=y +CONFIG_USB_MUSB_DUAL_ROLE=y +# CONFIG_USB_MUSB_GADGET is not set +CONFIG_USB_MUSB_HDRC=y +# CONFIG_USB_MUSB_HOST is not set +CONFIG_USB_OHCI_HCD=y +CONFIG_USB_OHCI_HCD_PLATFORM=y +CONFIG_USB_OTG=y +CONFIG_USB_PHY=y +CONFIG_USB_ROLE_SWITCH=y +CONFIG_USB_SNP_CORE=y +CONFIG_USB_SNP_UDC_PLAT=y +CONFIG_USB_STORAGE=y +CONFIG_USB_SUPPORT=y +CONFIG_USB_ULPI=y +CONFIG_USB_ULPI_BUS=y +CONFIG_USB_ULPI_VIEWPORT=y +CONFIG_USB_XHCI_HCD=y +CONFIG_USB_XHCI_PLATFORM=y +CONFIG_USER_NS=y +CONFIG_UTS_NS=y +CONFIG_VEXPRESS_CONFIG=y +CONFIG_VFAT_FS=y +CONFIG_VFIO=y +CONFIG_VFIO_IOMMU_TYPE1=y +# CONFIG_VFIO_MDEV is not set +# CONFIG_VFIO_NOIOMMU is not set +CONFIG_VFIO_PCI=y +CONFIG_VFIO_PCI_INTX=y +CONFIG_VFIO_PCI_MMAP=y +# CONFIG_VFIO_PLATFORM is not set +CONFIG_VFIO_VIRQFD=y +CONFIG_VIRTIO=y +CONFIG_VIRTIO_BALLOON=y +CONFIG_VIRTIO_BLK=y +CONFIG_VIRTIO_CONSOLE=y +CONFIG_VIRTIO_MMIO=y +CONFIG_VIRTIO_NET=y +CONFIG_VIRTIO_PCI=y +CONFIG_VIRTIO_PCI_LEGACY=y +CONFIG_VIRTUALIZATION=y +CONFIG_VLAN_8021Q_GVRP=y +CONFIG_VLAN_8021Q_MVRP=y +CONFIG_VMAP_STACK=y +CONFIG_WANT_DEV_COREDUMP=y +CONFIG_WATCHDOG_CORE=y +CONFIG_XARRAY_MULTI=y +CONFIG_XPS=y +CONFIG_XXHASH=y +# CONFIG_ZONE_DEVICE is not set +CONFIG_ZONE_DMA32=y diff --git a/target/linux/amlogic/mesongx/target.mk b/target/linux/amlogic/mesongx/target.mk new file mode 100644 index 000000000..34d1a58c6 --- /dev/null +++ b/target/linux/amlogic/mesongx/target.mk @@ -0,0 +1,12 @@ +ARCH:=aarch64 +CPU_TYPE:=cortex-a53 +BOARDNAME:=Amlogic S905x boards (64 bit) + +KERNEL_PATCHVER:=5.15 + +DEFAULT_PACKAGES+=ethtool parted kmod-fb + +define Target/Description + Build firmware image for Amlogic S905x devices. + This firmware features a 64 bit kernel. +endef diff --git a/target/linux/amlogic/modules.mk b/target/linux/amlogic/modules.mk new file mode 100644 index 000000000..6866241a0 --- /dev/null +++ b/target/linux/amlogic/modules.mk @@ -0,0 +1,15 @@ +define Package/brcmfmac-firmware-43455-sdio-phicomm-n1 + SECTION:=firmware + CATEGORY:=Firmware + TITLE:=Broadcom BCM43455 firmware for Phicomm N1 + VERSION:=1.0.0 + DEPENDS:=+brcmfmac-firmware-43455-sdio +brcmfmac-nvram-43455-sdio +endef + +define Package/brcmfmac-firmware-43455-sdio-phicomm-n1/install + $(INSTALL_DIR) $(1)/lib/firmware/brcm + $(LN) brcmfmac43455-sdio.raspberrypi,4-model-b.txt $(1)/lib/firmware/brcm/brcmfmac43455-sdio.phicomm,n1.txt + $(LN) brcmfmac43455-sdio.bin $(1)/lib/firmware/brcm/brcmfmac43455-sdio.phicomm,n1.bin + $(LN) brcmfmac43455-sdio.clm_blob $(1)/lib/firmware/brcm/brcmfmac43455-sdio.phicomm,n1.clm_blob +endef +$(eval $(call BuildPackage,brcmfmac-firmware-43455-sdio-phicomm-n1)) diff --git a/target/linux/amlogic/patches-5.15/001-dts-s905d-fix-high-load.patch b/target/linux/amlogic/patches-5.15/001-dts-s905d-fix-high-load.patch new file mode 100644 index 000000000..80bac1c6a --- /dev/null +++ b/target/linux/amlogic/patches-5.15/001-dts-s905d-fix-high-load.patch @@ -0,0 +1,21 @@ +--- + arch/arm64/boot/dts/amlogic/meson-gxl-s905d-p230.dts | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s905d-p230.dts b/arch/arm64/boot/dts/amlogic/meson-gxl-s905d-p230.dts +index b2ab05c22..f025109f2 100644 +--- a/arch/arm64/boot/dts/amlogic/meson-gxl-s905d-p230.dts ++++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s905d-p230.dts +@@ -86,8 +86,7 @@ external_phy: ethernet-phy@0 { + reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>; + + interrupt-parent = <&gpio_intc>; +- interrupts = <29 IRQ_TYPE_LEVEL_LOW>; +- eee-broken-1000t; ++ interrupts = <25 IRQ_TYPE_LEVEL_LOW>; + }; + }; + +-- +2.41.0 + diff --git a/target/linux/amlogic/patches-5.15/002-dts-improve-phicomm-n1-support.patch b/target/linux/amlogic/patches-5.15/002-dts-improve-phicomm-n1-support.patch new file mode 100644 index 000000000..79b07abc4 --- /dev/null +++ b/target/linux/amlogic/patches-5.15/002-dts-improve-phicomm-n1-support.patch @@ -0,0 +1,49 @@ +--- a/arch/arm64/boot/dts/amlogic/meson-gxl-s905d-phicomm-n1.dts ++++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s905d-phicomm-n1.dts +@@ -10,6 +10,17 @@ + / { + compatible = "phicomm,n1", "amlogic,s905d", "amlogic,meson-gxl"; + model = "Phicomm N1"; ++ ++ aliases { ++ mmc0 = &sd_emmc_b; ++ mmc1 = &sd_emmc_c; ++ mmc2 = &sd_emmc_a; ++ ++ led-boot = &led_work; ++ led-failsafe = &led_work; ++ led-running = &led_work; ++ led-upgrade = &led_work; ++ }; + + cvbs-connector { + status = "disabled"; +@@ -18,7 +29,7 @@ + leds { + compatible = "gpio-leds"; + +- led { ++ led_work: led { + label = "n1:white:status"; + gpios = <&gpio_ao GPIOAO_9 GPIO_ACTIVE_HIGH>; + default-state = "on"; +@@ -32,4 +43,19 @@ + + &usb { + dr_mode = "host"; ++}; ++ ++&sd_emmc_a { ++ max-frequency = <80000000>; ++ sd-uhs-ddr50; ++}; ++ ++&sd_emmc_b { ++ status = "disabled"; ++}; ++ ++ðmac { ++ snps,aal; ++ snps,txpbl = <0x8>; ++ snps,rxpbl = <0x8>; + }; diff --git a/target/linux/meson/patches-6.1/902-use-system-LED-for-OpenWrt.patch b/target/linux/amlogic/patches-6.1/902-use-system-LED-for-OpenWrt.patch similarity index 100% rename from target/linux/meson/patches-6.1/902-use-system-LED-for-OpenWrt.patch rename to target/linux/amlogic/patches-6.1/902-use-system-LED-for-OpenWrt.patch diff --git a/target/linux/meson/patches-6.1/903-add-dts-and-identify-emmc.patch b/target/linux/amlogic/patches-6.1/903-add-dts-and-identify-emmc.patch similarity index 100% rename from target/linux/meson/patches-6.1/903-add-dts-and-identify-emmc.patch rename to target/linux/amlogic/patches-6.1/903-add-dts-and-identify-emmc.patch diff --git a/target/linux/meson/patches-6.1/905-pwm-meson-modify-and-simplify-calculation-in.patch b/target/linux/amlogic/patches-6.1/905-pwm-meson-modify-and-simplify-calculation-in.patch similarity index 100% rename from target/linux/meson/patches-6.1/905-pwm-meson-modify-and-simplify-calculation-in.patch rename to target/linux/amlogic/patches-6.1/905-pwm-meson-modify-and-simplify-calculation-in.patch diff --git a/target/linux/meson/image/Makefile b/target/linux/meson/image/Makefile deleted file mode 100644 index 2aac6a2fa..000000000 --- a/target/linux/meson/image/Makefile +++ /dev/null @@ -1,57 +0,0 @@ -# -# This is free software, licensed under the GNU General Public License v2. -# See /LICENSE for more information. -# -include $(TOPDIR)/rules.mk -include $(INCLUDE_DIR)/image.mk - -FAT32_BLOCK_SIZE=1024 -FAT32_BLOCKS=$(shell echo $$(($(CONFIG_TARGET_KERNEL_PARTSIZE)*1024*1024/$(FAT32_BLOCK_SIZE)))) - -define Build/boot-script - # Make an U-boot image and copy it to the boot partition - mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n "boot.scr" -d boot.txt $(KDIR)/boot.scr -endef - -define Build/emmc-common - $(RM) -f $@.boot - mkfs.fat -C $@.boot $(FAT32_BLOCKS) - - mkdir -p $(KDIR)/boot.fat - - $(CP) $(KDIR)/boot.scr $(KDIR)/boot.fat/boot.scr - mcopy -i $@.boot $(KDIR)/boot.scr :: - $(CP) $(IMAGE_KERNEL) $(KDIR)/boot.fat/uImage - mcopy -i $@.boot $(KDIR)/boot.fat/uImage :: - - $(foreach dts,$(shell echo $(DEVICE_DTS)),$(CP) $(DTS_DIR)/$(dts).dtb $(KDIR)/boot.fat/dtb;) - mcopy -i $@.boot $(KDIR)/boot.fat/dtb :: - - $(RM) -rf $(KDIR)/boot.fat - - ./gen_aml_emmc_img.sh $@ $@.boot $(IMAGE_ROOTFS) \ - $(CONFIG_TARGET_KERNEL_PARTSIZE) $(CONFIG_TARGET_ROOTFS_PARTSIZE) -endef - -### Devices ### -define Device/Default - FILESYSTEMS := ext4 - IMAGES := emmc.img - KERNEL_DEPENDS = $$(wildcard $(DTS_DIR)/$$(DEVICE_DTS).dts) - KERNEL_LOADADDR := 0x01080000 - KERNEL_NAME := Image - KERNEL := kernel-bin | uImage none - PROFILES = Default $$(DEVICE_NAME) -endef - -define Device/thunder-onecloud - DEVICE_DTS := meson8b-onecloud - DEVICE_TITLE := Thunder OneCloud - KERNEL_LOADADDR := 0x00208000 - IMAGE/emmc.img := boot-script onecloud | emmc-common $$(DEVICE_NAME) -endef -ifeq ($(SUBTARGET),meson8b) - TARGET_DEVICES += thunder-onecloud -endif - -$(eval $(call BuildImage))