xref: /freebsd/sys/dev/cxgb/cxgb_t3fw.c (revision db612abe8df3355d1eb23bb3b50fdd97bc21e979)
1 /*
2  * from: FreeBSD: src/sys/tools/fw_stub.awk,v 1.6 2007/03/02 11:42:53 flz
3  */
4 #include <sys/cdefs.h>
5 __FBSDID("$FreeBSD$");
6 #include <sys/param.h>
7 #include <sys/errno.h>
8 #include <sys/kernel.h>
9 #include <sys/module.h>
10 #include <sys/linker.h>
11 #include <sys/firmware.h>
12 #include <sys/systm.h>
13 #include <dev/cxgb/cxgb_t3fw.h>
14 #include <dev/cxgb/t3b_protocol_sram.h>
15 #include <dev/cxgb/t3b_tp_eeprom.h>
16 
17 static int
18 cxgb_t3fw_modevent(module_t mod, int type, void *unused)
19 {
20 	const struct firmware *fp, *parent;
21 	int error;
22 	switch (type) {
23 	case MOD_LOAD:
24 
25 		fp = firmware_register("cxgb_t3fw", t3fw,
26 				       (size_t)t3fw_length,
27 				       0, NULL);
28 		if (fp == NULL)
29 			goto fail_0;
30 		parent = fp;
31 		return (0);
32 	fail_0:
33 		return (ENXIO);
34 	case MOD_UNLOAD:
35 		error = firmware_unregister("cxgb_t3fw");
36 		return (error);
37 	}
38 	return (EINVAL);
39 }
40 
41 static moduledata_t cxgb_t3fw_mod = {
42         "cxgb_t3fw",
43         cxgb_t3fw_modevent,
44         0
45 };
46 DECLARE_MODULE(cxgb_t3fw, cxgb_t3fw_mod, SI_SUB_DRIVERS, SI_ORDER_FIRST);
47 MODULE_VERSION(cxgb_t3fw, 1);
48 MODULE_DEPEND(cxgb_t3fw, firmware, 1, 1, 1);
49 
50 static int
51 cxgb_t3b_protocol_sram_modevent(module_t mod, int type, void *unused)
52 {
53 	const struct firmware *fp, *parent;
54 	int error;
55 	switch (type) {
56 	case MOD_LOAD:
57 
58 		fp = firmware_register("cxgb_t3b_protocol_sram", t3b_protocol_sram,
59 				       (size_t)t3b_protocol_sram_length,
60 				       0, NULL);
61 		if (fp == NULL)
62 			goto fail_0;
63 		parent = fp;
64 		return (0);
65 	fail_0:
66 		return (ENXIO);
67 	case MOD_UNLOAD:
68 		error = firmware_unregister("cxgb_t3b_protocol_sram");
69 		return (error);
70 	}
71 	return (EINVAL);
72 }
73 
74 static moduledata_t cxgb_t3b_protocol_sram_mod = {
75         "cxgb_t3b_protocol_sram",
76         cxgb_t3b_protocol_sram_modevent,
77         0
78 };
79 DECLARE_MODULE(cxgb_t3b_protocol_sram, cxgb_t3b_protocol_sram_mod, SI_SUB_DRIVERS, SI_ORDER_FIRST);
80 MODULE_VERSION(cxgb_t3b_protocol_sram, 1);
81 MODULE_DEPEND(cxgb_t3b_protocol_sram, firmware, 1, 1, 1);
82 
83 
84 static int
85 cxgb_t3b_tp_eeprom_modevent(module_t mod, int type, void *unused)
86 {
87 	const struct firmware *fp, *parent;
88 	int error;
89 	switch (type) {
90 	case MOD_LOAD:
91 
92 		fp = firmware_register("cxgb_t3b_tp_eeprom", t3b_tp_eeprom,
93 				       (size_t)t3b_tp_eeprom_length,
94 				       0, NULL);
95 		if (fp == NULL)
96 			goto fail_0;
97 		parent = fp;
98 		return (0);
99 	fail_0:
100 		return (ENXIO);
101 	case MOD_UNLOAD:
102 		error = firmware_unregister("cxgb_t3b_tp_eeprom");
103 		return (error);
104 	}
105 	return (EINVAL);
106 }
107 
108 static moduledata_t cxgb_t3b_tp_eeprom_mod = {
109         "cxgb_t3b_tp_eeprom",
110         cxgb_t3b_tp_eeprom_modevent,
111         0
112 };
113 DECLARE_MODULE(cxgb_t3b_tp_eeprom, cxgb_t3b_tp_eeprom_mod, SI_SUB_DRIVERS, SI_ORDER_FIRST);
114 MODULE_VERSION(cxgb_t3b_tp_eeprom, 1);
115 MODULE_DEPEND(cxgb_t3b_tp_eeprom, firmware, 1, 1, 1);
116