Skip to content

I3C controller initialization fails in Linux on Gigabyte MZ33-AR1 #1845

@miczyg1

Description

@miczyg1

Component

Dasharo firmware

Device

other

Dasharo version

v0.9.0

Dasharo Tools Suite version

n/a

Test case ID

STB002.201

Brief summary

One may observe i3c initialization errors in dmesg in Linux

How reproducible

Always

How to reproduce

Run STB002.201

Expected behavior

There are no errors in dmesg for I3C controller

Actual behavior

I3C controller fails to initialize.

Screenshots

No response

Additional context

Logs:

UBSAN: shift-out-of-bounds in /build/linux-Ge52r7/linux-6.17.0/drivers/i3c/master/dw-i3c-master.c:885:12
shift exponent 64 is too large for 64-bit type 'long unsigned int'
dw-i3c-master AMDI0015:01: probe with driver dw-i3c-master failed with error -17
dw-i3c-master AMDI0015:02: probe with driver dw-i3c-master failed with error -110
dw-i3c-master AMDI0015:03: probe with driver dw-i3c-master failed with error -110

The cause of shift-out-of-bounds error is simple, any attempt to access I3C MMIO space returns FFs and the driver cannot do proper calculations, causing a bit shift larger than 64. As for the root cause why the I3C controllers return FFs is likely because DIMM telemetry is active and access to I3C/I2C controllers is fenced by PSP/SMU. Same errors show up on vendor BIOS too, likely for the same reason.

Solutions you've tried

No response

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions