Skip to content

hw/at24c : not support 1 byte-address with eeprom size less than 256 byte

Host environment

  • Operating system: Ubuntu 20.04.5 LTS
  • OS/kernel version: 5.4.0-117
  • Architecture: ARM
  • QEMU flavor: qemu-system-arm
  • QEMU version: 7.2.0
  • QEMU command line:
    ./qemu-system-arm -machine montblanc-bmc -drive file=~/flash-montblanc,format=raw,if=mtd -nographic

Description of problem

I created the new platform base on aspeed/fuji, that uses the virtual eeprom (at24c), some eeprom used 24c02, which size 256 bytes. but when using /hw/at24c.c, the result will not same the real device.

Steps to reproduce

  1. create a machine with EEPROM size less then or equal 256 bytes
  2. start the qemu
  3. use i2cget/i2cset/i2cdump to write and display eeprom data

Additional information

I fixed and validated, refer https://gitlab.com/ssinprem/qemu/-/tree/at24c-1-byte-address-mode

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information