On Mon, Jan 23, 2023 at 04:51:37AM +1100, John Watts wrote: > The Kosagi Novena is an open source laptop released in 2014. > > This patch adds the initial project skeleton for running the PBL > and debugging over the UART2 port (labeled DEBUG on the board.) > > Signed-off-by: John Watts <contact@xxxxxxxxxx> > --- > arch/arm/boards/Makefile | 1 + > arch/arm/boards/novena/Makefile | 4 + > arch/arm/boards/novena/board.c | 13 ++++ > .../boards/novena/flash-header-novena.imxcfg | 6 ++ > arch/arm/boards/novena/lowlevel.c | 73 +++++++++++++++++++ > arch/arm/configs/imx_v7_defconfig | 1 + > arch/arm/dts/Makefile | 1 + > arch/arm/dts/imx6q-novena.dts | 4 + > arch/arm/mach-imx/Kconfig | 6 ++ > images/Makefile.imx | 2 + > 10 files changed, 111 insertions(+) > create mode 100644 arch/arm/boards/novena/Makefile > create mode 100644 arch/arm/boards/novena/board.c > create mode 100644 arch/arm/boards/novena/flash-header-novena.imxcfg > create mode 100644 arch/arm/boards/novena/lowlevel.c > create mode 100644 arch/arm/dts/imx6q-novena.dts > > diff --git a/arch/arm/boards/Makefile b/arch/arm/boards/Makefile > index 0f4339ebed..177c1da2c5 100644 > --- a/arch/arm/boards/Makefile > +++ b/arch/arm/boards/Makefile > @@ -19,6 +19,7 @@ obj-$(CONFIG_MACH_BEAGLEBONE) += beaglebone/ > obj-$(CONFIG_MACH_CANON_A1100) += canon-a1100/ > obj-$(CONFIG_MACH_CM_FX6) += cm-fx6/ > obj-$(CONFIG_MACH_NITROGEN6) += boundarydevices-nitrogen6/ > +obj-$(CONFIG_MACH_NOVENA) += novena/ > obj-$(CONFIG_MACH_CCMX51) += ccxmx51/ > obj-$(CONFIG_MACH_CCMX53) += ccxmx53/ > obj-$(CONFIG_MACH_CFA10036) += crystalfontz-cfa10036/ > diff --git a/arch/arm/boards/novena/Makefile b/arch/arm/boards/novena/Makefile > new file mode 100644 > index 0000000000..da63d2625f > --- /dev/null > +++ b/arch/arm/boards/novena/Makefile > @@ -0,0 +1,4 @@ > +# SPDX-License-Identifier: GPL-2.0-only > + > +obj-y += board.o > +lwl-y += lowlevel.o > diff --git a/arch/arm/boards/novena/board.c b/arch/arm/boards/novena/board.c > new file mode 100644 > index 0000000000..186f91093f > --- /dev/null > +++ b/arch/arm/boards/novena/board.c > @@ -0,0 +1,13 @@ > +// SPDX-License-Identifier: GPL-2.0-or-later > +// SPDX-FileCopyrightText: 2023 John Watts > + > +#include <common.h> > + > +static int novena_device_init(void) > +{ > + if (!of_machine_is_compatible("kosagi,imx6q-novena")) > + return 0; > + > + return 0; > +} > +device_initcall(novena_device_init); The new way to register board code is to register a driver that matches to OF root node, see arch/arm/boards/nxp-imx8mm-evk/board.c:74 for an example. Also we have a mechanism in place that probes devices on demand when they are needed and no longer in a fixed order. As this requires some support by the board it must be enabled per board using: BAREBOX_DEEP_PROBE_ENABLE(novema_of_match); It would be great if you could switch to that. As said the board code needs to support this, I'll comment to that in the next patch. Sascha -- Pengutronix e.K. | | Steuerwalder Str. 21 | http://www.pengutronix.de/ | 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |