Specifications: SOC: Qualcomm IPQ4018 RAM: 256 MiB Samsung K4B2G1646F-BYK0 FLASH1: MX25L1605D 2 MB FLASH2: Winbond W25N01GV 128Mb ETH: Qualcomm QCA8075 WLAN0: Qualcomm Atheros QCA4018 2.4GHz 802.11b/g/n 2x2 WLAN1: Qualcomm Atheros QCA4018 5GHz 802.11n/ac W2 2x2 INPUT: WPS, Reset LED: Status - Green SERIAL: Header at J19, Beneath DC Power Jack 1-VCC ; 2-TX ; 3-RX; 4-GND; Serial 115200-8-N-1. Tested and working: - USB (requires extra packages) - LAN Ethernet (Correct MAC-address) - WAN Ethernet (Correct MAC-address) - 2.4 GHz WiFi (Correct MAC-address) - 5 GHz WiFi (Correct MAC-address) - Factory installation from Web UI - OpenWRT sysupgrade - LED - Reset Button Need Testing: - WPS button Install via Web UI: - Attach to a LAN port on the router. - Connect to the Linksys Smart WiFi Page (default 192.168.1.1) and login - Select the connectivity tab on the left - In the manual update box on the right - Select browse, and browse to openwrt-ipq40xx-linksys_ea6350v3-squashfs-factory.bin - Click update. - Read and accept the warning - The router LED will start blinking. When the router LED goes solid, you can now navigate to 192.168.1.1 to your new OpenWrt installation. Sysupgrade: - Flash the sysupgrade image as usual. Please: try to do a reset everytime you can (doing it with LuCI is easy and can be done in the same step). Recovery (Automatic): - If the device fails to boot after install or upgrade, whilst the unit is turned on: 1 - Wait 15 seconds 2 - Switch Off and Wait 10 seconds 3 - Switch on 4 - Repeat steps 1 to 3, 3 times then go to 5. 5 - U-boot will have now erased the failed update and switched back to the last working firmware - you should be able to access your router on LAN. Recovery (Manual): - The steps for manual recovery are the same as the generic u-boot tftp client method. Back To Stock: - Use the generic recovery using the tftp client method to flash the "civic.img". Also you can strip-and-pad the original image and use the generic "mtd" method by flashing over the "kernel" partition. * Just be careful to flash in the partition that the device is currently booted. Signed-off-by: Ryan Pannell <ryan@osukl.com> Signed-off-by: Oever González <notengobattery@gmail.com> [minor edits, removed second compatible of nand, added dtb entry to 4.19] Signed-off-by: Christian Lamparter <chunkeey@gmail.com>master
parent
892d741259
commit
a873b29284
@ -0,0 +1,34 @@ |
||||
#!/bin/sh /etc/rc.common |
||||
# |
||||
# This script sets auto_recovery to "yes" and resets the boot counter to 0. |
||||
# As a golden rule, this should be the latest script to run at boot. For a |
||||
# developer snapshot, it is fine to set auto_recovery here. But for a stable |
||||
# release, this script must in fact turn off auto_recovery. |
||||
# |
||||
# Why? Because the custom sysupgrade script for the device will turn on |
||||
# auto_recovery to "yes". And it's the job of this script to set the |
||||
# boot boot_count to 0 and then disable auto_recovery, as that condition |
||||
# means that the stable release went well. |
||||
# |
||||
# I have to repeat: this script should be changed for stable releases. |
||||
|
||||
START=99 |
||||
boot() { |
||||
. /lib/functions.sh |
||||
|
||||
case $(board_name) in |
||||
linksys,ea6350v3) |
||||
# make sure auto_recovery in uboot is always on |
||||
IS_AUTO_RECOVERY="$(fw_printenv -n auto_recovery)" |
||||
if [ "$IS_AUTO_RECOVERY" != "yes" ] ; then |
||||
fw_setenv auto_recovery yes |
||||
echo "Linksys EA6350v3: fw_setenv: auto_recovery has been set to yes" |
||||
fi |
||||
# reset the boot counter |
||||
fw_setenv boot_count 0 |
||||
mtd resetbc s_env |
||||
echo "Linksys EA6350v3: boot counter has been reset" |
||||
echo "Linksys EA6350v3: boot_part=$(fw_printenv -n boot_part)" |
||||
;; |
||||
esac |
||||
} |
@ -0,0 +1,95 @@ |
||||
linksys_get_target_firmware() { |
||||
cur_boot_part=$(/usr/sbin/fw_printenv -n boot_part) |
||||
target_firmware="" |
||||
if [ "$cur_boot_part" = "1" ]; then |
||||
# current primary boot - update alt boot |
||||
target_firmware="alt_kernel" |
||||
fw_setenv boot_part 2 |
||||
# In the Linksys EA6350v3, it is enough to set the boot_part as the boot command line is |
||||
# bootcmd=if test $boot_part = 1; then run bootpart1; else run bootpart2; fi |
||||
# - You probably want to use that if your device's uboot does not eval bootcmd |
||||
#fw_setenv bootcmd "run altnandboot" |
||||
elif [ "$cur_boot_part" = "2" ]; then |
||||
# current alt boot - update primary boot |
||||
target_firmware="kernel" |
||||
fw_setenv boot_part 1 |
||||
#fw_setenv bootcmd "run nandboot" |
||||
fi |
||||
|
||||
# re-enable recovery so we get back if the new firmware is broken |
||||
fw_setenv auto_recovery yes |
||||
# see /etc/init.d/zlinksys_recovery |
||||
|
||||
echo "$target_firmware" |
||||
} |
||||
|
||||
linksys_get_root_magic() { |
||||
(get_image "$@" | dd skip=786432 bs=4 count=1 | hexdump -v -n 4 -e '1/1 "%02x"') 2>/dev/null |
||||
} |
||||
|
||||
platform_do_upgrade_linksys() { |
||||
local magic_long="$(get_magic_long "$1")" |
||||
|
||||
mkdir -p /var/lock |
||||
local part_label="$(linksys_get_target_firmware)" |
||||
touch /var/lock/fw_printenv.lock |
||||
|
||||
if [ ! -n "$part_label" ]; then |
||||
echo "cannot find target partition" |
||||
exit 1 |
||||
fi |
||||
|
||||
local target_mtd=$(find_mtd_part $part_label) |
||||
|
||||
[ "$magic_long" = "73797375" ] && { |
||||
CI_KERNPART="$part_label" |
||||
if [ "$part_label" = "kernel" ]; then |
||||
CI_UBIPART="rootfs" |
||||
else |
||||
CI_UBIPART="alt_rootfs" |
||||
fi |
||||
|
||||
# remove "squashfs" vol (in case we are flashing over a stock image, which is also UBI) |
||||
|
||||
local mtdnum="$( find_mtd_index "$CI_UBIPART" )" |
||||
if [ ! "$mtdnum" ]; then |
||||
echo "cannot find ubi mtd partition $CI_UBIPART" |
||||
return 1 |
||||
fi |
||||
|
||||
local ubidev="$( nand_find_ubi "$CI_UBIPART" )" |
||||
if [ ! "$ubidev" ]; then |
||||
ubiattach -m "$mtdnum" |
||||
sync |
||||
ubidev="$( nand_find_ubi "$CI_UBIPART" )" |
||||
fi |
||||
|
||||
if [ "$ubidev" ]; then |
||||
local squash_ubivol="$( nand_find_volume $ubidev squashfs )" |
||||
# kill volume |
||||
[ "$squash_ubivol" ] && ubirmvol /dev/$ubidev -N squashfs || true |
||||
fi |
||||
|
||||
# complete std upgrade |
||||
nand_upgrade_tar "$1" |
||||
} |
||||
[ "$magic_long" = "27051956" ] && { |
||||
# This magic is for a uImage (which is a sysupgrade image) |
||||
# check firmwares' rootfs types |
||||
local oldroot="$(linksys_get_root_magic $target_mtd)" |
||||
local newroot="$(linksys_get_root_magic "$1")" |
||||
|
||||
if [ "$newroot" = "55424923" -a "$oldroot" = "55424923" ]; then |
||||
# we're upgrading from a firmware with UBI to one with UBI |
||||
# erase everything to be safe |
||||
# - Is that really needed? Won't remove (or comment) the if, because it may be needed in a future device. |
||||
#mtd erase $part_label |
||||
#get_image "$1" | mtd -n write - $part_label |
||||
echo "writing \"$1\" UBI image to \"$part_label\" (UBI)..." |
||||
get_image "$1" | mtd write - $part_label |
||||
else |
||||
echo "writing \"$1\" image to \"$part_label\"" |
||||
get_image "$1" | mtd write - $part_label |
||||
fi |
||||
} |
||||
} |
@ -0,0 +1,273 @@ |
||||
// 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 = "Linksys EA6350v3"; |
||||
compatible = "linksys,ea6350v3", "qcom,ipq4019"; |
||||
|
||||
aliases { |
||||
led-boot = &power; |
||||
led-failsafe = &power; |
||||
led-running = &power; |
||||
led-upgrade = &power; |
||||
}; |
||||
|
||||
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>; |
||||
}; |
||||
|
||||
tcsr@194b000 { |
||||
compatible = "qcom,tcsr"; |
||||
reg = <0x194b000 0x100>; |
||||
qcom,usb-hsphy-mode-select = <TCSR_USB_HSPHY_HOST_MODE>; |
||||
}; |
||||
|
||||
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>; |
||||
}; |
||||
|
||||
usb2@60f8800 { |
||||
status = "okay"; |
||||
}; |
||||
|
||||
usb3@8af8800 { |
||||
status = "okay"; |
||||
}; |
||||
|
||||
crypto@8e3a000 { |
||||
status = "okay"; |
||||
}; |
||||
|
||||
watchdog@b017000 { |
||||
status = "okay"; |
||||
}; |
||||
|
||||
ess-switch@c000000 { |
||||
status = "okay"; |
||||
}; |
||||
|
||||
edma@c080000 { |
||||
status = "okay"; |
||||
}; |
||||
}; |
||||
|
||||
keys { |
||||
compatible = "gpio-keys"; |
||||
|
||||
reset { |
||||
label = "reset"; |
||||
gpios = <&tlmm 63 GPIO_ACTIVE_LOW>; |
||||
linux,code = <KEY_RESTART>; |
||||
}; |
||||
|
||||
wps { |
||||
label = "wps"; |
||||
gpios = <&tlmm 0 GPIO_ACTIVE_LOW>; |
||||
linux,code = <KEY_WPS_BUTTON>; |
||||
}; |
||||
}; |
||||
|
||||
leds { |
||||
compatible = "gpio-leds"; |
||||
|
||||
power: status { |
||||
label = "EA6350v3:green:status"; |
||||
gpios = <&tlmm 2 GPIO_ACTIVE_HIGH>; |
||||
}; |
||||
}; |
||||
}; |
||||
|
||||
&blsp1_uart1 { |
||||
pinctrl-0 = <&serial_pins>; |
||||
pinctrl-names = "default"; |
||||
status = "okay"; |
||||
}; |
||||
|
||||
&cryptobam { |
||||
status = "okay"; |
||||
}; |
||||
|
||||
&wifi0 { |
||||
status = "okay"; |
||||
qcom,ath10k-calibration-variant = "linksys-ea6350v3"; |
||||
}; |
||||
|
||||
&wifi1 { |
||||
status = "okay"; |
||||
qcom,ath10k-calibration-variant = "linksys-ea6350v3"; |
||||
}; |
||||
|
||||
|
||||
&blsp_dma { |
||||
status = "okay"; |
||||
}; |
||||
|
||||
&tlmm { |
||||
serial_pins: serial_pinmux { |
||||
mux { |
||||
pins = "gpio60", "gpio61"; |
||||
function = "blsp_uart0"; |
||||
bias-disable; |
||||
}; |
||||
}; |
||||
|
||||
spi_0_pins: spi_0_pinmux { |
||||
mux { |
||||
function = "blsp_spi0"; |
||||
pins = "gpio55", "gpio56", "gpio57"; |
||||
drive-strength = <12>; |
||||
bias-disable; |
||||
}; |
||||
|
||||
mux_cs { |
||||
function = "gpio"; |
||||
pins = "gpio54", "gpio59"; |
||||
drive-strength = <2>; |
||||
bias-disable; |
||||
output-high; |
||||
}; |
||||
}; |
||||
}; |
||||
|
||||
&blsp1_spi1 { /* BLSP1 QUP1 */ |
||||
pinctrl-0 = <&spi_0_pins>; |
||||
pinctrl-names = "default"; |
||||
status = "okay"; |
||||
cs-gpios = <&tlmm 54 GPIO_ACTIVE_HIGH>, |
||||
<&tlmm 59 GPIO_ACTIVE_HIGH>; |
||||
|
||||
flash@0 { |
||||
compatible = "jedec,spi-nor"; |
||||
reg = <0>; |
||||
spi-max-frequency = <24000000>; |
||||
|
||||
partitions { |
||||
compatible = "fixed-partitions"; |
||||
#address-cells = <1>; |
||||
#size-cells = <1>; |
||||
|
||||
SBL1@0 { |
||||
label = "SBL1"; |
||||
reg = <0x00000000 0x00040000>; |
||||
read-only; |
||||
}; |
||||
MBIB@40000 { |
||||
label = "MIBIB"; |
||||
reg = <0x00040000 0x00020000>; |
||||
read-only; |
||||
}; |
||||
QSEE@60000 { |
||||
label = "QSEE"; |
||||
reg = <0x00060000 0x00060000>; |
||||
read-only; |
||||
}; |
||||
CDT@c0000 { |
||||
label = "CDT"; |
||||
reg = <0x000c0000 0x00010000>; |
||||
read-only; |
||||
}; |
||||
APPSBLENV@d0000 { |
||||
label = "APPSBLENV"; |
||||
reg = <0x000d0000 0x00010000>; |
||||
read-only; |
||||
}; |
||||
APPSBL@e0000 { |
||||
label = "APPSBL"; /* uboot */ |
||||
reg = <0x000e0000 0x00080000>; |
||||
read-only; |
||||
}; |
||||
ART@160000 { |
||||
label = "ART"; |
||||
reg = <0x00160000 0x00010000>; |
||||
read-only; |
||||
}; |
||||
u_env@170000 { |
||||
label = "u_env"; |
||||
reg = <0x00170000 0x00020000>; |
||||
}; |
||||
s_env@190000 { |
||||
label = "s_env"; |
||||
reg = <0x00190000 0x00020000>; |
||||
}; |
||||
devinfo@1b0000 { |
||||
label = "devinfo"; |
||||
reg = <0x001b0000 0x00010000>; |
||||
}; |
||||
/* 0x001c0000 - 0x00200000 unused */ |
||||
}; |
||||
}; |
||||
|
||||
flash@1 { |
||||
status = "okay"; |
||||
compatible = "spinand,mt29f", "w25n01gv"; |
||||
reg = <1>; |
||||
spi-max-frequency = <24000000>; |
||||
|
||||
partitions { |
||||
compatible = "fixed-partitions"; |
||||
#address-cells = <1>; |
||||
#size-cells = <1>; |
||||
|
||||
kernel@0 { |
||||
label = "kernel"; |
||||
reg = <0x00000000 0x02800000>; |
||||
}; |
||||
rootfs@300000 { |
||||
label = "rootfs"; |
||||
reg = <0x00300000 0x02500000>; |
||||
}; |
||||
alt_kernel@2800000 { |
||||
label = "alt_kernel"; |
||||
reg = <0x02800000 0x02800000>; |
||||
}; |
||||
alt_rootfs@2b00000 { |
||||
label = "alt_rootfs"; |
||||
reg = <0x02b00000 0x02500000>; |
||||
}; |
||||
sysdiag@5000000 { |
||||
label = "sysdiag"; |
||||
reg = <0x05000000 0x00100000>; |
||||
}; |
||||
syscfg@5100000 { |
||||
label = "syscfg"; |
||||
reg = <0x05100000 0x02F00000>; |
||||
}; |
||||
/* 0x00000000 - 0x08000000: 128 MiB */ |
||||
}; |
||||
}; |
||||
}; |
||||
|
||||
&usb3_ss_phy { |
||||
status = "okay"; |
||||
}; |
||||
|
||||
&usb3_hs_phy { |
||||
status = "okay"; |
||||
}; |
||||
|
||||
&usb2_hs_phy { |
||||
status = "okay"; |
||||
}; |
@ -0,0 +1,273 @@ |
||||
// 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 = "Linksys EA6350v3"; |
||||
compatible = "linksys,ea6350v3"; |
||||
|
||||
aliases { |
||||
led-boot = &power; |
||||
led-failsafe = &power; |
||||
led-running = &power; |
||||
led-upgrade = &power; |
||||
}; |
||||
|
||||
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>; |
||||
}; |
||||
|
||||
tcsr@194b000 { |
||||
compatible = "qcom,tcsr"; |
||||
reg = <0x194b000 0x100>; |
||||
qcom,usb-hsphy-mode-select = <TCSR_USB_HSPHY_HOST_MODE>; |
||||
}; |
||||
|
||||
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>; |
||||
}; |
||||
|
||||
usb2@60f8800 { |
||||
status = "okay"; |
||||
}; |
||||
|
||||
usb3@8af8800 { |
||||
status = "okay"; |
||||
}; |
||||
|
||||
crypto@8e3a000 { |
||||
status = "okay"; |
||||
}; |
||||
|
||||
watchdog@b017000 { |
||||
status = "okay"; |
||||
}; |
||||
|
||||
ess-switch@c000000 { |
||||
status = "okay"; |
||||
}; |
||||
|
||||
edma@c080000 { |
||||
status = "okay"; |
||||
}; |
||||
}; |
||||
|
||||
keys { |
||||
compatible = "gpio-keys"; |
||||
|
||||
reset { |
||||
label = "reset"; |
||||
gpios = <&tlmm 63 GPIO_ACTIVE_LOW>; |
||||
linux,code = <KEY_RESTART>; |
||||
}; |
||||
|
||||
wps { |
||||
label = "wps"; |
||||
gpios = <&tlmm 0 GPIO_ACTIVE_LOW>; |
||||
linux,code = <KEY_WPS_BUTTON>; |
||||
}; |
||||
}; |
||||
|
||||
leds { |
||||
compatible = "gpio-leds"; |
||||
|
||||
power: status { |
||||
label = "EA6350v3:green:status"; |
||||
gpios = <&tlmm 2 GPIO_ACTIVE_HIGH>; |
||||
}; |
||||
}; |
||||
}; |
||||
|
||||
&blsp1_uart1 { |
||||
pinctrl-0 = <&serial_pins>; |
||||
pinctrl-names = "default"; |
||||
status = "okay"; |
||||
}; |
||||
|
||||
&cryptobam { |
||||
status = "okay"; |
||||
}; |
||||
|
||||
&wifi0 { |
||||
status = "okay"; |
||||
qcom,ath10k-calibration-variant = "linksys-ea6350v3"; |
||||
}; |
||||
|
||||
&wifi1 { |
||||
status = "okay"; |
||||
qcom,ath10k-calibration-variant = "linksys-ea6350v3"; |
||||
}; |
||||
|
||||
|
||||
&blsp_dma { |
||||
status = "okay"; |
||||
}; |
||||
|
||||
&tlmm { |
||||
serial_pins: serial_pinmux { |
||||
mux { |
||||
pins = "gpio60", "gpio61"; |
||||
function = "blsp_uart0"; |
||||
bias-disable; |
||||
}; |
||||
}; |
||||
|
||||
spi_0_pins: spi_0_pinmux { |
||||
mux { |
||||
function = "blsp_spi0"; |
||||
pins = "gpio55", "gpio56", "gpio57"; |
||||
drive-strength = <12>; |
||||
bias-disable; |
||||
}; |
||||
|
||||
mux_cs { |
||||
function = "gpio"; |
||||
pins = "gpio54", "gpio59"; |
||||
drive-strength = <2>; |
||||
bias-disable; |
||||
output-high; |
||||
}; |
||||
}; |
||||
}; |
||||
|
||||
&blsp1_spi1 { /* BLSP1 QUP1 */ |
||||
pinctrl-0 = <&spi_0_pins>; |
||||
pinctrl-names = "default"; |
||||
status = "okay"; |
||||
cs-gpios = <&tlmm 54 GPIO_ACTIVE_HIGH>, |
||||
<&tlmm 59 GPIO_ACTIVE_HIGH>; |
||||
|
||||
flash@0 { |
||||
compatible = "jedec,spi-nor"; |
||||
reg = <0>; |
||||
spi-max-frequency = <24000000>; |
||||
|
||||
partitions { |
||||
compatible = "fixed-partitions"; |
||||
#address-cells = <1>; |
||||
#size-cells = <1>; |
||||
|
||||
SBL1@0 { |
||||
label = "SBL1"; |
||||
reg = <0x00000000 0x00040000>; |
||||
read-only; |
||||
}; |
||||
MBIB@40000 { |
||||
label = "MIBIB"; |
||||
reg = <0x00040000 0x00020000>; |
||||
read-only; |
||||
}; |
||||
QSEE@60000 { |
||||
label = "QSEE"; |
||||
reg = <0x00060000 0x00060000>; |
||||
read-only; |
||||
}; |
||||
CDT@c0000 { |
||||
label = "CDT"; |
||||
reg = <0x000c0000 0x00010000>; |
||||
read-only; |
||||
}; |
||||
APPSBLENV@d0000 { |
||||
label = "APPSBLENV"; |
||||
reg = <0x000d0000 0x00010000>; |
||||
read-only; |
||||
}; |
||||
APPSBL@e0000 { |
||||
label = "APPSBL"; /* uboot */ |
||||
reg = <0x000e0000 0x00080000>; |
||||
read-only; |
||||
}; |
||||
ART@160000 { |
||||
label = "ART"; |
||||
reg = <0x00160000 0x00010000>; |
||||
read-only; |
||||
}; |
||||
u_env@170000 { |
||||
label = "u_env"; |
||||
reg = <0x00170000 0x00020000>; |
||||
}; |
||||
s_env@190000 { |
||||
label = "s_env"; |
||||
reg = <0x00190000 0x00020000>; |
||||
}; |
||||
devinfo@1b0000 { |
||||
label = "devinfo"; |
||||
reg = <0x001b0000 0x00010000>; |
||||
}; |
||||
/* 0x001c0000 - 0x00200000 unused */ |
||||
}; |
||||
}; |
||||
|
||||
flash@1 { |
||||
status = "okay"; |
||||
compatible = "spi-nand"; |
||||
reg = <1>; |
||||
spi-max-frequency = <24000000>; |
||||
|
||||
partitions { |
||||
compatible = "fixed-partitions"; |
||||
#address-cells = <1>; |
||||
#size-cells = <1>; |
||||
|
||||
kernel@0 { |
||||
label = "kernel"; |
||||
reg = <0x00000000 0x02800000>; |
||||
}; |
||||
rootfs@300000 { |
||||
label = "rootfs"; |
||||
reg = <0x00300000 0x02500000>; |
||||
}; |
||||
alt_kernel@2800000 { |
||||
label = "alt_kernel"; |
||||
reg = <0x02800000 0x02800000>; |
||||
}; |
||||
alt_rootfs@2b00000 { |
||||
label = "alt_rootfs"; |
||||
reg = <0x02b00000 0x02500000>; |
||||
}; |
||||
sysdiag@5000000 { |
||||
label = "sysdiag"; |
||||
reg = <0x05000000 0x00100000>; |
||||
}; |
||||
syscfg@5100000 { |
||||
label = "syscfg"; |
||||
reg = <0x05100000 0x02F00000>; |
||||
}; |
||||
/* 0x00000000 - 0x08000000: 128 MiB */ |
||||
}; |
||||
}; |
||||
}; |
||||
|
||||
&usb3_ss_phy { |
||||
status = "okay"; |
||||
}; |
||||
|
||||
&usb3_hs_phy { |
||||
status = "okay"; |
||||
}; |
||||
|
||||
&usb2_hs_phy { |
||||
status = "okay"; |
||||
}; |
Loading…
Reference in new issue