[OpenWrt-Devel] ar71xx support in mainline kernel?

Hartmut Knaack knaack.h at gmx.de
Mon Dec 12 18:28:51 EST 2011

Felix Fietkau schrieb:
> On 2011-11-26 1:33 PM, Dave Taht wrote:
>> I am curious as to if anyone was working on getting the ar71xx arch and
>> drivers upstream?
>> It appears that the ath79 arch was intended to be the same thing, but has
>> nearly no users in the upstream kernel aside from two boards, and was last
>> worked on back in april...
>> the ar71xx patches in openwrt supports 43 boards at present and a
>> great deal of additional (and possibly duplicated) functionality.
>> http://nbd.name/gitweb.cgi?p=openwrt.git;a=tree;f=target/linux/ar71xx/files/arch/mips/ar71xx;h=878ba990e3b04c98e5e244011a82177e465f405a;hb=HEAD
>> So I'm curious as to what were the show-stoppers aside from the name change
>> and the huge backlog of boards and specialized devices?
>> (I see that the usb drivers are different, and I have no idea if the ag71xx
>>  ethernet driver is actually in there in some form under some name)
>> (msg somewhat triggered by seeing the drivers/net directory getting
>> re-organized in linux 3.2 and trying to hack in BQL on top of the
>> existing patchset)
> I think it does not make much sense to try to integrate the code from
> our ar71xx into ath79 and pushing that upstream. The mips-machine way of
> supporting different boards with one kernel is somewhat cumbersome, a
> much better way to deal with it is adding device tree support and using
> that. Proper device tree support is currently being worked on for the
> lantiq target. Once that's functional, I'll look into adapting it to
> ath79 as well.
> - Felix
Maybe we could distribute the work to some volunteers around here (you can count on me, and Dave also seems to be motivated). I've had a peek into the device tree topic and came up with http://devicetree.org/Device_Tree_Usage and http://devicetree.org/Linux as some kind of reference manual. So, what needs to be done? I'd say:
    - change device drivers to query their properties from device tree instead of some platform_data structs (do we need those structs any longer?)
    - convert the mach-*.c files to dtb
    - ... (insert whatever I missed)
I'm not quite sure where to start, so it would be best if you could lay out a schedule. And it would probably help a lot to see a reference device driver, to know how to implement it properly. So, what do you think?

More information about the Bloat-devel mailing list