Getting serial console output on new imx7d tqma7 board UART4

Lars Pedersen lapeddk at gmail.com
Tue Aug 4 09:07:11 EDT 2020


Hi.

I just go an MCIMX7SABRE board and it now trying to start barebox from
the external SD card, which I guess should be possible right?

I have taken barebox 2020.07.0 and copied the imx_v7_defconfig and
deselected all boards except the "NXP i.MX7 SabreSD board"

After compilation i copy the image using:

sudo dd if=barebox-freescale-mx7-sabresd.img of=/dev/sdb bs=1024 skip=1 seek=1
sync

But still no boot screen for that either. :/

Shouldn't this work out of the box??

/Lars Pedersen

On Mon, 3 Aug 2020 at 12:10, Ahmad Fatoum <a.fatoum at pengutronix.de> wrote:
>
> Hi,
>
> On 7/29/20 6:52 PM, Lars Pedersen wrote:
> > I have spent the last couple of days trying to port our bootloader
> > from u-boot to barebox 2020.07 but have yet to get any console output.
> > Our product is based on tqma7d i.MX7 dual core cpu and uses UART4 for
> > serial console and boots from internal eMMC.
> >
> > I created a new board inspired from "NXP i.MX7 SabreSD board" and
> > tried to only add the basic in the first step to get a console output
> > working. The image is built using ptxdist and the imx_v7_defconfig
> > where the new board is selected. The image is flashed with "dd
> > if=barebox-image of=/dev/mmcblk0 bs=1024 skip=1 seek=1 conv=fsync".
> > The device works using u-boot 2020.07 with the same device trees but
> > we thought it was time to try out barebox since u-boot felt a little
> > bloated :)
> >
> > So can anyone be of assistance and tell me what I'm missing?
>
> When I looked through your patch the first time, I just looked
> for stuff that would cause it to not boot. Some more comments
> inline that are unrelated to your boot problems.
>
> >
> > /Lars Pedersen
> >
> > From: Lars Pedersen <laa at kamstrup.com>
> > Date: Tue, 28 Jul 2020 08:57:57 +0000
> > Subject: [PATCH] Add kamstrup imx7d dev board
> >
> > ---
> >  arch/arm/boards/Makefile                           |   1 +
> >  arch/arm/boards/kamstrup-imx7d-tqma7d/Makefile     |   2 +
> >  arch/arm/boards/kamstrup-imx7d-tqma7d/board.c      |  19 ++
> >  .../flash-header-kamstrup-imx7d-tqma7d.imxcfg      |  79 ++++++
> >  arch/arm/boards/kamstrup-imx7d-tqma7d/lowlevel.c   |  35 +++
> >  arch/arm/dts/Makefile                              |   1 +
> >  arch/arm/dts/imx7d-flex-concentrator-mfg.dts       |  11 +
> >  arch/arm/mach-imx/Kconfig                          |   5 +
> >  drivers/regulator/Kconfig                          |   2 +-
> >  dts/src/arm/imx7d-flex-concentrator-mfg.dts        |  25 ++
> >  dts/src/arm/imx7d-flex-concentrator.dts            | 313 +++++++++++++++++++++
> >  images/Makefile.imx                                |   5 +
> >  12 files changed, 497 insertions(+), 1 deletion(-)
> >  create mode 100644 arch/arm/boards/kamstrup-imx7d-tqma7d/Makefile
> >  create mode 100644 arch/arm/boards/kamstrup-imx7d-tqma7d/board.c
> >  create mode 100644
> > arch/arm/boards/kamstrup-imx7d-tqma7d/flash-header-kamstrup-imx7d-tqma7d.imxcfg
> >  create mode 100644 arch/arm/boards/kamstrup-imx7d-tqma7d/lowlevel.c
> >  create mode 100644 arch/arm/dts/imx7d-flex-concentrator-mfg.dts
> >  create mode 100644 dts/src/arm/imx7d-flex-concentrator-mfg.dts
> >  create mode 100644 dts/src/arm/imx7d-flex-concentrator.dts
> >
> > diff --git a/arch/arm/boards/Makefile b/arch/arm/boards/Makefile
> > index e9e9163d589b..58bb4cf2adab 100644
> > --- a/arch/arm/boards/Makefile
> > +++ b/arch/arm/boards/Makefile
> > @@ -64,6 +64,7 @@ obj-$(CONFIG_MACH_HIGHBANK)            += highbank/
> >  obj-$(CONFIG_MACH_IMX21ADS)            += freescale-mx21-ads/
> >  obj-$(CONFIG_MACH_IMX233_OLINUXINO)        += imx233-olinuxino/
> >  obj-$(CONFIG_MACH_IMX27ADS)            += freescale-mx27-ads/
> > +obj-$(CONFIG_MACH_KAMSTRUP_IMX7D_TQMA7D)    += kamstrup-imx7d-tqma7d/
> >  obj-$(CONFIG_MACH_KINDLE3)            += kindle3/
> >  obj-$(CONFIG_MACH_KONTRON_SAMX6I)        += kontron-samx6i/
> >  obj-$(CONFIG_MACH_LENOVO_IX4_300D)        += lenovo-ix4-300d/
> > diff --git a/arch/arm/boards/kamstrup-imx7d-tqma7d/Makefile
> > b/arch/arm/boards/kamstrup-imx7d-tqma7d/Makefile
> > new file mode 100644
> > index 000000000000..01c7a259e9a5
> > --- /dev/null
> > +++ b/arch/arm/boards/kamstrup-imx7d-tqma7d/Makefile
> > @@ -0,0 +1,2 @@
> > +obj-y += board.o
> > +lwl-y += lowlevel.o
> > diff --git a/arch/arm/boards/kamstrup-imx7d-tqma7d/board.c
> > b/arch/arm/boards/kamstrup-imx7d-tqma7d/board.c
> > new file mode 100644
> > index 000000000000..b3ffa851f3e6
> > --- /dev/null
> > +++ b/arch/arm/boards/kamstrup-imx7d-tqma7d/board.c
> > @@ -0,0 +1,19 @@
> > +// SPDX-License-Identifier: GPL-2.0-or-later
> > +// SPDX-FileCopyrightText: 2020 Kamstrup A/S
> > +
> > +/* Author: Lars Pedersen <lapeddk at gmail.com> */
> > +
> > +#include <common.h>
> > +#include <init.h>
> > +#include <io.h>
> > +#include <mach/imx7-regs.h>
> > +#include <mfd/imx7-iomuxc-gpr.h>
> > +
> > +static int kamstrup_mx7_tqma7d_coredevices_init(void)
> > +{
> > +    if (!of_machine_is_compatible("kam,imx7d-flex-concentrator"))
> > +        return 0;
> > +
> > +    return 0;
> > +}
>
> Function serves no purpose. If you don't have baord code, drop it altogether.
>

