cxgb_t3fw.c revision 241370
180709Sjake/*
280709Sjake * from: FreeBSD: src/sys/tools/fw_stub.awk,v 1.6 2007/03/02 11:42:53 flz
380709Sjake */
480709Sjake#include <sys/cdefs.h>
580709Sjake__FBSDID("$FreeBSD: head/sys/dev/cxgb/cxgb_t3fw.c 241370 2012-10-09 08:27:40Z kevlo $");
680709Sjake#include <sys/param.h>
780709Sjake#include <sys/errno.h>
880709Sjake#include <sys/kernel.h>
980709Sjake#include <sys/module.h>
1080709Sjake#include <sys/linker.h>
1180709Sjake#include <sys/firmware.h>
1280709Sjake#include <sys/systm.h>
1380709Sjake#include <cxgb_t3fw.h>
1481337Sobrien#include <t3b_protocol_sram.h>
1580709Sjake#include <t3b_tp_eeprom.h>
1680709Sjake#include <t3c_protocol_sram.h>
1781337Sobrien#include <t3c_tp_eeprom.h>
1880709Sjake
1980709Sjakestatic int
2080709Sjakecxgb_t3fw_modevent(module_t mod, int type, void *unused)
2180709Sjake{
2280709Sjake	const struct firmware *fp, *parent;
2380709Sjake	int error;
2480709Sjake	switch (type) {
2580709Sjake	case MOD_LOAD:
2680709Sjake
2780709Sjake		fp = firmware_register("cxgb_t3fw", t3fw,
2880709Sjake				       (size_t)t3fw_length,
29145153Smarius				       0, NULL);
30145153Smarius		if (fp == NULL)
31145153Smarius			goto fail_0;
32118239Speter		parent = fp;
33118239Speter		return (0);
3480709Sjake	fail_0:
3580709Sjake		return (ENXIO);
3682910Sjake	case MOD_UNLOAD:
3780709Sjake		error = firmware_unregister("cxgb_t3fw");
3891783Sjake		return (error);
3984186Sjake	}
4080709Sjake	return (EINVAL);
4180709Sjake}
4281381Sjake
4381381Sjakestatic moduledata_t cxgb_t3fw_mod = {
4480709Sjake        "cxgb_t3fw",
45166105Smarius        cxgb_t3fw_modevent,
4697001Sjake	NULL
47166105Smarius};
48166105SmariusDECLARE_MODULE(cxgb_t3fw, cxgb_t3fw_mod, SI_SUB_DRIVERS, SI_ORDER_FIRST);
49166105SmariusMODULE_VERSION(cxgb_t3fw, 1);
50166105SmariusMODULE_DEPEND(cxgb_t3fw, firmware, 1, 1, 1);
5180709Sjake
5280709Sjakestatic int
5389052Sjakecxgb_t3b_protocol_sram_modevent(module_t mod, int type, void *unused)
54166105Smarius{
5580709Sjake	const struct firmware *fp, *parent;
56163146Skmacy	int error;
57163965Skmacy	switch (type) {
58163146Skmacy	case MOD_LOAD:
59163146Skmacy
60166105Smarius		fp = firmware_register("cxgb_t3b_protocol_sram", t3b_protocol_sram,
6180709Sjake				       (size_t)t3b_protocol_sram_length,
6283756Sjake				       0, NULL);
6383756Sjake		if (fp == NULL)
6483366Sjulian			goto fail_0;
6591360Sjake		parent = fp;
6680709Sjake		return (0);
6791224Sjake	fail_0:
6891224Sjake		return (ENXIO);
69182768Smarius	case MOD_UNLOAD:
70182768Smarius		error = firmware_unregister("cxgb_t3b_protocol_sram");
71182768Smarius		return (error);
72182768Smarius	}
7381381Sjake	return (EINVAL);
74182768Smarius}
7591783Sjake
7681381Sjakestatic moduledata_t cxgb_t3b_protocol_sram_mod = {
7791336Sjake        "cxgb_t3b_protocol_sram",
7891336Sjake        cxgb_t3b_protocol_sram_modevent,
7991336Sjake	NULL
8080709Sjake};
81102040SjakeDECLARE_MODULE(cxgb_t3b_protocol_sram, cxgb_t3b_protocol_sram_mod, SI_SUB_DRIVERS, SI_ORDER_FIRST);
82102040SjakeMODULE_VERSION(cxgb_t3b_protocol_sram, 1);
83102040SjakeMODULE_DEPEND(cxgb_t3b_protocol_sram, firmware, 1, 1, 1);
84163146Skmacy
8580709Sjakestatic int
8691783Sjakecxgb_t3b_tp_eeprom_modevent(module_t mod, int type, void *unused)
8789052Sjake{
88166105Smarius	const struct firmware *fp, *parent;
89182730Smarius	int error;
90182730Smarius	switch (type) {
9191617Sjake	case MOD_LOAD:
92182730Smarius
9391617Sjake		fp = firmware_register("cxgb_t3b_tp_eeprom", t3b_tp_eeprom,
94166105Smarius				       (size_t)t3b_tp_eeprom_length,
95166105Smarius				       0, NULL);
96163152Skmacy		if (fp == NULL)
97163146Skmacy			goto fail_0;
9897001Sjake		parent = fp;
99166105Smarius		return (0);
10097001Sjake	fail_0:
10197001Sjake		return (ENXIO);
10297001Sjake	case MOD_UNLOAD:
10397001Sjake		error = firmware_unregister("cxgb_t3b_tp_eeprom");
104166105Smarius		return (error);
10597001Sjake	}
10697001Sjake	return (EINVAL);
10797001Sjake}
10882910Sjake
10993949Sjakestatic moduledata_t cxgb_t3b_tp_eeprom_mod = {
11093949Sjake        "cxgb_t3b_tp_eeprom",
11182910Sjake        cxgb_t3b_tp_eeprom_modevent,
11292199Sjake	NULL
11393503Sjake};
11493503SjakeDECLARE_MODULE(cxgb_t3b_tp_eeprom, cxgb_t3b_tp_eeprom_mod, SI_SUB_DRIVERS, SI_ORDER_FIRST);
11593503SjakeMODULE_VERSION(cxgb_t3b_tp_eeprom, 1);
11693503SjakeMODULE_DEPEND(cxgb_t3b_tp_eeprom, firmware, 1, 1, 1);
11793503Sjake
11893503Sjakestatic int
11993503Sjakecxgb_t3c_protocol_sram_modevent(module_t mod, int type, void *unused)
12082910Sjake{
121163146Skmacy	const struct firmware *fp, *parent;
122166105Smarius	int error;
12391224Sjake	switch (type) {
12480709Sjake	case MOD_LOAD:
12580709Sjake
12681614Sjake		fp = firmware_register("cxgb_t3c_protocol_sram", t3c_protocol_sram,
12780709Sjake				       (size_t)t3c_protocol_sram_length,
12888657Sjake				       0, NULL);
129100771Sjake		if (fp == NULL)
130100771Sjake			goto fail_0;
13180709Sjake		parent = fp;
13280709Sjake		return (0);
133102040Sjake	fail_0:
134102040Sjake		return (ENXIO);
135163146Skmacy	case MOD_UNLOAD:
136102040Sjake		error = firmware_unregister("cxgb_t3c_protocol_sram");
137166105Smarius		return (error);
138166105Smarius	}
139166105Smarius	return (EINVAL);
140163146Skmacy}
141163146Skmacy
142163146Skmacystatic moduledata_t cxgb_t3c_protocol_sram_mod = {
143163146Skmacy        "cxgb_t3c_protocol_sram",
144102040Sjake        cxgb_t3c_protocol_sram_modevent,
145163146Skmacy	NULL
146163146Skmacy};
147163146SkmacyDECLARE_MODULE(cxgb_t3c_protocol_sram, cxgb_t3c_protocol_sram_mod, SI_SUB_DRIVERS, SI_ORDER_FIRST);
148163146SkmacyMODULE_VERSION(cxgb_t3c_protocol_sram, 1);
149163146SkmacyMODULE_DEPEND(cxgb_t3c_protocol_sram, firmware, 1, 1, 1);
150163146Skmacy
151163146Skmacystatic int
152163146Skmacycxgb_t3c_tp_eeprom_modevent(module_t mod, int type, void *unused)
15384186Sjake{
15484186Sjake	const struct firmware *fp, *parent;
15587702Sjhb	int error;
15687702Sjhb	switch (type) {
15787702Sjhb	case MOD_LOAD:
15891337Sjake
15997265Sjake		fp = firmware_register("cxgb_t3c_tp_eeprom", t3c_tp_eeprom,
16097265Sjake				       (size_t)t3c_tp_eeprom_length,
16197265Sjake				       0, NULL);
162163146Skmacy		if (fp == NULL)
163163146Skmacy			goto fail_0;
164163146Skmacy		parent = fp;
165163146Skmacy		return (0);
166163146Skmacy	fail_0:
167163146Skmacy		return (ENXIO);
168163146Skmacy	case MOD_UNLOAD:
169163146Skmacy		error = firmware_unregister("cxgb_t3c_tp_eeprom");
170163146Skmacy		return (error);
171163146Skmacy	}
172163146Skmacy	return (EINVAL);
173163146Skmacy}
174163146Skmacy
175163146Skmacystatic moduledata_t cxgb_t3c_tp_eeprom_mod = {
176163146Skmacy        "cxgb_t3c_tp_eeprom",
177163146Skmacy        cxgb_t3c_tp_eeprom_modevent,
178163146Skmacy	NULL
179163146Skmacy};
180163146SkmacyDECLARE_MODULE(cxgb_t3c_tp_eeprom, cxgb_t3c_tp_eeprom_mod, SI_SUB_DRIVERS, SI_ORDER_FIRST);
181163146SkmacyMODULE_VERSION(cxgb_t3c_tp_eeprom, 1);
182163146SkmacyMODULE_DEPEND(cxgb_t3c_tp_eeprom, firmware, 1, 1, 1);
183163146Skmacy