[PATCH v3] ath79: add support for onion omega
Mike Bernardo
mike at potatoslicer.com
Mon Aug 23 02:47:14 PDT 2021
Hi,
Thanks for the reply, I did not realize that this is for an Omega rather than Omega2+ which is what I have :facepalm:
It looks like there is already support for the omega2+, which is working for me right now.
> On 2021/08/22, at 17:25:02 CDT (-05:00), Lech Perczak <lech.perczak at gmail.com> wrote:
>
> Hi,
> Answer below.
>
> W dniu 2021-08-22 o 21:29, Mike Bernardo pisze:
>> Hi All,
>>
>> Thanks Jan-Niklas for working on this! I am trying to test this on my onion omega2+ (in the arduino dock) .. consoled in via a TTL serial adapter and I tried doing a forced sysupgrade to openwrt-ath79-generic-onion_omega-squashfs-sysupgrade.bin which I built by applying the patch to v21.02.0-rc4 (134ac824c5a154edbbe1c581bcbc42d265dc20c0). I tried forcing after sysupgrade said that it didn't support omega2p .. now it won't boot, any ideas? Boot attempt below.
>>
>> Note that the below is after I tried flashing openwrt-ath79-generic-onion_omega-squashfs-factory.bin via usb (filename omega2.bin put on a FAT16 filesystem and you select usb flash in the menu after tapping the reset button on powerup. Failing with the same message though.
>>
>> --
>>
>> Board: Onion Omega2 APSoC DRAM: 128 MB
>> relocate_code Pointer at: 87f60000
>> ******************************
>> Software System Reset Occurred
>> ******************************
>> flash manufacture id: c2, device id 20 19
>> find flash: MX25L25635E
>> *** Warning - bad CRC, using default environment
>>
>> ============================================
>> Onion Omega2 UBoot Version: 4.3.0.3
>> --------------------------------------------
>> ASIC 7628_MP (Port5<->None)
>> DRAM component: 1024 Mbits DDR, width 16
>> DRAM bus: 16 bit
>> Total memory: 128 MBytes
>> Flash component: SPI Flash
>> Date:Oct 18 2016 Time:17:29:05
>> ============================================
>> icache: sets:512, ways:4, linesz:32 ,total:65536
>> dcache: sets:256, ways:4, linesz:32 ,total:32768
>> CPU freq = 575 MHZ
>> Estimated memory size = 128 Mbytes
>> Resetting MT7628 PHY.
>> Initializing MT7688 GPIO system.
>>
>>
>> **************************************
>> * Hold Reset button for more options *
>> **************************************
>>
>>
>>
>> Boot Linux from Flash NO RESET PRESSED.
>> ## Booting image at bc050000 ...
>> Bad Magic Number,01000000
>
> Long story short, you tried loading an image for ath79 architecture (QCA9331 in this case) on an MT7628 board. You probably need to use U-boot console to flash correct image for your device over TFTP.
>>
>>
>>> On 2021/08/22, at 07:18:32 CDT (-05:00), Adrian Schmutzler <mail at adrianschmutzler.de> wrote:
>>>
>>> Hi,
>>>
>>>> -----Original Message-----
>>>> From: openwrt-devel [mailto:openwrt-devel-bounces at lists.openwrt.org]
>>>> On Behalf Of Jan-Niklas Burfeind
>>>> Sent: Samstag, 14. August 2021 15:55
>>>> To: openwrt-devel at lists.openwrt.org
>>>> Cc: openwrt at sebastianschaper.net; mail at david-bauer.net; Jan-Niklas
>>>> Burfeind
>>>> Subject: [PATCH v3] ath79: add support for onion omega
>>> some inline comments below.
>>>
>>>> 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>
>>>> ---
>>>> kmod-usb-chipidea2 is now included as well as tested; usb devices are now
>>>> recognized.
>>>>
>>>> I added the usb vbus section, like the pisen wmm003n has it and verified the
>>>> gpio looking at the ar71xx commit.
>>>>
>>>> target/linux/ath79/dts/ar9331_onion_omega.dts | 137
>>>> ++++++++++++++++++
>>>> .../generic/base-files/etc/board.d/02_network | 1 +
>>>> target/linux/ath79/image/generic.mk | 13 ++
>>>> 3 files changed, 151 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..43a0b2f392
>>>> --- /dev/null
>>>> +++ b/target/linux/ath79/dts/ar9331_onion_omega.dts
>>>> @@ -0,0 +1,137 @@
>>>> +// 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"
>>> This include needs to be before the others.
>>>
>>>> +
>>>> +/ {
>>>> + model = "Onion Omega";
>>>> + compatible = "onion,omega", "qca,ar9331";
>>>> +
>>>> + aliases {
>>>> + serial0 = &uart;
>>> You could add "label-mac-device = &wmac" here if your commit message is correct.
>>>
>>>> + 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>;
>>> Poll-interval can be dropped with "gpio-keys".
>>>
>>>> +
>>>> + reset {
>>>> + label = "reset";
>>>> + linux,code = <KEY_RESTART>;
>>>> + gpios = <&gpio 11 GPIO_ACTIVE_HIGH>;
>>>> + debounce-interval = <60>;
>>>> + };
>>>> + };
>>>> +
>>>> + reg_usb_vbus: reg_usb_vbus {
>>>> + compatible = "regulator-fixed";
>>>> + regulator-name = "usb_vbus";
>>>> + regulator-min-microvolt = <5000000>;
>>>> + regulator-max-microvolt = <5000000>;
>>>> + gpio = <&gpio 8 GPIO_ACTIVE_HIGH>;
>>>> + enable-active-high;
>>>> + };
>>>> +};
>>>> +
>>>> +&ref {
>>>> + clock-frequency = <25000000>;
>>>> +};
>>>> +
>>>> +&gpio {
>>>> + status = "okay";
>>>> +};
>>> gpio is enabled by default, this block can be dropped.
>>>
>>>> +
>>>> +&usb {
>>>> + status = "okay";
>>>> +
>>>> + vbus-supply = <®_usb_vbus>;
>>>> + 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>;
>>>> + read-only;
>>>> + compatible = "nvmem-cells";
>>>> + #address-cells = <1>;
>>>> + #size-cells = <1>;
>>>> +
>>>> + macaddr_uboot_1fc00: macaddr at 1fc00 {
>>>> + reg = <0x1fc00 0x6>;
>>>> + };
>>>> + };
>>> It's common practice at the moment to put a separate block for defining the MAC addresses at the end of the file.
>>> Please do so, just look at any other DTS file in recent master.
>>>
>>>> +
>>>> + 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>;
>>> I personally prefer an empty line after mtd-cal-data.
>>>
>>> Best
>>>
>>> Adrian
>>>
>>>> + nvmem-cells = <&macaddr_uboot_1fc00>;
>>>> + nvmem-cell-names = "mac-address";
>>>> +};
>>>> 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..6e9ff01cc0 100644
>>>> --- a/target/linux/ath79/image/generic.mk
>>>> +++ b/target/linux/ath79/image/generic.mk
>>>> @@ -1653,6 +1653,19 @@ 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-chipidea2
>>>> + SUPPORTED_DEVICES += onion-omega
>>>> + 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
>>>> --
>>>> 2.32.0
>>>>
>>>>
>>>> _______________________________________________
>>>> openwrt-devel mailing list
>>>> openwrt-devel at lists.openwrt.org
>>>> https://lists.openwrt.org/mailman/listinfo/openwrt-devel
>>> _______________________________________________
>>> openwrt-devel mailing list
>>> openwrt-devel at lists.openwrt.org
>>> https://lists.openwrt.org/mailman/listinfo/openwrt-devel
>>
>> _______________________________________________
>> openwrt-devel mailing list
>> openwrt-devel at lists.openwrt.org
>> https://lists.openwrt.org/mailman/listinfo/openwrt-devel
>
>
> --
> Pozdrawiam,
> Lech Perczak
> lech.perczak at gmail.com
> Mobile: +48 694 309 185
>
>
> _______________________________________________
> openwrt-devel mailing list
> openwrt-devel at lists.openwrt.org
> https://lists.openwrt.org/mailman/listinfo/openwrt-devel
More information about the openwrt-devel
mailing list