[PATCH 3/4] board: phytec: phytec_som_detection: fix eeprom_data zero check
Yannic Moog
Y.Moog at phytec.de
Wed Dec 20 09:28:06 CET 2023
Hello Teresa,
On Wed, 2023-12-20 at 09:24 +0100, Teresa Remmet wrote:
> Hello Yannic,
>
> Am Mittwoch, dem 20.12.2023 um 09:19 +0100 schrieb Yannic Moog:
> > In phytec_eeprom_data_init, after reading eeprom data into buffer, it
> > is
> > checked whether all bytes are 0x0 by iterating over chunks of the
> > buffer. The offset, or index of the chunk, was never changed, leading
> > to
> > repeated comparison of only the first chunk. Use array notation and
> > access chunk via array index to compare all chunks of the buffer.
>
> it seems that you have here accidentally two patches in one.
> Please check.
I see, will update; Thanks
Yannic
>
> Teresa
>
> >
> > Signed-off-by: Yannic Moog <y.moog at phytec.de>
> > ---
> > board/phytec/common/imx8m_som_detection.c | 32
> > ++++++++++++++++++++++
> > board/phytec/common/imx8m_som_detection.h | 32 --------------------
> > --
> > board/phytec/common/phytec_som_detection.c | 43
> > ++++++++++++++++++++++++++++--
> > board/phytec/common/phytec_som_detection.h | 38 --------------------
> > ------
> > 4 files changed, 73 insertions(+), 72 deletions(-)
> >
> > diff --git a/board/phytec/common/imx8m_som_detection.c
> > b/board/phytec/common/imx8m_som_detection.c
> > index a229eae152d..214b75db3b0 100644
> > --- a/board/phytec/common/imx8m_som_detection.c
> > +++ b/board/phytec/common/imx8m_som_detection.c
> > @@ -15,6 +15,8 @@
> >
> > extern struct phytec_eeprom_data eeprom_data;
> >
> > +#if IS_ENABLED(CONFIG_PHYTEC_IMX8M_SOM_DETECTION)
> > +
> > /* Check if the SoM is actually one of the following products:
> > * - i.MX8MM
> > * - i.MX8MN
> > @@ -166,3 +168,33 @@ u8 __maybe_unused phytec_get_imx8mp_rtc(struct
> > phytec_eeprom_data *data)
> > debug("%s: rtc: %u\n", __func__, rtc);
> > return rtc;
> > }
> > +
> > +#else
> > +
> > +inline int __maybe_unused phytec_imx8m_detect(struct
> > phytec_eeprom_data *data)
> > +{
> > + return -1;
> > +}
> > +
> > +inline u8 __maybe_unused
> > +phytec_get_imx8m_ddr_size(struct phytec_eeprom_data *data)
> > +{
> > + return PHYTEC_EEPROM_INVAL;
> > +}
> > +
> > +inline u8 __maybe_unused phytec_get_imx8mp_rtc(struct
> > phytec_eeprom_data *data)
> > +{
> > + return PHYTEC_EEPROM_INVAL;
> > +}
> > +
> > +inline u8 __maybe_unused phytec_get_imx8m_spi(struct
> > phytec_eeprom_data *data)
> > +{
> > + return PHYTEC_EEPROM_INVAL;
> > +}
> > +
> > +inline u8 __maybe_unused phytec_get_imx8m_eth(struct
> > phytec_eeprom_data *data)
> > +{
> > + return PHYTEC_EEPROM_INVAL;
> > +}
> > +
> > +#endif /* IS_ENABLED(CONFIG_PHYTEC_IMX8M_SOM_DETECTION) */
> > diff --git a/board/phytec/common/imx8m_som_detection.h
> > b/board/phytec/common/imx8m_som_detection.h
> > index 442085cfe97..0176347414f 100644
> > --- a/board/phytec/common/imx8m_som_detection.h
> > +++ b/board/phytec/common/imx8m_som_detection.h
> > @@ -13,42 +13,10 @@
> > #define PHYTEC_IMX8MM_SOM 69
> > #define PHYTEC_IMX8MP_SOM 70
> >
> > -#if IS_ENABLED(CONFIG_PHYTEC_IMX8M_SOM_DETECTION)
> > -
> > int __maybe_unused phytec_imx8m_detect(struct phytec_eeprom_data
> > *data);
> > u8 __maybe_unused phytec_get_imx8m_ddr_size(struct
> > phytec_eeprom_data *data);
> > u8 __maybe_unused phytec_get_imx8mp_rtc(struct phytec_eeprom_data
> > *data);
> > u8 __maybe_unused phytec_get_imx8m_spi(struct phytec_eeprom_data
> > *data);
> > u8 __maybe_unused phytec_get_imx8m_eth(struct phytec_eeprom_data
> > *data);
> >
> > -#else
> > -
> > -inline int __maybe_unused phytec_imx8m_detect(struct
> > phytec_eeprom_data *data)
> > -{
> > - return -1;
> > -}
> > -
> > -inline u8 __maybe_unused
> > -phytec_get_imx8m_ddr_size(struct phytec_eeprom_data *data)
> > -{
> > - return PHYTEC_EEPROM_INVAL;
> > -}
> > -
> > -inline u8 __maybe_unused phytec_get_imx8mp_rtc(struct
> > phytec_eeprom_data *data)
> > -{
> > - return PHYTEC_EEPROM_INVAL;
> > -}
> > -
> > -inline u8 __maybe_unused phytec_get_imx8m_spi(struct
> > phytec_eeprom_data *data)
> > -{
> > - return PHYTEC_EEPROM_INVAL;
> > -}
> > -
> > -inline u8 __maybe_unused phytec_get_imx8m_eth(struct
> > phytec_eeprom_data *data)
> > -{
> > - return PHYTEC_EEPROM_INVAL;
> > -}
> > -
> > -#endif /* IS_ENABLED(CONFIG_PHYTEC_IMX8M_SOM_DETECTION) */
> > -
> > #endif /* _PHYTEC_IMX8M_SOM_DETECTION_H */
> > diff --git a/board/phytec/common/phytec_som_detection.c
> > b/board/phytec/common/phytec_som_detection.c
> > index 55562731270..f879702df45 100644
> > --- a/board/phytec/common/phytec_som_detection.c
> > +++ b/board/phytec/common/phytec_som_detection.c
> > @@ -16,6 +16,8 @@
> >
> > struct phytec_eeprom_data eeprom_data;
> >
> > +#if IS_ENABLED(CONFIG_PHYTEC_SOM_DETECTION)
> > +
> > int phytec_eeprom_data_setup_fallback(struct phytec_eeprom_data
> > *data,
> > int bus_num, int addr, int
> > addr_fallback)
> > {
> > @@ -83,8 +85,8 @@ int phytec_eeprom_data_init(struct
> > phytec_eeprom_data *data,
> > }
> >
> > ptr = (int *)data;
> > - for (i = 0; i < sizeof(struct phytec_eeprom_data); i +=
> > sizeof(ptr))
> > - if (*ptr != 0x0)
> > + for (i = 0; i < sizeof(struct phytec_eeprom_data); i++)
> > + if (ptr[i] != 0x0)
> > break;
> >
> > if (i == sizeof(struct phytec_eeprom_data)) {
> > @@ -201,3 +203,40 @@ u8 __maybe_unused phytec_get_rev(struct
> > phytec_eeprom_data *data)
> >
> > return api2->pcb_rev;
> > }
> > +
> > +#else
> > +
> > +inline int phytec_eeprom_data_setup(struct phytec_eeprom_data *data,
> > + int bus_num, int addr)
> > +{
> > + return PHYTEC_EEPROM_INVAL;
> > +}
> > +
> > +inline int phytec_eeprom_data_setup_fallback(struct
> > phytec_eeprom_data *data,
> > + int bus_num, int addr,
> > + int addr_fallback)
> > +{
> > + return PHYTEC_EEPROM_INVAL;
> > +}
> > +
> > +inline int phytec_eeprom_data_init(struct phytec_eeprom_data *data,
> > + int bus_num, int addr)
> > +{
> > + return PHYTEC_EEPROM_INVAL;
> > +}
> > +
> > +inline void __maybe_unused phytec_print_som_info(struct
> > phytec_eeprom_data *data)
> > +{
> > +}
> > +
> > +inline char *__maybe_unused phytec_get_opt(struct phytec_eeprom_data
> > *data)
> > +{
> > + return NULL;
> > +}
> > +
> > +u8 __maybe_unused phytec_get_rev(struct phytec_eeprom_data *data)
> > +{
> > + return PHYTEC_EEPROM_INVAL;
> > +}
> > +
> > +#endif /* IS_ENABLED(CONFIG_PHYTEC_SOM_DETECTION) */
> > diff --git a/board/phytec/common/phytec_som_detection.h
> > b/board/phytec/common/phytec_som_detection.h
> > index c68e2302cc4..11009240875 100644
> > --- a/board/phytec/common/phytec_som_detection.h
> > +++ b/board/phytec/common/phytec_som_detection.h
> > @@ -56,8 +56,6 @@ struct phytec_eeprom_data {
> > } data;
> > } __packed;
> >
> > -#if IS_ENABLED(CONFIG_PHYTEC_SOM_DETECTION)
> > -
> > int phytec_eeprom_data_setup_fallback(struct phytec_eeprom_data
> > *data,
> > int bus_num, int addr,
> > int addr_fallback);
> > @@ -70,40 +68,4 @@ void __maybe_unused phytec_print_som_info(struct
> > phytec_eeprom_data *data);
> > char * __maybe_unused phytec_get_opt(struct phytec_eeprom_data
> > *data);
> > u8 __maybe_unused phytec_get_rev(struct phytec_eeprom_data *data);
> >
> > -#else
> > -
> > -inline int phytec_eeprom_data_setup(struct phytec_eeprom_data *data,
> > - int bus_num, int addr)
> > -{
> > - return PHYTEC_EEPROM_INVAL;
> > -}
> > -
> > -inline int phytec_eeprom_data_setup_fallback(struct
> > phytec_eeprom_data *data,
> > - int bus_num, int addr,
> > - int addr_fallback)
> > -{
> > - return PHYTEC_EEPROM_INVAL;
> > -}
> > -
> > -inline int phytec_eeprom_data_init(struct phytec_eeprom_data *data,
> > - int bus_num, int addr)
> > -{
> > - return PHYTEC_EEPROM_INVAL;
> > -}
> > -
> > -inline void __maybe_unused phytec_print_som_info(struct
> > phytec_eeprom_data *data)
> > -{
> > -}
> > -
> > -inline char *__maybe_unused phytec_get_opt(struct phytec_eeprom_data
> > *data)
> > -{
> > - return NULL;
> > -}
> > -
> > -u8 __maybe_unused phytec_get_rev(struct phytec_eeprom_data *data)
> > -{
> > - return PHYTEC_EEPROM_INVAL;
> > -}
> > -#endif /* IS_ENABLED(CONFIG_PHYTEC_SOM_DETECTION) */
> > -
> > #endif /* _PHYTEC_SOM_DETECTION_H */
> >
>
> --
> PHYTEC Messtechnik GmbH | Barcelona-Allee 1 | 55129 Mainz, Germany
>
> Geschäftsführer: Dipl.-Ing. Michael Mitezki, Dipl.-Ing. Bodo Huber,
> Dipl.-Ing. (FH) Markus Lickes | Handelsregister Mainz HRB 4656 |
> Finanzamt Mainz | St.Nr. 266500608, DE 149059855
More information about the U-Boot
mailing list