From e266de11dcd0b2d71c445b943bef2f50258fa314 Mon Sep 17 00:00:00 2001 From: Ludovic Pouzenc Date: Fri, 14 Sep 2018 23:38:12 +0200 Subject: target/linux/ramips: profile mt7621, cpu 24kec to 1004kc, custom modules hw_nat MTK Hardware NAT nf-sc Netfilter shortcut mtk-i2c APSoC/MTK I2C Driver mtk-i2s I2S Driver mtk-mmc MMC/SD card support hw_wdg Kernel Mode Watchdog rdm Register Debug Module cfg80211-normal CFG80211 kernel support --- target/linux/ramips/Makefile | 14 +- target/linux/ramips/image/Makefile | 101 +++++------- target/linux/ramips/modules.mk | 179 ++++++++++++++++++++++ target/linux/ramips/mt7621/profiles/00-default.mk | 15 +- target/linux/ramips/mt7621/target.mk | 6 +- 5 files changed, 238 insertions(+), 77 deletions(-) diff --git a/target/linux/ramips/Makefile b/target/linux/ramips/Makefile index d363743..ed2999a 100644 --- a/target/linux/ramips/Makefile +++ b/target/linux/ramips/Makefile @@ -8,18 +8,18 @@ include $(TOPDIR)/rules.mk ARCH:=mipsel BOARD:=ramips -BOARDNAME:=Ralink RT288x/RT3xxx -SUBTARGETS:=rt305x mt7620a mt7620n mt7621 rt3883 rt288x +BOARDNAME:=MTK/Ralink APSoC (MIPS) +SUBTARGETS:=mt7620 mt7621 mt7628 FEATURES:=squashfs gpio - -LINUX_VERSION:=3.10.49 +LINUX_VERSION:=3.10.14 +LINUX_P4REV:=169495 +LINUX_EXT_VERSION:=$(LINUX_VERSION)-$(LINUX_P4REV) include $(INCLUDE_DIR)/target.mk -DEFAULT_PACKAGES += \ - kmod-leds-gpio kmod-gpio-button-hotplug wpad-mini swconfig +DEFAULT_PACKAGES += define Target/Description - Build firmware images for Ralink RT288x/RT3xxx based boards. + Build firmware images for MTK/Ralink APSoC based boards. endef $(eval $(call BuildTarget)) diff --git a/target/linux/ramips/image/Makefile b/target/linux/ramips/image/Makefile index 35057e4..5ce8215 100644 --- a/target/linux/ramips/image/Makefile +++ b/target/linux/ramips/image/Makefile @@ -24,21 +24,21 @@ define Image/Build/Initramfs endef endif -ifeq ($(CONFIG_SOC_RT288X),y) +ifeq ($(CONFIG_RALINK_MT7621),y) +ifeq ($(CONFIG_RT2880_DRAM_512M),y) define kernel_entry --a 0x88000000 -e 0x88000000 +-a 0x82001000 -e 0x82001000 endef else -ifeq ($(CONFIG_SOC_MT7621),y) define kernel_entry --a 0x80001000 -e 0x80001000 +-a 0x81001000 -e 0x81001000 endef +endif else define kernel_entry -a 0x80000000 -e 0x80000000 endef endif -endif define MkCombineduImage $(call PatchKernelLzma,$(2),$(3)) @@ -58,7 +58,7 @@ endef # define MkImage - $(eval imagename=$(if $(4),$(4),MIPS OpenWrt Linux-$(LINUX_VERSION))) + $(eval imagename=$(if $(4),$(4),OpenWrt Linux-$(LINUX_EXT_VERSION))) -mkimage -A mips -O linux -T kernel -C $(1) $(call kernel_entry)\ -n "$(imagename)" \ -d $(2) $(3) @@ -81,8 +81,8 @@ endef define PatchKernelLzmaDtb cp $(KDIR)/vmlinux$(3) $(KDIR)/vmlinux-$(1)$(3) - $(LINUX_DIR)/scripts/dtc/dtc -O dtb -o $(KDIR)/$(2).dtb ../dts/$(2).dts - $(STAGING_DIR_HOST)/bin/patch-dtb $(KDIR)/vmlinux-$(1)$(3) $(KDIR)/$(2).dtb + #$(LINUX_DIR)/scripts/dtc/dtc -O dtb -o $(KDIR)/$(2).dtb ../dts/$(2).dts + #$(STAGING_DIR_HOST)/bin/patch-dtb $(KDIR)/vmlinux-$(1)$(3) $(KDIR)/$(2).dtb $(call CompressLzma,$(KDIR)/vmlinux-$(1)$(3),$(KDIR)/vmlinux-$(1)$(3).bin.lzma) endef @@ -124,6 +124,10 @@ ralink_default_fw_size_16M=16121856 BuildFirmware/Default16M/squashfs=$(call BuildFirmware/OF,$(1),$(2),$(3),$(ralink_default_fw_size_16M),$(4)) BuildFirmware/Default16M/initramfs=$(call BuildFirmware/OF/initramfs,$(1),$(2),$(3),$(4)) +ralink_default_fw_size_32M=33554432 +BuildFirmware/Default32M/squashfs=$(call BuildFirmware/OF,$(1),$(2),$(3),$(ralink_default_fw_size_32M),$(4)) +BuildFirmware/Default32M/initramfs=$(call BuildFirmware/OF/initramfs,$(1),$(2),$(3),$(4)) + # Build images for a custom sized flash layout # $(1) = squashfs/initramfs # $(2) = lowercase board name @@ -504,8 +508,6 @@ endef BuildFirmware/WHRG300N/initramfs=$(call BuildFirmware/OF/initramfs,$(1),whr-g300n,WHR-G300N) Image/Build/Profile/WHRG300N=$(call BuildFirmware/WHRG300N/$(1),$(1)) -Image/Build/Profile/WIZARD8800=$(call BuildFirmware/Default8M/$(1),$(1),wizard-8800,WIZARD8800,Linux Kernel Image) - Image/Build/Profile/WL_330N=$(call BuildFirmware/Default4M/$(1),$(1),wl-330n,WL_330N) Image/Build/Profile/WL_330N3G=$(call BuildFirmware/Default4M/$(1),$(1),wl-330n3g,WL_330N3G) @@ -627,7 +629,6 @@ define Image/Build/Profile/Default $(call Image/Build/Profile/W502U,$(1)) $(call Image/Build/Profile/WCR150GN,$(1)) $(call Image/Build/Profile/WHRG300N,$(1)) - $(call Image/Build/Profile/WIZARD8800,$(1)) $(call Image/Build/Profile/WL_330N,$(1)) $(call Image/Build/Profile/WL_330N3G,$(1)) $(call Image/Build/Profile/WL341V3,$(1)) @@ -709,78 +710,54 @@ endef endif # -# MT7620A Profiles +# MT7620 Profiles # -Image/Build/Profile/MT7620a=$(call BuildFirmware/Default8M/$(1),$(1),mt7620a,MT7620a) -Image/Build/Profile/MT7620a_MT7610e=$(call BuildFirmware/Default8M/$(1),$(1),mt7620a_mt7610e,MT7620a_MT7610e) -Image/Build/Profile/MT7620a_MT7530=$(call BuildFirmware/Default8M/$(1),$(1),mt7620a_mt7530,MT7620a_MT7530) -Image/Build/Profile/MT7620a_V22SG=$(call BuildFirmware/Default8M/$(1),$(1),mt7620a_v22sg,MT7620a_V22SG) -Image/Build/Profile/RP-N53=$(call BuildFirmware/Default8M/$(1),$(1),rp_n53,RP-N53) -whr_300hp2_mtd_size=7012352 -Image/Build/Profile/WHR300HP2=$(call BuildFirmware/CustomFlash/$(1),$(1),whr-300hp2,WHR-300HP2,$(whr_300hp2_mtd_size)) -Image/Build/Profile/WHR600D=$(call BuildFirmware/CustomFlash/$(1),$(1),whr-600d,WHR-600D,$(whr_300hp2_mtd_size)) -whr_1166d_mtd_size=15400960 -Image/Build/Profile/WHR1166D=$(call BuildFirmware/CustomFlash/$(1),$(1),whr-1166d,WHR-1166D,$(whr_1166hd_mtd_size)) -dlink810l_mtd_size=6881280 -Image/Build/Profile/DIR-810L=$(call BuildFirmware/CustomFlash/$(1),$(1),dir-810l,DIR-810L,$(dlink810l_mtd_size)) -na930_mtd_size=20971520 -Image/Build/Profile/NA930=$(call BuildFirmware/CustomFlash/$(1),$(1),na930,NA930,$(na930_mtd_size)) -Image/Build/Profile/MZK-750DHP=$(call BuildFirmware/Default8M/$(1),$(1),mzk-750dhp,MZK-750DHP) -Image/Build/Profile/Y1=$(call BuildFirmware/Default16M/$(1),$(1),Lenovo-y1,Y1) -Image/Build/Profile/Y1S=$(call BuildFirmware/Default16M/$(1),$(1),Lenovo-y1s,Y1S) - -ifeq ($(SUBTARGET),mt7620a) + +Image/Build/Profile/MT7620=$(call BuildFirmware/Default8M/$(1),$(1),mt7620,MT7620) + +ifeq ($(SUBTARGET),mt7620) define Image/Build/Profile/Default - $(call Image/Build/Profile/MT7620a,$(1)) - $(call Image/Build/Profile/MT7620a_MT7610e,$(1)) - $(call Image/Build/Profile/MT7620a_MT7530,$(1)) - $(call Image/Build/Profile/MT7620a_V22SG,$(1)) - $(call Image/Build/Profile/RP-N53,$(1)) - $(call Image/Build/Profile/DIR-810L,$(1)) - $(call Image/Build/Profile/WHR300HP2,$(1)) - $(call Image/Build/Profile/WHR600D,$(1)) - $(call Image/Build/Profile/WHR1166D,$(1)) - $(call Image/Build/Profile/MZK-750DHP,$(1)) - $(call Image/Build/Profile/NA930,$(1)) - $(call Image/Build/Profile/Y1,$(1)) - $(call Image/Build/Profile/Y1S,$(1)) + $(call Image/Build/Profile/MT7620,$(1)) endef endif # -# MT7620N Profiles +# MT7621 Profiles # -Image/Build/Profile/MLW221=$(call BuildFirmware/Default16M/$(1),$(1),mlw221,MLW221) -Image/Build/Profile/WMR300=$(call BuildFirmware/Default8M/$(1),$(1),wmr-300,WMR300) -Image/Build/Profile/RT-N14U=$(call BuildFirmware/Default8M/$(1),$(1),rt-n14u,RT-N14U) -Image/Build/Profile/WR8305RT=$(call BuildFirmware/Default8M/$(1),$(1),wr8305rt,WR8305RT) -Image/Build/Profile/WRTNODE=$(call BuildFirmware/Default16M/$(1),$(1),wrtnode,WRTNODE) -Image/Build/Profile/ZBT-WA05=$(call BuildFirmware/Default8M/$(1),$(1),zbt-wa05,ZBT-WA05) +Image/Build/Profile/MT7621=$(call BuildFirmware/Default8M/$(1),$(1),mt7621,MT7621) -ifeq ($(SUBTARGET),mt7620n) +ifeq ($(SUBTARGET),mt7621) define Image/Build/Profile/Default - $(call Image/Build/Profile/MLW221,$(1)) - $(call Image/Build/Profile/WMR300,$(1)) - $(call Image/Build/Profile/RT-N14U,$(1)) - $(call Image/Build/Profile/WR8305RT,$(1)) - $(call Image/Build/Profile/WRTNODE,$(1)) - $(call Image/Build/Profile/ZBT-WA05,$(1)) + $(call Image/Build/Profile/MT7621,$(1)) endef endif # -# MT7621 Profiles +# MT7628 Profiles # -Image/Build/Profile/MT7621=$(call BuildFirmware/Default4M/$(1),$(1),mt7621,MT7621) +Image/Build/Profile/MT7628=$(call BuildFirmware/Default8M/$(1),$(1),mt7628,MT7628) -ifeq ($(SUBTARGET),mt7621) +ifeq ($(SUBTARGET),mt7628) define Image/Build/Profile/Default - $(call Image/Build/Profile/MT7621,$(1)) + $(call Image/Build/Profile/MT7628,$(1)) +endef +endif + + +# +# MT7688 Profiles +# + +Image/Build/Profile/MT7688=$(call BuildFirmware/Default8M/$(1),$(1),mt7688,MT7688) + +ifeq ($(SUBTARGET),mt7688) +define Image/Build/Profile/Default + $(call Image/Build/Profile/MT7688,$(1)) endef endif diff --git a/target/linux/ramips/modules.mk b/target/linux/ramips/modules.mk index cff4d71..72b4d56 100644 --- a/target/linux/ramips/modules.mk +++ b/target/linux/ramips/modules.mk @@ -54,6 +54,45 @@ endef $(eval $(call KernelPackage,i2c-ralink)) + +define KernelPackage/hw_nat + CATEGORY:=MTK Properties + SUBMENU:=Drivers + TITLE:=MTK Hardware NAT + KCONFIG:=CONFIG_RA_HW_NAT + DEPENDS:=@TARGET_ramips_mt7620||@TARGET_ramips_mt7621||@TARGET_mediatek_mt7623_emmc||@TARGET_mediatek_mt7623_mtd + FILES:=$(LINUX_DIR)/net/nat/hw_nat/hw_nat.ko + AUTOLOAD:=$(call AutoProbe,hw_nat) +endef + +define KernelPackage/hw_nat/install + $(INSTALL_DIR) $(1)/lib/modules/ralink/ + mv $(1)/lib/modules/$(if $(findstring y,$(CONFIG_TARGET_mediatek)),3.10.20,3.10.14)/hw_nat.ko $(1)/lib/modules/ralink/ +endef + +$(eval $(call KernelPackage,hw_nat)) + +define KernelPackage/nf-sc + CATEGORY:=MTK Properties + SUBMENU:=Drivers + TITLE:=Netfilter shortcut + DEPENDS:=+kmod-ipt-core + KCONFIG:=CONFIG_NF_SHORTCUT_HOOK + FILES:=$(LINUX_DIR)/net/netfilter/nf_sc.ko + AUTOLOAD:=$(call AutoProbe,nf_sc) +endef + +define KernelPackage/nf-sc/install + $(INSTALL_DIR) $(1)/lib/modules/ralink/ + mv $(1)/lib/modules/$(if $(findstring y,$(CONFIG_TARGET_mediatek)),3.10.20,3.10.14)/nf_sc.ko $(1)/lib/modules/ralink/ +endef + +define KernelPackage/nf-sc/description + Kernel modules support for shortcut +endef + +$(eval $(call KernelPackage,nf-sc)) + define KernelPackage/sound-mt7620 TITLE:=MT7620 PCM/I2S Alsa Driver DEPENDS:=@TARGET_ramips_mt7620a +kmod-sound-soc-core +kmod-regmap @@ -73,3 +112,143 @@ define KernelPackage/sound-mt7620/description endef $(eval $(call KernelPackage,sound-mt7620)) + + + +define KernelPackage/mtk-gdma + CATEGORY:=MTK Properties + SUBMENU:=Drivers + TITLE:=GDMA Driver + DEPENDS:=@TARGET_ramips_mt7621 + KCONFIG:=CONFIG_RALINK_GDMA CONFIG_GDMA_EVERYBODY + FILES:=$(LINUX_DIR)/drivers/char/ralink_gdma.ko + AUTOLOAD:=$(call AutoLoad,90,ralink_gdma) +endef + +define KernelPackage/mtk-gdma/description + MediaTek APSoC GDMA driver +endef + +$(eval $(call KernelPackage,mtk-gdma)) + + + +define KernelPackage/mtk-i2c + CATEGORY:=MTK Properties + SUBMENU:=Drivers + TITLE:=MTK I2C Driver + DEPENDS:=@TARGET_ramips_mt7621 + KCONFIG:=CONFIG_RALINK_I2C + FILES:=$(LINUX_DIR)/drivers/char/i2c_drv.ko + AUTOLOAD:=$(call AutoLoad,90,i2c_drv) +endef + +define KernelPackage/mtk-i2c/description + MediaTek APSoC I2C Driver +endef + +$(eval $(call KernelPackage,mtk-i2c)) + + +define KernelPackage/mtk-pcm + CATEGORY:=MTK Properties + SUBMENU:=Drivers + TITLE:=MTK PCM Driver + DEPENDS:=@TARGET_ramips_mt7621 +kmod-mtk-gdma + KCONFIG:=CONFIG_RALINK_PCM + FILES:=$(LINUX_DIR)/drivers/char/pcm/ralink_pcm.ko + AUTOLOAD:=$(call AutoLoad,90,ralink_pcm) +endef + +define KernelPackage/mtk-pcm/description + MediaTek APSoC PCM Driver +endef + +$(eval $(call KernelPackage,mtk-pcm)) + + +define KernelPackage/mtk-i2s + CATEGORY:=MTK Properties + SUBMENU:=Drivers + TITLE:=I2S Driver + DEPENDS:=@TARGET_ramips_mt7621 +kmod-mtk-gdma +kmod-mtk-i2c + KCONFIG:=CONFIG_RALINK_I2S CONFIG_I2S_WM8960 + FILES:=$(LINUX_DIR)/drivers/char/i2s/core/ralink_i2s.ko + AUTOLOAD:=$(call AutoLoad,90,ralink_i2s) +endef + +define KernelPackage/mtk-i2s/description + MediaTek APSoC I2S driver, along with a WM8960 driver (You don't + have to choose /sound/soc/codecs/wm8960 . +endef + +$(eval $(call KernelPackage,mtk-i2s)) + + + +define KernelPackage/mtk-mmc + CATEGORY:=MTK Properties + SUBMENU:=Drivers + TITLE:=MMC/SD card support + DEPENDS:=+kmod-mmc + KCONFIG:= \ + CONFIG_MTK_MMC=m + FILES:= \ + $(LINUX_DIR)/drivers/mmc/host/mtk-mmc/mtk_sd.ko + AUTOLOAD:=$(call AutoLoad,90,mtk_sd) +endef + +define KernelPackage/mtk-mmc/description + driver for mtk mmc/sd card controller. +endef + +$(eval $(call KernelPackage,mtk-mmc)) + + +define KernelPackage/hw_wdg + CATEGORY:=MTK Properties + SUBMENU:=Drivers + TITLE:=MTK APSoC Watchdog Driver + KCONFIG:= CONFIG_WATCHDOG=y CONFIG_RALINK_WATCHDOG CONFIG_RALINK_TIMER_WDG_RESET_OUTPUT=y + FILES:=$(LINUX_DIR)/drivers/watchdog/ralink_wdt.ko + AUTOLOAD:=$(call AutoProbe,ralink_wdt) +endef + +$(eval $(call KernelPackage,hw_wdg)) + +define KernelPackage/hw_kwdg + CATEGORY:=MTK Properties + SUBMENU:=Drivers + TITLE:=Kernel Mode Watchdog + KCONFIG:=CONFIG_RALINK_TIMER CONFIG_RALINK_TIMER_DFS=y CONFIG_RALINK_TIMER_WDG CONFIG_RALINK_WDG_TIMER=10 CONFIG_RALINK_WDG_REFRESH_INTERVAL=4 CONFIG_RALINK_TIMER_WDG_RESET_OUTPUT=y + FILES:=$(LINUX_DIR)/arch/mips/ralink/ralink_wdt.ko + AUTOLOAD:=$(call AutoProbe,ralink_wdt) +endef + +$(eval $(call KernelPackage,hw_kwdg)) + + +define KernelPackage/rdm + CATEGORY:=MTK Properties + SUBMENU:=Drivers + TITLE:=Register Debug Module + KCONFIG:=CONFIG_RALINK_RDM=m + FILES:=$(LINUX_DIR)/drivers/net/rt_rdm/rt_rdm.ko + AUTOLOAD:=$(call AutoProbe,rt_rdm) +endef + +$(eval $(call KernelPackage,rdm)) + + +define KernelPackage/cfg80211-normal + CATEGORY:=MTK Properties + SUBMENU:=Drivers + TITLE:=CFG80211 kernel support + KCONFIG:=CONFIG_CFG80211=m + FILES:=$(LINUX_DIR)/net/wireless/cfg80211.ko + AUTOLOAD:=$(call AutoProbe,cfg80211) +endef + +$(eval $(call KernelPackage,cfg80211-normal)) + + diff --git a/target/linux/ramips/mt7621/profiles/00-default.mk b/target/linux/ramips/mt7621/profiles/00-default.mk index fb04ba7..40a5099 100644 --- a/target/linux/ramips/mt7621/profiles/00-default.mk +++ b/target/linux/ramips/mt7621/profiles/00-default.mk @@ -5,14 +5,19 @@ # See /LICENSE for more information. # -define Profile/Default +define Profile/MT7621 NAME:=Default Profile PACKAGES:=\ - kmod-usb-core kmod-usb3 \ - kmod-ledtrig-usbdev + -swconfig -rt2x00 \ + ated hwnat reg gpio btnd switch ethstt uci2dat mii_mgr watchdog 8021xd \ + wireless-tools block-mount fstools kmod-scsi-generic \ + kmod-usb-core kmod-usb3 kmod-usb-storage \ + kmod-fs-vfat kmod-fs-ntfs kmod-nls-base kmod-nls-utf8 kmod-nls-cp936 \ + kmod-nls-cp437 kmod-nls-cp850 kmod-nls-iso8859-1 kmod-nls-iso8859-15 kmod-nls-cp950 endef + define Profile/Default/Description - Default package set compatible with most boards. + Basic MT7621 SoC support endef -$(eval $(call Profile,Default)) +$(eval $(call Profile,MT7621)) diff --git a/target/linux/ramips/mt7621/target.mk b/target/linux/ramips/mt7621/target.mk index 830b5b0..99cd4d1 100644 --- a/target/linux/ramips/mt7621/target.mk +++ b/target/linux/ramips/mt7621/target.mk @@ -4,12 +4,12 @@ SUBTARGET:=mt7621 BOARDNAME:=MT7621 based boards -ARCH_PACKAGES:=ramips_24kec +ARCH_PACKAGES:=ramips_1004kc FEATURES+=usb -CPU_TYPE:=24kec +CPU_TYPE:=1004kc CPU_SUBTYPE:=dsp +CFLAGS:=-Os -pipe -mmt -mips32r2 -mtune=1004kc -DEFAULT_PACKAGES += kmod-rt2800-pci define Target/Description Build firmware images for Ralink MT7621 based boards. -- cgit v1.1