Re: [PATCH v2 4/7] ARM: dts: sun9i: Add A80 Optimus Board support

From: Maxime Ripard
Date: Tue Oct 07 2014 - 16:15:27 EST


On Mon, Oct 06, 2014 at 03:02:24PM +0800, Chen-Yu Tsai wrote:
> On Wed, Oct 1, 2014 at 6:03 PM, Maxime Ripard
> <maxime.ripard@xxxxxxxxxxxxxxxxxx> wrote:
> > On Mon, Sep 29, 2014 at 06:04:50PM +0800, Chen-Yu Tsai wrote:
> >> On Mon, Sep 29, 2014 at 5:53 PM, Maxime Ripard
> >> <maxime.ripard@xxxxxxxxxxxxxxxxxx> wrote:
> >> > On Sat, Sep 27, 2014 at 09:10:48PM +0800, Chen-Yu Tsai wrote:
> >> >> On Thu, Sep 25, 2014 at 9:34 PM, Maxime Ripard
> >> >> <maxime.ripard@xxxxxxxxxxxxxxxxxx> wrote:
> >> >> > On Wed, Sep 24, 2014 at 10:48:58PM +0800, Chen-Yu Tsai wrote:
> >> >> >> The A80 Optimus Board is was launched with the Allwinner A80 SoC.
> >> >> >> It was jointly developed by Allwinner and Merrii.
> >> >> >>
> >> >> >> This board has a UART port, a JTAG connector, USB host ports, a USB
> >> >> >> 3.0 OTG connector, an HDMI output, a micro SD slot, 8G NAND flash,
> >> >> >> 4G DRAM, a camera sensor interface, a WiFi/BT combo chip, a headphone
> >> >> >> jack, IR receiver, and additional GPIO headers.
> >> >> >>
> >> >> >> This patch adds only basic support.
> >> >> >>
> >> >> >> Signed-off-by: Chen-Yu Tsai <wens@xxxxxxxx>
> >> >> >> ---
> >> >> >> arch/arm/boot/dts/Makefile | 2 +
> >> >> >> arch/arm/boot/dts/sun9i-a80-optimus.dts | 66 +++++++++++++++++++++++++++++++++
> >> >> >> 2 files changed, 68 insertions(+)
> >> >> >> create mode 100644 arch/arm/boot/dts/sun9i-a80-optimus.dts
> >> >> >>
> >> >> >> diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
> >> >> >> index 2f42b18..098f319 100644
> >> >> >> --- a/arch/arm/boot/dts/Makefile
> >> >> >> +++ b/arch/arm/boot/dts/Makefile
> >> >> >> @@ -424,6 +424,8 @@ dtb-$(CONFIG_MACH_SUN7I) += \
> >> >> >> sun7i-a20-pcduino3.dtb
> >> >> >> dtb-$(CONFIG_MACH_SUN8I) += \
> >> >> >> sun8i-a23-ippo-q8h-v5.dtb
> >> >> >> +dtb-$(CONFIG_MACH_SUN9I) += \
> >> >> >> + sun9i-a80-optimus.dtb
> >> >> >> dtb-$(CONFIG_ARCH_TEGRA) += tegra20-harmony.dtb \
> >> >> >> tegra20-iris-512.dtb \
> >> >> >> tegra20-medcom-wide.dtb \
> >> >> >> diff --git a/arch/arm/boot/dts/sun9i-a80-optimus.dts b/arch/arm/boot/dts/sun9i-a80-optimus.dts
> >> >> >> new file mode 100644
> >> >> >> index 0000000..f83abab
> >> >> >> --- /dev/null
> >> >> >> +++ b/arch/arm/boot/dts/sun9i-a80-optimus.dts
> >> >> >> @@ -0,0 +1,66 @@
> >> >> >> +/*
> >> >> >> + * Copyright 2014 Chen-Yu Tsai
> >> >> >> + *
> >> >> >> + * Chen-Yu Tsai <wens@xxxxxxxx>
> >> >> >> + *
> >> >> >> + * This file is dual-licensed: you can use it either under the terms
> >> >> >> + * of the GPL or the X11 license, at your option. Note that this dual
> >> >> >> + * licensing only applies to this file, and not this project as a
> >> >> >> + * whole.
> >> >> >> + *
> >> >> >> + * a) This library is free software; you can redistribute it and/or
> >> >> >> + * modify it under the terms of the GNU General Public License as
> >> >> >> + * published by the Free Software Foundation; either version 2 of the
> >> >> >> + * License, or (at your option) any later version.
> >> >> >> + *
> >> >> >> + * This library is distributed in the hope that it will be useful,
> >> >> >> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> >> >> >> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> >> >> >> + * GNU General Public License for more details.
> >> >> >> + *
> >> >> >> + * You should have received a copy of the GNU General Public
> >> >> >> + * License along with this library; if not, write to the Free
> >> >> >> + * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
> >> >> >> + * MA 02110-1301 USA
> >> >> >> + *
> >> >> >> + * Or, alternatively,
> >> >> >> + *
> >> >> >> + * b) Permission is hereby granted, free of charge, to any person
> >> >> >> + * obtaining a copy of this software and associated documentation
> >> >> >> + * files (the "Software"), to deal in the Software without
> >> >> >> + * restriction, including without limitation the rights to use,
> >> >> >> + * copy, modify, merge, publish, distribute, sublicense, and/or
> >> >> >> + * sell copies of the Software, and to permit persons to whom the
> >> >> >> + * Software is furnished to do so, subject to the following
> >> >> >> + * conditions:
> >> >> >> + *
> >> >> >> + * The above copyright notice and this permission notice shall be
> >> >> >> + * included in all copies or substantial portions of the Software.
> >> >> >> + *
> >> >> >> + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
> >> >> >> + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
> >> >> >> + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
> >> >> >> + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
> >> >> >> + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
> >> >> >> + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
> >> >> >> + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
> >> >> >> + * OTHER DEALINGS IN THE SOFTWARE.
> >> >> >> + */
> >> >> >> +
> >> >> >> +/dts-v1/;
> >> >> >> +/include/ "sun9i-a80.dtsi"
> >> >> >> +
> >> >> >> +/ {
> >> >> >> + model = "Merrii A80 Optimus Board";
> >> >> >> + compatible = "merrii,a80-optimus", "allwinner,sun9i-a80";
> >> >> >> +
> >> >> >> + chosen {
> >> >> >> + bootargs = "earlyprintk console=ttyS0,115200";
> >> >> >> + };
> >> >> >
> >> >> > Since you changed the memory node in the DTSI, you should probably add
> >> >> > one here too, don't you?
> >> >>
> >> >> I thought we left fixing that to the bootloader?
> >> >> I don't see any memory nodes in our other DTS.
> >> >
> >> > Yes, but does the A80 bootloader supports DT and actually fixes it? If
> >> > not, then you'll still have to have a memory node, just like on the
> >> > A31 (and presumably on the A23).
> >>
> >> Not at the moment no. But last I checked none of our board dts files
> >> have separate memory nodes. We only have them in the dtsi, with the
> >> largest supported ram size as its value. Also the bootloader
> >> (u-boot that is) can pass the memory size via atags I think.
> >
> > Only if CONFIG_ARM_ATAG_DTB_COMPAT is set.
>
> Right. Last time I checked, this is set in both sunxi_defconfig
> and multiv7_defconfig.
>
> >> At least I'm only getting 512MB RAM on my Optimus, due to u-boot
> >> incorrectly assuming I only have as much. But that's another problem. :(
> >
> > And does it initialize the rest of the memory?
>
> It does. Very weird. But it may have something to do with the u-boot
> blob not being patched with all dram parameters.

Interesting :)

> >> Would this be a problem when using Android fastboot from the stock
> >> u-boot?
> >
> > IIRC, fastboot passes ATAGS anyway, so as long as you have the
> > configuration option mentionned above, you should be safe.
>
> I take this as an OK for this patch?

Hmmm, yep, I guess :)

Maxime

--
Maxime Ripard, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

Attachment: signature.asc
Description: Digital signature