[PATCH v3] ath79: add support for onion omega

Lech Perczak lech.perczak at gmail.com
Sun Aug 22 15:25:02 PDT 2021


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 = <&reg_usb_vbus>;
>>> +	dr_mode = "host";
>>> +};
>>> +
>>> +&usb_phy {
>>> +	status = "okay";
>>> +};
>>> +
>>> +&eth0 {
>>> +	status = "okay";
>>> +
>>> +	compatible = "syscon", "simple-mfd";
>>> +};
>>> +
>>> +&eth1 {
>>> +	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




More information about the openwrt-devel mailing list