[OpenWrt-Devel] [PATCH 2/2 v3] linux: add support of Synopsys ARC770-based boards
Alexey Brodkin
Alexey.Brodkin at synopsys.com
Thu Nov 5 13:14:09 EST 2015
Hi Jonas,
On Wed, 2015-11-04 at 20:22 +0300, Alexey Brodkin wrote:
> Hi Jonas,
>
> On Wed, 2015-11-04 at 13:06 +0100, Jonas Gorski wrote:
> > Hi,
> >
> > On Tue, Nov 3, 2015 at 12:27 AM, Alexey Brodkin
> > <Alexey.Brodkin at synopsys.com> wrote:
> > > + ;;
> > > +esac
> > > +
> > > +uci commit network
> > > +
> > > +exit 0
> > > diff --git a/target/linux/arc770/base-files/lib/arc.sh b/target/linux/arc770/base-files/lib/arc.sh
> > > new file mode 100644
> > > index 0000000..b15e94b
> > > --- /dev/null
> > > +++ b/target/linux/arc770/base-files/lib/arc.sh
> > > @@ -0,0 +1,76 @@
> > > +#!/bin/sh
> > > +#
> > > +# Copyright (C) 2015 OpenWrt.org
> > > +#
> > > +
> > > +# defaults
> > > +ARC_BOARD_NAME="generic"
> > > +ARC_BOARD_MODEL="Generic arc board"
> > > +
> > > +arc_board_detect() {
> > > + local board
> > > + local model
> > > +
> > > + [ -e "/tmp/sysinfo/" ] || mkdir -p "/tmp/sysinfo/"
> > > +
> > > + model="$( cat /proc/device-tree/compatible )"
> > > +
> > > + # We cannot just use "model" as it is because in case of SDP board
> >
> > ePAPR says your dts root nodes must have a "model" property that
> > uniquely identifies the board. I see that is currently missing even in
> > upstream, so please fix your dts files. Then you won't need to grep in
> > the compatible. On a side node, ePAPR also says that the recommended
> > format is the same as compatible but .. *looks at arm* .. apparently
> > nobody does that.
>
> Indeed "model" is a required property.
> So thanks for that suggestion.
>
> Then we'll have:
> ---------------->8------------------
> compatible = "snps,arc-sdp";
> model = "snps,axs101";
> ---------------->8------------------
> which looks for sure much better!
>
> Will do this for starters here in OpenWRT and will submit a patch upstream
> in Linux kernel.
I started to think about it and now I understand why we use complicated
"compatible" value.
This allows us to use multiple platform-specific parts at once.
We use "snps,arc-sdp" here:
http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/arch/arc/kernel/devtree.c#n35
and "snps,axs101" here:
http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/arch/arc/plat-axs10x/axs10x.c#n464
In the first case it's not really necessary to use "compatible" node but
it's usage is quite convenient, see we only need to execute this oneliner:
-------------------->8----------------------
of_flat_dt_is_compatible(dt_root, "snps,arc-sdp")
-------------------->8----------------------
But if we use "model" node instead we'll need to do:
1) of_get_property
2) strcmp
This is a bit longer, still possible solution.
So even though your proposal is very useful and I'm going to discuss it
with Vineet Gupta (ARC Linux maintainer) but if you don't mind I'd go
without that change for this submission. Then if your proposal is implemented
I'll need to rework OpenWRT scripts anyways because newer upstream kernel
will require that.
Are you OK with that?
-Alexey
_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel
More information about the openwrt-devel
mailing list