Skip to content

BCM firmware update of SuperMicro failing  #2814

@groundnuty

Description

@groundnuty

I'm trying to apply a BMC patch to SuperMicro.

model: https://www.supermicro.com/en/products/motherboard/x12dpi-nt6
firmware: https://www.supermicro.com/en/support/resources/downloadcenter/firmware/MBD-X12DPi-NT6/BMC

I've patched manually via BCM GUI the other server (same model), and it worked. After that I felt courageous enough to try with metal3 :-) but I'm getting some JSON error:

baremetal-operator-controller-manager-674ccbf6f8-fw9gb manager 2025-11-29T18:23:39.137Z	INFO	provisioner.ironic	current provision state	{"host": "baremetal-inventory~hdd-n1", "lastError": "Node be8dec95-000d-4cf8-826d-48ad55679a2a failed step {'args': {'settings': [{'component': 'bmc', 'url': 'http://172.20.110.2:30080/firmware/28-11-25/X12DPi-NT6_2.3_AS1.05.25_SAA1.2.0-p6/BMC_X12AST2600-ROT-5201MS_20250418_01.05.25_STDsp/BMC_X12AST2600-ROT-5201MS_20250418_01.05.25_STDsp.bin'}]}, 'interface': 'firmware', 'step': 'update', 'abortable': False, 'priority': 0}: HTTP POST https://172.20.1.21/redfish/v1/UpdateService/Actions/UpdateService.SimpleUpdate returned code 400. Base.v1_10_3.GeneralError: The request body submitted was malformed JSON and could not be parsed by the receiving service. Extended information: [{'MessageId': 'Base.1.10.MalformedJSON', 'Severity': 'Critical', 'Resolution': 'Ensure that the request body is valid JSON and resubmit the request.', 'Message': 'The request body submitted was malformed JSON and could not be parsed by the receiving service.', 'MessageArgs': [''], 'RelatedProperties': ['']}]", "current": "manageable", "target": ""}

I triple checked the URL to ensure it is valid. My HostFirmwareComponents:

apiVersion: metal3.io/v1alpha1
kind: HostFirmwareComponents
metadata:
  annotations:
    argocd.argoproj.io/tracking-id: argocd-apps_bare-metal-inventory:metal3.io/HostFirmwareComponents:baremetal-inventory/hdd-n1
  creationTimestamp: "2025-11-29T17:21:25Z"
  generation: 3
  name: hdd-n1
  namespace: baremetal-inventory
  ownerReferences:
  - apiVersion: metal3.io/v1alpha1
    kind: BareMetalHost
    name: hdd-n1
    uid: a8d5220c-1853-4cbf-98c5-ac8a4a76bdf9
  resourceVersion: "5943457"
  uid: 36d60802-ec75-4a67-ab58-fbdf4de05782
spec:
  updates:
  - component: bmc
    url: http://172.20.110.2:30080/firmware/28-11-25/X12DPi-NT6_2.3_AS1.05.25_SAA1.2.0-p6/BMC_X12AST2600-ROT-5201MS_20250418_01.05.25_STDsp/BMC_X12AST2600-ROT-5201MS_20250418_01.05.25_STDsp.bin
status:
  components:
  - component: bios
    currentVersion: "1.4"
    initialVersion: "1.4"
  - component: bmc
    currentVersion: 01.01.24
    initialVersion: 01.01.24
  - component: nic:1
    currentVersion: 9.00 0x8000D2AB
    initialVersion: 9.00 0x8000D2AB
  conditions:
  - lastTransitionTime: "2025-11-29T17:21:25Z"
    message: ""
    observedGeneration: 3
    reason: OK
    status: "True"
    type: Valid
  - lastTransitionTime: "2025-11-29T18:01:27Z"
    message: ""
    observedGeneration: 3
    reason: OK
    status: "False"
    type: ChangeDetected
  lastUpdated: "2025-11-29T18:01:27Z"
  updates:
  - component: bmc
    url: http://172.20.110.2:30080/firmware/28-11-25/X12DPi-NT6_2.3_AS1.05.25_SAA1.2.0-p6/BMC_X12AST2600-ROT-5201MS_20250418_01.05.25_STDsp/BMC_X12AST2600-ROT-5201MS_20250418_01.05.25_STDsp.bin

My question: where can I look, what debug should I turn on to see more detailed errors? I would like to see what URL is sent to BMC so I can reproduce the problem using curl.

Metadata

Metadata

Assignees

No one assigned

    Labels

    needs-triageIndicates an issue lacks a `triage/foo` label and requires one.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions