Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 7 Jan 2019 04:58:10 +0000 (UTC)
From:      Andriy Voskoboinyk <avos@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org
Subject:   svn commit: r342835 - in stable/12: share/man/man4 sys/contrib/dev/rtwn sys/dev/rtwn/pci sys/dev/rtwn/rtl8188e sys/dev/rtwn/rtl8188e/pci sys/dev/rtwn/rtl8188e/usb sys/modules/rtwn_pci sys/modules/r...
Message-ID:  <201901070458.x074wAnt053789@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: avos
Date: Mon Jan  7 04:58:10 2019
New Revision: 342835
URL: https://svnweb.freebsd.org/changeset/base/342835

Log:
  MFC r342682:
  rtwn_pci(4): add support for RTL8188EE chipset.
  
  Initially based on https://reviews.freebsd.org/D15692;
  later deduplicated and improved a bit (Tx reports, IQ calibration support).
  
  Submitted by:	Farhan Khan <khanzf@gmail.com>
  Relnotes:	yes
  Differential Revision:	https://reviews.freebsd.org/D15692

Added:
  stable/12/sys/contrib/dev/rtwn/rtwn-rtl8188eefw.fw.uu
     - copied unchanged from r342682, head/sys/contrib/dev/rtwn/rtwn-rtl8188eefw.fw.uu
  stable/12/sys/dev/rtwn/rtl8188e/pci/
     - copied from r342682, head/sys/dev/rtwn/rtl8188e/pci/
  stable/12/sys/modules/rtwnfw/rtwnrtl8188ee/
     - copied from r342682, head/sys/modules/rtwnfw/rtwnrtl8188ee/
Modified:
  stable/12/share/man/man4/rtwn.4
  stable/12/share/man/man4/rtwn_pci.4
  stable/12/sys/dev/rtwn/pci/rtwn_pci_attach.h
  stable/12/sys/dev/rtwn/rtl8188e/r88e_reg.h
  stable/12/sys/dev/rtwn/rtl8188e/r88e_rom_image.h
  stable/12/sys/dev/rtwn/rtl8188e/usb/r88eu_attach.c
  stable/12/sys/modules/rtwn_pci/Makefile
  stable/12/sys/modules/rtwnfw/Makefile
Directory Properties:
  stable/12/   (props changed)

Modified: stable/12/share/man/man4/rtwn.4
==============================================================================
--- stable/12/share/man/man4/rtwn.4	Mon Jan  7 04:41:50 2019	(r342834)
+++ stable/12/share/man/man4/rtwn.4	Mon Jan  7 04:58:10 2019	(r342835)
@@ -93,6 +93,7 @@ The driver (if not compiled with
 ) may use following firmware files, which are loaded
 when an interface is brought up:
 .Bl -tag -width Ds -offset indent -compact
+.It Pa /boot/kernel/rtwn-rtl8188eefw.ko
 .It Pa /boot/kernel/rtwn-rtl8188eufw.ko
 .It Pa /boot/kernel/rtwn-rtl8192cfwE_B.ko
 .It Pa /boot/kernel/rtwn-rtl8192cfwE.ko

Modified: stable/12/share/man/man4/rtwn_pci.4
==============================================================================
--- stable/12/share/man/man4/rtwn_pci.4	Mon Jan  7 04:41:50 2019	(r342834)
+++ stable/12/share/man/man4/rtwn_pci.4	Mon Jan  7 04:58:10 2019	(r342835)
@@ -48,11 +48,11 @@ kernel configuration file:
 The
 .Nm
 driver supports PCIe wireless network devices based on the Realtek
-RTL8188CE chipset.
+RTL8188CE/RTL8188EE chipsets.
 .Pp
-The RTL8188CE is a highly integrated 802.11n adapter that combines a MAC,
-a 1T1R capable baseband and an RF in a single chip.
-It operates in the 2GHz spectrum only.
+Both RTL8188CE and RTL8188EE are highly integrated 802.11n adapters
+that combines a MAC, a 1T1R capable baseband and an RF in a single chip.
+They are operate in the 2GHz spectrum only.
 .Sh SEE ALSO
 .Xr pci 4 ,
 .Xr rtwn 4 ,

