From c7a559980ad18270c0c1c7afa4cbe708f26fb851 Mon Sep 17 00:00:00 2001 From: Sungbo Eo Date: Mon, 31 Jan 2022 13:21:47 +0900 Subject: [PATCH] ath79: improve support for Dongwon T&I DW02-412H * Move &nand node to DTSI * Utilize nvmem for fetching caldata * Rename build recipe, clean before build * Simplify KERNEL definition Signed-off-by: Sungbo Eo --- .../dts/qca9557_dongwon_dw02-412h-128m.dts | 26 +------- .../dts/qca9557_dongwon_dw02-412h-64m.dts | 26 +------- .../ath79/dts/qca9557_dongwon_dw02-412h.dtsi | 66 ++++++++++++++----- target/linux/ath79/image/nand.mk | 12 ++-- .../etc/hotplug.d/firmware/11-ath10k-caldata | 5 -- 5 files changed, 60 insertions(+), 75 deletions(-) diff --git a/target/linux/ath79/dts/qca9557_dongwon_dw02-412h-128m.dts b/target/linux/ath79/dts/qca9557_dongwon_dw02-412h-128m.dts index 2308d82af9..199529e709 100644 --- a/target/linux/ath79/dts/qca9557_dongwon_dw02-412h-128m.dts +++ b/target/linux/ath79/dts/qca9557_dongwon_dw02-412h-128m.dts @@ -7,28 +7,6 @@ compatible = "dongwon,dw02-412h-128m", "qca,qca9557"; }; -&nand { - status = "okay"; - - partitions { - compatible = "fixed-partitions"; - #address-cells = <1>; - #size-cells = <1>; - - partition@0 { - label = "current"; - reg = <0x0 0x1000000>; - read-only; - }; - - partition@1000000 { - label = "kernel"; - reg = <0x1000000 0x800000>; - }; - - partition@1800000 { - label = "ubi"; - reg = <0x1800000 0x6800000>; - }; - }; +&ubi { + reg = <0x1800000 0x6800000>; }; diff --git a/target/linux/ath79/dts/qca9557_dongwon_dw02-412h-64m.dts b/target/linux/ath79/dts/qca9557_dongwon_dw02-412h-64m.dts index 2420dc11a9..15d3d677a9 100644 --- a/target/linux/ath79/dts/qca9557_dongwon_dw02-412h-64m.dts +++ b/target/linux/ath79/dts/qca9557_dongwon_dw02-412h-64m.dts @@ -7,28 +7,6 @@ compatible = "dongwon,dw02-412h-64m", "qca,qca9557"; }; -&nand { - status = "okay"; - - partitions { - compatible = "fixed-partitions"; - #address-cells = <1>; - #size-cells = <1>; - - partition@0 { - label = "current"; - reg = <0x0 0x1000000>; - read-only; - }; - - partition@1000000 { - label = "kernel"; - reg = <0x1000000 0x800000>; - }; - - partition@1800000 { - label = "ubi"; - reg = <0x1800000 0x2800000>; - }; - }; +&ubi { + reg = <0x1800000 0x2800000>; }; diff --git a/target/linux/ath79/dts/qca9557_dongwon_dw02-412h.dtsi b/target/linux/ath79/dts/qca9557_dongwon_dw02-412h.dtsi index fd56983432..498499c146 100644 --- a/target/linux/ath79/dts/qca9557_dongwon_dw02-412h.dtsi +++ b/target/linux/ath79/dts/qca9557_dongwon_dw02-412h.dtsi @@ -97,30 +97,74 @@ read-only; }; - art: partition@1f0000 { + partition@1f0000 { label = "art"; reg = <0x1f0000 0x010000>; read-only; + + compatible = "nvmem-cells"; + #address-cells = <1>; + #size-cells = <1>; + + macaddr_art_0: macaddr@0 { + reg = <0x0 0x6>; + }; + + cal_art_1000: cal@1000 { + reg = <0x1000 0x440>; + }; + + cal_art_5000: cal@5000 { + reg = <0x5000 0x844>; + }; }; }; }; }; +&nand { + status = "okay"; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + label = "current"; + reg = <0x0 0x1000000>; + read-only; + }; + + partition@1000000 { + label = "kernel"; + reg = <0x1000000 0x800000>; + }; + + ubi: partition@1800000 { + label = "ubi"; + }; + }; +}; + &pcie0 { status = "okay"; wifi@0,0 { compatible = "qcom,ath10k"; reg = <0 0 0 0 0>; + + nvmem-cells = <&macaddr_art_0>, <&cal_art_5000>; + nvmem-cell-names = "mac-address", "calibration"; + mac-address-increment = <4>; }; }; &wmac { status = "okay"; - mtd-cal-data = <&art 0x1000>; - nvmem-cells = <&macaddr_art_0>; - nvmem-cell-names = "mac-address"; + nvmem-cells = <&macaddr_art_0>, <&cal_art_1000>; + nvmem-cell-names = "mac-address", "calibration"; mac-address-increment = <3>; }; @@ -144,8 +188,8 @@ 0x54 0x00000000 /* LED Control Register 1 */ 0x58 0x00000000 /* LED Control Register 2 */ 0x5c 0x0030c300 /* LED Control Register 3 */ - 0x7c 0x0000007e /* PORT0_STATUS */ - >; + 0x7c 0x0000007e /* PORT0_STATUS */ + >; }; }; @@ -163,13 +207,3 @@ rgmii-enabled = <1>; }; }; - -&art { - compatible = "nvmem-cells"; - #address-cells = <1>; - #size-cells = <1>; - - macaddr_art_0: macaddr@0 { - reg = <0x0 0x6>; - }; -}; diff --git a/target/linux/ath79/image/nand.mk b/target/linux/ath79/image/nand.mk index b8006c6d0c..1e1152551b 100644 --- a/target/linux/ath79/image/nand.mk +++ b/target/linux/ath79/image/nand.mk @@ -1,7 +1,7 @@ -define Build/dw-headers - head -c 4 $@ >> $@.tmp && \ - head -c 8 /dev/zero >> $@.tmp && \ - tail -c +9 $@ >> $@.tmp && \ +define Build/dongwon-header + head -c 4 $@ > $@.tmp + head -c 8 /dev/zero >> $@.tmp + tail -c +9 $@ >> $@.tmp ( \ header_crc="$$(head -c 68 $@.tmp | gzip -c | \ tail -c 8 | od -An -N4 -tx4 --endian little | tr -d ' \n')"; \ @@ -99,8 +99,8 @@ define Device/dongwon_dw02-412h KERNEL_SIZE := 8192k BLOCKSIZE := 128k PAGESIZE := 2048 - KERNEL := kernel-bin | append-dtb | lzma | uImage lzma | dw-headers - KERNEL_INITRAMFS := kernel-bin | append-dtb | lzma | uImage lzma | dw-headers + KERNEL := $$(KERNEL) | dongwon-header + KERNEL_INITRAMFS := $$(KERNEL) UBINIZE_OPTS := -E 5 IMAGES += factory.img IMAGE/factory.img := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi | \ diff --git a/target/linux/ath79/nand/base-files/etc/hotplug.d/firmware/11-ath10k-caldata b/target/linux/ath79/nand/base-files/etc/hotplug.d/firmware/11-ath10k-caldata index 03e225ddde..d47e296853 100644 --- a/target/linux/ath79/nand/base-files/etc/hotplug.d/firmware/11-ath10k-caldata +++ b/target/linux/ath79/nand/base-files/etc/hotplug.d/firmware/11-ath10k-caldata @@ -13,11 +13,6 @@ case "$FIRMWARE" in caldata_extract "art" 0x5000 0x844 ath10k_patch_mac $(mtd_get_mac_binary art 0x12) ;; - dongwon,dw02-412h-64m|\ - dongwon,dw02-412h-128m) - caldata_extract "art" 0x5000 0x844 - ath10k_patch_mac $(macaddr_add $(mtd_get_mac_binary art 0x0) 4) - ;; glinet,gl-ar750s-nor|\ glinet,gl-ar750s-nor-nand) caldata_extract "art" 0x5000 0x844 -- 2.30.2