]> git.ipfire.org Git - thirdparty/ipxe.git/commitdiff
[usb] Add USB_ROM() and USB_ID() macros
authorMichael Brown <mcb30@ipxe.org>
Wed, 11 Feb 2026 15:19:13 +0000 (15:19 +0000)
committerMichael Brown <mcb30@ipxe.org>
Wed, 11 Feb 2026 16:07:12 +0000 (16:07 +0000)
Add USB_ROM() and USB_ID() macros following the pattern for PCI_ROM()
and PCI_ID(), to allow for the possibility of including USB network
devices within the "all-drivers" build of iPXE.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 files changed:
src/drivers/net/acm.c
src/drivers/net/axge.c
src/drivers/net/dm96xx.c
src/drivers/net/ecm.c
src/drivers/net/iphone.c
src/drivers/net/lan78xx.c
src/drivers/net/ncm.c
src/drivers/net/smsc75xx.c
src/drivers/net/smsc95xx.c
src/drivers/usb/usbblk.c
src/drivers/usb/usbhub.c
src/drivers/usb/usbkbd.c
src/include/ipxe/usb.h
src/interface/efi/efi_usb.c

index 0cb2713b28a0a1f2e113e51af7dff7e680060245..fd5f31a8df744e18c22d69bffdd912e892f78376 100644 (file)
@@ -491,11 +491,7 @@ static void acm_remove ( struct usb_function *func ) {
 
 /** USB CDC-ACM device IDs */
 static struct usb_device_id cdc_acm_ids[] = {
-       {
-               .name = "cdc-acm",
-               .vendor = USB_ANY_ID,
-               .product = USB_ANY_ID,
-       },
+       USB_ROM ( 0xffff, 0xffff, "cdc-acm", "USB CDC-ACM NIC", 0 ),
 };
 
 /** USB CDC-ACM driver */
@@ -511,11 +507,7 @@ struct usb_driver cdc_acm_driver __usb_driver = {
 
 /** USB RF-RNDIS device IDs */
 static struct usb_device_id rf_rndis_ids[] = {
-       {
-               .name = "rf-rndis",
-               .vendor = USB_ANY_ID,
-               .product = USB_ANY_ID,
-       },
+       USB_ROM ( 0xffff, 0xffff, "rf-rndis", "USB RNDIS NIC", 0 ),
 };
 
 /** USB RF-RNDIS driver */
index 922c94d91191c564dece3d3465683d35cd6e8ac1..507f8a9c722d70c20df40e241767c0e57d30d52f 100644 (file)
@@ -779,36 +779,12 @@ static void axge_remove ( struct usb_function *func ) {
 
 /** AXGE device IDs */
 static struct usb_device_id axge_ids[] = {
-       {
-               .name = "ax88179",
-               .vendor = 0x0b95,
-               .product = 0x1790,
-       },
-       {
-               .name = "ax88178a",
-               .vendor = 0x0b95,
-               .product = 0x178a,
-       },
-       {
-               .name = "dub1312",
-               .vendor = 0x2001,
-               .product = 0x4a00,
-       },
-       {
-               .name = "axge-sitecom",
-               .vendor = 0x0df6,
-               .product = 0x0072,
-       },
-       {
-               .name = "axge-samsung",
-               .vendor = 0x04e8,
-               .product = 0xa100,
-       },
-       {
-               .name = "onelinkdock",
-               .vendor = 0x17ef,
-               .product = 0x304b,
-       },
+       USB_ROM ( 0x0b95, 0x1790, "ax88179", "AX88179", 0 ),
+       USB_ROM ( 0x0b95, 0x178a, "ax88178a", "AX88178A", 0 ),
+       USB_ROM ( 0x2001, 0x4a00, "dub1312", "DUB-1312", 0 ),
+       USB_ROM ( 0x0df6, 0x0072, "axge-sitecom", "AX88179 (Sitecom)", 0 ),
+       USB_ROM ( 0x04e8, 0xa100, "axge-samsung", "AX88179 (Samsung)", 0 ),
+       USB_ROM ( 0x17ef, 0x304b, "onelinkdock", "ThinkPad OneLink dock", 0 ),
 };
 
 /** AXGE driver */
index 193980a40b5e6b49bda1e523a26ef7b7fe9ce002..7cff63861e803b219e02d640404dc96f1ca85354 100644 (file)
@@ -591,76 +591,20 @@ static void dm96xx_remove ( struct usb_function *func ) {
 
 /** DM96xx device IDs */
 static struct usb_device_id dm96xx_ids[] = {
-       {
-               .name = "dm9601-corega",
-               .vendor = 0x07aa,
-               .product = 0x9601,
-       },
-       {
-               .name = "dm9601",
-               .vendor = 0x0a46,
-               .product = 0x9601,
-       },
-       {
-               .name = "zt6688",
-               .vendor = 0x0a46,
-               .product = 0x6688,
-       },
-       {
-               .name = "st268",
-               .vendor = 0x0a46,
-               .product = 0x0268,
-       },
-       {
-               .name = "adm8515",
-               .vendor = 0x0a46,
-               .product = 0x8515,
-       },
-       {
-               .name = "dm9601-hirose",
-               .vendor = 0x0a47,
-               .product = 0x9601,
-       },
-       {
-               .name = "dm9601-8101",
-               .vendor = 0x0fe6,
-               .product = 0x8101,
-       },
-       {
-               .name = "dm9601-9700",
-               .vendor = 0x0fe6,
-               .product = 0x9700,
-       },
-       {
-               .name = "dm9000e",
-               .vendor = 0x0a46,
-               .product = 0x9000,
-       },
-       {
-               .name = "dm9620",
-               .vendor = 0x0a46,
-               .product = 0x9620,
-       },
-       {
-               .name = "dm9621A",
-               .vendor = 0x0a46,
-               .product = 0x9621,
-       },
-       {
-               .name = "dm9622",
-               .vendor = 0x0a46,
-               .product = 0x9622,
-       },
-       {
-               .name = "dm962Oa",
-               .vendor = 0x0a46,
-               .product = 0x0269,
-       },
-       {
-               .name = "dm9621a",
-               .vendor = 0x0a46,
-               .product = 0x1269,
-       },
+       USB_ROM ( 0x07aa, 0x9601, "dm9601-corega", "Corega FEther", 0 ),
+       USB_ROM ( 0x0a46, 0x9601, "dm9601", "DM9601", 0 ),
+       USB_ROM ( 0x0a46, 0x6688, "zt6688", "ZT6688", 0 ),
+       USB_ROM ( 0x0a46, 0x0268, "st268", "ST268", 0 ),
+       USB_ROM ( 0x0a46, 0x8515, "adm8515", "ADMtek ADM8515", 0 ),
+       USB_ROM ( 0x0a47, 0x9601, "dm9601-hirose", "DM9601 (Hirose)", 0 ),
+       USB_ROM ( 0x0fe6, 0x8101, "dm9601-8101", "DM9601 (ICS8101)", 0 ),
+       USB_ROM ( 0x0fe6, 0x9700, "dm9601-9700", "DM9601 (ICS9700)", 0 ),
+       USB_ROM ( 0x0a46, 0x9000, "dm9000e", "DM9000E", 0 ),
+       USB_ROM ( 0x0a46, 0x9620, "dm9620", "DM9620", 0 ),
+       USB_ROM ( 0x0a46, 0x9621, "dm9621A", "DM9621A", 0 ),
+       USB_ROM ( 0x0a46, 0x9622, "dm9622", "DM9622", 0 ),
+       USB_ROM ( 0x0a46, 0x0269, "dm962Oa", "DM9620A", 0 ),
+       USB_ROM ( 0x0a46, 0x1269, "dm9621a", "DM9621A", 0 ),
 };
 
 /** Davicom DM96xx driver */
index 9a13b68a5775000559a25917e386313ee4b421ae..63f1d86c62aba272398023f17218229619f70c3d 100644 (file)
@@ -519,11 +519,7 @@ static void ecm_remove ( struct usb_function *func ) {
 
 /** CDC-ECM device IDs */
 static struct usb_device_id ecm_ids[] = {
-       {
-               .name = "cdc-ecm",
-               .vendor = USB_ANY_ID,
-               .product = USB_ANY_ID,
-       },
+       USB_ROM ( 0xffff, 0xffff, "cdc-ecm", "USB CDC-ECM NIC", 0 ),
 };
 
 /** CDC-ECM driver */
index b580175607fbbe0447ea12eb3ed43b5404a3d300..108a5a8361ce38d2268044c17760c1599903901d 100644 (file)
@@ -1172,11 +1172,7 @@ static void imux_remove ( struct usb_function *func ) {
 
 /** USB multiplexer device IDs */
 static struct usb_device_id imux_ids[] = {
-       {
-               .name = "imux",
-               .vendor = 0x05ac,
-               .product = USB_ANY_ID,
-       },
+       USB_ID ( 0x05ac, 0xffff, "imux", "iPhone (multiplexer)", 0 ),
 };
 
 /** USB multiplexer driver */
@@ -2226,11 +2222,7 @@ static void iphone_remove ( struct usb_function *func ) {
 
 /** iPhone device IDs */
 static struct usb_device_id iphone_ids[] = {
-       {
-               .name = "iphone",
-               .vendor = 0x05ac,
-               .product = USB_ANY_ID,
-       },
+       USB_ROM ( 0x05ac, 0xffff, "iphone", "iPhone", 0 ),
 };
 
 /** iPhone driver */
index 32333e787f568b5b3eaef415a2086f33c9d88b59..3b369628e933bb690a5e214ddae00b79859c2031 100644 (file)
@@ -387,16 +387,8 @@ static void lan78xx_remove ( struct usb_function *func ) {
 
 /** LAN78xx device IDs */
 static struct usb_device_id lan78xx_ids[] = {
-       {
-               .name = "lan7800",
-               .vendor = 0x0424,
-               .product = 0x7800,
-       },
-       {
-               .name = "lan7850",
-               .vendor = 0x0424,
-               .product = 0x7850,
-       },
+       USB_ROM ( 0x0424, 0x7800, "lan7800", "SMSC LAN7800", 0 ),
+       USB_ROM ( 0x0424, 0x7850, "lan7850", "SMSC LAN7850", 0 ),
 };
 
 /** LAN78xx driver */
index 48f9856b07bfe8383b7a55404570d89c5e7badc2..d2e0acfab16c6dd9367ef68532bea64365170dc7 100644 (file)
@@ -664,11 +664,7 @@ static void ncm_remove ( struct usb_function *func ) {
 
 /** CDC-NCM device IDs */
 static struct usb_device_id ncm_ids[] = {
-       {
-               .name = "cdc-ncm",
-               .vendor = USB_ANY_ID,
-               .product = USB_ANY_ID,
-       },
+       USB_ROM ( 0xffff, 0xffff, "cdc-ncm", "USB CDC-NCM NIC", 0 ),
 };
 
 /** CDC-NCM driver */
index 8ae65e42ab66a92f4ae3a9b61addc8f4da6cd5e0..fb6ed44d88f24507eaeee18c63c06c55acd77a81 100644 (file)
@@ -555,16 +555,8 @@ static void smsc75xx_remove ( struct usb_function *func ) {
 
 /** SMSC75xx device IDs */
 static struct usb_device_id smsc75xx_ids[] = {
-       {
-               .name = "smsc7500",
-               .vendor = 0x0424,
-               .product = 0x7500,
-       },
-       {
-               .name = "smsc7505",
-               .vendor = 0x0424,
-               .product = 0x7505,
-       },
+       USB_ROM ( 0x0424, 0x7500, "smsc7500", "SMSC LAN7500", 0 ),
+       USB_ROM ( 0x0424, 0x7505, "smsc7505", "SMSC LAN7505", 0 ),
 };
 
 /** SMSC LAN75xx driver */
index 16086b33e219cd47e3a7e05393a260b4737f7c1c..f4fa60118b12503124a0a692a351dcf8d8bc3c72 100644 (file)
@@ -644,96 +644,24 @@ static void smsc95xx_remove ( struct usb_function *func ) {
 
 /** SMSC95xx device IDs */
 static struct usb_device_id smsc95xx_ids[] = {
-       {
-               .name = "smsc9500",
-               .vendor = 0x0424,
-               .product = 0x9500,
-       },
-       {
-               .name = "smsc9505",
-               .vendor = 0x0424,
-               .product = 0x9505,
-       },
-       {
-               .name = "smsc9500a",
-               .vendor = 0x0424,
-               .product = 0x9e00,
-       },
-       {
-               .name = "smsc9505a",
-               .vendor = 0x0424,
-               .product = 0x9e01,
-       },
-       {
-               .name = "smsc9514",
-               .vendor = 0x0424,
-               .product = 0xec00,
-       },
-       {
-               .name = "smsc9500-s",
-               .vendor = 0x0424,
-               .product = 0x9900,
-       },
-       {
-               .name = "smsc9505-s",
-               .vendor = 0x0424,
-               .product = 0x9901,
-       },
-       {
-               .name = "smsc9500a-s",
-               .vendor = 0x0424,
-               .product = 0x9902,
-       },
-       {
-               .name = "smsc9505a-s",
-               .vendor = 0x0424,
-               .product = 0x9903,
-       },
-       {
-               .name = "smsc9514-s",
-               .vendor = 0x0424,
-               .product = 0x9904,
-       },
-       {
-               .name = "smsc9500a-h",
-               .vendor = 0x0424,
-               .product = 0x9905,
-       },
-       {
-               .name = "smsc9505a-h",
-               .vendor = 0x0424,
-               .product = 0x9906,
-       },
-       {
-               .name = "smsc9500-2",
-               .vendor = 0x0424,
-               .product = 0x9907,
-       },
-       {
-               .name = "smsc9500a-2",
-               .vendor = 0x0424,
-               .product = 0x9908,
-       },
-       {
-               .name = "smsc9514-2",
-               .vendor = 0x0424,
-               .product = 0x9909,
-       },
-       {
-               .name = "smsc9530",
-               .vendor = 0x0424,
-               .product = 0x9530,
-       },
-       {
-               .name = "smsc9730",
-               .vendor = 0x0424,
-               .product = 0x9730,
-       },
-       {
-               .name = "smsc89530",
-               .vendor = 0x0424,
-               .product = 0x9e08,
-       },
+       USB_ROM ( 0x0424, 0x9500, "smsc9500", "SMSC LAN9500", 0 ),
+       USB_ROM ( 0x0424, 0x9505, "smsc9505", "SMSC LAN9505", 0 ),
+       USB_ROM ( 0x0424, 0x9e00, "smsc9500a", "SMSC LAN9500A", 0 ),
+       USB_ROM ( 0x0424, 0x9e01, "smsc9505a", "SMSC LAN9505A", 0 ),
+       USB_ROM ( 0x0424, 0xec00, "smsc9514", "SMSC LAN9512/9514", 0 ),
+       USB_ROM ( 0x0424, 0x9900, "smsc9500-s", "SMSC LAN9500-S", 0 ),
+       USB_ROM ( 0x0424, 0x9901, "smsc9505-s", "SMSC LAN9505-S", 0 ),
+       USB_ROM ( 0x0424, 0x9902, "smsc9500a-s", "SMSC LAN9500A-S", 0 ),
+       USB_ROM ( 0x0424, 0x9903, "smsc9505a-s", "SMSC LAN9505A-S", 0 ),
+       USB_ROM ( 0x0424, 0x9904, "smsc9514-s", "SMSC LAN9512/9514-S", 0 ),
+       USB_ROM ( 0x0424, 0x9905, "smsc9500a-h", "SMSC LAN9500A-H", 0 ),
+       USB_ROM ( 0x0424, 0x9906, "smsc9505a-h", "SMSC LAN9505A-H", 0 ),
+       USB_ROM ( 0x0424, 0x9907, "smsc9500-2", "SMSC LAN9500-2", 0 ),
+       USB_ROM ( 0x0424, 0x9908, "smsc9500a-2", "SMSC LAN9500A-2", 0 ),
+       USB_ROM ( 0x0424, 0x9909, "smsc9514-2", "SMSC LAN9512/9514-2", 0 ),
+       USB_ROM ( 0x0424, 0x9530, "smsc9530", "SMSC LAN9530", 0 ),
+       USB_ROM ( 0x0424, 0x9730, "smsc9730", "SMSC LAN9730", 0 ),
+       USB_ROM ( 0x0424, 0x9e08, "smsc89530", "SMSC LAN89530", 0 ),
 };
 
 /** SMSC LAN95xx driver */
index b42c70645908d749434fba920b5e4324ae1f9e11..700678dd1b837a5ac798e596d7714e6a8a782734 100644 (file)
@@ -895,11 +895,7 @@ static void usbblk_remove ( struct usb_function *func ) {
 
 /** Mass storage class device IDs */
 static struct usb_device_id usbblk_ids[] = {
-       {
-               .name = "usbblk",
-               .vendor = USB_ANY_ID,
-               .product = USB_ANY_ID,
-       },
+       USB_ID ( 0xffff, 0xffff, "usbblk", "USB block device", 0 ),
 };
 
 /** Mass storage driver */
index 1d7b03e7726bc127541d9848f06f4e1d7f95ab12..78e8d7af9b40002021ae521c1cdfc319b86d2a97 100644 (file)
@@ -529,17 +529,9 @@ static void hub_remove ( struct usb_function *func ) {
 
 /** USB hub device IDs */
 static struct usb_device_id hub_ids[] = {
-       {
-               .name = "avocent-hub",
-               .vendor = 0x0624,
-               .product = 0x0248,
-               .driver_data = USB_HUB_SLOW_START,
-       },
-       {
-               .name = "hub",
-               .vendor = USB_ANY_ID,
-               .product = USB_ANY_ID,
-       },
+       USB_ID ( 0x0624, 0x0248, "avocent-hub", "Avocent USB hub",
+                USB_HUB_SLOW_START ),
+       USB_ID ( 0xffff, 0xffff, "hub", "USB hub", 0 ),
 };
 
 /** USB hub driver */
index cf881ad1a656edd0c329bf565b65eab58879c2b0..dd1b7ed21daa159fbc42540eb8569fba35a9a52f 100644 (file)
@@ -518,11 +518,7 @@ static void usbkbd_remove ( struct usb_function *func ) {
 
 /** USB keyboard device IDs */
 static struct usb_device_id usbkbd_ids[] = {
-       {
-               .name = "kbd",
-               .vendor = USB_ANY_ID,
-               .product = USB_ANY_ID,
-       },
+       USB_ID ( 0xffff, 0xffff, "kbd", "USB keyboard", 0 ),
 };
 
 /** USB keyboard driver */
index 9b8c7ae0022c3c243236068c161b26530ce7090e..72f44e2203ac3efa34090bd6690e31b4d867b0c2 100644 (file)
@@ -1369,6 +1369,18 @@ struct usb_device_id {
        unsigned long driver_data;
 };
 
+/* Define a USB device ID */
+#define USB_ID( _vendor, _product, _name, _description, _data ) {      \
+       .vendor = _vendor,                                              \
+       .product = _product,                                            \
+       .name = _name,                                                  \
+       .driver_data = _data                                            \
+}
+
+/* Define a USB device ID with a corresponding build rule */
+#define USB_ROM( _vendor, _product, _name, _description, _data )       \
+       USB_ID ( _vendor, _product, _name, _description, _data )
+
 /** Match-anything ID */
 #define USB_ANY_ID 0xffff
 
index a3b153c884d2a46945dbb347276a458ed2bd30c2..789d0f5715d75a4e8045c8321d35aade92f40193 100644 (file)
@@ -1349,11 +1349,7 @@ static void efi_usb_remove ( struct usb_function *func ) {
 
 /** USB I/O protocol device IDs */
 static struct usb_device_id efi_usb_ids[] = {
-       {
-               .name = "usbio",
-               .vendor = USB_ANY_ID,
-               .product = USB_ANY_ID,
-       },
+       USB_ID ( 0xffff, 0xffff, "usbio", "USB passthrough", 0 ),
 };
 
 /** USB I/O protocol driver */