I'll do a cleanup when I have it working :D

> > +coredevice_initcall(kamstrup_mx7_tqma7d_coredevices_init);
> > diff --git a/arch/arm/boards/kamstrup-imx7d-tqma7d/flash-header-kamstrup-imx7d-tqma7d.imxcfg
> > b/arch/arm/boards/kamstrup-imx7d-tqma7d/flash-header-kamstrup-imx7d-tqma7d.imxcfg
> > new file mode 100644
> > index 000000000000..7656619c1b2e
> > --- /dev/null
> > +++ b/arch/arm/boards/kamstrup-imx7d-tqma7d/flash-header-kamstrup-imx7d-tqma7d.imxcfg
> > @@ -0,0 +1,79 @@
> > +soc imx7
> > +loadaddr 0x80000000
> > +dcdofs 0x400
>
> Called ivtofs now in barebox next branch now.
>

Okay thanks.

> > diff --git a/arch/arm/dts/imx7d-flex-concentrator-mfg.dts
> > b/arch/arm/dts/imx7d-flex-concentrator-mfg.dts
> > new file mode 100644
> > index 000000000000..746e36a70f4c
> > --- /dev/null
> > +++ b/arch/arm/dts/imx7d-flex-concentrator-mfg.dts
> > @@ -0,0 +1,11 @@
> > +/*
> > + * The code contained herein is licensed under the GNU General Public
> > + * License. You may obtain a copy of the GNU General Public License
> > + * Version 2 or later at the following locations:
> > + *
> > + * http://www.opensource.org/licenses/gpl-license.html
> > + * http://www.gnu.org/copyleft/gpl.html
> > + */
> > +
> > +#include <arm/imx7d-flex-concentrator-mfg.dts>
> > +
> > diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig
> > index 6dd5cb2aca15..d0a9332c7a24 100644
> > --- a/arch/arm/mach-imx/Kconfig
> > +++ b/arch/arm/mach-imx/Kconfig
> > @@ -492,6 +492,11 @@ config MACH_ZII_IMX7D_DEV
> >      select ARCH_IMX7
> >      select ARM_USE_COMPRESSED_DTB
> >
> > +config MACH_KAMSTRUP_IMX7D_TQMA7D
> > +    bool "Kamstrup TQMa7D based devices"
> > +    select ARCH_IMX7
> > +    select ARM_USE_COMPRESSED_DTB
> > +
> >  config MACH_PHYTEC_PHYCORE_IMX7
> >      bool "Phytec phyCORE i.MX7"
> >      select ARCH_IMX7
> > diff --git a/drivers/regulator/Kconfig b/drivers/regulator/Kconfig
> > index 1ce057180a01..b0bdc48399e3 100644
> > --- a/drivers/regulator/Kconfig
> > +++ b/drivers/regulator/Kconfig
> > @@ -19,7 +19,7 @@ config REGULATOR_BCM283X
> >  config REGULATOR_PFUZE
> >      bool "Freescale PFUZE100/200/3000 regulator driver"
> >      depends on I2C
> > -    depends on ARCH_IMX6 || ARCH_IMX8MQ
> > +    depends on ARCH_IMX6 || ARCH_IMX7 || ARCH_IMX8MQ
> >
> >  config REGULATOR_STM32_PWR
> >      bool "STMicroelectronics STM32 PWR"
> > diff --git a/dts/src/arm/imx7d-flex-concentrator-mfg.dts
> > b/dts/src/arm/imx7d-flex-concentrator-mfg.dts
> > new file mode 100644
> > index 000000000000..789f0837058f
> > --- /dev/null
> > +++ b/dts/src/arm/imx7d-flex-concentrator-mfg.dts
>
> Perfectly fine for your patch stack in BSP, but if you want to upstream
> it, you need to either:
>
> 1) upstream your device tree to Linux. dts/ is a sync with Linux and
>    shortly after, it will be imported into barebox
> 2) put your device tree in arch/arm/dts
>
The dts will upstreamed soon. Hopefully :D



More information about the barebox mailing list