Re: Read CPLD firmware version on Edgecore AS5114-48X

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Paul,

On Fri, 14 Jul 2023 12:57:33 +0200, Paul Menzel wrote:
> I updated the CPLD firmware to version 1.09 now, and to verify tried 
> your commands, but get an error:
> 
>      # i2cdump -f -y 0 0x40
>      No size specified (using byte-data access)
>           0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
>      00: 88 01 ff 07 0f cc cc cc cc cc cc cc cc cc cc cc    ??.?????????????
>      10: ff 03 3f cc 01 cc cc cc cc cc cc cc cc cc cc cc    .???????????????
>      20: ff cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc    .???????????????
>      30: 03 00 00 00 cc cc cc cc cc cc cc cc cc cc cc cc    ?...????????????
>      40: cc cc cc 0e cc cc cc cc cc cc cc cc cc cc cc cc    ????????????????
>      50: 0d 4a 03 00 7f cc cc cc cc cc cc cc cc cc cc cc    ?J?.????????????
>      60: 01 71 1e cc cc cc cc cc cc cc cc cc cc cc cc cc    ?q??????????????
>      70: 7f 7f 7f 7f 7f cc cc cc cc cc cc cc cc cc cc cc    ????????????????
>      80: 6a 69 69 69 68 cc cc cc cc cc cc cc cc cc cc cc    jiiih???????????
>      90: 02 00 71 71 cc cc cc cc cc cc cc cc cc cc cc cc    ?.qq????????????
>      a0: 00 00 00 00 00 00 f0 01 00 00 00 c0 cc cc cc cc    ......??...?????
>      b0: 00 00 00 00 00 00 00 00 00 00 00 00 cc cc cc cc    ............????
>      c0: 0f fe ff ff ff 3f 00 00 00 00 00 00 cc cc cc cc    ??...?......????
>      d0: cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc    ????????????????
>      e0: 00 71 cc cc cc cc cc cc cc cc cc cc cc cc cc 00    .q?????????????.
>      f0: 41 53 35 31 31 34 00 00 00 00 00 00 41 57 53 09    AS5114......AWS?
>      # i2cget 0 0x40 0x01 b
>      Error: Could not set address to 0x40: Device or resource busy
>      # i2cget 0 0x40 0xff b
>      Error: Could not set address to 0x40: Device or resource busy
> 
> Do you know, why i2cdump is able to read the date, but i2cget is not?

You already have a kernel driver bound to address 0x40, so you aren't
supposed to access it from user-space. You bypassed this check with
option -f you passed to i2cdump, but you did not pass option -f to
i2cget, which is why the former succeeded while the latter failed.

So either pass -f to i2cget, or unload the kernel driver
(arm64_accton_as4224_cpld) before reading the value from user-space.
Whichever option is safer depends on what happens when the system runs
without that driver. In theory it's better to unload the driver,
however depending on how the driver is implemented and whether reading
these values has any side effect on the hardware side, forcing the read
may be fine.

-- 
Jean Delvare
SUSE L3 Support



[Index of Archives]     [Linux GPIO]     [Linux SPI]     [Linux Hardward Monitoring]     [LM Sensors]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux