[PATCH 00/11] hw/arm/aspeed: catalina: add eeproms images

Patrick Williams posted 11 patches 1 month, 3 weeks ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20251217-catalina-eeproms-v1-0-dc7b276efd57@stwcx.xyz
Maintainers: "Cédric Le Goater" <clg@kaod.org>, Peter Maydell <peter.maydell@linaro.org>, Steven Lee <steven_lee@aspeedtech.com>, Troy Lee <leetroy@gmail.com>, Jamin Lin <jamin_lin@aspeedtech.com>, Andrew Jeffery <andrew@codeconstruct.com.au>, Joel Stanley <joel@jms.id.au>
hw/arm/aspeed_ast2600_catalina.c | 473 +++++++++++++++++++++++++++++++++++++--
1 file changed, 457 insertions(+), 16 deletions(-)
[PATCH 00/11] hw/arm/aspeed: catalina: add eeproms images
Posted by Patrick Williams 1 month, 3 weeks ago
Since Catalina is a server, made up of a number of FRUs, there are
a number of EEPROMs that would contain IPMI-format FRU data.  On
OpenBMC, these EEPROMs are parsed by `entity-manager` to determine
which devices are physically present in the server (and which variants
of those devices).

Add EEPROM images for every FRU in the Catalina server.  There is a
utility `frugen` which can take a JSON representation of the IPMI
fields and generate a binary image from that.  Use this to create
sanitized EEPROM images for every FRU and add the rom-init calls to
the appropriate locations in the Catalina model.  I left the JSON
source as comments along-side each EEPROM image so they can be updated
or recreated as necessary.

Tested by loading the latest version of OpenBMC's Catalina image and
confirming the FRUs are detected appropriately by entity-manager.

```
root@catalina:~# busctl tree xyz.openbmc_project.EntityManager | grep "board/[^/]*$"
          |- /xyz/openbmc_project/inventory/system/board/BMC_Storage_Module
          |- /xyz/openbmc_project/inventory/system/board/Catalina_FIO
          |- /xyz/openbmc_project/inventory/system/board/Catalina_HDD_Carrier
          |- /xyz/openbmc_project/inventory/system/board/Catalina_HDD_NVMe
          |- /xyz/openbmc_project/inventory/system/board/Catalina_OSFP_Carrier
          |- /xyz/openbmc_project/inventory/system/board/Catalina_PDB
          |- /xyz/openbmc_project/inventory/system/board/Catalina_SCM
          |- /xyz/openbmc_project/inventory/system/board/NVIDIA_Cable_Cartridge_0
          |- /xyz/openbmc_project/inventory/system/board/NVIDIA_Cable_Cartridge_2
          |- /xyz/openbmc_project/inventory/system/board/NVIDIA_GB200_0
          |- /xyz/openbmc_project/inventory/system/board/NVIDIA_GB200_1
          |- /xyz/openbmc_project/inventory/system/board/NVIDIA_GB200_IO_Board_29
          |- /xyz/openbmc_project/inventory/system/board/NVIDIA_GB200_IO_Board_41
          |- /xyz/openbmc_project/inventory/system/board/NVIDIA_HMC
          |- /xyz/openbmc_project/inventory/system/board/OCP_CX7_NIC_10
          `- /xyz/openbmc_project/inventory/system/board/OCP_CX7_NIC_15
