On 05/03/26 6:38 PM, Mattijs Korpershoek wrote:
Hi Siddharth,
Thank you for the patch.
On Thu, Mar 05, 2026 at 16:08, Siddharth Vadapalli <[email protected]> wrote:
The subclass_code member of the pci_ep_header structure is a 1-byte
field. The macro PCI_CLASS_MEMORY_RAM is a concetation of baseclass_code
and subclass_code as follows:
PCI_BASE_CLASS_MEMORY: 0x05
Subclass Code for RAM: 0x00
PCI_CLASS_MEMORY_RAM: 0x0500
Hence, instead of extracting it via an implicity type conversion from int
to u8 which throws a warning, explicitly mask the bits to extract the
What's the exact warning string? With which compiler version?
u-boot/common/spl/spl_dfu.c: In function ‘dfu_over_pcie’:
u-boot/include/pci_ids.h:48:41: warning: unsigned conversion from ‘int’
to ‘u8’ {aka ‘unsigned char’} changes value from ‘1280’ to ‘0’ [-Woverflow]
48 | #define PCI_CLASS_MEMORY_RAM 0x0500
| ^~~~~~
u-boot/common/spl/spl_dfu.c:67:29: note: in expansion of macro
‘PCI_CLASS_MEMORY_RAM’
67 | hdr.subclass_code = PCI_CLASS_MEMORY_RAM;
| ^~~~~~~~~~~~~~~~~~~~
Is there an example defconfig that I can use to reproduce this?
CONFIG_SPL_PCI_DFU needs to be enabled for the warning to be displayed
and will be seen in the context of PCIe Boot.
Regards,
Siddharth.