Hardware -------- CPU: Qualcomm IPQ4019 RAM: 256M (NANYA NT5CC128M16JR-EK) FLASH: 128M NAND (Macronix MX30LF1G18AC-XKI) ETH: Qualcomm QCA8072 WiFi2: IPQ4019 2T2R 2SS b/g/n WiFi5: IPQ4019 2T2R 2SS n/ac WiFi5: QCA9984 4T4R 4SS n/ac LED: - Connect green/blue/red - Power green BTN: WPS/Connect UART: 115200n8 3.3V VCC - RX - TX - GND (Square is VCC) Installation ------------ 1. Grab the uboot for the Device from the 'u-boot-fritz3000' subdirectory. Place it in the same directory as the 'eva_ramboot.py' script. It is located in the 'scripts/flashing' subdirectory of the OpenWRT tree. 2. Assign yourself the IP address 192.168.178.10/24. Connect your Computer to one of the boxes LAN ports. 3. Connect Power to the Box. As soon as the LAN port of your computer shows link, load the U-Boot to the box using following command. > ./eva_ramboot.py --offset 0x85000000 192.168.178.1 uboot-fritz3000.bin 4. The U-Boot will now start. Now assign yourself the IP address 192.168.1.70/24. Copy the OpenWRT initramfs (!) image to a TFTP server root directory and rename it to 'FRITZ3000.bin'. 5. The Box will now boot OpenWRT from RAM. This can take up to two minutes. 6. Copy the U-Boot and the OpenWRT sysupgrade (!) image to the Box using scp. SSH into the Box and first write the Bootloader to both previous kernel partitions. > mtd write /path/to/uboot-fritz3000.bin uboot0 > mtd write /path/to/uboot-fritz3000.bin uboot1 7. Remove the AVM filesystem partitions to make room for our kernel + rootfs + overlayfs. > ubirmvol /dev/ubi0 --name=avm_filesys_0 > ubirmvol /dev/ubi0 --name=avm_filesys_1 8. Flash OpenWRT peristently using sysupgrade. > sysupgrade -n /path/to/openwrt-sysupgrade.bin Signed-off-by: David Bauer <mail@david-bauer.net>master
parent
5389db72e3
commit
148d29d47b
Binary file not shown.
@ -0,0 +1,260 @@ |
||||
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT |
||||
|
||||
#include "qcom-ipq4019.dtsi" |
||||
#include <dt-bindings/gpio/gpio.h> |
||||
#include <dt-bindings/input/input.h> |
||||
#include <dt-bindings/soc/qcom,tcsr.h> |
||||
|
||||
/ { |
||||
model = "AVM FRITZ!Repeater 3000"; |
||||
compatible = "avm,fritzrepeater-3000"; |
||||
|
||||
aliases { |
||||
led-boot = &power_led; |
||||
led-failsafe = &power_led; |
||||
led-running = &power_led; |
||||
led-upgrade = &power_led; |
||||
}; |
||||
|
||||
soc { |
||||
mdio@90000 { |
||||
status = "okay"; |
||||
}; |
||||
|
||||
ess-psgmii@98000 { |
||||
status = "okay"; |
||||
}; |
||||
|
||||
tcsr@1949000 { |
||||
compatible = "qcom,tcsr"; |
||||
reg = <0x1949000 0x100>; |
||||
qcom,wifi_glb_cfg = <TCSR_WIFI_GLB_CFG>; |
||||
}; |
||||
|
||||
ess_tcsr@1953000 { |
||||
compatible = "qcom,tcsr"; |
||||
reg = <0x1953000 0x1000>; |
||||
qcom,ess-interface-select = <TCSR_ESS_PSGMII>; |
||||
}; |
||||
|
||||
tcsr@1957000 { |
||||
compatible = "qcom,tcsr"; |
||||
reg = <0x1957000 0x100>; |
||||
qcom,wifi_noc_memtype_m0_m2 = <TCSR_WIFI_NOC_MEMTYPE_M0_M2>; |
||||
}; |
||||
|
||||
crypto@8e3a000 { |
||||
status = "okay"; |
||||
}; |
||||
|
||||
watchdog@b017000 { |
||||
status = "okay"; |
||||
}; |
||||
|
||||
ess-switch@c000000 { |
||||
status = "okay"; |
||||
|
||||
switch_lan_bmp = <0x10>; |
||||
switch_wan_bmp = <0x20>; |
||||
}; |
||||
|
||||
edma@c080000 { |
||||
status = "okay"; |
||||
}; |
||||
}; |
||||
|
||||
key { |
||||
compatible = "gpio-keys"; |
||||
|
||||
connect { |
||||
label = "Connect"; |
||||
gpios = <&tlmm 10 GPIO_ACTIVE_LOW>; |
||||
linux,code = <KEY_WPS_BUTTON>; |
||||
}; |
||||
}; |
||||
|
||||
leds { |
||||
compatible = "gpio-leds"; |
||||
|
||||
connect_red { |
||||
label = "fritzwlan-3000:red:connect"; |
||||
gpios = <&tlmm 30 GPIO_ACTIVE_LOW>; |
||||
}; |
||||
|
||||
connect_green { |
||||
label = "fritzwlan-3000:green:connect"; |
||||
gpios = <&tlmm 31 GPIO_ACTIVE_LOW>; |
||||
}; |
||||
|
||||
connect_blue { |
||||
label = "fritzwlan-3000:blue:connect"; |
||||
gpios = <&tlmm 32 GPIO_ACTIVE_LOW>; |
||||
}; |
||||
|
||||
power_led: power { |
||||
label = "fritzwlan-3000:green:power"; |
||||
gpios = <&tlmm 33 GPIO_ACTIVE_LOW>; |
||||
}; |
||||
}; |
||||
}; |
||||
|
||||
&tlmm { |
||||
serial_0_pins: serial_pinmux { |
||||
mux { |
||||
pins = "gpio16", "gpio17"; |
||||
function = "blsp_uart0"; |
||||
bias-disable; |
||||
}; |
||||
}; |
||||
|
||||
nand_pins: nand_pins { |
||||
pullups { |
||||
pins = "gpio53", "gpio58", "gpio59"; |
||||
function = "qpic"; |
||||
bias-pull-up; |
||||
}; |
||||
|
||||
pulldowns { |
||||
pins = "gpio54", "gpio55", "gpio56", |
||||
"gpio57", "gpio60", "gpio61", |
||||
"gpio62", "gpio63", "gpio64", |
||||
"gpio65", "gpio66", "gpio67", |
||||
"gpio68", "gpio69"; |
||||
function = "qpic"; |
||||
bias-pull-down; |
||||
}; |
||||
}; |
||||
}; |
||||
|
||||
&nand { |
||||
pinctrl-0 = <&nand_pins>; |
||||
pinctrl-names = "default"; |
||||
status = "okay"; |
||||
|
||||
nand@0 { |
||||
partitions { |
||||
compatible = "fixed-partitions"; |
||||
#address-cells = <1>; |
||||
#size-cells = <1>; |
||||
|
||||
partition@0 { |
||||
label = "SBL1"; |
||||
reg = <0x000000 0x80000>; |
||||
read-only; |
||||
}; |
||||
|
||||
partition@80000 { |
||||
label = "MIBIB"; |
||||
reg = <0x080000 0x80000>; |
||||
read-only; |
||||
}; |
||||
|
||||
partition@100000 { |
||||
label = "QSEE"; |
||||
reg = <0x100000 0x80000>; |
||||
read-only; |
||||
}; |
||||
|
||||
partition@180000 { |
||||
label = "CDT"; |
||||
reg = <0x180000 0x40000>; |
||||
read-only; |
||||
}; |
||||
|
||||
partition@1c0000 { |
||||
label = "QSEE_B"; |
||||
reg = <0x1c0000 0x80000>; |
||||
read-only; |
||||
}; |
||||
|
||||
partition@240000 { |
||||
label = "urlader0"; |
||||
reg = <0x240000 0x40000>; |
||||
read-only; |
||||
}; |
||||
|
||||
partition@280000 { |
||||
label = "urlader1"; |
||||
reg = <0x280000 0x40000>; |
||||
read-only; |
||||
}; |
||||
|
||||
partition@2c0000 { |
||||
label = "nand-tffs"; |
||||
reg = <0x2c0000 0x840000>; |
||||
read-only; |
||||
}; |
||||
|
||||
partition@b00000 { |
||||
/* 'kernel1' in AVM firmware */ |
||||
label = "uboot0"; |
||||
reg = <0xb00000 0x400000>; |
||||
}; |
||||
|
||||
partition@f00000 { |
||||
/* 'kernel2' in AVM firmware */ |
||||
label = "uboot1"; |
||||
reg = <0xf00000 0x400000>; |
||||
}; |
||||
|
||||
partition@1300000 { |
||||
label = "ubi"; |
||||
reg = <0x1300000 0x6d00000>; |
||||
}; |
||||
}; |
||||
}; |
||||
}; |
||||
|
||||
&cryptobam { |
||||
status = "okay"; |
||||
}; |
||||
|
||||
&blsp_dma { |
||||
status = "okay"; |
||||
}; |
||||
|
||||
&blsp1_uart1 { |
||||
pinctrl-0 = <&serial_0_pins>; |
||||
pinctrl-names = "default"; |
||||
status = "okay"; |
||||
}; |
||||
|
||||
&qpic_bam { |
||||
status = "okay"; |
||||
}; |
||||
|
||||
&wifi0 { |
||||
status = "okay"; |
||||
/* BDFs are identical for the FRITZ!Box 7530 and the FRITZ!Repeater 3000 */ |
||||
qcom,ath10k-calibration-variant = "AVM-FRITZRepeater-3000"; |
||||
}; |
||||
|
||||
&wifi1 { |
||||
status = "okay"; |
||||
ieee80211-freq-limit = <5170000 5350000>; |
||||
/* BDFs are identical for the FRITZ!Box 7530 and the FRITZ!Repeater 3000 */ |
||||
qcom,ath10k-calibration-variant = "AVM-FRITZRepeater-3000"; |
||||
}; |
||||
|
||||
&pcie0 { |
||||
status = "okay"; |
||||
|
||||
perst-gpio = <&tlmm 35 GPIO_ACTIVE_LOW>; |
||||
wake-gpio = <&tlmm 50 GPIO_ACTIVE_LOW>; |
||||
|
||||
bridge@0,0 { |
||||
reg = <0x00000000 0 0 0 0>; |
||||
#address-cells = <3>; |
||||
#size-cells = <2>; |
||||
ranges; |
||||
|
||||
wifi@1,0 { |
||||
/* QCA9984 */ |
||||
compatible = "qcom,ath10k"; |
||||
status = "okay"; |
||||
reg = <0x00010000 0 0 0 0>; |
||||
ieee80211-freq-limit = <5470000 5875000>; |
||||
/* Uses the reference BDF */ |
||||
}; |
||||
}; |
||||
}; |
@ -0,0 +1,264 @@ |
||||
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT |
||||
|
||||
#include "qcom-ipq4019.dtsi" |
||||
#include <dt-bindings/gpio/gpio.h> |
||||
#include <dt-bindings/input/input.h> |
||||
#include <dt-bindings/soc/qcom,tcsr.h> |
||||
|
||||
/ { |
||||
model = "AVM FRITZ!Repeater 3000"; |
||||
compatible = "avm,fritzrepeater-3000"; |
||||
|
||||
aliases { |
||||
led-boot = &power_led; |
||||
led-failsafe = &power_led; |
||||
led-running = &power_led; |
||||
led-upgrade = &power_led; |
||||
}; |
||||
|
||||
soc { |
||||
rng@22000 { |
||||
status = "okay"; |
||||
}; |
||||
|
||||
mdio@90000 { |
||||
status = "okay"; |
||||
}; |
||||
|
||||
ess-psgmii@98000 { |
||||
status = "okay"; |
||||
}; |
||||
|
||||
tcsr@1949000 { |
||||
compatible = "qcom,tcsr"; |
||||
reg = <0x1949000 0x100>; |
||||
qcom,wifi_glb_cfg = <TCSR_WIFI_GLB_CFG>; |
||||
}; |
||||
|
||||
ess_tcsr@1953000 { |
||||
compatible = "qcom,tcsr"; |
||||
reg = <0x1953000 0x1000>; |
||||
qcom,ess-interface-select = <TCSR_ESS_PSGMII>; |
||||
}; |
||||
|
||||
tcsr@1957000 { |
||||
compatible = "qcom,tcsr"; |
||||
reg = <0x1957000 0x100>; |
||||
qcom,wifi_noc_memtype_m0_m2 = <TCSR_WIFI_NOC_MEMTYPE_M0_M2>; |
||||
}; |
||||
|
||||
crypto@8e3a000 { |
||||
status = "okay"; |
||||
}; |
||||
|
||||
watchdog@b017000 { |
||||
status = "okay"; |
||||
}; |
||||
|
||||
ess-switch@c000000 { |
||||
status = "okay"; |
||||
|
||||
switch_lan_bmp = <0x10>; |
||||
switch_wan_bmp = <0x20>; |
||||
}; |
||||
|
||||
edma@c080000 { |
||||
status = "okay"; |
||||
}; |
||||
}; |
||||
|
||||
key { |
||||
compatible = "gpio-keys"; |
||||
|
||||
connect { |
||||
label = "Connect"; |
||||
gpios = <&tlmm 10 GPIO_ACTIVE_LOW>; |
||||
linux,code = <KEY_WPS_BUTTON>; |
||||
}; |
||||
}; |
||||
|
||||
leds { |
||||
compatible = "gpio-leds"; |
||||
|
||||
connect_red { |
||||
label = "fritzwlan-3000:red:connect"; |
||||
gpios = <&tlmm 30 GPIO_ACTIVE_LOW>; |
||||
}; |
||||
|
||||
connect_green { |
||||
label = "fritzwlan-3000:green:connect"; |
||||
gpios = <&tlmm 31 GPIO_ACTIVE_LOW>; |
||||
}; |
||||
|
||||
connect_blue { |
||||
label = "fritzwlan-3000:blue:connect"; |
||||
gpios = <&tlmm 32 GPIO_ACTIVE_LOW>; |
||||
}; |
||||
|
||||
power_led: power { |
||||
label = "fritzwlan-3000:green:power"; |
||||
gpios = <&tlmm 33 GPIO_ACTIVE_LOW>; |
||||
}; |
||||
}; |
||||
}; |
||||
|
||||
&tlmm { |
||||
serial_0_pins: serial_pinmux { |
||||
mux { |
||||
pins = "gpio16", "gpio17"; |
||||
function = "blsp_uart0"; |
||||
bias-disable; |
||||
}; |
||||
}; |
||||
|
||||
nand_pins: nand_pins { |
||||
pullups { |
||||
pins = "gpio53", "gpio58", "gpio59"; |
||||
function = "qpic"; |
||||
bias-pull-up; |
||||
}; |
||||
|
||||
pulldowns { |
||||
pins = "gpio54", "gpio55", "gpio56", |
||||
"gpio57", "gpio60", "gpio61", |
||||
"gpio62", "gpio63", "gpio64", |
||||
"gpio65", "gpio66", "gpio67", |
||||
"gpio68", "gpio69"; |
||||
function = "qpic"; |
||||
bias-pull-down; |
||||
}; |
||||
}; |
||||
}; |
||||
|
||||
&nand { |
||||
pinctrl-0 = <&nand_pins>; |
||||
pinctrl-names = "default"; |
||||
status = "okay"; |
||||
|
||||
nand@0 { |
||||
partitions { |
||||
compatible = "fixed-partitions"; |
||||
#address-cells = <1>; |
||||
#size-cells = <1>; |
||||
|
||||
partition@0 { |
||||
label = "SBL1"; |
||||
reg = <0x000000 0x80000>; |
||||
read-only; |
||||
}; |
||||
|
||||
partition@80000 { |
||||
label = "MIBIB"; |
||||
reg = <0x080000 0x80000>; |
||||
read-only; |
||||
}; |
||||
|
||||
partition@100000 { |
||||
label = "QSEE"; |
||||
reg = <0x100000 0x80000>; |
||||
read-only; |
||||
}; |
||||
|
||||
partition@180000 { |
||||
label = "CDT"; |
||||
reg = <0x180000 0x40000>; |
||||
read-only; |
||||
}; |
||||
|
||||
partition@1c0000 { |
||||
label = "QSEE_B"; |
||||
reg = <0x1c0000 0x80000>; |
||||
read-only; |
||||
}; |
||||
|
||||
partition@240000 { |
||||
label = "urlader0"; |
||||
reg = <0x240000 0x40000>; |
||||
read-only; |
||||
}; |
||||
|
||||
partition@280000 { |
||||
label = "urlader1"; |
||||
reg = <0x280000 0x40000>; |
||||
read-only; |
||||
}; |
||||
|
||||
partition@2c0000 { |
||||
label = "nand-tffs"; |
||||
reg = <0x2c0000 0x840000>; |
||||
read-only; |
||||
}; |
||||
|
||||
partition@b00000 { |
||||
/* 'kernel1' in AVM firmware */ |
||||
label = "uboot0"; |
||||
reg = <0xb00000 0x400000>; |
||||
}; |
||||
|
||||
partition@f00000 { |
||||
/* 'kernel2' in AVM firmware */ |
||||
label = "uboot1"; |
||||
reg = <0xf00000 0x400000>; |
||||
}; |
||||
|
||||
partition@1300000 { |
||||
label = "ubi"; |
||||
reg = <0x1300000 0x6d00000>; |
||||
}; |
||||
}; |
||||
}; |
||||
}; |
||||
|
||||
&cryptobam { |
||||
status = "okay"; |
||||
}; |
||||
|
||||
&blsp_dma { |
||||
status = "okay"; |
||||
}; |
||||
|
||||
&blsp1_uart1 { |
||||
pinctrl-0 = <&serial_0_pins>; |
||||
pinctrl-names = "default"; |
||||
status = "okay"; |
||||
}; |
||||
|
||||
&qpic_bam { |
||||
status = "okay"; |
||||
}; |
||||
|
||||
&wifi0 { |
||||
status = "okay"; |
||||
/* BDFs are identical for the FRITZ!Box 7530 and the FRITZ!Repeater 3000 */ |
||||
qcom,ath10k-calibration-variant = "AVM-FRITZRepeater-3000"; |
||||
}; |
||||
|
||||
&wifi1 { |
||||
status = "okay"; |
||||
ieee80211-freq-limit = <5170000 5350000>; |
||||
/* BDFs are identical for the FRITZ!Box 7530 and the FRITZ!Repeater 3000 */ |
||||
qcom,ath10k-calibration-variant = "AVM-FRITZRepeater-3000"; |
||||
}; |
||||
|
||||
&pcie0 { |
||||
status = "okay"; |
||||
|
||||
perst-gpio = <&tlmm 35 GPIO_ACTIVE_LOW>; |
||||
wake-gpio = <&tlmm 50 GPIO_ACTIVE_LOW>; |
||||
|
||||
bridge@0,0 { |
||||
reg = <0x00000000 0 0 0 0>; |
||||
#address-cells = <3>; |
||||
#size-cells = <2>; |
||||
ranges; |
||||
|
||||
wifi@1,0 { |
||||
/* QCA9984 */ |
||||
compatible = "qcom,ath10k"; |
||||
status = "okay"; |
||||
reg = <0x00010000 0 0 0 0>; |
||||
ieee80211-freq-limit = <5470000 5875000>; |
||||
/* Uses the reference BDF */ |
||||
}; |
||||
}; |
||||
}; |
Loading…
Reference in new issue