Hi Cédric,

> Subject: Re: [PATCH v5 21/21] tests/functional/arm/test_aspeed_ast2600_sdk:
> Add i3c functional test
> 
> On 2/10/26 10:10, Jamin Lin wrote:
> > Signed-off-by: Jamin Lin <[email protected]>
> > ---
> >   tests/functional/arm/test_aspeed_ast2600_sdk.py | 12 ++++++++++++
> >   1 file changed, 12 insertions(+)
> >
> > diff --git a/tests/functional/arm/test_aspeed_ast2600_sdk.py
> b/tests/functional/arm/test_aspeed_ast2600_sdk.py
> > index 6236aeb11c..3485feaf2c 100755
> > --- a/tests/functional/arm/test_aspeed_ast2600_sdk.py
> > +++ b/tests/functional/arm/test_aspeed_ast2600_sdk.py
> > @@ -31,6 +31,15 @@ def do_ast2600_pcie_test(self):
> >               'ip addr show dev eth4',
> >               'inet 10.0.2.15/24')
> >
> > +    def do_ast2600_i3c_test(self):
> > +        exec_command_and_wait_for_pattern(self,
> > +            'i3ctransfer -d /dev/bus/i3c/5-1234567890ab'
> > +            ' -w 0x12,0x34,0x56,0x78,0x90,0xab,0xcd,0xef',
> > +            'Success on message 0')
> > +        exec_command_and_wait_for_pattern(self,
> > +            'i3ctransfer -d /dev/bus/i3c/5-1234567890ab -r 8 | grep 0x |
> xargs',
> > +            '0x12 0x34 0x56 0x78 0x90 0xab 0xcd 0xef')
> > +
> >       def test_arm_ast2600_evb_sdk(self):
> >           self.set_machine('ast2600-evb')
> >           self.require_netdev('user')
> > @@ -43,6 +52,8 @@ def test_arm_ast2600_evb_sdk(self):
> >               'ds1338,bus=aspeed.i2c.bus.5,address=0x32')
> >           self.vm.add_args('-device', 'e1000e,netdev=net1,bus=pcie.0')
> >           self.vm.add_args('-netdev', 'user,id=net1')
> > +        self.vm.add_args('-device',
> > +            'mock-i3c-target,bus=dw.i3c.5,pid=0xab9078563412')
> >           self.do_test_arm_aspeed_sdk_start(
> >               self.scratch_file("ast2600-default", "image-bmc"))
> >
> > @@ -69,6 +80,7 @@ def test_arm_ast2600_evb_sdk(self):
> >           exec_command_and_wait_for_pattern(self,
> >                '/sbin/hwclock -f /dev/rtc1', year)
> >           self.do_ast2600_pcie_test()
> > +        self.do_ast2600_i3c_test()
> >
> >       def test_arm_ast2600_otp_blockdev_device(self):
> >           self.vm.set_machine("ast2600-evb")
> 
> I am seeing these errors from Linux :
> 
> 2026-02-10 16:50:20,812: [    5.080168] i3c i3c-0: xfer error: 4
> 2026-02-10 16:50:20,818: [    5.083648] i3c i3c-0: xfer error: 4
> 2026-02-10 16:50:20,818: [    5.085817] i3c i3c-0: xfer error: 4
> 2026-02-10 16:50:20,818: [    5.086369] i3c i3c-0: xfer error: 4
> 2026-02-10 16:50:20,870: [    5.127257] i3c i3c-1: xfer error: 4
> 2026-02-10 16:50:20,873: [    5.130879] i3c i3c-1: xfer error: 4
> 2026-02-10 16:50:20,874: [    5.131253] i3c i3c-1: xfer error: 4
> 2026-02-10 16:50:20,874: [    5.131527] i3c i3c-1: xfer error: 4
> 2026-02-10 16:50:20,909: [    5.162790] i3c i3c-2: xfer error: 4
> 2026-02-10 16:50:20,913: [    5.163488] i3c i3c-2: xfer error: 4
> 2026-02-10 16:50:20,949: [    5.195396] i3c i3c-3: xfer error: 4
> 2026-02-10 16:50:20,952: [    5.196101] i3c i3c-3: xfer error: 4
> 2026-02-10 16:50:21,018: [    5.253398] i3c i3c-5: xfer error: 4
> 2026-02-10 16:50:21,042: [    5.269565] i3c i3c-0: xfer error: 9
> 2026-02-10 16:50:21,043: [    5.273845] i3c-mux-imx3102 0-4cc31020000:
> No ownership
> 2026-02-10 16:50:21,049: [    5.276017] i3c i3c-1: xfer error: 9
> 2026-02-10 16:50:21,049: [    5.278757] i3c-mux-imx3102 1-4cc31020000:
> No ownership
> 
> Is that expected ?
> 

Yes, this behavior is expected.
I verified the same result on the AST2600 EVB and observed identical error 
messages.

I3C bus 0, 1, 2, 3:
These buses are configured to use the i3c-mux (imx3102) in the device tree.
However, since the i3c mux model is not present in the current environment, the 
driver reports:
xfer error: 4
No ownership
These messages indicate that the mux device is expected but not available.

I3C bus 5
For this bus, the firmware does not have this i3c-mock-target model driver, 
which results in:
xfer error: 4
This is also expected under the current configuration.

Despite these error messages, the I3C device nodes are still created correctly:
/dev/bus/i3c/
  0-4cc51180000
  0-4cc51181000
  1-4cc51180000
  1-4cc51181000
  5-1234567890ab
  i3c-4
This means the controller itself is functioning.
We can use the i3c-transfer tool to access the device node and test the 
i3c-mock-target model.
The results match expectations.

For reference, the relevant DTS configuration can be found here:
https://github.com/AspeedTech-BMC/linux/blob/aspeed-master-v6.18/arch/arm/boot/dts/aspeed/aspeed-ast2600-evb.dts#L950

Thanks,
Jamin

> Thanks,
> 
> C.
> 

Reply via email to