mail archive of the barebox mailing list
 help / color / mirror / Atom feed
From: Sascha Hauer <s.hauer@pengutronix.de>
To: Marco Felsch <m.felsch@pengutronix.de>
Cc: BAREBOX <barebox@lists.infradead.org>,
	Johannes Schneider <johannes.schneider@leica-geosystems.com>
Subject: Re: [PATCH 5/5] ARM: i.MX8MM: add Hexagon Geosystems GS05
Date: Mon, 9 Feb 2026 14:40:35 +0100	[thread overview]
Message-ID: <aYnj0xGZySdVGObw@pengutronix.de> (raw)
In-Reply-To: <20260209113901.jfa2dnwt2m5r3pnv@pengutronix.de>

On Mon, Feb 09, 2026 at 12:39:01PM +0100, Marco Felsch wrote:
> On 26-02-09, Sascha Hauer wrote:
> > On Thu, Feb 05, 2026 at 04:45:07PM +0100, Marco Felsch wrote:
> > > +#include <common.h>
> > > +#include <deep-probe.h>
> > > +#include <envfs.h>
> > > +#include <environment.h>
> > > +#include <init.h>
> > > +#include <i2c/i2c.h>
> > > +#include <linux/phy.h>
> > > +#include <mach/imx/bbu.h>
> > > +#include <mach/imx/generic.h>
> > > +#include <mfd/hgs-efi.h>
> > > +#include <of.h>
> > > +#include <state.h>
> > > +
> > > +#define PHY_ID_AR8031	0x004dd074
> > > +#define AR_PHY_ID_MASK	0xffffffff
> > > +
> > > +#define HGS_GS05_BASE_NAME	"Hexagon Geosystems GS05"
> > > +
> > > +#define HGS_GS05_MACHINE(_revid, _compatible, _model_suffix) \
> > > +	HGS_MACHINE(_revid, _compatible, HGS_GS05_BASE_NAME " " _model_suffix)
> > > +
> > > +struct hgs_machine hgs_gs05_variants[] = {
> > 
> > static
> 
> Sure.
> 
> > > +	HGS_GS05_MACHINE(HGS_BOARD_REV_C, "hgs,gs05-rev-c", "Rev-C"),
> > > +	HGS_GS05_MACHINE(HGS_BOARD_REV_D, "hgs,gs05-rev-d", "Rev-D"),
> > > +	{ /* Sentinel */ }
> > > +};
> > > +
> > > +#define HGS_GS05_LEGACY_MACHINE(_revchar, _revid, _compatible, _model_suffix) \
> > > +{									\
> > > +	.revision = _revchar,						\
> > > +	.machine = HGS_GS05_MACHINE(_revid, _compatible, _model_suffix) \
> > > +}
> > > +
> > > +struct hgs_gs05_legacy_machine {
> > 
> > static
> 
> Sure.
> 
> > > +	u8 revision;
> > > +	struct hgs_machine machine;
> > > +} hgs_gs05_legacy_variants[] = {
> > > +	HGS_GS05_LEGACY_MACHINE('C', HGS_BOARD_REV_C, "hgs,gs05-rev-c", "Rev-C"),
> > > +	HGS_GS05_LEGACY_MACHINE('D', HGS_BOARD_REV_D, "hgs,gs05-rev-d", "Rev-D"),
> > > +	{ /* Sentinel */ }
> > > +};
> > > +
> > > +static int ar8031_phy_fixup(struct phy_device *phydev)
> > > +{
> > > +	/* enable rgmii rxc skew and phy mode select to RGMII copper */
> > > +	phy_write(phydev, 0x1d, 0x1f);
> > > +	phy_write(phydev, 0x1e, 0x8);
> > > +	phy_write(phydev, 0x1d, 0x00);
> > > +	phy_write(phydev, 0x1e, 0x82ee);
> > > +	phy_write(phydev, 0x1d, 0x05);
> > > +	phy_write(phydev, 0x1e, 0x100);
> > > +
> > > +	return 0;
> > > +}
> > > +
> > > +static struct hgs_machine *
> > > +hgs_gs05_get_board_from_legacy(const unsigned char *serial)
> > > +{
> > > +	struct hgs_gs05_legacy_machine *machine = hgs_gs05_legacy_variants;
> > > +
> > > +	for (; machine->revision; machine++)
> > > +		if (serial[6] == machine->revision)
> > > +			return &machine->machine;
> > 
> > Drop sentinel and use ARRAY_SIZE?
> 
> Is this rather a personal preference or barebox coding style?
> 
> I would like to keep the sentinel-approach since we use the same
> approach for other boards too which allowed us simpler code
> constructions.

As you've seen in this patch such a sentinel is easily forgotten. When
you use the arrays non locally and have to pass the number of array
entries around as an additional argument, then Ok, use the sentinel
approach. But since you don't do that, what's the good argument for not
using ARRAY_SIZE and save a few bytes of binary space?

> > [...]
> > 
> > > +	err = imx_hab_lockdown_device(flags);
> > > +	if (err) {
> > > +		dev_err(dev, "Failed to lockdown the device\n");
> > > +		return err;
> > > +	}
> > > +	dev_info(dev, "Lockdown of the device succeeded\n");
> > > +	return 0;
> > > +}
> > > +postenvironment_initcall(hgs_run_first_boot_setup);
> > 
> > Needs to be protected from running on other boards.
> 
> Guarded via the hgs_first_boot variable which is only set by
> hgs_run_first_boot() which in turn gets only called via
> hgs_common_boot().