Copied: stable/12/sys/contrib/dev/rtwn/rtwn-rtl8188eefw.fw.uu (from r342682, head/sys/contrib/dev/rtwn/rtwn-rtl8188eefw.fw.uu)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ stable/12/sys/contrib/dev/rtwn/rtwn-rtl8188eefw.fw.uu	Mon Jan  7 04:58:10 2019	(r342835, copy of r342682, head/sys/contrib/dev/rtwn/rtwn-rtl8188eefw.fw.uu)
@@ -0,0 +1,506 @@
+begin 644 rtwn-rtl8188eefw.fw
+MX8@0``@````0)2%6L"L``*($```````````````````"134`````````````
+M````````P58`````````````````````````````````````````````````
+M````````````H<T```````#A_```````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+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
++Y#3[]8/@_R(`,@@`
+`
+end
+begin 644 rtwn-rtl8188eefw.fw
+MX8@0``@````0)2%6L"L``*($```````````````````"134`````````````
+M````````P58`````````````````````````````````````````````````
+M````````````H<T```````#A_```````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+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
++Y#3[]8/@_R(`,@@`
+`
+end

Modified: stable/12/sys/dev/rtwn/pci/rtwn_pci_attach.h
==============================================================================
--- stable/12/sys/dev/rtwn/pci/rtwn_pci_attach.h	Mon Jan  7 04:41:50 2019	(r342834)
+++ stable/12/sys/dev/rtwn/pci/rtwn_pci_attach.h	Mon Jan  7 04:58:10 2019	(r342835)
@@ -17,9 +17,11 @@
  */
 
 void	r92ce_attach(struct rtwn_pci_softc *);
+void	r88ee_attach(struct rtwn_pci_softc *);
 
 enum {
 	RTWN_CHIP_RTL8192CE,
+	RTWN_CHIP_RTL8188EE,
 	RTWN_CHIP_MAX_PCI
 };
 
@@ -32,13 +34,15 @@ struct rtwn_pci_ident {
 
 static const struct rtwn_pci_ident rtwn_pci_ident_table[] = {
 	{ 0x10ec, 0x8176, "Realtek RTL8188CE", RTWN_CHIP_RTL8192CE },
+	{ 0x10ec, 0x8179, "Realtek RTL8188EE", RTWN_CHIP_RTL8188EE },
 	{ 0, 0, NULL, RTWN_CHIP_MAX_PCI }
 };
 
 typedef void	(*chip_pci_attach)(struct rtwn_pci_softc *);
 
 static const chip_pci_attach rtwn_chip_pci_attach[RTWN_CHIP_MAX_PCI] = {
-	[RTWN_CHIP_RTL8192CE] = r92ce_attach
+	[RTWN_CHIP_RTL8192CE] = r92ce_attach,
+	[RTWN_CHIP_RTL8188EE] = r88ee_attach
 };
 
 static __inline void

Modified: stable/12/sys/dev/rtwn/rtl8188e/r88e_reg.h
==============================================================================
--- stable/12/sys/dev/rtwn/rtl8188e/r88e_reg.h	Mon Jan  7 04:41:50 2019	(r342834)
+++ stable/12/sys/dev/rtwn/rtl8188e/r88e_reg.h	Mon Jan  7 04:58:10 2019	(r342835)
@@ -45,16 +45,49 @@
 
 
 /* Bits for R88E_HIMR. */
-#define R88E_HIMR_CPWM			0x00000100
-#define R88E_HIMR_CPWM2			0x00000200
-#define R88E_HIMR_TBDER			0x04000000
-#define R88E_HIMR_PSTIMEOUT		0x20000000
+#define R88E_HIMR_ROK		0x00000001	/* receive DMA OK */
+#define R88E_HIMR_RDU		0x00000002	/* Rx descriptor unavailable */
+#define R88E_HIMR_VODOK		0x00000004	/* AC_VO DMA OK */
+#define R88E_HIMR_VIDOK		0x00000008	/* AC_VI DMA OK */
+#define R88E_HIMR_BEDOK		0x00000010	/* AC_BE DMA OK */
+#define R88E_HIMR_BKDOK		0x00000020	/* AC_BK DMA OK */
+#define R88E_HIMR_MGNTDOK	0x00000040	/* management queue DMA OK */
+#define R88E_HIMR_HIGHDOK	0x00000080	/* high queue DMA OK */
+#define R88E_HIMR_CPWM		0x00000100	/* CPU power mode intr 1 */
+#define R88E_HIMR_CPWM2		0x00000200	/* CPU power mode intr 2 */
+#define R88E_HIMR_C2HCMD	0x00000400	/* C2H command interrupt */
+#define R88E_HIMR_HISR		0x00000800	/* (HISR & HIMR) != 0 */
+#define R88E_HIMR_ATIMEND	0x00001000	/* ATIM window end interrupt */
+#define R88E_HIMR_HSISR		0x00008000	/* (HSIMR & HSISR) != 0 */
+#define R88E_HIMR_BCNDERR	0x00010000	/* beacon queue DMA error */
+#define R88E_HIMR_BCNINT	0x00100000	/* beacon DMA interrupt 0 */
+#define R88E_HIMR_TSF32		0x01000000	/* TSF 32 bit interrupt */
+#define R88E_HIMR_TBDOK		0x02000000	/* beacon transmit OK */
+#define R88E_HIMR_TBDER		0x04000000	/* beacon transmit error */
+#define R88E_HIMR_GTIMER3	0x08000000	/* GTIMER3 interrupt */
+#define R88E_HIMR_GTIMER4	0x10000000	/* GTIMER4 interrupt */
+#define R88E_HIMR_PSTIMEOUT	0x20000000	/* powersave timeout */
+#define R88E_HIMR_TXRPT		0x40000000	/* Tx report interrupt */
 
 /* Bits for R88E_HIMRE.*/
-#define R88E_HIMRE_RXFOVW		0x00000100
-#define R88E_HIMRE_TXFOVW		0x00000200
-#define R88E_HIMRE_RXERR		0x00000400
-#define R88E_HIMRE_TXERR		0x00000800
+#define R88E_HIMRE_RXFOVW	0x00000100	/* receive FIFO overflow */
+#define R88E_HIMRE_TXFOVW	0x00000200	/* transmit FIFO overflow */
+#define R88E_HIMRE_RXERR	0x00000400	/* receive error */
+#define R88E_HIMRE_TXERR	0x00000800	/* transmit error */
+#define R88E_HIMRE_BCNDOK1	0x00004000	/* beacon queue DMA OK (1) */
+#define R88E_HIMRE_BCNDOK2	0x00008000	/* beacon queue DMA OK (2) */
+#define R88E_HIMRE_BCNDOK3	0x00010000	/* beacon queue DMA OK (3) */
+#define R88E_HIMRE_BCNDOK4	0x00020000	/* beacon queue DMA OK (4) */
+#define R88E_HIMRE_BCNDOK5	0x00040000	/* beacon queue DMA OK (5) */
+#define R88E_HIMRE_BCNDOK6	0x00080000	/* beacon queue DMA OK (6) */
+#define R88E_HIMRE_BCNDOK7	0x00100000	/* beacon queue DMA OK (7) */
+#define R88E_HIMRE_BCNDMAINT1	0x00200000	/* beacon DMA interrupt 1 */
+#define R88E_HIMRE_BCNDMAINT2	0x00400000	/* beacon DMA interrupt 2 */
+#define R88E_HIMRE_BCNDMAINT3	0x00800000	/* beacon DMA interrupt 3 */
+#define R88E_HIMRE_BCNDMAINT4	0x01000000	/* beacon DMA interrupt 4 */
+#define R88E_HIMRE_BCNDMAINT5	0x02000000	/* beacon DMA interrupt 5 */
+#define R88E_HIMRE_BCNDMAINT6	0x04000000	/* beacon DMA interrupt 6 */
+#define R88E_HIMRE_BCNDMAINT7	0x08000000	/* beacon DMA interrupt 7 */
 
 /* Bits for R88E_TX_RPT_CTRL. */
 #define R88E_TX_RPT1_ENA		0x01

Modified: stable/12/sys/dev/rtwn/rtl8188e/r88e_rom_image.h
==============================================================================
--- stable/12/sys/dev/rtwn/rtl8188e/r88e_rom_image.h	Mon Jan  7 04:41:50 2019	(r342834)
+++ stable/12/sys/dev/rtwn/rtl8188e/r88e_rom_image.h	Mon Jan  7 04:58:10 2019	(r342835)
@@ -44,11 +44,24 @@ struct r88e_rom {
 	uint8_t		reserved4[3];
 	uint8_t		rf_ant_opt;
 	uint8_t		reserved5[6];
-	uint16_t	vid;
-	uint16_t	pid;
-	uint8_t		usb_opt;
-	uint8_t		reserved6[2];
-	uint8_t		macaddr[IEEE80211_ADDR_LEN];
+
+	union {
+		struct {
+			uint16_t	vid;
+			uint16_t	pid;
+			uint8_t		usb_opt;
+			uint8_t		reserved6[2];
+			uint8_t		macaddr[IEEE80211_ADDR_LEN];
+		} __packed usb;
+
+		struct {
+			uint8_t		macaddr[IEEE80211_ADDR_LEN];
+			uint16_t	vid;
+			uint16_t	pid;
+			uint8_t		reserved6[3];
+		} __packed pci;
+	} __packed diff_d0;
+
 	uint8_t		reserved7[2];
 	uint8_t		string[33];	/* "realtek 802.11n NIC" */
 	uint8_t		reserved8[256];

Modified: stable/12/sys/dev/rtwn/rtl8188e/usb/r88eu_attach.c
==============================================================================
--- stable/12/sys/dev/rtwn/rtl8188e/usb/r88eu_attach.c	Mon Jan  7 04:41:50 2019	(r342834)
+++ stable/12/sys/dev/rtwn/rtl8188e/usb/r88eu_attach.c	Mon Jan  7 04:58:10 2019	(r342835)
@@ -71,7 +71,7 @@ r88eu_set_macaddr(struct rtwn_softc *sc, uint8_t *buf)
 {
 	struct r88e_rom *rom = (struct r88e_rom *)buf;
 
-	IEEE80211_ADDR_COPY(sc->sc_ic.ic_macaddr, rom->macaddr);
+	IEEE80211_ADDR_COPY(sc->sc_ic.ic_macaddr, rom->diff_d0.usb.macaddr);
 }
 
 static void

Modified: stable/12/sys/modules/rtwn_pci/Makefile
==============================================================================
--- stable/12/sys/modules/rtwn_pci/Makefile	Mon Jan  7 04:41:50 2019	(r342834)
+++ stable/12/sys/modules/rtwn_pci/Makefile	Mon Jan  7 04:58:10 2019	(r342835)
@@ -17,6 +17,10 @@ SRCS	+= r92ce_attach.c r92ce_calib.c r92ce_fw.c r92ce_
 	   r92ce_rx.c r92ce_tx.c \
 	   r92ce.h r92ce_priv.h r92ce_reg.h r92ce_rx_desc.h r92ce_tx_desc.h
 
+.PATH: ${SRCTOP}/sys/dev/rtwn/rtl8188e/pci
+SRCS    += r88ee_attach.c r88ee_init.c r88ee_rx.c \
+	   r88ee.h r88ee_reg.h
+
 opt_rtwn.h:
 	@echo "#define RTWN_DEBUG 1" > ${.TARGET}
 .if ${MK_SOURCELESS_UCODE} == "no"

Modified: stable/12/sys/modules/rtwnfw/Makefile
==============================================================================
--- stable/12/sys/modules/rtwnfw/Makefile	Mon Jan  7 04:41:50 2019	(r342834)
+++ stable/12/sys/modules/rtwnfw/Makefile	Mon Jan  7 04:58:10 2019	(r342835)
@@ -1,6 +1,6 @@
 # $FreeBSD$
 
 SUBDIR=	rtwnrtl8188eu rtwnrtl8192cT rtwnrtl8192cU rtwnrtl8192eu rtwnrtl8812au \
-	rtwnrtl8821au rtwnrtl8192cE rtwnrtl8192cEB
+	rtwnrtl8821au rtwnrtl8192cE rtwnrtl8192cEB rtwnrtl8188ee
 
 .include <bsd.subdir.mk>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201901070458.x074wAnt053789>