xref: /freebsd/usr.sbin/fwget/pci/pci_network_qca (revision d33f5a0afa54be7f18775f6506f015c7f79a6a5f)
1dd8a74e7SBjoern A. Zeeb#-
2dd8a74e7SBjoern A. Zeeb# SPDX-License-Identifier: BSD-2-Clause
3dd8a74e7SBjoern A. Zeeb#
4dd8a74e7SBjoern A. Zeeb# Copyright 2023 Bjoern A. Zeeb
5dd8a74e7SBjoern A. Zeeb#
6dd8a74e7SBjoern A. Zeeb# Redistribution and use in source and binary forms, with or without
7dd8a74e7SBjoern A. Zeeb# modification, are permitted provided that the following conditions
8dd8a74e7SBjoern A. Zeeb# are met:
9dd8a74e7SBjoern A. Zeeb# 1. Redistributions of source code must retain the above copyright
10dd8a74e7SBjoern A. Zeeb#    notice, this list of conditions and the following disclaimer.
11dd8a74e7SBjoern A. Zeeb# 2. Redistributions in binary form must reproduce the above copyright
12dd8a74e7SBjoern A. Zeeb#    notice, this list of conditions and the following disclaimer in the
13dd8a74e7SBjoern A. Zeeb#    documentation and/or other materials provided with the distribution.
14dd8a74e7SBjoern A. Zeeb#
15dd8a74e7SBjoern A. Zeeb# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
16dd8a74e7SBjoern A. Zeeb# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17dd8a74e7SBjoern A. Zeeb# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18dd8a74e7SBjoern A. Zeeb# ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
19dd8a74e7SBjoern A. Zeeb# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20dd8a74e7SBjoern A. Zeeb# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
21dd8a74e7SBjoern A. Zeeb# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22dd8a74e7SBjoern A. Zeeb# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23dd8a74e7SBjoern A. Zeeb# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24dd8a74e7SBjoern A. Zeeb# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
25dd8a74e7SBjoern A. Zeeb# SUCH DAMAGE.
26dd8a74e7SBjoern A. Zeeb#
27dd8a74e7SBjoern A. Zeeb
28dd8a74e7SBjoern A. Zeeb# ath10k
29dd8a74e7SBjoern A. Zeebpci_network_qca_ath10k()
30dd8a74e7SBjoern A. Zeeb{
31dd8a74e7SBjoern A. Zeeb
32dd8a74e7SBjoern A. Zeeb        case "$1" in
33*d33f5a0aSBjoern A. Zeeb
34*d33f5a0aSBjoern A. Zeeb	# The case pattern table below is generated by a script also helping
35*d33f5a0aSBjoern A. Zeeb	# to generate the flavor/firmware Makefile definitions for ports.
36*d33f5a0aSBjoern A. Zeeb	# { sys/contrib/dev/athk/ath10k/zzz_fw_ports_fwget.sh }
37*d33f5a0aSBjoern A. Zeeb	### >>>
38*d33f5a0aSBjoern A. Zeeb
39*d33f5a0aSBjoern A. Zeeb	0x003c)	addpkg "wifi-firmware-ath10k-kmod-qca988x_hw20"; return 1 ;;
40*d33f5a0aSBjoern A. Zeeb	0x003e)	addpkg "wifi-firmware-ath10k-kmod-qca6174_hw21"
41*d33f5a0aSBjoern A. Zeeb		addpkg "wifi-firmware-ath10k-kmod-qca6174_hw30"
42*d33f5a0aSBjoern A. Zeeb		return 1 ;;
43*d33f5a0aSBjoern A. Zeeb	0x0040)	addpkg "wifi-firmware-ath10k-kmod-qca99x0_hw20"; return 1 ;;
44*d33f5a0aSBjoern A. Zeeb	0x0041)	addpkg "wifi-firmware-ath10k-kmod-qca6174_hw21"; return 1 ;;
45*d33f5a0aSBjoern A. Zeeb	0x0042)	addpkg "wifi-firmware-ath10k-kmod-qca6174_hw30"
46*d33f5a0aSBjoern A. Zeeb		addpkg "wifi-firmware-ath10k-kmod-qca9377_hw10"
47*d33f5a0aSBjoern A. Zeeb		return 1 ;;
48*d33f5a0aSBjoern A. Zeeb	0x0046)	addpkg "wifi-firmware-ath10k-kmod-qca9984_hw10"; return 1 ;;
49*d33f5a0aSBjoern A. Zeeb	0x0050)	addpkg "wifi-firmware-ath10k-kmod-qca9887_hw10"; return 1 ;;
50*d33f5a0aSBjoern A. Zeeb	0x0056)	addpkg "wifi-firmware-ath10k-kmod-qca9888_hw20"; return 1 ;;
51*d33f5a0aSBjoern A. Zeeb
52*d33f5a0aSBjoern A. Zeeb	### <<<
53dd8a74e7SBjoern A. Zeeb	esac
54dd8a74e7SBjoern A. Zeeb}
55dd8a74e7SBjoern A. Zeeb
56dd8a74e7SBjoern A. Zeeb# ath11k
57dd8a74e7SBjoern A. Zeebpci_network_qca_ath11k()
58dd8a74e7SBjoern A. Zeeb{
59dd8a74e7SBjoern A. Zeeb
60dd8a74e7SBjoern A. Zeeb        case "$1" in
61*d33f5a0aSBjoern A. Zeeb
62*d33f5a0aSBjoern A. Zeeb	# The case pattern table below is generated by a script also helping
63*d33f5a0aSBjoern A. Zeeb	# to generate the flavor/firmware Makefile definitions for ports.
64*d33f5a0aSBjoern A. Zeeb	# { sys/contrib/dev/athk/ath11k/zzz_fw_ports_fwget.sh }
65*d33f5a0aSBjoern A. Zeeb	### >>>
66*d33f5a0aSBjoern A. Zeeb
67*d33f5a0aSBjoern A. Zeeb	0x1101)	addpkg "wifi-firmware-ath11k-kmod-qca6390_hw20"; return 1 ;;
68*d33f5a0aSBjoern A. Zeeb	0x1103)	addpkg "wifi-firmware-ath11k-kmod-wcn6855_hw20"; return 1 ;;
69*d33f5a0aSBjoern A. Zeeb	0x1104)	addpkg "wifi-firmware-ath11k-kmod-qcn9074_hw10"; return 1 ;;
70*d33f5a0aSBjoern A. Zeeb
71*d33f5a0aSBjoern A. Zeeb	### <<<
72dd8a74e7SBjoern A. Zeeb	esac
73dd8a74e7SBjoern A. Zeeb}
74dd8a74e7SBjoern A. Zeeb
75dd8a74e7SBjoern A. Zeeb# ath12k
76dd8a74e7SBjoern A. Zeebpci_network_qca_ath12k()
77dd8a74e7SBjoern A. Zeeb{
78dd8a74e7SBjoern A. Zeeb
79dd8a74e7SBjoern A. Zeeb        case "$1" in
80*d33f5a0aSBjoern A. Zeeb
81*d33f5a0aSBjoern A. Zeeb	# The case pattern table below is generated by a script also helping
82*d33f5a0aSBjoern A. Zeeb	# to generate the flavor/firmware Makefile definitions for ports.
83*d33f5a0aSBjoern A. Zeeb	# { sys/contrib/dev/athk/ath12k/zzz_fw_ports_fwget.sh }
84*d33f5a0aSBjoern A. Zeeb	### >>>
85*d33f5a0aSBjoern A. Zeeb
86*d33f5a0aSBjoern A. Zeeb	0x1107)	addpkg "wifi-firmware-ath12k-kmod-wcn7850_hw20"; return 1 ;;
87*d33f5a0aSBjoern A. Zeeb
88*d33f5a0aSBjoern A. Zeeb	### <<<
89dd8a74e7SBjoern A. Zeeb	esac
90dd8a74e7SBjoern A. Zeeb}
91dd8a74e7SBjoern A. Zeeb
92dd8a74e7SBjoern A. Zeebpci_network_qca()
93dd8a74e7SBjoern A. Zeeb{
94dd8a74e7SBjoern A. Zeeb
95*d33f5a0aSBjoern A. Zeeb	for _drv in ath10k ath11k ath12k; do
96dd8a74e7SBjoern A. Zeeb		pci_network_qca_${_drv} "$1"
97dd8a74e7SBjoern A. Zeeb		case $? in
98dd8a74e7SBjoern A. Zeeb		1)	break ;;
99dd8a74e7SBjoern A. Zeeb		esac
100dd8a74e7SBjoern A. Zeeb	done
101dd8a74e7SBjoern A. Zeeb}
102