Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 16 Apr 2016 07:33:42 +0000 (UTC)
From:      Glen Barber <gjb@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r298104 - in projects/release-pkg/sys: dev/isp dev/random x86/include x86/x86
Message-ID:  <201604160733.u3G7XgK3077564@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: gjb
Date: Sat Apr 16 07:33:42 2016
New Revision: 298104
URL: https://svnweb.freebsd.org/changeset/base/298104

Log:
  MFH
  
  This is the final merge from ^/head before merging this branch
  back to head.  It's time.
  
  Sponsored by:	The FreeBSD Foundation

Modified:
  projects/release-pkg/sys/dev/isp/isp.c
  projects/release-pkg/sys/dev/random/ivy.c
  projects/release-pkg/sys/dev/random/nehemiah.c
  projects/release-pkg/sys/x86/include/specialreg.h
  projects/release-pkg/sys/x86/x86/identcpu.c
Directory Properties:
  projects/release-pkg/   (props changed)

Modified: projects/release-pkg/sys/dev/isp/isp.c
==============================================================================
--- projects/release-pkg/sys/dev/isp/isp.c	Sat Apr 16 06:36:56 2016	(r298103)
+++ projects/release-pkg/sys/dev/isp/isp.c	Sat Apr 16 07:33:42 2016	(r298104)
@@ -3465,19 +3465,14 @@ abort:
  *
  * Use the GID_FT command to get all Port IDs for FC4 SCSI devices it knows.
  *
- * For 2100-23XX cards, we can use the SNS mailbox command to pass simple
- * name server commands to the switch management server via the QLogic f/w.
+ * For 2100-23XX cards, we use the SNS mailbox command to pass simple name
+ * server commands to the switch management server via the QLogic f/w.
  *
- * For the 24XX card, we have to use CT-Pass through run via the Execute IOCB
- * mailbox command.
+ * For the 24XX and above card, we use CT Pass-through IOCB.
  */
-#define	GIDLEN	(ISP_FC_SCRLEN - (3 * QENTRY_LEN))
+#define	GIDLEN	ISP_FC_SCRLEN
 #define	NGENT	((GIDLEN - 16) >> 2)
 