```

This result matches the expected results when running the image on a
physical Catalina device.

Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
---
Patrick Williams (11):
      hw/arm/aspeed: catalina: add BSM FRU EEPROM
      hw/arm/aspeed: catalina: add DC-SCM FRU EEPROM
      hw/arm/aspeed: catalina: add PDB FRU EEPROM
      hw/arm/aspeed: catalina: add OSFP FRU EEPROM
      hw/arm/aspeed: catalina: add FIO FRU EEPROM
      hw/arm/aspeed: catalina: add HDD FRU EEPROM
      hw/arm/aspeed: catalina: add GB200 FRU EEPROM
      hw/arm/aspeed: catalina: add GB200-IO FRU EEPROM
      hw/arm/aspeed: catalina: add HMC FRU EEPROM
      hw/arm/aspeed: catalina: add NIC FRU EEPROM
      hw/arm/aspeed: catalina: add Cable Cartridge FRU EEPROM

 hw/arm/aspeed_ast2600_catalina.c | 473 +++++++++++++++++++++++++++++++++++++--
 1 file changed, 457 insertions(+), 16 deletions(-)
---
base-commit: 7154e4df40468012fccb6687ecd2b288c56a4a2d
change-id: 20251217-catalina-eeproms-255d80036991

Best regards,
-- 
Patrick Williams
Re: [PATCH 00/11] hw/arm/aspeed: catalina: add eeproms images
Posted by Cédric Le Goater 1 month, 3 weeks ago
On 12/17/25 20:11, Patrick Williams wrote:
> Since Catalina is a server, made up of a number of FRUs, there are
> a number of EEPROMs that would contain IPMI-format FRU data.  On
> OpenBMC, these EEPROMs are parsed by `entity-manager` to determine
> which devices are physically present in the server (and which variants
> of those devices).
> 
> Add EEPROM images for every FRU in the Catalina server.  There is a
> utility `frugen` which can take a JSON representation of the IPMI
> fields and generate a binary image from that.  Use this to create
> sanitized EEPROM images for every FRU and add the rom-init calls to
> the appropriate locations in the Catalina model.  I left the JSON
> source as comments along-side each EEPROM image so they can be updated
> or recreated as necessary.
> 
> Tested by loading the latest version of OpenBMC's Catalina image and
> confirming the FRUs are detected appropriately by entity-manager.
> 
> ```
> root@catalina:~# busctl tree xyz.openbmc_project.EntityManager | grep "board/[^/]*$"
>            |- /xyz/openbmc_project/inventory/system/board/BMC_Storage_Module
>            |- /xyz/openbmc_project/inventory/system/board/Catalina_FIO
>            |- /xyz/openbmc_project/inventory/system/board/Catalina_HDD_Carrier
>            |- /xyz/openbmc_project/inventory/system/board/Catalina_HDD_NVMe
>            |- /xyz/openbmc_project/inventory/system/board/Catalina_OSFP_Carrier
>            |- /xyz/openbmc_project/inventory/system/board/Catalina_PDB
>            |- /xyz/openbmc_project/inventory/system/board/Catalina_SCM
>            |- /xyz/openbmc_project/inventory/system/board/NVIDIA_Cable_Cartridge_0
>            |- /xyz/openbmc_project/inventory/system/board/NVIDIA_Cable_Cartridge_2
>            |- /xyz/openbmc_project/inventory/system/board/NVIDIA_GB200_0
>            |- /xyz/openbmc_project/inventory/system/board/NVIDIA_GB200_1
>            |- /xyz/openbmc_project/inventory/system/board/NVIDIA_GB200_IO_Board_29
>            |- /xyz/openbmc_project/inventory/system/board/NVIDIA_GB200_IO_Board_41
>            |- /xyz/openbmc_project/inventory/system/board/NVIDIA_HMC
>            |- /xyz/openbmc_project/inventory/system/board/OCP_CX7_NIC_10
>            `- /xyz/openbmc_project/inventory/system/board/OCP_CX7_NIC_15
> ```
> 
> This result matches the expected results when running the image on a
> physical Catalina device.
> 
> Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
> ---
> Patrick Williams (11):
>        hw/arm/aspeed: catalina: add BSM FRU EEPROM
>        hw/arm/aspeed: catalina: add DC-SCM FRU EEPROM
>        hw/arm/aspeed: catalina: add PDB FRU EEPROM
>        hw/arm/aspeed: catalina: add OSFP FRU EEPROM
>        hw/arm/aspeed: catalina: add FIO FRU EEPROM
>        hw/arm/aspeed: catalina: add HDD FRU EEPROM
>        hw/arm/aspeed: catalina: add GB200 FRU EEPROM
>        hw/arm/aspeed: catalina: add GB200-IO FRU EEPROM
>        hw/arm/aspeed: catalina: add HMC FRU EEPROM
>        hw/arm/aspeed: catalina: add NIC FRU EEPROM
>        hw/arm/aspeed: catalina: add Cable Cartridge FRU EEPROM
> 
>   hw/arm/aspeed_ast2600_catalina.c | 473 +++++++++++++++++++++++++++++++++++++--
>   1 file changed, 457 insertions(+), 16 deletions(-)
> ---
> base-commit: 7154e4df40468012fccb6687ecd2b288c56a4a2d
> change-id: 20251217-catalina-eeproms-255d80036991
> 
> Best regards,