Hm, you're right. Nevertheless please do not add multiple initcalls at
the same level in the same file.

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 |



  reply	other threads:[~2026-02-09 13:41 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-02-05 15:45 [PATCH 0/5] Hexagon Geosystems GS05 Board Support Marco Felsch
2026-02-05 15:45 ` [PATCH 1/5] ARM: i.MX8MM: add MX8MM_PAD_CTL defines Marco Felsch
2026-02-06 13:04   ` Ahmad Fatoum
2026-02-05 15:45 ` [PATCH 2/5] lib: hexdump: make use of pr_print Marco Felsch
2026-02-06 13:05   ` Ahmad Fatoum
2026-02-05 15:45 ` [PATCH 3/5] mfd: Add Hexagon EFI driver Marco Felsch
2026-02-06 13:09   ` Ahmad Fatoum
2026-02-06 15:52     ` Marco Felsch
2026-02-09  9:03   ` Sascha Hauer
2026-02-09 11:13     ` Marco Felsch
2026-02-09 13:46       ` Sascha Hauer
2026-02-05 15:45 ` [PATCH 4/5] watchdog: Add Hexagon EFI watchdog driver Marco Felsch
2026-02-06 13:13   ` Ahmad Fatoum
2026-02-06 16:34     ` Marco Felsch
2026-02-05 15:45 ` [PATCH 5/5] ARM: i.MX8MM: add Hexagon Geosystems GS05 Marco Felsch
2026-02-06 13:47   ` Ahmad Fatoum
2026-02-06 14:07     ` SCHNEIDER Johannes
2026-02-06 15:43       ` Marco Felsch
2026-02-06 17:12     ` Marco Felsch
2026-02-09 10:42   ` Sascha Hauer
2026-02-09 11:39     ` Marco Felsch
2026-02-09 13:40       ` Sascha Hauer [this message]
2026-02-05 15:50 ` [PATCH 0/5] Hexagon Geosystems GS05 Board Support Marco Felsch

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=aYnj0xGZySdVGObw@pengutronix.de \
    --to=s.hauer@pengutronix.de \
    --cc=barebox@lists.infradead.org \
    --cc=johannes.schneider@leica-geosystems.com \
    --cc=m.felsch@pengutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox