[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