Ath79 vs ar71xx whats the difference

hi

tl-wr1043nd has 2 builds: the ar71xx (that i used) and ath79 (recomanded in wiki page)
ath79 target

ar71xx target

wiki 1043nd

only indication that i found is ar71xx is deprecated.
is it unmaintained?.. it should seems they have same build

what is the difference between those targets?
which should i use and why

ty

Deprecated means the this is the last stable release for ar71xx.
The snapshot builds are already stopped for ar71xx, so no further testing happens.
They are the same in relation to the used software versions.
All are on kernel 4.14 and all package versions are also the same.
For there difference, read this: https://openwrt.org/docs/techref/targets/ath79

2 Likes

I asked the same question a few months ago.

If you can switch over to the ath79 target, it is probably an opportune time to do it since the next OpenWRT release won't support ar71xx. Keep in mind that you need to manually recreate some of the configurations -- use a backup for reference, but don't restore files blindly (on my device, the /etc/config/network file was the only one that I needed to manually restore, but review/compare the files to avoid introducing problems into your fresh 19.07.0 install).

@juppin considering its same architecture - i dont see the point in having different names

the link is quite cryptic.. it contains only the devices to which it applies

good to know that they both have same sw versions (@the moment of the fork)

@psherman i did search before i asked but didnt found your answer(and i scrolled alot; i also checked my browser history :slight_smile: )

in your thread there are no details regarding the split(and exactly what it means.. reasons.. etc). all i could find was ar71xx is deprecated..

also.. till the things will settle.. there will be plenty of ppl asking same question :slight_smile:

ty for your help

Quite to the contrary. They're different beasts, even if they're for the same hardware. Ath79 uses device trees. Imagine the confusion that would arise from sticking to ar71xx while transitioning to DTS. Now that would be crazy.

i dont know much about developing sw.. but they are all derived from linux and all use make files so.. where theres a will .. theres a way..

The former part of that statement strongly hints you should not be making the latter :cowboy_hat_face:

1 Like

Cryptic???
This are the description at the top of the page:

ath79

ath79 is the successor of ar71xx. It's modernization under the hood, with the main goal to bring the code into a form that is acceptable for Linux upstream, so that all (most) of the whole ar71xx supported devices can be handled by an upstream, unpatched Linux kernel.1)

There might be a slight decrease in kernel image size, but the general bloat of newer versions will likely eat that up completely.

3 Likes

While this page explains a bit, it doesn't answer the question "what is the difference" completely.

I'm not an expert in this field, but from what I read:
(This posting is wiki, i.e. everybody can edit it)

  • ar71xx is based on mach files
    • Disadvantage: Not acceptable for linux upstream
    • therefore requires higher maintenance effort (manual patching)
    • 19.07 is the last release for this target; will not be supported by future releases; update to ath79 is recommended (if ath79 image is available)
  • ath79 is based on device tree
    • Advantage: Acceptable for linux upstream
    • therefore requires less maintenance efforts
    • will be supported by future releases (if sufficient flash space available)

Feel free to edit this posting, in order to create a better explanation of the differences between ath79 and ar71xx.

Once we have found a good answer, we can put it on the ath79 page

1 Like

@Borromini that made the day :slight_smile:

@juppin i was looking for more technical description.. like we changed this and that
i know what deprecated means.. but i was looking for why it is deprecated. whell i didnt read wiki/forum in since BB so i think ill restart

@tmomas strangely.. your list looks better(i was looking for a list with points that changed)
regarding the naming issue i was looking for something like a fork with same name like ar71xx(v1, v2.. etc) this tells me that it comes from something... backward compatibility(a tree..)..

regarding wiki.. my input is welcomed.. i like that :slight_smile: point taken

At some expected level of details, you can't avoid making your own investigations, on the kernel level (what's expected there in terms of code structure, driver sharing, external APIs, e.g. no mach files) and at the source level.

From a cursory overview, the situation is simple - mach files (ar71xx) are deprecated and aren't accepted for the mainline kernel (for the last decade), DTS based arch designs must be used. So any work on mach file is useless busywork, with little to none codesharing and no hope for collaboration with the upstream kernel. You either follow the law of the land, and profit from existing drivers - or you end up having to do ten times the work doing it all by yourself.

The facts are simple.
OpenWrt has stopped any work on ar71xx after openwrt-19.07 has been branched off, half a year ago (and it had already been on minimum life support for quite a while longer).
The only way forward is the DTS based ath79, which can cover all the devices previously supported by ar71xx. The one time effort of porting a device from ar71xx to ath79 needs to be done by someone with experience, time and the device on their desk, individually, for each and every device. That means some rarer devices probably will never see this porting.

Would you like to know more?

1 Like

ive read some more.. in the meantime

mach is a text file which compiles the whole thing providing you in the end with a target

DTS is somekind of BIOS (reinventing the wheel)
an xml file compiled to binary you then use a mach file to get you in the end to the target

DTS might be advantageous vs mach because it provides a better organized xml file (developers do not enforce detailed description of target.. just barer necessary)

well im not a developer but if it helps.. ok.. although from my point of view its just another hoop; also apart from file sintax both systems look similar

id be happy with ar71xx v2.. looks more tree like

also i doubt that devs had devices in theyer faces when they wrote initial code.. or maintained code between releases.. lets say some devices are/will be deprecated..