colibri-imx8x: Fix sc_misc_otp_fuse_read() error check
authorFabio Estevam <festevam@gmail.com>
Wed, 13 Mar 2024 00:36:41 +0000 (21:36 -0300)
committerFabio Estevam <festevam@gmail.com>
Sun, 17 Mar 2024 20:59:32 +0000 (17:59 -0300)
Commit aa6e698a7acd ("imx: toradex/colibri-imx8x: correct SCU API usage")
made an incorrect logic change in the error code check of
sc_misc_otp_fuse_read():

-       if (sc_err == SC_ERR_NONE) {
+       if (sc_err) {
                /* DX has two A35 cores disabled */
                return (val & 0xf) != 0x0;
        }

The other changes in this commit are correct.

sc_misc_otp_fuse_read() returns 0 on a successful fuse read.

This inversion causes board_mem_get_layout() to report incorrect RAM size.

Go back the original error check logic to fix the problem.

Fixes: aa6e698a7acd ("imx: toradex/colibri-imx8x: correct SCU API usage")
Reported-by: Hiago De Franco <hiago.franco@toradex.com>
Signed-off-by: Fabio Estevam <festevam@gmail.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Tested-by: Hiago De Franco <hiago.franco@toradex.com> # Toradex Colibri iMX8X 1GB
board/toradex/colibri-imx8x/colibri-imx8x.c

index 2c673a4..6fc8076 100644 (file)
@@ -46,7 +46,7 @@ static int is_imx8dx(void)
        u32 val = 0;
        int sc_err = sc_misc_otp_fuse_read(-1, 6, &val);
 
-       if (sc_err) {
+       if (!sc_err) {
                /* DX has two A35 cores disabled */
                return (val & 0xf) != 0x0;
        }