Reviewed-by: Cédric Le Goater <clg@redhat.com>

Thanks,

C.

Re: [PATCH 00/11] hw/arm/aspeed: catalina: add eeproms images
Posted by Cédric Le Goater 1 month, 3 weeks ago
On 12/17/25 20:11, Patrick Williams wrote:
> Since Catalina is a server, made up of a number of FRUs, there are
> a number of EEPROMs that would contain IPMI-format FRU data.  On
> OpenBMC, these EEPROMs are parsed by `entity-manager` to determine
> which devices are physically present in the server (and which variants
> of those devices).
> 
> Add EEPROM images for every FRU in the Catalina server.  There is a
> utility `frugen` which can take a JSON representation of the IPMI
> fields and generate a binary image from that.  Use this to create
> sanitized EEPROM images for every FRU and add the rom-init calls to
> the appropriate locations in the Catalina model.  I left the JSON
> source as comments along-side each EEPROM image so they can be updated
> or recreated as necessary.
> 
> Tested by loading the latest version of OpenBMC's Catalina image and
> confirming the FRUs are detected appropriately by entity-manager.
> 
> ```
> root@catalina:~# busctl tree xyz.openbmc_project.EntityManager | grep "board/[^/]*$"
>            |- /xyz/openbmc_project/inventory/system/board/BMC_Storage_Module
>            |- /xyz/openbmc_project/inventory/system/board/Catalina_FIO
>            |- /xyz/openbmc_project/inventory/system/board/Catalina_HDD_Carrier
>            |- /xyz/openbmc_project/inventory/system/board/Catalina_HDD_NVMe
>            |- /xyz/openbmc_project/inventory/system/board/Catalina_OSFP_Carrier
>            |- /xyz/openbmc_project/inventory/system/board/Catalina_PDB
>            |- /xyz/openbmc_project/inventory/system/board/Catalina_SCM
>            |- /xyz/openbmc_project/inventory/system/board/NVIDIA_Cable_Cartridge_0
>            |- /xyz/openbmc_project/inventory/system/board/NVIDIA_Cable_Cartridge_2
>            |- /xyz/openbmc_project/inventory/system/board/NVIDIA_GB200_0
>            |- /xyz/openbmc_project/inventory/system/board/NVIDIA_GB200_1
>            |- /xyz/openbmc_project/inventory/system/board/NVIDIA_GB200_IO_Board_29
>            |- /xyz/openbmc_project/inventory/system/board/NVIDIA_GB200_IO_Board_41
>            |- /xyz/openbmc_project/inventory/system/board/NVIDIA_HMC
>            |- /xyz/openbmc_project/inventory/system/board/OCP_CX7_NIC_10
>            `- /xyz/openbmc_project/inventory/system/board/OCP_CX7_NIC_15
> ```
> 
> This result matches the expected results when running the image on a
> physical Catalina device.
> 
> Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
> ---
> Patrick Williams (11):
>        hw/arm/aspeed: catalina: add BSM FRU EEPROM
>        hw/arm/aspeed: catalina: add DC-SCM FRU EEPROM
>        hw/arm/aspeed: catalina: add PDB FRU EEPROM
>        hw/arm/aspeed: catalina: add OSFP FRU EEPROM
>        hw/arm/aspeed: catalina: add FIO FRU EEPROM
>        hw/arm/aspeed: catalina: add HDD FRU EEPROM
>        hw/arm/aspeed: catalina: add GB200 FRU EEPROM
>        hw/arm/aspeed: catalina: add GB200-IO FRU EEPROM
>        hw/arm/aspeed: catalina: add HMC FRU EEPROM
>        hw/arm/aspeed: catalina: add NIC FRU EEPROM
>        hw/arm/aspeed: catalina: add Cable Cartridge FRU EEPROM
> 
>   hw/arm/aspeed_ast2600_catalina.c | 473 +++++++++++++++++++++++++++++++++++++--
>   1 file changed, 457 insertions(+), 16 deletions(-)
> ---
> base-commit: 7154e4df40468012fccb6687ecd2b288c56a4a2d
> change-id: 20251217-catalina-eeproms-255d80036991
> 
> Best regards,

Applied to aspeed-next.

Thanks,

C.