[PATCH v2] ath79: add support for onion omega

Lech Perczak lech.perczak at gmail.com
Sat Aug 14 10:08:54 PDT 2021


W dniu 2021-08-14 o 17:43, Tomasz Maciej Nowak pisze:
> W dniu 14.08.2021 o 16:37, Jan-Niklas Burfeind pisze:
>> Hey there; answer is inline too.
>> Thanks for picking this up!
>>
>> On 8/14/21 3:54 PM, Tomasz Maciej Nowak wrote:
>>> Hi,
>>> one comment inline.
>>>
>>> W dniu 14.08.2021 o 14:33, Jan-Niklas Burfeind pisze:
>>>> [...]
>>>> +		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
>>>
>> uboot knows it is 64KiB, printenv yields uboot_size=0x10000
> That should be reflected in partitions list and the space between
> 0x10000-0x20000 partition name should reflect what's inside. If the
> vendor firmware had a name for this space, use that.
>
>> It further knows, firmware starts not before 128Kib:
>> firmware_addr=0x9F020000
>>
>> these are the last lines of mtd0:
>>
>> 000f8d0 ffff ffff ffff ffff ffff ffff ffff ffff
>> *
>> 001fc00 40a3 6bc1 10b2 ffff ffff ffff ffff ffff
>> 001fc10 ffff ffff ffff ffff ffff ffff ffff ffff
>> *
>> 001fd00 4f4d 4547 41ff ffff ffff ffff ffff ffff
>> 001fd10 ffff ffff ffff ffff ffff ffff ffff ffff
>> *
>> 0020000
>>
>> The six bytes at 001fc00 are the macaddress.
>>
>> The six bytes at 001fd00 spell OMEGA.
> Is this the only data in 0x10000-0x20000? What's in 0x10000-0x11000?
>
>>>> +				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;
>>>> +			};

The whole ordeal looks very much like typical pre-safeloader TP-link 
flash layout, so I expect no writable U-boot environment there, at least 
for stock U-boot.
Of course, it would be best to check if it's possible to write it using 
serial console, on actual device.

>>>> +		};
>>>> +	};
>>>> +};
>>>> +
>>>> +&wmac {
>>>> +	status = "okay";
>>>> +
>>>> +	mtd-cal-data = <&art 0x1000>;
>>>> +	nvmem-cells = <&macaddr_uboot_1fc00>;
>>>> +	nvmem-cell-names = "mac-address";
>>>> +};
>>> [ snip ]
>>>
> Regards
>
Kind regards,
Lech



More information about the openwrt-devel mailing list