[PATCH v2] ath79: add support for onion omega
Tomasz Maciej Nowak
tmn505 at gmail.com
Sat Aug 14 06:54:28 PDT 2021
Hi,
one comment inline.
W dniu 14.08.2021 o 14:33, Jan-Niklas Burfeind pisze:
> 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>
> ---
> Hello David,
> thanks for the review.
> I think I got both you as well as Sebastians suggestion patched.
> This revision contains them both, compiled without errors this morning
> and is currently running on an omega next to me;
> dmesg is inconspicuous.
>
> Thanks
> Jan-Niklas/Aiyion
>
> target/linux/ath79/dts/ar9331_onion_omega.dts | 127 ++++++++++++++++++
> .../generic/base-files/etc/board.d/02_network | 1 +
> target/linux/ath79/image/generic.mk | 13 ++
> 3 files changed, 141 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..b08c62221f
> --- /dev/null
> +++ b/target/linux/ath79/dts/ar9331_onion_omega.dts
> @@ -0,0 +1,127 @@
> +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
> +
> +#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 = "amber:system";
> + gpios = <&gpio 27 GPIO_ACTIVE_LOW>;
> + };
> + };
> +
> + keys {
> + compatible = "gpio-keys";
> + poll-interval = <100>;
> +
> + reset {
> + label = "reset";
> + linux,code = <KEY_RESTART>;
> + gpios = <&gpio 11 GPIO_ACTIVE_HIGH>;
> + debounce-interval = <60>;
> + };
> + };
> +};
> +
> +&ref {
> + clock-frequency = <25000000>;
> +};
> +
> +&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";
> +
> + flash at 0 {
> + compatible = "jedec,spi-nor";
> + 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>;
Is this really the size of the U-Boot? According to the sources of
U-Boot [1] the max size of bootloader is 64KiB. If the sources don't
lie, what's between 0x10000-0x20000? Is that some hardcoded data or
U-Boot environment? If it's the environment, You can't use static
address of the MAC in nvmem-cells, because it can move around if someone modified the environment. For that You'll need to extract it in
userspace.
1. https://github.com/OnionIoT/uboot/blob/684829a3a89eabca4b573530e89d60faed277dee/Makefile#L31
> + read-only;
> + compatible = "nvmem-cells";
> + #address-cells = <1>;
> + #size-cells = <1>;
> +
> + macaddr_uboot_1fc00: macaddr at 1fc00 {
> + reg = <0x1fc00 0x6>;
> + };
> + };
> +
> + 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";
> +};
[ snip ]
Regards
--
TMN
More information about the openwrt-devel
mailing list