Hi Matthias, On Freitag, 8. Oktober 2021 13:49:25 CEST Matthias Brugger wrote: > On 05/10/2021 22:28, Luca Weiss wrote: > > Add rudimentary support for the Fairphone 1, based on MT6589 to boot to > > UART console. > > > > The recently added SMP support needs to be disabled for this board as > > the kernel panics executing /init with it, even though the CPUs seem to > > start up fine - maybe a stability issue. > > > > [ 0.072010] smp: Bringing up secondary CPUs ... > > [ 0.131888] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001 > > [ 0.191889] CPU2: thread -1, cpu 2, socket 0, mpidr 80000002 > > [ 0.251890] CPU3: thread -1, cpu 3, socket 0, mpidr 80000003 > > [ 0.251982] smp: Brought up 1 node, 4 CPUs > > [ 0.254745] SMP: Total of 4 processors activated (7982.28 BogoMIPS). > > [ 0.255582] CPU: All CPU(s) started in SVC mode. > > > > [ 0.472039] Run /init as init process > > [ 0.473317] Kernel panic - not syncing: Attempted to kill init! > > exitcode=0x00000004 > Would be nice to find out why. Did you tried to boot the system with > enable-method set but with bringing up just one or two cpus? Answered further down. > > > Signed-off-by: Luca Weiss <luca@xxxxxxxxx> > > --- > > > > arch/arm/boot/dts/Makefile | 1 + > > arch/arm/boot/dts/mt6589-fairphone-fp1.dts | 30 ++++++++++++++++++++++ > > 2 files changed, 31 insertions(+) > > create mode 100644 arch/arm/boot/dts/mt6589-fairphone-fp1.dts > > > > diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile > > index 7e0934180724..24f402db2613 100644 > > --- a/arch/arm/boot/dts/Makefile > > +++ b/arch/arm/boot/dts/Makefile > > @@ -1437,6 +1437,7 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += \ > > > > mt2701-evb.dtb \ > > mt6580-evbp1.dtb \ > > mt6589-aquaris5.dtb \ > > > > + mt6589-fairphone-fp1.dtb \ > > > > mt6592-evb.dtb \ > > mt7623a-rfb-emmc.dtb \ > > mt7623a-rfb-nand.dtb \ > > > > diff --git a/arch/arm/boot/dts/mt6589-fairphone-fp1.dts > > b/arch/arm/boot/dts/mt6589-fairphone-fp1.dts new file mode 100644 > > index 000000000000..32c14ecf2244 > > --- /dev/null > > +++ b/arch/arm/boot/dts/mt6589-fairphone-fp1.dts > > @@ -0,0 +1,30 @@ > > +// SPDX-License-Identifier: BSD-3-Clause > > +/* > > + * Copyright (c) 2021, Luca Weiss <luca@xxxxxxxxx> > > + */ > > + > > +/dts-v1/; > > +#include "mt6589.dtsi" > > + > > +/ { > > + model = "Fairphone 1"; > > + compatible = "fairphone,fp1", "mediatek,mt6589"; > > + > > + chosen { > > + stdout-path = &uart3; > > + }; > > + > > + cpus { > > I'd expected "&cpus" why can we overwrite delete the node property like this > here? Both results in the same, dtc just merges everything together, so as long as the node name is identical, it works. Also I cannot use &cpus because cpus in mt6589.dtsi doesn't have a label set. Regarding SMP: I have tried setting maxcpus=2 in cmdline and that still makes the kernel panic. With maxcpus=1 and leaving the deleting out of the dts the kernel is stable and works properly. So I think it's better to leave this out of the dts and keep maxcpus=1 in cmdline (until this gets fixed). I've also heard from the person adding enable-method to mt6589.dtsi that it still works on their board, so something's different, maybe a different SoC revision, different bootloader behavior or whatever. If that's fine with you, I'll send a v2 with that fixed. > > + /* SMP is not stable on this board, makes the kernel panic */ > > + /delete-property/ enable-method; > > + }; > > + > > + memory { Also I was told off-list that this should be called memory@80000000 because of the reg, will fix in v2. Regards Luca > > + device_type = "memory"; > > + reg = <0x80000000 0x40000000>; > > + }; > > +}; > > + > > +&uart3 { > > + status = "okay"; > > +};