[PATCH] ath79: add support for onion omega
David Bauer
mail at david-bauer.net
Thu Aug 12 16:45:54 PDT 2021
Hi Jan-Niklas,
On 8/11/21 6:54 PM, Jan-Niklas Burfeind wrote:
> The Onion Omega is a hardware development platform with built-in WiFi.
>
> https://onioniot.github.io/wiki/
>
> Specifications:
> - QCA9331 @ 400 MHz (MIPS 24Kc Big-Endian Processor)
> - 64MB of DDR2 RAM running at 400 MHz
> - 16MB of on-board flash storage
> - Support for USB 2.0
> - Support for Ethernet at 100 Mbps
> - 802.11b/g/n WiFi at 150 Mbps
> - 18 digital GPIOs
> - A single Serial UART
> - Support for SPI
> - Support for I2S
>
> Flash instructions:
> The device is running OpenWrt upon release using the ar71xx target.
> Both a sysupgrade
> and uploading the factory image using u-boots web-UI do work fine.
>
> Depending on the ssh client, it might be necessary to enable outdated
> KeyExchange methods e.g. in the clients ssh-config:
>
> Host 192.168.1.1
> KexAlgorithms +diffie-hellman-group1-sha1
>
> The stock credentials are: root onioneer
>
> For u-boots web-UI manually configure `192.168.1.2/24` on your computer,
> connect to `192.168.1.1`.
>
> MAC addresses as verified by OEM firmware:
> 2G phy0 label
> LAN eth0 label - 1
>
> LAN is only available in combination with an optional expansion dock.
>
> Based on vendor acked commit:
> commit 5cd49bb067ca ("ar71xx: add support for Onion Omega")
>
> Partly reverts:
> commit fc553c7e4c8e ("ath79: drop unused/incomplete dts")
>
> Signed-off-by: Jan-Niklas Burfeind <git at aiyionpri.me>
> ---
> target/linux/ath79/dts/ar9331_onion_omega.dts | 138 ++++++++++++++++++
> .../generic/base-files/etc/board.d/02_network | 1 +
> target/linux/ath79/image/generic.mk | 14 ++
> 3 files changed, 153 insertions(+)
> create mode 100644 target/linux/ath79/dts/ar9331_onion_omega.dts
>
> diff --git a/target/linux/ath79/dts/ar9331_onion_omega.dts b/target/linux/ath79/dts/ar9331_onion_omega.dts
> new file mode 100644
> index 0000000000..3b72a293b4
> --- /dev/null
> +++ b/target/linux/ath79/dts/ar9331_onion_omega.dts
> @@ -0,0 +1,138 @@
> +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
> +/dts-v1/;
> +
> +#include <dt-bindings/gpio/gpio.h>
> +#include <dt-bindings/input/input.h>
> +
> +#include "ar9331.dtsi"
> +
> +/ {
> + model = "Onion Omega";
> + compatible = "onion,omega", "qca,ar9331";
> +
> + aliases {
> + serial0 = &uart;
> + led-boot = &led_system;
> + led-failsafe = &led_system;
> + led-running = &led_system;
> + led-upgrade = &led_system;
> + };
> +
> + leds {
> + compatible = "gpio-leds";
> +
> + led_system: system {
> + label = "onion:amber:system";
Remove the model name from the LED name.
> + gpios = <&gpio 27 GPIO_ACTIVE_LOW>;
> + };
> + };
> +
> + keys {
> + compatible = "gpio-keys-polled";
> + poll-interval = <100>;
> +
> + button0 {
> + label = "reset";
> + linux,code = <KEY_RESTART>;
> + gpios = <&gpio 11 GPIO_ACTIVE_HIGH>;
> + };
> + };
> +};
> +
> +&ref {
> + clock-frequency = <25000000>;
> +};
> +
> +&uart {
> + status = "okay";
> +};
> +
> +&gpio {
> + status = "okay";
> +};
> +
> +&usb {
> + status = "okay";
> +
> + dr_mode = "host";
> +};
> +
> +&usb_phy {
> + status = "okay";
> +};
> +
> +ð0 {
> + status = "okay";
> +
> + compatible = "syscon", "simple-mfd";
> +};
> +
> +ð1 {
> + status = "okay";
> +
> + nvmem-cells = <&macaddr_uboot_1fc00>;
> + nvmem-cell-names = "mac-address";
> + mac-address-increment = <(-1)>;
> +
> + gmac-config {
> + device = <&gmac>;
> + switch-phy-addr-swap = <4>;
> + switch-phy-swap = <4>;
> + };
> +};
> +
> +
> +&spi {
> + status = "okay";
> +
> + num-chipselects = <1>;
> +
> + /* Winbond 25Q128FVSG SPI flash */
> + flash at 0 {
> + compatible = "winbond,w25q128", "jedec,spi-nor";
Drop the winbond compatible - defining model-specific compatible is considered legacy
in case it is not required for Flash-ID duplicates.
> + spi-max-frequency = <25000000>;
> + reg = <0>;
> +
> + partitions {
> + compatible = "fixed-partitions";
> + #address-cells = <1>;
> + #size-cells = <1>;
> +
> + uboot: partition at 0 {
> + label = "u-boot";
> + reg = <0x000000 0x020000>;
> + read-only;
> + };
> +
> + partition at 20000 {
> + compatible = "tplink,firmware";
> + label = "firmware";
> + reg = <0x020000 0xfd0000>;
> + };
> +
> + art: partition at ff0000 {
> + label = "art";
> + reg = <0xff0000 0x010000>;
> + read-only;
> + };
> + };
> + };
> +};
> +
> +&wmac {
> + status = "okay";
> +
> + mtd-cal-data = <&art 0x1000>;
> + nvmem-cells = <&macaddr_uboot_1fc00>;
> + nvmem-cell-names = "mac-address";
> +};
> +
> +&uboot {
> + compatible = "nvmem-cells";
> + #address-cells = <1>;
> + #size-cells = <1>;
> +
> + macaddr_uboot_1fc00: macaddr at 1fc00 {
> + reg = <0x1fc00 0x6>;
> + };
> +};
Can be inlined to previous declaration.
> diff --git a/target/linux/ath79/generic/base-files/etc/board.d/02_network b/target/linux/ath79/generic/base-files/etc/board.d/02_network
> index 4fe7fbc027..b859c64633 100644
> --- a/target/linux/ath79/generic/base-files/etc/board.d/02_network
> +++ b/target/linux/ath79/generic/base-files/etc/board.d/02_network
> @@ -45,6 +45,7 @@ ath79_setup_interfaces()
> netgear,ex7300|\
> ocedo,koala|\
> ocedo,raccoon|\
> + onion,omega|\
> openmesh,mr600-v1|\
> openmesh,mr600-v2|\
> openmesh,mr900-v1|\
> diff --git a/target/linux/ath79/image/generic.mk b/target/linux/ath79/image/generic.mk
> index 2abe1b7307..768e4b3366 100644
> --- a/target/linux/ath79/image/generic.mk
> +++ b/target/linux/ath79/image/generic.mk
> @@ -1653,6 +1653,20 @@ define Device/ocedo_ursus
> endef
> TARGET_DEVICES += ocedo_ursus
>
> +define Device/onion_omega
> + $(Device/tplink-16mlzma)
> + SOC := ar9331
> + DEVICE_VENDOR := Onion
> + DEVICE_MODEL := Omega
> + DEVICE_PACKAGES := kmod-usb-core kmod-usb2
> + SUPPORTED_DEVICES += onion-omega
> + KERNEL := kernel-bin | append-dtb | lzma
KERNEL looks redundant (defined in tplink-v1)
Best
David
> + KERNEL_INITRAMFS := kernel-bin | append-dtb | lzma | uImage lzma
> + IMAGE_SIZE := 16192k
> + TPLINK_HWID := 0x04700001
> +endef
> +TARGET_DEVICES += onion_omega
> +
> define Device/openmesh_common_64k
> DEVICE_VENDOR := OpenMesh
> DEVICE_PACKAGES := uboot-envtools
>
More information about the openwrt-devel
mailing list