-#define	XTXOFF	(ISP_FC_SCRLEN - (3 * QENTRY_LEN))	/* CT request */
-#define	CTXOFF	(ISP_FC_SCRLEN - (2 * QENTRY_LEN))	/* Request IOCB */
-#define	ZTXOFF	(ISP_FC_SCRLEN - (1 * QENTRY_LEN))	/* Response IOCB */
-
 static int
 isp_gid_ft_sns(ispsoftc_t *isp, int chan)
 {
@@ -3507,16 +3502,16 @@ isp_gid_ft_sns(ispsoftc_t *isp, int chan
 	rq->snscb_mword_div_2 = NGENT;
 	rq->snscb_fc4_type = FC4_SCSI;
 
-	isp_put_gid_ft_request(isp, rq, (sns_gid_ft_req_t *)&scp[CTXOFF]);
-	MEMORYBARRIER(isp, SYNC_SFORDEV, CTXOFF, SNS_GID_FT_REQ_SIZE, chan);
+	isp_put_gid_ft_request(isp, rq, (sns_gid_ft_req_t *)scp);
+	MEMORYBARRIER(isp, SYNC_SFORDEV, 0, SNS_GID_FT_REQ_SIZE, chan);
 
 	MBSINIT(&mbs, MBOX_SEND_SNS, MBLOGALL, 10000000);
 	mbs.param[0] = MBOX_SEND_SNS;
 	mbs.param[1] = SNS_GID_FT_REQ_SIZE >> 1;
-	mbs.param[2] = DMA_WD1(fcp->isp_scdma + CTXOFF);
-	mbs.param[3] = DMA_WD0(fcp->isp_scdma + CTXOFF);
-	mbs.param[6] = DMA_WD3(fcp->isp_scdma + CTXOFF);
-	mbs.param[7] = DMA_WD2(fcp->isp_scdma + CTXOFF);
+	mbs.param[2] = DMA_WD1(fcp->isp_scdma);
+	mbs.param[3] = DMA_WD0(fcp->isp_scdma);
+	mbs.param[6] = DMA_WD3(fcp->isp_scdma);
+	mbs.param[7] = DMA_WD2(fcp->isp_scdma);
 	isp_mboxcmd(isp, &mbs);
 	if (mbs.param[0] != MBOX_COMMAND_COMPLETE) {
 		if (mbs.param[0] == MBOX_INVALID_COMMAND) {
@@ -3555,8 +3550,8 @@ isp_ct_passthru(ispsoftc_t *isp, int cha
 	pt.ctp_rsp_cnt = 1;
 	pt.ctp_rsp_bcnt = rsp_bcnt;
 	pt.ctp_cmd_bcnt = cmd_bcnt;
-	pt.ctp_dataseg[0].ds_base = DMA_LO32(fcp->isp_scdma+XTXOFF);
-	pt.ctp_dataseg[0].ds_basehi = DMA_HI32(fcp->isp_scdma+XTXOFF);
+	pt.ctp_dataseg[0].ds_base = DMA_LO32(fcp->isp_scdma);
+	pt.ctp_dataseg[0].ds_basehi = DMA_HI32(fcp->isp_scdma);
 	pt.ctp_dataseg[0].ds_count = cmd_bcnt;
 	pt.ctp_dataseg[1].ds_base = DMA_LO32(fcp->isp_scdma);
 	pt.ctp_dataseg[1].ds_basehi = DMA_HI32(fcp->isp_scdma);
@@ -3626,12 +3621,12 @@ isp_gid_ft_ct_passthru(ispsoftc_t *isp, 
 	ct.ct_fcs_subtype = CT_FC_SUBTYPE_NS;
 	ct.ct_cmd_resp = SNS_GID_FT;
 	ct.ct_bcnt_resid = (GIDLEN - 16) >> 2;
-	isp_put_ct_hdr(isp, &ct, (ct_hdr_t *) &scp[XTXOFF]);
-	rp = (uint32_t *) &scp[XTXOFF + sizeof(ct)];
+	isp_put_ct_hdr(isp, &ct, (ct_hdr_t *)scp);
+	rp = (uint32_t *) &scp[sizeof(ct)];
 	ISP_IOZPUT_32(isp, FC4_SCSI, rp);
 	if (isp->isp_dblev & ISP_LOGDEBUG1) {
 		isp_print_bytes(isp, "CT request",
-		    sizeof(ct) + sizeof(uint32_t), &scp[XTXOFF]);
+		    sizeof(ct) + sizeof(uint32_t), scp);
 	}
 
 	if (isp_ct_passthru(isp, chan, sizeof(ct) + sizeof(uint32_t), GIDLEN)) {
@@ -4042,9 +4037,9 @@ isp_register_fc4_type_24xx(ispsoftc_t *i
 	rp.rftid_portid[1] = fcp->isp_portid >> 8;
 	rp.rftid_portid[2] = fcp->isp_portid;
 	rp.rftid_fc4types[FC4_SCSI >> 5] = 1 << (FC4_SCSI & 0x1f);
-	isp_put_rft_id(isp, &rp, (rft_id_t *)&scp[XTXOFF]);
+	isp_put_rft_id(isp, &rp, (rft_id_t *)scp);
 	if (isp->isp_dblev & ISP_LOGDEBUG1)
-		isp_print_bytes(isp, "CT request", sizeof(rft_id_t), &scp[XTXOFF]);
+		isp_print_bytes(isp, "CT request", sizeof(rft_id_t), scp);
 
 	if (isp_ct_passthru(isp, chan, sizeof(rft_id_t), sizeof(ct_hdr_t))) {
 		FC_SCRATCH_RELEASE(isp, chan);
@@ -4097,9 +4092,9 @@ isp_register_fc4_features_24xx(ispsoftc_
 	if (fcp->role & ISP_ROLE_INITIATOR)
 		rp.rffid_fc4features |= 2;
 	rp.rffid_fc4type = FC4_SCSI;
-	isp_put_rff_id(isp, &rp, (rff_id_t *)&scp[XTXOFF]);
+	isp_put_rff_id(isp, &rp, (rff_id_t *)scp);
 	if (isp->isp_dblev & ISP_LOGDEBUG1)
-		isp_print_bytes(isp, "CT request", sizeof(rft_id_t), &scp[XTXOFF]);
+		isp_print_bytes(isp, "CT request", sizeof(rft_id_t), scp);
 
 	if (isp_ct_passthru(isp, chan, sizeof(rft_id_t), sizeof(ct_hdr_t))) {
 		FC_SCRATCH_RELEASE(isp, chan);
@@ -4152,20 +4147,20 @@ isp_register_port_name_24xx(ispsoftc_t *
 	rp.rspnid_length = 0;
 	len = offsetof(rspn_id_t, rspnid_name);
 	mtx_lock(&prison0.pr_mtx);
-	rp.rspnid_length += sprintf(&scp[XTXOFF + len + rp.rspnid_length],
+	rp.rspnid_length += sprintf(&scp[len + rp.rspnid_length],
 	    "%s", prison0.pr_hostname[0] ? prison0.pr_hostname : "FreeBSD");
 	mtx_unlock(&prison0.pr_mtx);
-	rp.rspnid_length += sprintf(&scp[XTXOFF + len + rp.rspnid_length],
+	rp.rspnid_length += sprintf(&scp[len + rp.rspnid_length],
 	    ":%s", device_get_nameunit(isp->isp_dev));
 	if (chan != 0) {
-		rp.rspnid_length += sprintf(&scp[XTXOFF + len +
-		    rp.rspnid_length], "/%d", chan);
+		rp.rspnid_length += sprintf(&scp[len + rp.rspnid_length],
+		    "/%d", chan);
 	}
 	len += rp.rspnid_length;
 	ct->ct_bcnt_resid = (len - sizeof(ct_hdr_t)) >> 2;
-	isp_put_rspn_id(isp, &rp, (rspn_id_t *)&scp[XTXOFF]);
+	isp_put_rspn_id(isp, &rp, (rspn_id_t *)scp);
 	if (isp->isp_dblev & ISP_LOGDEBUG1)
-		isp_print_bytes(isp, "CT request", len, &scp[XTXOFF]);
+		isp_print_bytes(isp, "CT request", len, scp);
 
 	if (isp_ct_passthru(isp, chan, len, sizeof(ct_hdr_t))) {
 		FC_SCRATCH_RELEASE(isp, chan);
@@ -4216,14 +4211,14 @@ isp_register_node_name_24xx(ispsoftc_t *
 	rp.rsnnnn_length = 0;
 	len = offsetof(rsnn_nn_t, rsnnnn_name);
 	mtx_lock(&prison0.pr_mtx);
-	rp.rsnnnn_length += sprintf(&scp[XTXOFF + len + rp.rsnnnn_length],
+	rp.rsnnnn_length += sprintf(&scp[len + rp.rsnnnn_length],
 	    "%s", prison0.pr_hostname[0] ? prison0.pr_hostname : "FreeBSD");
 	mtx_unlock(&prison0.pr_mtx);
 	len += rp.rsnnnn_length;
 	ct->ct_bcnt_resid = (len - sizeof(ct_hdr_t)) >> 2;
-	isp_put_rsnn_nn(isp, &rp, (rsnn_nn_t *)&scp[XTXOFF]);
+	isp_put_rsnn_nn(isp, &rp, (rsnn_nn_t *)scp);
 	if (isp->isp_dblev & ISP_LOGDEBUG1)
-		isp_print_bytes(isp, "CT request", len, &scp[XTXOFF]);
+		isp_print_bytes(isp, "CT request", len, scp);
 
 	if (isp_ct_passthru(isp, chan, len, sizeof(ct_hdr_t))) {
 		FC_SCRATCH_RELEASE(isp, chan);

Modified: projects/release-pkg/sys/dev/random/ivy.c
==============================================================================
--- projects/release-pkg/sys/dev/random/ivy.c	Sat Apr 16 06:36:56 2016	(r298103)
+++ projects/release-pkg/sys/dev/random/ivy.c	Sat Apr 16 07:33:42 2016	(r298104)
@@ -129,4 +129,4 @@ rdrand_modevent(module_t mod, int type, 
 
 DEV_MODULE(rdrand, rdrand_modevent, NULL);
 MODULE_VERSION(rdrand, 1);
-MODULE_DEPEND(rdrand, randomdev, 1, 1, 1);
+MODULE_DEPEND(rdrand, random_device, 1, 1, 1);

Modified: projects/release-pkg/sys/dev/random/nehemiah.c
==============================================================================
--- projects/release-pkg/sys/dev/random/nehemiah.c	Sat Apr 16 06:36:56 2016	(r298103)
+++ projects/release-pkg/sys/dev/random/nehemiah.c	Sat Apr 16 07:33:42 2016	(r298104)
@@ -151,4 +151,4 @@ nehemiah_modevent(module_t mod, int type
 
 DEV_MODULE(nehemiah, nehemiah_modevent, NULL);
 MODULE_VERSION(nehemiah, 1);
-MODULE_DEPEND(nehemiah, randomdev, 1, 1, 1);
+MODULE_DEPEND(nehemiah, random_device, 1, 1, 1);

Modified: projects/release-pkg/sys/x86/include/specialreg.h
==============================================================================
--- projects/release-pkg/sys/x86/include/specialreg.h	Sat Apr 16 06:36:56 2016	(r298103)
+++ projects/release-pkg/sys/x86/include/specialreg.h	Sat Apr 16 07:33:42 2016	(r298104)
@@ -332,6 +332,7 @@
  */
 #define	CPUID_STDEXT_FSGSBASE	0x00000001
 #define	CPUID_STDEXT_TSC_ADJUST	0x00000002
+#define	CPUID_STDEXT_SGX	0x00000004
 #define	CPUID_STDEXT_BMI1	0x00000008
 #define	CPUID_STDEXT_HLE	0x00000010
 #define	CPUID_STDEXT_AVX2	0x00000020
@@ -341,7 +342,10 @@
 #define	CPUID_STDEXT_ERMS	0x00000200
 #define	CPUID_STDEXT_INVPCID	0x00000400
 #define	CPUID_STDEXT_RTM	0x00000800
+#define	CPUID_STDEXT_PQM	0x00001000
+#define	CPUID_STDEXT_NFPUSG	0x00002000
 #define	CPUID_STDEXT_MPX	0x00004000
+#define	CPUID_STDEXT_PQE	0x00008000
 #define	CPUID_STDEXT_AVX512F	0x00010000
 #define	CPUID_STDEXT_AVX512DQ	0x00020000
 #define	CPUID_STDEXT_RDSEED	0x00040000
@@ -359,6 +363,16 @@
 #define	CPUID_STDEXT_AVX512BW	0x40000000
 
 /*
+ * CPUID instruction 7 Structured Extended Features, leaf 0 ecx info
+ */
+#define	CPUID_STDEXT2_PREFETCHWT1 0x00000001
+#define	CPUID_STDEXT2_UMIP	0x00000004
+#define	CPUID_STDEXT2_PKU	0x00000008
+#define	CPUID_STDEXT2_OSPKE	0x00000010
+#define	CPUID_STDEXT2_RDPID	0x00400000
+#define	CPUID_STDEXT2_SGXLC	0x40000000
+
+/*
  * CPUID manufacturers identifiers
  */
 #define	AMD_VENDOR_ID		"AuthenticAMD"

Modified: projects/release-pkg/sys/x86/x86/identcpu.c
==============================================================================
--- projects/release-pkg/sys/x86/x86/identcpu.c	Sat Apr 16 06:36:56 2016	(r298103)
+++ projects/release-pkg/sys/x86/x86/identcpu.c	Sat Apr 16 07:33:42 2016	(r298104)
@@ -926,6 +926,7 @@ printcpuinfo(void)
 				       /* RDFSBASE/RDGSBASE/WRFSBASE/WRGSBASE */
 				       "\001FSGSBASE"
 				       "\002TSCADJ"
+				       "\003SGX"
 				       /* Bit Manipulation Instructions */
 				       "\004BMI1"
 				       /* Hardware Lock Elision */
@@ -945,9 +946,9 @@ printcpuinfo(void)
 				       "\014RTM"
 				       "\015PQM"
 				       "\016NFPUSG"
-				       "\020PQE"
 				       /* Intel Memory Protection Extensions */
 				       "\017MPX"
+				       "\020PQE"
 				       /* AVX512 Foundation */
 				       "\021AVX512F"
 				       "\022AVX512DQ"
@@ -976,8 +977,11 @@ printcpuinfo(void)
 				       "\020"
 				       "\001PREFETCHWT1"
 				       "\002AVX512VBMI"
+				       "\003UMIP"
 				       "\004PKU"
 				       "\005OSPKE"
+				       "\027RDPID"
+				       "\037SGXLC"
 				       );
 			}
 
@@ -1935,7 +1939,10 @@ print_INTEL_TLB(u_int data)
 		printf("Instruction TLB: 4 KByte pages, fully associative, 48 entries\n");
 		break;
 	case 0x63:
-		printf("Data TLB: 1 GByte pages, 4-way set associative, 4 entries\n");
+		printf("Data TLB: 2 MByte or 4 MByte pages, 4-way set associative, 32 entries and a separate array with 1 GByte pages, 4-way set associative, 4 entries\n");
+		break;
+	case 0x64:
+		printf("Data TLB: 4 KBytes pages, 4-way set associative, 512 entries\n");
 		break;
 	case 0x66:
 		printf("1st-level data cache: 8 KB, 4-way set associative, sectored cache, 64 byte line size\n");
@@ -2051,6 +2058,9 @@ print_INTEL_TLB(u_int data)
 	case 0xc3:
 		printf("Shared 2nd-Level TLB: 4 KByte /2 MByte pages, 6-way associative, 1536 entries. Also 1GBbyte pages, 4-way, 16 entries\n");
 		break;
+	case 0xc4:
+		printf("DTLB: 2M/4M Byte pages, 4-way associative, 32 entries\n");
+		break;
 	case 0xca:
 		printf("Shared 2nd-Level TLB: 4 KByte pages, 4-way associative, 512 entries\n");
 		break;



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