[PATCH 3/4] board: phytec: phytec_som_detection: fix eeprom_data zero check
Teresa Remmet
T.Remmet at phytec.de
Wed Dec 20 09:24:07 CET 2023
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.
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