1176572Skmacy/* 2176572Skmacy * from: FreeBSD: src/sys/tools/fw_stub.awk,v 1.6 2007/03/02 11:42:53 flz 3176572Skmacy */ 4176572Skmacy#include <sys/cdefs.h> 5176572Skmacy__FBSDID("$FreeBSD$"); 6176572Skmacy#include <sys/param.h> 7176572Skmacy#include <sys/errno.h> 8176572Skmacy#include <sys/kernel.h> 9176572Skmacy#include <sys/module.h> 10176572Skmacy#include <sys/linker.h> 11176572Skmacy#include <sys/firmware.h> 12176572Skmacy#include <sys/systm.h> 13183292Skmacy#include <cxgb_t3fw.h> 14183292Skmacy#include <t3b_protocol_sram.h> 15183292Skmacy#include <t3b_tp_eeprom.h> 16189643Sgnn#include <t3c_protocol_sram.h> 17189643Sgnn#include <t3c_tp_eeprom.h> 18176572Skmacy 19176572Skmacystatic int 20176572Skmacycxgb_t3fw_modevent(module_t mod, int type, void *unused) 21176572Skmacy{ 22176572Skmacy const struct firmware *fp, *parent; 23176572Skmacy int error; 24176572Skmacy switch (type) { 25176572Skmacy case MOD_LOAD: 26176572Skmacy 27176572Skmacy fp = firmware_register("cxgb_t3fw", t3fw, 28176572Skmacy (size_t)t3fw_length, 29176572Skmacy 0, NULL); 30176572Skmacy if (fp == NULL) 31176572Skmacy goto fail_0; 32176572Skmacy parent = fp; 33176572Skmacy return (0); 34176572Skmacy fail_0: 35176572Skmacy return (ENXIO); 36176572Skmacy case MOD_UNLOAD: 37176572Skmacy error = firmware_unregister("cxgb_t3fw"); 38176572Skmacy return (error); 39176572Skmacy } 40176572Skmacy return (EINVAL); 41176572Skmacy} 42176572Skmacy 43176572Skmacystatic moduledata_t cxgb_t3fw_mod = { 44176572Skmacy "cxgb_t3fw", 45176572Skmacy cxgb_t3fw_modevent, 46241394Skevlo 0 47176572Skmacy}; 48176572SkmacyDECLARE_MODULE(cxgb_t3fw, cxgb_t3fw_mod, SI_SUB_DRIVERS, SI_ORDER_FIRST); 49176572SkmacyMODULE_VERSION(cxgb_t3fw, 1); 50176572SkmacyMODULE_DEPEND(cxgb_t3fw, firmware, 1, 1, 1); 51176572Skmacy 52176613Skmacystatic int 53176613Skmacycxgb_t3b_protocol_sram_modevent(module_t mod, int type, void *unused) 54176613Skmacy{ 55176613Skmacy const struct firmware *fp, *parent; 56176613Skmacy int error; 57176613Skmacy switch (type) { 58176613Skmacy case MOD_LOAD: 59176613Skmacy 60176613Skmacy fp = firmware_register("cxgb_t3b_protocol_sram", t3b_protocol_sram, 61176613Skmacy (size_t)t3b_protocol_sram_length, 62176613Skmacy 0, NULL); 63176613Skmacy if (fp == NULL) 64176613Skmacy goto fail_0; 65176613Skmacy parent = fp; 66176613Skmacy return (0); 67176613Skmacy fail_0: 68176613Skmacy return (ENXIO); 69176613Skmacy case MOD_UNLOAD: 70176613Skmacy error = firmware_unregister("cxgb_t3b_protocol_sram"); 71176613Skmacy return (error); 72176613Skmacy } 73176613Skmacy return (EINVAL); 74176613Skmacy} 75176613Skmacy 76176613Skmacystatic moduledata_t cxgb_t3b_protocol_sram_mod = { 77176613Skmacy "cxgb_t3b_protocol_sram", 78176613Skmacy cxgb_t3b_protocol_sram_modevent, 79241394Skevlo 0 80176613Skmacy}; 81176613SkmacyDECLARE_MODULE(cxgb_t3b_protocol_sram, cxgb_t3b_protocol_sram_mod, SI_SUB_DRIVERS, SI_ORDER_FIRST); 82176613SkmacyMODULE_VERSION(cxgb_t3b_protocol_sram, 1); 83176613SkmacyMODULE_DEPEND(cxgb_t3b_protocol_sram, firmware, 1, 1, 1); 84176613Skmacy 85176613Skmacystatic int 86176613Skmacycxgb_t3b_tp_eeprom_modevent(module_t mod, int type, void *unused) 87176613Skmacy{ 88176613Skmacy const struct firmware *fp, *parent; 89176613Skmacy int error; 90176613Skmacy switch (type) { 91176613Skmacy case MOD_LOAD: 92176613Skmacy 93176613Skmacy fp = firmware_register("cxgb_t3b_tp_eeprom", t3b_tp_eeprom, 94176613Skmacy (size_t)t3b_tp_eeprom_length, 95176613Skmacy 0, NULL); 96176613Skmacy if (fp == NULL) 97176613Skmacy goto fail_0; 98176613Skmacy parent = fp; 99176613Skmacy return (0); 100176613Skmacy fail_0: 101176613Skmacy return (ENXIO); 102176613Skmacy case MOD_UNLOAD: 103176613Skmacy error = firmware_unregister("cxgb_t3b_tp_eeprom"); 104176613Skmacy return (error); 105176613Skmacy } 106176613Skmacy return (EINVAL); 107176613Skmacy} 108176613Skmacy 109176613Skmacystatic moduledata_t cxgb_t3b_tp_eeprom_mod = { 110176613Skmacy "cxgb_t3b_tp_eeprom", 111176613Skmacy cxgb_t3b_tp_eeprom_modevent, 112241394Skevlo 0 113176613Skmacy}; 114176613SkmacyDECLARE_MODULE(cxgb_t3b_tp_eeprom, cxgb_t3b_tp_eeprom_mod, SI_SUB_DRIVERS, SI_ORDER_FIRST); 115176613SkmacyMODULE_VERSION(cxgb_t3b_tp_eeprom, 1); 116176613SkmacyMODULE_DEPEND(cxgb_t3b_tp_eeprom, firmware, 1, 1, 1); 117189643Sgnn 118189643Sgnnstatic int 119189643Sgnncxgb_t3c_protocol_sram_modevent(module_t mod, int type, void *unused) 120189643Sgnn{ 121189643Sgnn const struct firmware *fp, *parent; 122189643Sgnn int error; 123189643Sgnn switch (type) { 124189643Sgnn case MOD_LOAD: 125189643Sgnn 126189643Sgnn fp = firmware_register("cxgb_t3c_protocol_sram", t3c_protocol_sram, 127189643Sgnn (size_t)t3c_protocol_sram_length, 128189643Sgnn 0, NULL); 129189643Sgnn if (fp == NULL) 130189643Sgnn goto fail_0; 131189643Sgnn parent = fp; 132189643Sgnn return (0); 133189643Sgnn fail_0: 134189643Sgnn return (ENXIO); 135189643Sgnn case MOD_UNLOAD: 136189643Sgnn error = firmware_unregister("cxgb_t3c_protocol_sram"); 137189643Sgnn return (error); 138189643Sgnn } 139189643Sgnn return (EINVAL); 140189643Sgnn} 141189643Sgnn 142189643Sgnnstatic moduledata_t cxgb_t3c_protocol_sram_mod = { 143189643Sgnn "cxgb_t3c_protocol_sram", 144189643Sgnn cxgb_t3c_protocol_sram_modevent, 145241394Skevlo 0 146189643Sgnn}; 147189643SgnnDECLARE_MODULE(cxgb_t3c_protocol_sram, cxgb_t3c_protocol_sram_mod, SI_SUB_DRIVERS, SI_ORDER_FIRST); 148189643SgnnMODULE_VERSION(cxgb_t3c_protocol_sram, 1); 149189643SgnnMODULE_DEPEND(cxgb_t3c_protocol_sram, firmware, 1, 1, 1); 150189643Sgnn 151189643Sgnnstatic int 152189643Sgnncxgb_t3c_tp_eeprom_modevent(module_t mod, int type, void *unused) 153189643Sgnn{ 154189643Sgnn const struct firmware *fp, *parent; 155189643Sgnn int error; 156189643Sgnn switch (type) { 157189643Sgnn case MOD_LOAD: 158189643Sgnn 159189643Sgnn fp = firmware_register("cxgb_t3c_tp_eeprom", t3c_tp_eeprom, 160189643Sgnn (size_t)t3c_tp_eeprom_length, 161189643Sgnn 0, NULL); 162189643Sgnn if (fp == NULL) 163189643Sgnn goto fail_0; 164189643Sgnn parent = fp; 165189643Sgnn return (0); 166189643Sgnn fail_0: 167189643Sgnn return (ENXIO); 168189643Sgnn case MOD_UNLOAD: 169189643Sgnn error = firmware_unregister("cxgb_t3c_tp_eeprom"); 170189643Sgnn return (error); 171189643Sgnn } 172189643Sgnn return (EINVAL); 173189643Sgnn} 174189643Sgnn 175189643Sgnnstatic moduledata_t cxgb_t3c_tp_eeprom_mod = { 176189643Sgnn "cxgb_t3c_tp_eeprom", 177189643Sgnn cxgb_t3c_tp_eeprom_modevent, 178241394Skevlo 0 179189643Sgnn}; 180189643SgnnDECLARE_MODULE(cxgb_t3c_tp_eeprom, cxgb_t3c_tp_eeprom_mod, SI_SUB_DRIVERS, SI_ORDER_FIRST); 181189643SgnnMODULE_VERSION(cxgb_t3c_tp_eeprom, 1); 182189643SgnnMODULE_DEPEND(cxgb_t3c_tp_eeprom, firmware, 1, 1, 1); 183