svn commit: r365050 - head/sys/dev/intel

2020-09-01 Thread Takanori Watanabe
Author: takawata
Date: Tue Sep  1 15:33:57 2020
New Revision: 365050
URL: https://svnweb.freebsd.org/changeset/base/365050

Log:
  Add Cannon Point PCH Thermal Controller Device ID.
  
  PR:   249047
  Reported by: Dries Michiels 
  --This line, and those below, will be ignored--
  > Description of fields to fill in above: 76 columns --|
  > PR:   If and which Problem Report is related.
  > Submitted by: If someone else sent in the change.
  > Reported by:  If someone else reported the issue.
  > Reviewed by:  If someone else reviewed your modification.
  > Approved by:  If you needed approval for this commit.
  > Obtained from:If the change is from a third party.
  > MFC after:N [day[s]|week[s]|month[s]].  Request a reminder 
email.
  > MFH:  Ports tree branch name.  Request approval for 
merge.
  > Relnotes: Set to 'yes' for mention in release notes.
  > Security: Vulnerability reference (one per line) or 
description.
  > Sponsored by: If the change was sponsored by an organization 
(each collaborator).
  > Differential Revision:https://reviews.freebsd.org/D### (*full* phabric 
URL needed).
  > Empty fields above will be automatically removed.
  
  Mpchtherm.c

Modified:
  head/sys/dev/intel/pchtherm.c

Modified: head/sys/dev/intel/pchtherm.c
==
--- head/sys/dev/intel/pchtherm.c   Tue Sep  1 15:30:40 2020
(r365049)
+++ head/sys/dev/intel/pchtherm.c   Tue Sep  1 15:33:57 2020
(r365050)
@@ -95,6 +95,8 @@ static const struct pci_device_table pchtherm_devices[
  PCI_DESCR("Skylake PCH Thermal Subsystem")},
{ PCI_DEV(0x8086, 0xa131),
  PCI_DESCR("Skylake PCH 100 Thermal Subsystem")},
+   { PCI_DEV(0x8086, 0x9df9),
+ PCI_DESCR("Cannon Lake PCH Thermal Controller")},
 };
 
 static int pchtherm_probe(device_t dev)
___
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"


svn commit: r363276 - in head/sys/netgraph/bluetooth: include l2cap

2020-07-17 Thread Takanori Watanabe
Author: takawata
Date: Fri Jul 17 15:50:03 2020
New Revision: 363276
URL: https://svnweb.freebsd.org/changeset/base/363276

Log:
  Fix L2CAP ACL packet PB(Packet Boundary) flag for LE PDU.
  
  ACL packet boundary flag should be 0 instead of 2 for LE PDU.
  Some HCI will drop LE packet with PB flag is 2, and if sent,
  some target may reject the packet.
  
  PR:   248024
  Reported by:  Greg V
  Reviewed by:  Greg V, emax
  Differential Revision:https://reviews.freebsd.org/D25704

Modified:
  head/sys/netgraph/bluetooth/include/ng_hci.h
  head/sys/netgraph/bluetooth/l2cap/ng_l2cap_llpi.c

Modified: head/sys/netgraph/bluetooth/include/ng_hci.h
==
--- head/sys/netgraph/bluetooth/include/ng_hci.hFri Jul 17 15:09:49 
2020(r363275)
+++ head/sys/netgraph/bluetooth/include/ng_hci.hFri Jul 17 15:50:03 
2020(r363276)
@@ -393,10 +393,10 @@
(((h) & 0x0fff) | (((pb) & 3) << 12) | (((bc) & 3) << 14))
 
 /* PB flag values */
-   /* 00 - reserved for future use */
+#defineNG_HCI_LE_PACKET_START  0x0
 #defineNG_HCI_PACKET_FRAGMENT  0x1 
 #defineNG_HCI_PACKET_START 0x2
-   /* 11 - reserved for future use */
+   /* 11 for AMP packet, not supported */
 
 /* BC flag values */
 #define NG_HCI_POINT2POINT 0x0 /* only Host controller to Host */

Modified: head/sys/netgraph/bluetooth/l2cap/ng_l2cap_llpi.c
==
--- head/sys/netgraph/bluetooth/l2cap/ng_l2cap_llpi.c   Fri Jul 17 15:09:49 
2020(r363275)
+++ head/sys/netgraph/bluetooth/l2cap/ng_l2cap_llpi.c   Fri Jul 17 15:50:03 
2020(r363276)
@@ -547,7 +547,7 @@ ng_l2cap_lp_send(ng_l2cap_con_p con, u_int16_t dcid, s
ng_l2cap_hdr_t  *l2cap_hdr = NULL;
 ng_hci_acldata_pkt_t   *acl_hdr = NULL;
 struct mbuf*m_last = NULL, *m = NULL;
-int len, flag = NG_HCI_PACKET_START;
+int len, flag = (con->linktype == NG_HCI_LINK_ACL) 
? NG_HCI_PACKET_START : NG_HCI_LE_PACKET_START;
 
KASSERT((con->tx_pkt == NULL),
 ("%s: %s - another packet pending?!\n", __func__, NG_NODE_NAME(l2cap->node)));
@@ -713,7 +713,8 @@ ng_l2cap_lp_receive(ng_l2cap_p l2cap, struct mbuf *m)
}
 
/* Process packet */
-   if (pb == NG_HCI_PACKET_START) {
+   if ((pb == NG_HCI_PACKET_START) || (pb == NG_HCI_LE_PACKET_START))
+ {
if (con->rx_pkt != NULL) {
NG_L2CAP_ERR(
 "%s: %s - dropping incomplete L2CAP packet, got %d bytes, want %d bytes\n",
___
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"


svn commit: r363003 - head/sys/netgraph/bluetooth/include

2020-07-08 Thread Takanori Watanabe
Author: takawata
Date: Wed Jul  8 06:33:07 2020
New Revision: 363003
URL: https://svnweb.freebsd.org/changeset/base/363003

Log:
  Add support for [read|write] supported data length commands.
  
  Fix ng_hci_le_long_term_key_request_negative_reply_cp struct
  while here.
  
  PR:   247809
  Submitted by: Marc Veldman

Modified:
  head/sys/netgraph/bluetooth/include/ng_hci.h

Modified: head/sys/netgraph/bluetooth/include/ng_hci.h
==
--- head/sys/netgraph/bluetooth/include/ng_hci.hWed Jul  8 03:57:47 
2020(r363002)
+++ head/sys/netgraph/bluetooth/include/ng_hci.hWed Jul  8 06:33:07 
2020(r363003)
@@ -1730,11 +1730,26 @@ typedef struct {
 #define NG_HCI_OCF_LE_LONG_TERM_KEY_REQUEST_NEGATIVE_REPLY 0x001b
 typedef struct{
u_int16_t connection_handle;
-}ng_hci_le_long_term_key_request_negative_reply_cp;
+}__attribute__((packed)) ng_hci_le_long_term_key_request_negative_reply_cp;
 typedef struct {
u_int8_t status;
u_int16_t connection_handle;
 }__attribute__ ((packed)) ng_hci_le_long_term_key_request_negative_reply_rp;
+
+#define NG_HCI_OCF_LE_READ_SUGGESTED_DATA_LENGTH   0x0023
+/*No command parameter*/
+typedef struct {
+   u_int8_t status;
+   u_int16_t suggested_max_tx_octets;
+   u_int16_t suggested_max_tx_time;
+}__attribute__ ((packed)) ng_hci_le_read_suggested_data_length_rp;
+
+#define NG_HCI_OCF_LE_WRITE_SUGGESTED_DATA_LENGTH  0x0024
+typedef struct {
+   u_int16_t suggested_max_tx_octets;
+   u_int16_t suggested_max_tx_time;
+}__attribute__ ((packed)) ng_hci_le_write_suggested_data_length_cp;
+typedef ng_hci_status_rp   ng_hci_le_write_suggested_data_length_rp;
 
 #define NG_HCI_OCF_LE_READ_BUFFER_SIZE_V2  0x0060
 /*No command parameter */
___
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"


svn commit: r363002 - head/usr.sbin/bluetooth/hccontrol

2020-07-07 Thread Takanori Watanabe
Author: takawata
Date: Wed Jul  8 03:57:47 2020
New Revision: 363002
URL: https://svnweb.freebsd.org/changeset/base/363002

Log:
  Add le_rand command.
  
  PR: 247808
  Submitted by: Marc Veldman

Modified:
  head/usr.sbin/bluetooth/hccontrol/hccontrol.8
  head/usr.sbin/bluetooth/hccontrol/le.c

Modified: head/usr.sbin/bluetooth/hccontrol/hccontrol.8
==
--- head/usr.sbin/bluetooth/hccontrol/hccontrol.8   Wed Jul  8 02:28:08 
2020(r363001)
+++ head/usr.sbin/bluetooth/hccontrol/hccontrol.8   Wed Jul  8 03:57:47 
2020(r363002)
@@ -164,6 +164,7 @@ are:
 .It Cm LE_Connect
 .It Cm LE_Read_Channel_Map
 .It Cm LE_Read_Remote_Features
+.It Cm LE_Rand
 .El
 .Pp
 The currently supported node commands in

Modified: head/usr.sbin/bluetooth/hccontrol/le.c
==
--- head/usr.sbin/bluetooth/hccontrol/le.c  Wed Jul  8 02:28:08 2020
(r363001)
+++ head/usr.sbin/bluetooth/hccontrol/le.c  Wed Jul  8 03:57:47 2020
(r363002)
@@ -71,6 +71,7 @@ static int le_connect(int s, int argc, char *argv[]);
 static void handle_le_connection_event(ng_hci_event_pkt_t* e, bool verbose);
 static int le_read_channel_map(int s, int argc, char *argv[]);
 static void handle_le_remote_features_event(ng_hci_event_pkt_t* e);
+static int le_rand(int s, int argc, char *argv[]);
 
 static int
 le_set_scan_param(int s, int argc, char *argv[])
@@ -1211,8 +1212,33 @@ static void handle_le_remote_features_event(ng_hci_eve
return;
 } /* handle_le_remote_features_event */
 
+static int le_rand(int s, int argc, char *argv[])
+{
+   ng_hci_le_rand_rp rp;
+   int n;
 
+   n = sizeof(rp);
 
+   if (hci_simple_request(s, NG_HCI_OPCODE(NG_HCI_OGF_LE,
+   NG_HCI_OCF_LE_RAND), 
+   (void *), ) == ERROR)
+   return (ERROR);
+   
+   if (rp.status != 0x00) {
+   fprintf(stdout, "Status: %s [%#02x]\n", 
+   hci_status2str(rp.status), rp.status);
+   return (FAILED);
+   }
+
+   fprintf(stdout,
+   "Random number : %08llx\n",
+   (unsigned long long)le64toh(rp.random_number));
+
+   return (OK);
+}
+
+
+
 struct hci_command le_commands[] = {
 {
"le_enable",
@@ -1335,5 +1361,11 @@ struct hci_command le_commands[] = {
  "Read supported features for the device\n"
  "identified by the connection handle",
  _read_remote_features
+  },
+  {
+ "le_rand",
+ "le_rand\n"
+ "Generate 64 bits of random data",
+ _rand
   },
 };
___
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"


svn commit: r362825 - head/sys/netgraph/bluetooth/socket

2020-06-30 Thread Takanori Watanabe
Author: takawata
Date: Wed Jul  1 04:00:54 2020
New Revision: 362825
URL: https://svnweb.freebsd.org/changeset/base/362825

Log:
  Allow some Bluetooth LE related HCI request to non-root user.
  
  PR:   247588
  Reported by:  Greg V (greg@unrelenting.technology)
  Reviewed by:  emax
  Differential Revision:https://reviews.freebsd.org/D25516

Modified:
  head/sys/netgraph/bluetooth/socket/ng_btsocket_hci_raw.c

Modified: head/sys/netgraph/bluetooth/socket/ng_btsocket_hci_raw.c
==
--- head/sys/netgraph/bluetooth/socket/ng_btsocket_hci_raw.cWed Jul  1 
02:32:41 2020(r362824)
+++ head/sys/netgraph/bluetooth/socket/ng_btsocket_hci_raw.cWed Jul  1 
04:00:54 2020(r362825)
@@ -861,6 +861,7 @@ ng_btsocket_hci_raw_init(void)
bit_set(f, NG_HCI_OCF_READ_IAC_LAP - 1);
bit_set(f, NG_HCI_OCF_READ_PAGE_SCAN_PERIOD - 1);
bit_set(f, NG_HCI_OCF_READ_PAGE_SCAN - 1);
+   bit_set(f, NG_HCI_OCF_READ_LE_HOST_SUPPORTED -1);
 
/* Commands - Informational */
f = ng_btsocket_hci_raw_sec_filter->commands[NG_HCI_OGF_INFO - 1];
@@ -881,6 +882,11 @@ ng_btsocket_hci_raw_init(void)
bit_set(f, NG_HCI_OCF_READ_LOOPBACK_MODE - 1);
/*Commands - LE*/
f = ng_btsocket_hci_raw_sec_filter->commands[NG_HCI_OGF_LE -1];
+   bit_set(f, NG_HCI_OCF_LE_SET_SCAN_ENABLE - 1);
+   bit_set(f, NG_HCI_OCF_LE_SET_SCAN_PARAMETERS - 1);
+   bit_set(f, NG_HCI_OCF_LE_READ_LOCAL_SUPPORTED_FEATURES - 1);
+   bit_set(f, NG_HCI_OCF_LE_READ_BUFFER_SIZE - 1);
+   bit_set(f, NG_HCI_OCF_LE_READ_WHITE_LIST_SIZE - 1);
 
 } /* ng_btsocket_hci_raw_init */
 
___
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"


svn commit: r362199 - head/sys/netgraph/bluetooth/include

2020-06-15 Thread Takanori Watanabe
Author: takawata
Date: Mon Jun 15 14:58:40 2020
New Revision: 362199
URL: https://svnweb.freebsd.org/changeset/base/362199

Log:
  Update event masks constant to Bluetooth core spec V5.2
  and add LE Events.
  
  PR: 247257
  Submitted by: Marc Veldman

Modified:
  head/sys/netgraph/bluetooth/include/ng_hci.h

Modified: head/sys/netgraph/bluetooth/include/ng_hci.h
==
--- head/sys/netgraph/bluetooth/include/ng_hci.hMon Jun 15 13:46:40 
2020(r362198)
+++ head/sys/netgraph/bluetooth/include/ng_hci.hMon Jun 15 14:58:40 
2020(r362199)
@@ -225,7 +225,8 @@
 /* 0x0010 - 0x8000 - reserved for future use */
 
 /* Event masks */
-#define NG_HCI_EVMSK_ALL   0x
+#define NG_HCI_EVMSK_DEFAULT   0x1fff
+#define NG_HCI_EVMSK_ALL   0x1fff  
 #define NG_HCI_EVMSK_NONE  0x
 #define NG_HCI_EVMSK_INQUIRY_COMPL 0x0001
 #define NG_HCI_EVMSK_INQUIRY_RESULT0x0002
@@ -259,7 +260,70 @@
 #define NG_HCI_EVMSK_QOS_VIOLATION 0x2000
 #define NG_HCI_EVMSK_PAGE_SCAN_MODE_CHANGE 0x4000
 #define NG_HCI_EVMSK_PAGE_SCAN_REP_MODE_CHANGE 0x8000
-/* 0x0001 - 0x8000 - reserved for future use */
+#define NG_HCI_EVMSK_FLOW_SPEC_COMPL   0x0001
+#define NG_HCI_EVMSK_INQUIRY_RESULT_W_RSSI 0x0002
+#define NG_HCI_EVMSK_READ_REM_EXT_FEAT_COMPL   0x0004
+
+/* 0x0008 -0x0800 - not in use */ 
+
+#define NG_HCI_EVMSK_SYNC_CONN_COMPL   0x1000
+#define NG_HCI_EVMSK_SYNC_CONN_CHANGED 0x2000
+#define NG_HCI_EVMSK_SNIFF_SUBRATING   0x4000
+#define NG_HCI_EVMSK_EXT_INQUIRY_RESULT0x8000
+#define NG_HCI_EVMSK_ENC_KEY_REFRESH_COMPL 0x0001
+#define NG_HCI_EVMSK_IO_CAPABILITY_REQ 0x0002
+#define NG_HCI_EVMSK_IO_CAPABILITY_RESP0x0004
+#define NG_HCI_EVMSK_USER_CONFIRMATION_REQ 0x0008
+#define NG_HCI_EVMSK_USER_PASSKEY_REQ  0x0010
+#define NG_HCI_EVMSK_REM_OOB_DATA_REQ  0x0020
+#define NG_HCI_EVMSK_SIMPLE_PAIRING_COMPL  0x0040
+#define NG_HCI_EVMSK_LINK_SUPERV_TO_CHANGED0x0080
+#define NG_HCI_EVMSK_ENH_FLUSH_COMPL   0x0100
+#define NG_HCI_EVMSK_USER_PASSKEY_NOTIFICATION 0x0200
+#define NG_HCI_EVMSK_KEYPRESS_NOTIFICATION 0x0400
+#define NG_HCI_EVMSK_REM_HOST_SUPP_FEAT_NOTIFI 0x0800
+#define NG_HCI_EVMSK_LE_META   0x1000
+/* 0x1001 - 0x8000 - reserved for future use */
+
+/* LE events masks*/
+#define NG_HCI_LEEVMSK_ALL 0x3fff
+#define NG_HCI_LEEVMSK_NONE0x
+#define NG_HCI_LEEVMSK_DEFAULT 0x001f
+#define NG_HCI_LEEVMSK_CONN_COMPLETE   0x0001
+#define NG_HCI_LEEVMSK_ADV_REP 0x0002
+#define NG_HCI_LEEVMSK_CONN_UPDATE 0x0004
+#define NG_HCI_LEEVMSK_READ_REM_FEAT_REQ   0x0008
+#define NG_HCI_LEEVMSK_LONG_TERM_KEY_REQ   0x0010
+#define NG_HCI_LEEVMSK_REM_CONN_PARAM_REQ  0x0020
+#define NG_HCI_LEEVMSK_DATA_LENGTH_CHG 0x0040
+#define NG_HCI_LEEVMSK_RD_LOC_P256_PK_COMPL0x0080
+#define NG_HCI_LEEVMSK_GEN_DHKEY_COMPL 0x0100
+#define NG_HCI_LEEVMSK_ENH_CONN_COMPL  0x0200
+#define NG_HCI_LEEVMSK_DIR_ADV_REP 0x0400
+#define NG_HCI_LEEVMSK_PHY_UPD_COMPL   0x0800
+#define NG_HCI_LEEVMSK_EXT_ADV_REP 0x1000
+#define NG_HCI_LEEVMSK_PER_ADV_SYNC_EST0x2000
+#define NG_HCI_LEEVMSK_PER_ADV_REP 0x4000
+#define NG_HCI_LEEVMSK_PER_ADV_SYNC_LOST   0x8000
+#define NG_HCI_LEEVMSK_SCAN_TIMEOUT0x0001
+#define NG_HCI_LEEVMSK_ADV_SET_TERM0x0002
+#define NG_HCI_LEEVMSK_SCAN_REQ_RCVD   0x0004
+#define NG_HCI_LEEVMSK_CHAN_SEL_ALGO   0x0008
+#define NG_HCI_LEEVMSK_CONNLESS_IQ_REP 0x0001
+#define NG_HCI_LEEVMSK_CONN_IQ_REP 0x0002
+#define NG_HCI_LEEVMSK_CTE_REQ_FAILED  0x0004
+#define NG_HCI_LEEVMSK_PER_ADV_SYN_TRF_RCVD0x0008
+#define NG_HCI_LEEVMSK_CIS_EST 0x0010
+#define NG_HCI_LEEVMSK_CIS_REQ 0x0020
+#define NG_HCI_LEEVMSK_CREATE_BIG_COMPL0x0040
+#define 

svn commit: r362005 - head/usr.sbin/bluetooth/hccontrol

2020-06-09 Thread Takanori Watanabe
Author: takawata
Date: Wed Jun 10 05:01:00 2020
New Revision: 362005
URL: https://svnweb.freebsd.org/changeset/base/362005

Log:
  Add le_read_channel_map and le_read_remote_features command
  
  PR: 247051
  Submitted by:   Marc Veldman marc at bumblingdork.com

Modified:
  head/usr.sbin/bluetooth/hccontrol/hccontrol.8
  head/usr.sbin/bluetooth/hccontrol/hccontrol.h
  head/usr.sbin/bluetooth/hccontrol/host_controller_baseband.c
  head/usr.sbin/bluetooth/hccontrol/le.c
  head/usr.sbin/bluetooth/hccontrol/util.c

Modified: head/usr.sbin/bluetooth/hccontrol/hccontrol.8
==
--- head/usr.sbin/bluetooth/hccontrol/hccontrol.8   Wed Jun 10 04:54:02 
2020(r362004)
+++ head/usr.sbin/bluetooth/hccontrol/hccontrol.8   Wed Jun 10 05:01:00 
2020(r362005)
@@ -162,6 +162,8 @@ are:
 .It Cm LE_Add_Device_To_White_List
 .It Cm LE_Remove_Device_From_White_List
 .It Cm LE_Connect
+.It Cm LE_Read_Channel_Map
+.It Cm LE_Read_Remote_Features
 .El
 .Pp
 The currently supported node commands in

Modified: head/usr.sbin/bluetooth/hccontrol/hccontrol.h
==
--- head/usr.sbin/bluetooth/hccontrol/hccontrol.h   Wed Jun 10 04:54:02 
2020(r362004)
+++ head/usr.sbin/bluetooth/hccontrol/hccontrol.h   Wed Jun 10 05:01:00 
2020(r362005)
@@ -82,6 +82,7 @@ char const *  hci_bdaddr2str  (bdaddr_t const *);
 char const *   hci_addrtype2str(int type);
 char const *hci_role2str(int role);
 char const *hci_mc_accuracy2str (int accuracy);
+char const *   hci_le_chanmap2str  (uint8_t *, char *, int);
 
 void dump_adv_data(int len, uint8_t* advdata);
 void print_adv_data(int len, uint8_t* advdata);

Modified: head/usr.sbin/bluetooth/hccontrol/host_controller_baseband.c
==
--- head/usr.sbin/bluetooth/hccontrol/host_controller_baseband.cWed Jun 
10 04:54:02 2020(r362004)
+++ head/usr.sbin/bluetooth/hccontrol/host_controller_baseband.cWed Jun 
10 05:01:00 2020(r362005)
@@ -1526,14 +1526,14 @@ hci_write_le_host_support(int s, int argc, char **argv
switch (argc) {
case 2:
if (sscanf(argv[1], "%d", ) != 1 || (n != 0 && n != 1)){
-   printf("ARGC2: %d\n", n);
+   printf("-ARGC2: %d\n", n);
return (USAGE);
}
cp.simultaneous_le_host = (n &1);

case 1:
if (sscanf(argv[0], "%d", ) != 1 || (n != 0 && n != 1)){
-   printf("ARGC1: %d\n", n);
+   printf("+ARGC1: %d\n", n);
return (USAGE);
}
 

Modified: head/usr.sbin/bluetooth/hccontrol/le.c
==
--- head/usr.sbin/bluetooth/hccontrol/le.c  Wed Jun 10 04:54:02 2020
(r362004)
+++ head/usr.sbin/bluetooth/hccontrol/le.c  Wed Jun 10 05:01:00 2020
(r362005)
@@ -69,6 +69,8 @@ static int le_add_device_to_white_list(int s, int argc
 static int le_remove_device_from_white_list(int s, int argc, char *argv[]);
 static int le_connect(int s, int argc, char *argv[]);
 static void handle_le_connection_event(ng_hci_event_pkt_t* e, bool verbose);
+static int le_read_channel_map(int s, int argc, char *argv[]);
+static void handle_le_remote_features_event(ng_hci_event_pkt_t* e);
 
 static int
 le_set_scan_param(int s, int argc, char *argv[])
@@ -1086,6 +1088,131 @@ static void handle_le_connection_event(ng_hci_event_pk
return;
 }
 
+static int
+le_read_channel_map(int s, int argc, char *argv[])
+{
+   ng_hci_le_read_channel_map_cp   cp;
+   ng_hci_le_read_channel_map_rp   rp;
+   int n;
+   charbuffer[2048];
+
+   /* parse command parameters */
+   switch (argc) {
+   case 1:
+   /* connection handle */
+   if (sscanf(argv[0], "%d", ) != 1 || n <= 0 || n > 0x0eff)
+   return (USAGE);
+
+   cp.connection_handle = (uint16_t) (n & 0x0fff);
+   cp.connection_handle = htole16(cp.connection_handle);
+   break;
+
+   default:
+   return (USAGE);
+   }
+
+   n = sizeof(rp);
+   if (hci_request(s, NG_HCI_OPCODE(NG_HCI_OGF_LE,
+   NG_HCI_OCF_LE_READ_CHANNEL_MAP), 
+   (void *), sizeof(cp), (void *), ) == ERROR)
+   return (ERROR);
+
+   if (rp.status != 0x00) {
+   fprintf(stdout,
+   "Read channel map failed. Status: %s [%#02x]\n", 
+   hci_status2str(rp.status), rp.status);
+   return (FAILED);
+   }
+
+   fprintf(stdout, "Connection handle: %d\n",
+   

svn commit: r362004 - head/sys/netgraph/bluetooth/include

2020-06-09 Thread Takanori Watanabe
Author: takawata
Date: Wed Jun 10 04:54:02 2020
New Revision: 362004
URL: https://svnweb.freebsd.org/changeset/base/362004

Log:
  Add LE events:
  READ_REMOTE_FEATURES_COMPL
  LONG_TERM_KEY_REQUEST
  REMOTE_CONN_PARAM_REQUEST
  DATA_LENGTH_CHANGE
  READ_LOCAL_P256_PK_COMPL
  GEN_DHKEY_COMPL
  ENH_CONN_COMPL
  
  PR: 247050
  Submitted by: Marc Veldman marc at bumblingdork.com

Modified:
  head/sys/netgraph/bluetooth/include/ng_hci.h

Modified: head/sys/netgraph/bluetooth/include/ng_hci.h
==
--- head/sys/netgraph/bluetooth/include/ng_hci.hWed Jun 10 04:08:16 
2020(r362003)
+++ head/sys/netgraph/bluetooth/include/ng_hci.hWed Jun 10 04:54:02 
2020(r362004)
@@ -1992,11 +1992,65 @@ typedef struct {
u_int16_t conn_latency;
u_int16_t supervision_timeout;
 }__attribute__((packed)) ng_hci_connection_update_complete_ep;
+
 #define NG_HCI_LEEV_READ_REMOTE_FEATURES_COMPL 0x04
-//TBD
+typedef struct {
+   u_int8_tstatus;
+   u_int16_t   connection_handle;
+   u_int8_tfeatures[NG_HCI_FEATURES_SIZE];
+}__attribute__((packed)) ng_hci_le_read_remote_features_ep;
+
 #define NG_HCI_LEEV_LONG_TERM_KEY_REQUEST 0x05
-//TBD
+typedef struct {
+   u_int16_t   connection_handle;
+   u_int64_t   random_number;
+   u_int16_t   encrypted_diversifier;
+}__attribute__((packed)) ng_hci_le_long_term_key_request_ep;
 
+#define NG_HCI_LEEV_REMOTE_CONN_PARAM_REQUEST 0x06
+typedef struct {
+   u_int16_t   connection_handle;
+   u_int16_t   interval_min;
+   u_int16_t   interval_max;
+   u_int16_t   latency;
+   u_int16_t   timeout;
+}__attribute__((packed)) ng_hci_le_remote_conn_param_ep;
+
+#define NG_HCI_LEEV_DATA_LENGTH_CHANGE 0x07
+typedef struct {
+   u_int16_t   connection_handle;
+   u_int16_t   min_tx_octets;
+   u_int16_t   max_tx_time;
+   u_int16_t   max_rx_octets;
+   u_int16_t   max_rx_time;
+}__attribute__((packed)) ng_hci_le_data_length_change_ep;
+
+#define NG_HCI_LEEV_READ_LOCAL_P256_PK_COMPL 0x08
+typedef struct {
+   u_int8_tstatus;
+   u_int8_tlocal_p256_pk[64];
+}__attribute__((packed)) ng_hci_le_read_local_p256_pk_compl_ep;
+
+#define NG_HCI_LEEV_GEN_DHKEY_COMPL 0x09
+typedef struct {
+   u_int8_tstatus;
+   u_int8_tdh_key[32];
+}__attribute__((packed)) ng_hci_le_gen_dhkey_compl_ep;
+
+#define NG_HCI_LEEV_ENH_CONN_COMPL 0x0a
+typedef struct {
+   u_int8_tstatus;
+   u_int16_t   connection_handle;
+   u_int8_trole;
+   u_int8_tpeer_addr_type;
+   bdaddr_tpeer_addr;
+   bdaddr_tlocal_res_private_addr;
+   bdaddr_tpeer_res_private_addr;
+   u_int16_t   conn_interval;
+   u_int16_t   conn_latency;
+   u_int16_t   supervision_timeout;
+   u_int8_tmaster_clock_accuracy;
+}__attribute__((packed)) ng_hci_le_enh_conn_compl_ep;
 
 #define NG_HCI_EVENT_BT_LOGO   0xfe
 
___
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"


svn commit: r361586 - head/usr.sbin/bluetooth/hccontrol

2020-05-28 Thread Takanori Watanabe
Author: takawata
Date: Thu May 28 13:48:33 2020
New Revision: 361586
URL: https://svnweb.freebsd.org/changeset/base/361586

Log:
  Fix connection event message string (n->\n)
  
  PR: 246664
  Submitted by: Marc Veldman (m...@bumblngdork.com)
  Reported by:  Jose Luis Duran (jldu...@gmail.com)

Modified:
  head/usr.sbin/bluetooth/hccontrol/le.c

Modified: head/usr.sbin/bluetooth/hccontrol/le.c
==
--- head/usr.sbin/bluetooth/hccontrol/le.c  Thu May 28 13:19:41 2020
(r361585)
+++ head/usr.sbin/bluetooth/hccontrol/le.c  Thu May 28 13:48:33 2020
(r361586)
@@ -1078,7 +1078,7 @@ static void handle_le_connection_event(ng_hci_event_pk
"Supervision timeout: %dms\n",
 10 * le16toh(conn_event->supervision_timeout));
fprintf(stdout,
-   "Master clock accuracy: %sn",
+   "Master clock accuracy: %s\n",
hci_mc_accuracy2str(
conn_event->master_clock_accuracy));
}
___
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"


svn commit: r361520 - head/usr.sbin/bluetooth/hccontrol

2020-05-26 Thread Takanori Watanabe
Author: takawata
Date: Tue May 26 15:46:18 2020
New Revision: 361520
URL: https://svnweb.freebsd.org/changeset/base/361520

Log:
  Add le_connect command to connect to an LE device.
  
  PR:246664
  Submitted by:MarcVeldman

Modified:
  head/usr.sbin/bluetooth/hccontrol/hccontrol.8
  head/usr.sbin/bluetooth/hccontrol/hccontrol.h
  head/usr.sbin/bluetooth/hccontrol/le.c
  head/usr.sbin/bluetooth/hccontrol/util.c

Modified: head/usr.sbin/bluetooth/hccontrol/hccontrol.8
==
--- head/usr.sbin/bluetooth/hccontrol/hccontrol.8   Tue May 26 15:45:54 
2020(r361519)
+++ head/usr.sbin/bluetooth/hccontrol/hccontrol.8   Tue May 26 15:46:18 
2020(r361520)
@@ -161,6 +161,7 @@ are:
 .It Cm LE_Clear_White_List
 .It Cm LE_Add_Device_To_White_List
 .It Cm LE_Remove_Device_From_White_List
+.It Cm LE_Connect
 .El
 .Pp
 The currently supported node commands in

Modified: head/usr.sbin/bluetooth/hccontrol/hccontrol.h
==
--- head/usr.sbin/bluetooth/hccontrol/hccontrol.h   Tue May 26 15:45:54 
2020(r361519)
+++ head/usr.sbin/bluetooth/hccontrol/hccontrol.h   Tue May 26 15:46:18 
2020(r361520)
@@ -80,6 +80,8 @@ char const *  hci_con_state2str   (int);
 char const *   hci_status2str  (int);
 char const *   hci_bdaddr2str  (bdaddr_t const *);
 char const *   hci_addrtype2str(int type);
+char const *hci_role2str(int role);
+char const *hci_mc_accuracy2str (int accuracy);
 
 void dump_adv_data(int len, uint8_t* advdata);
 void print_adv_data(int len, uint8_t* advdata);

Modified: head/usr.sbin/bluetooth/hccontrol/le.c
==
--- head/usr.sbin/bluetooth/hccontrol/le.c  Tue May 26 15:45:54 2020
(r361519)
+++ head/usr.sbin/bluetooth/hccontrol/le.c  Tue May 26 15:46:18 2020
(r361520)
@@ -67,6 +67,8 @@ static int le_read_white_list_size(int s, int argc, ch
 static int le_clear_white_list(int s, int argc, char *argv[]);
 static int le_add_device_to_white_list(int s, int argc, char *argv[]);
 static int le_remove_device_from_white_list(int s, int argc, char *argv[]);
+static int le_connect(int s, int argc, char *argv[]);
+static void handle_le_connection_event(ng_hci_event_pkt_t* e, bool verbose);
 
 static int
 le_set_scan_param(int s, int argc, char *argv[])
@@ -933,6 +935,157 @@ le_remove_device_from_white_list(int s, int argc, char
return (OK);
 }
 
+static int
+le_connect(int s, int argc, char *argv[])
+{ 
+   ng_hci_le_create_connection_cp cp;
+   ng_hci_status_rp rp;
+   charb[512];
+   ng_hci_event_pkt_t  *e = (ng_hci_event_pkt_t *) b;
+
+   int n, scancount, bufsize;
+   char ch;
+   bool addr_set = false;
+   bool verbose = false;
+
+   optreset = 1;
+   optind = 0;
+
+   /* minimal scan interval (2.5ms) */ 
+   cp.scan_interval = htole16(4);
+   cp.scan_window = htole16(4);
+
+   /* Don't use the whitelist */
+   cp.filter_policy = 0x00;
+
+   /* Default to public peer address */
+   cp.peer_addr_type = 0x00;
+
+   /* Own address type public */
+   cp.own_address_type = 0x00;
+
+   /* 18.75ms min connection interval */
+   cp.conn_interval_min = htole16(0x000F);
+   /* 18.75ms max connection interval */
+   cp.conn_interval_max = htole16(0x000F);
+
+   /* 0 events connection latency */
+   cp.conn_latency = htole16(0x);
+
+   /* 32s supervision timeout */
+   cp.supervision_timeout = htole16(0x0C80);
+
+   /* Min CE Length 0.625 ms */
+   cp.min_ce_length = htole16(1);
+   /* Max CE Length 0.625 ms */
+   cp.max_ce_length = htole16(1);
+
+   while ((ch = getopt(argc, argv , "a:t:v")) != -1) {
+   switch(ch) {
+   case 't':
+   if (strcmp(optarg, "public") == 0)
+   cp.peer_addr_type = 0x00;
+   else if (strcmp(optarg, "random") == 0)
+   cp.peer_addr_type = 0x01;
+   else 
+   return (USAGE);
+   break;
+   case 'a':
+   addr_set = true;
+   if (!bt_aton(optarg, _addr)) {
+   struct hostent  *he = NULL;
+
+   if ((he = bt_gethostbyname(optarg)) == NULL)
+   return (USAGE);
+
+   memcpy(_addr, he->h_addr,
+   sizeof(cp.peer_addr));
+   }
+   break;
+   case 'v':
+   verbose = true;
+   break;
+   }
+   }
+
+   if (addr_set == false) 
+   return 

svn commit: r361254 - head/sys/netgraph/bluetooth/include

2020-05-19 Thread Takanori Watanabe
Author: takawata
Date: Tue May 19 13:58:52 2020
New Revision: 361254
URL: https://svnweb.freebsd.org/changeset/base/361254

Log:
  Fix Typo in ng_hci_le_connection_complete_ep struct.
  
  PR:   246538
  Submitted by: Marc Veldman

Modified:
  head/sys/netgraph/bluetooth/include/ng_hci.h

Modified: head/sys/netgraph/bluetooth/include/ng_hci.h
==
--- head/sys/netgraph/bluetooth/include/ng_hci.hTue May 19 13:54:33 
2020(r361253)
+++ head/sys/netgraph/bluetooth/include/ng_hci.hTue May 19 13:58:52 
2020(r361254)
@@ -1964,7 +1964,7 @@ typedef struct {
u_int16_t   interval;
u_int8_tlatency;
u_int16_t   supervision_timeout;
-   u_int8_tmaster_clock_accracy;
+   u_int8_tmaster_clock_accuracy;

 } __attribute__ ((packed)) ng_hci_le_connection_complete_ep;
 
___
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"


svn commit: r361251 - head/usr.sbin/bluetooth/hccontrol

2020-05-19 Thread Takanori Watanabe
Author: takawata
Date: Tue May 19 13:44:32 2020
New Revision: 361251
URL: https://svnweb.freebsd.org/changeset/base/361251

Log:
  Add LE Whitelist commands to hccontrol
  
  PR: 214555
  Submitted by Marc Veldman

Modified:
  head/usr.sbin/bluetooth/hccontrol/hccontrol.8
  head/usr.sbin/bluetooth/hccontrol/le.c

Modified: head/usr.sbin/bluetooth/hccontrol/hccontrol.8
==
--- head/usr.sbin/bluetooth/hccontrol/hccontrol.8   Tue May 19 12:16:44 
2020(r361250)
+++ head/usr.sbin/bluetooth/hccontrol/hccontrol.8   Tue May 19 13:44:32 
2020(r361251)
@@ -157,6 +157,10 @@ are:
 .It Cm LE_Read_Supported_States
 .It Cm LE_Read_Buffer_Size
 .It Cm LE Scan
+.It Cm LE_Read_White_List_Size
+.It Cm LE_Clear_White_List
+.It Cm LE_Add_Device_To_White_List
+.It Cm LE_Remove_Device_From_White_List
 .El
 .Pp
 The currently supported node commands in

Modified: head/usr.sbin/bluetooth/hccontrol/le.c
==
--- head/usr.sbin/bluetooth/hccontrol/le.c  Tue May 19 12:16:44 2020
(r361250)
+++ head/usr.sbin/bluetooth/hccontrol/le.c  Tue May 19 13:44:32 2020
(r361251)
@@ -63,6 +63,10 @@ static int le_set_advertising_param(int s, int argc, c
 static int le_read_advertising_channel_tx_power(int s, int argc, char *argv[]);
 static int le_scan(int s, int argc, char *argv[]);
 static void handle_le_event(ng_hci_event_pkt_t* e, bool verbose);
+static int le_read_white_list_size(int s, int argc, char *argv[]);
+static int le_clear_white_list(int s, int argc, char *argv[]);
+static int le_add_device_to_white_list(int s, int argc, char *argv[]);
+static int le_remove_device_from_white_list(int s, int argc, char *argv[]);
 
 static int
 le_set_scan_param(int s, int argc, char *argv[])
@@ -762,6 +766,173 @@ static void handle_le_event(ng_hci_event_pkt_t* e, boo
}
 }
 
+static int
+le_read_white_list_size(int s, int argc, char *argv[])
+{
+   ng_hci_le_read_white_list_size_rp rp;
+   int n;
+
+   n = sizeof(rp);
+
+   if (hci_simple_request(s, NG_HCI_OPCODE(NG_HCI_OGF_LE,
+   NG_HCI_OCF_LE_READ_WHITE_LIST_SIZE), 
+   (void *), ) == ERROR)
+   return (ERROR);
+   
+   if (rp.status != 0x00) {
+   fprintf(stdout, "Status: %s [%#02x]\n", 
+   hci_status2str(rp.status), rp.status);
+   return (FAILED);
+   }
+
+fprintf(stdout, "White list size: %d\n",
+   (uint8_t)rp.white_list_size);
+
+   return (OK);
+}
+
+static int
+le_clear_white_list(int s, int argc, char *argv[])
+{
+   ng_hci_le_clear_white_list_rp rp;
+   int n;
+
+   n = sizeof(rp);
+
+   if (hci_simple_request(s, NG_HCI_OPCODE(NG_HCI_OGF_LE,
+   NG_HCI_OCF_LE_CLEAR_WHITE_LIST), 
+   (void *), ) == ERROR)
+   return (ERROR);
+   
+   if (rp.status != 0x00) {
+   fprintf(stdout, "Status: %s [%#02x]\n", 
+   hci_status2str(rp.status), rp.status);
+   return (FAILED);
+   }
+
+fprintf(stdout, "White list cleared\n");
+
+   return (OK);
+}
+
+static int
+le_add_device_to_white_list(int s, int argc, char *argv[])
+{
+   ng_hci_le_add_device_to_white_list_cp cp;
+   ng_hci_le_add_device_to_white_list_rp rp;
+   int n;
+   char ch;
+   optreset = 1;
+   optind = 0;
+   bool addr_set = false;
+
+   n = sizeof(rp);
+
+   cp.address_type = 0x00;
+
+   while ((ch = getopt(argc, argv , "t:a:")) != -1) {
+   switch(ch) {
+   case 't':
+   if (strcmp(optarg, "public") == 0)
+   cp.address_type = 0x00;
+   else if (strcmp(optarg, "random") == 0)
+   cp.address_type = 0x01;
+   else 
+   return (USAGE);
+   break;
+   case 'a':
+   addr_set = true;
+   if (!bt_aton(optarg, )) {
+   struct hostent  *he = NULL;
+
+   if ((he = bt_gethostbyname(optarg)) == NULL)
+   return (USAGE);
+
+   memcpy(, he->h_addr,
+   sizeof(cp.address));
+   }
+   break;
+   }
+   }
+
+   if (addr_set == false) 
+   return (USAGE);
+
+   if (hci_request(s, NG_HCI_OPCODE(NG_HCI_OGF_LE,
+   NG_HCI_OCF_LE_ADD_DEVICE_TO_WHITE_LIST), 
+   (void *), sizeof(cp), (void *), ) == ERROR)
+   return (ERROR);
+   
+   if (rp.status != 0x00) {
+   fprintf(stdout, "Status: %s [%#02x]\n", 
+

svn commit: r360899 - head/usr.sbin/bluetooth/hccontrol

2020-05-11 Thread Takanori Watanabe
Author: takawata
Date: Mon May 11 15:32:32 2020
New Revision: 360899
URL: https://svnweb.freebsd.org/changeset/base/360899

Log:
  Add le_scan subcommand to hccontrol.
  
  PR: 246141
  Submitted by: Marc Veldman

Added:
  head/usr.sbin/bluetooth/hccontrol/adv_data.c   (contents, props changed)
Modified:
  head/usr.sbin/bluetooth/hccontrol/Makefile
  head/usr.sbin/bluetooth/hccontrol/hccontrol.8
  head/usr.sbin/bluetooth/hccontrol/hccontrol.h
  head/usr.sbin/bluetooth/hccontrol/le.c
  head/usr.sbin/bluetooth/hccontrol/node.c
  head/usr.sbin/bluetooth/hccontrol/util.c

Modified: head/usr.sbin/bluetooth/hccontrol/Makefile
==
--- head/usr.sbin/bluetooth/hccontrol/Makefile  Mon May 11 15:21:03 2020
(r360898)
+++ head/usr.sbin/bluetooth/hccontrol/Makefile  Mon May 11 15:32:32 2020
(r360899)
@@ -8,7 +8,7 @@ PROG=   hccontrol
 MAN=   hccontrol.8
 SRCS=  send_recv.c link_policy.c link_control.c le.c\
host_controller_baseband.c info.c status.c node.c hccontrol.c \
-   util.c
+   util.c adv_data.c
 WARNS?=2
 
 LIBADD=bluetooth

Added: head/usr.sbin/bluetooth/hccontrol/adv_data.c
==
--- /dev/null   00:00:00 1970   (empty, because file is newly added)
+++ head/usr.sbin/bluetooth/hccontrol/adv_data.cMon May 11 15:32:32 
2020(r360899)
@@ -0,0 +1,249 @@
+/*-
+ * adv_data.c
+ *
+ * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+
+ * Copyright (c) 2020 Marc Veldman 
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *notice, this list of conditions and the following disclaimer in the
+ *documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * $Id$
+ * $FreeBSD$
+ */
+
+#include 
+#include 
+#include 
+#include 
+#define L2CAP_SOCKET_CHECKED
+#include 
+#include "hccontrol.h"
+
+static char* const adv_data2str(int len, uint8_t* data, char* buffer,
+   int size);
+static char* const adv_name2str(int len, uint8_t* advdata, char* buffer,
+   int size);
+static char* const adv_uuid2str(int datalen, uint8_t* data, char* buffer,
+   int size);
+
+void dump_adv_data(int len, uint8_t* advdata)
+{
+   int n=0;
+   fprintf(stdout, "\tADV Data: ");
+   for (n = 0; n < len+1; n++) {
+   fprintf(stdout, "%02x ", advdata[n]);
+   }
+   fprintf(stdout, "\n");
+}
+
+void print_adv_data(int len, uint8_t* advdata)
+{
+   int n=0;
+   while(n < len)
+   {
+   char buffer[2048];
+   uint8_t datalen = advdata[n];
+   uint8_t datatype = advdata[++n];
+   /* Skip type */ 
+   ++n;
+   datalen--;
+   switch (datatype) {
+   case 0x01:
+   fprintf(stdout,
+   "\tFlags: %s\n",
+   adv_data2str(
+   datalen,
+   [n],
+   buffer,
+   sizeof(buffer)));
+   break;
+   case 0x02:
+   fprintf(stdout,
+   "\tIncomplete list of service"
+   " class UUIDs (16-bit): %s\n",
+   adv_data2str(
+   datalen,
+   [n],
+   buffer,
+   sizeof(buffer)));
+

svn commit: r360846 - head/sys/netgraph/bluetooth/include

2020-05-09 Thread Takanori Watanabe
Author: takawata
Date: Sat May  9 14:15:44 2020
New Revision: 360846
URL: https://svnweb.freebsd.org/changeset/base/360846

Log:
  Add space for RSSI in data member.
  RSSI is put just after actual data.
  
  Submitted by: Marc Veldman
  PR: 245920

Modified:
  head/sys/netgraph/bluetooth/include/ng_hci.h

Modified: head/sys/netgraph/bluetooth/include/ng_hci.h
==
--- head/sys/netgraph/bluetooth/include/ng_hci.hSat May  9 13:00:38 
2020(r360845)
+++ head/sys/netgraph/bluetooth/include/ng_hci.hSat May  9 14:15:44 
2020(r360846)
@@ -1980,7 +1980,8 @@ typedef struct {
u_int8_t addr_type;
bdaddr_t bdaddr;
u_int8_t length_data;
-   u_int8_t data[NG_HCI_SCAN_RESPONSE_DATA_MAX];
+   /* The last octet is for RSSI */
+   u_int8_t data[NG_HCI_SCAN_RESPONSE_DATA_MAX+1];
 }__attribute__((packed)) ng_hci_le_advreport;
 
 #define NG_HCI_LEEV_CON_UPDATE_COMPL 0x03
___
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"


svn commit: r360806 - head/usr.sbin/bluetooth/hccontrol

2020-05-07 Thread Takanori Watanabe
Author: takawata
Date: Fri May  8 01:19:29 2020
New Revision: 360806
URL: https://svnweb.freebsd.org/changeset/base/360806

Log:
  Document le_enable subcommand

Modified:
  head/usr.sbin/bluetooth/hccontrol/hccontrol.8

Modified: head/usr.sbin/bluetooth/hccontrol/hccontrol.8
==
--- head/usr.sbin/bluetooth/hccontrol/hccontrol.8   Fri May  8 00:04:25 
2020(r360805)
+++ head/usr.sbin/bluetooth/hccontrol/hccontrol.8   Fri May  8 01:19:29 
2020(r360806)
@@ -145,6 +145,7 @@ are:
 .It Cm Reset_Failed_Contact_Counter
 .It Cm Get_Link_Quality
 .It Cm Read_RSSI
+.It Cm LE_Enable
 .It Cm LE_Read_Local_Supported_Features
 .It Cm LE_Set_Advertising_Parameters 
 .It Cm LE_Read_Advertising_Physical_Channel_Tx_Power 
___
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"


svn commit: r360440 - in head: sys/netgraph/bluetooth/include usr.sbin/bluetooth/hccontrol

2020-04-28 Thread Takanori Watanabe
Author: takawata
Date: Tue Apr 28 16:00:34 2020
New Revision: 360440
URL: https://svnweb.freebsd.org/changeset/base/360440

Log:
  Add le_read_buffer_size command and manpage.
  It supports both v1 and v2 command.
  
  PR:245964
  Submitted by: Marc Veldman 

Modified:
  head/sys/netgraph/bluetooth/include/ng_hci.h
  head/usr.sbin/bluetooth/hccontrol/hccontrol.8
  head/usr.sbin/bluetooth/hccontrol/le.c

Modified: head/sys/netgraph/bluetooth/include/ng_hci.h
==
--- head/sys/netgraph/bluetooth/include/ng_hci.hTue Apr 28 15:44:39 
2020(r360439)
+++ head/sys/netgraph/bluetooth/include/ng_hci.hTue Apr 28 16:00:34 
2020(r360440)
@@ -1672,6 +1672,15 @@ typedef struct {
u_int16_t connection_handle;
 }__attribute__ ((packed)) ng_hci_le_long_term_key_request_negative_reply_rp;
 
+#define NG_HCI_OCF_LE_READ_BUFFER_SIZE_V2  0x0060
+/*No command parameter */
+typedef struct {
+   u_int8_tstatus;
+   u_int16_t   hc_le_data_packet_length;
+   u_int8_thc_total_num_le_data_packets; 
+   u_int16_t   hc_iso_data_packet_length;
+   u_int8_thc_total_num_iso_data_packets; 
+} __attribute__ ((packed)) ng_hci_le_read_buffer_size_rp_v2;
 
 #define NG_HCI_OCF_LE_READ_SUPPORTED_STATES0x001c
 /*No command parameter*/

Modified: head/usr.sbin/bluetooth/hccontrol/hccontrol.8
==
--- head/usr.sbin/bluetooth/hccontrol/hccontrol.8   Tue Apr 28 15:44:39 
2020(r360439)
+++ head/usr.sbin/bluetooth/hccontrol/hccontrol.8   Tue Apr 28 16:00:34 
2020(r360440)
@@ -25,7 +25,7 @@
 .\" $Id: hccontrol.8,v 1.6 2003/08/06 21:26:38 max Exp $
 .\" $FreeBSD$
 .\"
-.Dd April 24, 2020
+.Dd April 27, 2020
 .Dt HCCONTROL 8
 .Os
 .Sh NAME
@@ -154,6 +154,7 @@ are:
 .It Cm LE_Set_Scan_Parameters
 .It Cm LE_Set_Scan_Enable
 .It Cm LE_Read_Supported_States
+.It Cm LE_Read_Buffer_Size
 .El
 .Pp
 The currently supported node commands in

Modified: head/usr.sbin/bluetooth/hccontrol/le.c
==
--- head/usr.sbin/bluetooth/hccontrol/le.c  Tue Apr 28 15:44:39 2020
(r360439)
+++ head/usr.sbin/bluetooth/hccontrol/le.c  Tue Apr 28 16:00:34 2020
(r360440)
@@ -554,7 +554,65 @@ le_set_advertising_data(int s, int argc, char *argv[])
 
return (OK);
 }
+static int
+le_read_buffer_size(int s, int argc, char *argv[])
+{
+   union {
+   ng_hci_le_read_buffer_size_rp   v1;
+   ng_hci_le_read_buffer_size_rp_v2v2;
+   } rp;
 
+   int n, ch;
+   uint8_t v;
+   uint16_t cmd;
+
+   optreset = 1;
+   optind = 0;
+
+   /* Default to version 1*/
+   v = 1;
+   cmd = NG_HCI_OCF_LE_READ_BUFFER_SIZE;
+
+   while ((ch = getopt(argc, argv , "v:")) != -1) {
+   switch(ch) {
+   case 'v':
+   v = (uint8_t)strtol(optarg, NULL, 16);   
+   if (v == 2) 
+   cmd = NG_HCI_OCF_LE_READ_BUFFER_SIZE_V2;
+   else if (v > 2)
+   return (USAGE);
+   break;
+   default:
+   v = 1;
+   }
+   }
+
+   n = sizeof(rp);
+   if (hci_simple_request(s, NG_HCI_OPCODE(NG_HCI_OGF_LE, cmd), 
+   (void *), ) == ERROR)
+   return (ERROR);
+   
+   if (rp.v1.status != 0x00) {
+   fprintf(stdout, "Status: %s [%#02x]\n", 
+   hci_status2str(rp.v1.status), rp.v1.status);
+   return (FAILED);
+   }
+
+   fprintf(stdout, "ACL data packet length: %d\n",
+   rp.v1.hc_le_data_packet_length);
+   fprintf(stdout, "Number of ACL data packets: %d\n",
+   rp.v1.hc_total_num_le_data_packets);
+
+   if (v == 2) {
+   fprintf(stdout, "ISO data packet length: %d\n",
+   rp.v2.hc_iso_data_packet_length);
+   fprintf(stdout, "Number of ISO data packets: %d\n",
+   rp.v2.hc_total_num_iso_data_packets);
+   }
+
+   return (OK);
+}
+
 struct hci_command le_commands[] = {
 {
"le_enable",
@@ -620,5 +678,11 @@ struct hci_command le_commands[] = {
  "le_set_advertising_data -n $name -f $flag -u $uuid16,$uuid16 \n"
  "set LE device advertising packed data",
  _set_advertising_data
+  },
+  {
+ "le_read_buffer_size",
+ "le_read_buffer_size [-v 1|2]\n"
+ "Read the maximum size of ACL and ISO data packets",
+ _read_buffer_size
   },
 };
___
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to 

svn commit: r360435 - head/usr.sbin/bluetooth/hccontrol

2020-04-28 Thread Takanori Watanabe
Author: takawata
Date: Tue Apr 28 13:28:58 2020
New Revision: 360435
URL: https://svnweb.freebsd.org/changeset/base/360435

Log:
  Improve error handling
  Check return values from hci_request()
  Check rp.status
  Print error messages with hci_status2str()
  
  PR:   245769
  Submitted by: Marc Veldman

Modified:
  head/usr.sbin/bluetooth/hccontrol/le.c

Modified: head/usr.sbin/bluetooth/hccontrol/le.c
==
--- head/usr.sbin/bluetooth/hccontrol/le.c  Tue Apr 28 13:16:35 2020
(r360434)
+++ head/usr.sbin/bluetooth/hccontrol/le.c  Tue Apr 28 13:28:58 2020
(r360435)
@@ -69,20 +69,20 @@ le_set_scan_param(int s, int argc, char *argv[])
int window;
int adrtype;
int policy;
-   int e, n;
+   int n;
 
ng_hci_le_set_scan_parameters_cp cp;
ng_hci_le_set_scan_parameters_rp rp;
 
if (argc != 5)
-   return USAGE;
+   return (USAGE);

if (strcmp(argv[0], "active") == 0)
type = 1;
else if (strcmp(argv[0], "passive") == 0)
type = 0;
else
-   return USAGE;
+   return (USAGE);
 
interval = (int)(atof(argv[1])/0.625);
interval = (interval < 4)? 4: interval;
@@ -94,14 +94,14 @@ le_set_scan_param(int s, int argc, char *argv[])
else if (strcmp(argv[3], "random") == 0)
adrtype = 1;
else
-   return USAGE;
+   return (USAGE);
 
if (strcmp(argv[4], "all") == 0)
policy = 0;
else if (strcmp(argv[4], "whitelist") == 0)
policy = 1;
else
-   return USAGE;
+   return (USAGE);
 
cp.le_scan_type = type;
cp.le_scan_interval = interval;
@@ -109,11 +109,19 @@ le_set_scan_param(int s, int argc, char *argv[])
cp.le_scan_window = window;
cp.scanning_filter_policy = policy;
n = sizeof(rp);
-   e = hci_request(s, NG_HCI_OPCODE(NG_HCI_OGF_LE,
+
+   if (hci_request(s, NG_HCI_OPCODE(NG_HCI_OGF_LE,
NG_HCI_OCF_LE_SET_SCAN_PARAMETERS), 
-   (void *), sizeof(cp), (void *), );
+   (void *), sizeof(cp), (void *), ) == ERROR)
+   return (ERROR);
 
-   return 0;
+   if (rp.status != 0x00) {
+   fprintf(stdout, "Status: %s [%#02x]\n", 
+   hci_status2str(rp.status), rp.status);
+   return (FAILED);
+   }
+
+   return (OK);
 }
 
 static int
@@ -121,27 +129,35 @@ le_set_scan_enable(int s, int argc, char *argv[])
 {
ng_hci_le_set_scan_enable_cp cp;
ng_hci_le_set_scan_enable_rp rp;
-   int e, n, enable = 0;
+   int n, enable = 0;
 
if (argc != 1)
-   return USAGE;
+   return (USAGE);
  
if (strcmp(argv[0], "enable") == 0)
enable = 1;
else if (strcmp(argv[0], "disable") != 0)
-   return USAGE;
+   return (USAGE);
 
n = sizeof(rp);
cp.le_scan_enable = enable;
cp.filter_duplicates = 0;
-   e = hci_request(s, NG_HCI_OPCODE(NG_HCI_OGF_LE,
+   if (hci_request(s, NG_HCI_OPCODE(NG_HCI_OGF_LE,
NG_HCI_OCF_LE_SET_SCAN_ENABLE), 
-   (void *), sizeof(cp), (void *), );
+   (void *), sizeof(cp),
+   (void *), ) == ERROR)
+   return (ERROR);

-   if (e != 0 || rp.status != 0)
-   return ERROR;
+   if (rp.status != 0x00) {
+   fprintf(stdout, "Status: %s [%#02x]\n", 
+   hci_status2str(rp.status), rp.status);
+   return (FAILED);
+   }
 
-   return OK;
+   fprintf(stdout, "LE Scan: %s\n",
+   enable? "Enabled" : "Disabled");
+
+   return (OK);
 }
 
 static int
@@ -197,7 +213,7 @@ parse_param(int argc, char *argv[], char *buf, int *le
 done:
*len = curbuf - buf;
 
-   return OK;
+   return (OK);
 }
 
 static int
@@ -206,7 +222,6 @@ le_set_scan_response(int s, int argc, char *argv[])
ng_hci_le_set_scan_response_data_cp cp;
ng_hci_le_set_scan_response_data_rp rp;
int n;
-   int e;
int len;
char buf[NG_HCI_ADVERTISING_DATA_SIZE];
 
@@ -216,13 +231,19 @@ le_set_scan_response(int s, int argc, char *argv[])
cp.scan_response_data_length = len;
memcpy(cp.scan_response_data, buf, len);
n = sizeof(rp);
-   e = hci_request(s, NG_HCI_OPCODE(NG_HCI_OGF_LE,
+   if (hci_request(s, NG_HCI_OPCODE(NG_HCI_OGF_LE,
NG_HCI_OCF_LE_SET_SCAN_RESPONSE_DATA), 
-   (void *), sizeof(cp), (void *), );
+   (void *), sizeof(cp),
+   (void *), ) == ERROR)
+   return (ERROR);

-   printf("SET SCAN RESPONSE %d 

svn commit: r360369 - head/usr.sbin/bluetooth/hccontrol

2020-04-27 Thread Takanori Watanabe
Author: takawata
Date: Mon Apr 27 09:13:22 2020
New Revision: 360369
URL: https://svnweb.freebsd.org/changeset/base/360369

Log:
  Resolve vendor id to string.

Modified:
  head/usr.sbin/bluetooth/hccontrol/node.c

Modified: head/usr.sbin/bluetooth/hccontrol/node.c
==
--- head/usr.sbin/bluetooth/hccontrol/node.cMon Apr 27 05:35:26 2020
(r360368)
+++ head/usr.sbin/bluetooth/hccontrol/node.cMon Apr 27 09:13:22 2020
(r360369)
@@ -267,7 +267,8 @@ static int  hci_dump_adv(uint8_t *data, int length)
case 0xff:
if (elemlen < 2)
break;
-   printf("Vendor:%04x:", data[0]|data[1]<<8);
+   printf("Vendor:%s:",
+  hci_manufacturer2str(data[0]|data[1]<<8));
for (i = 2; i < MIN(length,elemlen); i++) {
printf("%02x ",data[i]);
}
___
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"


svn commit: r360360 - head/usr.sbin/bluetooth/hccontrol

2020-04-26 Thread Takanori Watanabe
Author: takawata
Date: Mon Apr 27 02:48:49 2020
New Revision: 360360
URL: https://svnweb.freebsd.org/changeset/base/360360

Log:
  Fix advertise packet parsing.
  
  Differential Revision:https://reviews.freebsd.org/D21779

Modified:
  head/usr.sbin/bluetooth/hccontrol/node.c

Modified: head/usr.sbin/bluetooth/hccontrol/node.c
==
--- head/usr.sbin/bluetooth/hccontrol/node.cMon Apr 27 02:01:48 2020
(r360359)
+++ head/usr.sbin/bluetooth/hccontrol/node.cMon Apr 27 02:48:49 2020
(r360360)
@@ -40,6 +40,7 @@
 #include 
 #include 
 #include 
+#include 
 #include "hccontrol.h"
 
 /* Send Read_Node_State command to the node */
@@ -222,23 +223,53 @@ static int  hci_dump_adv(uint8_t *data, int length)
elemlen = *data;
data++;
length --;
-   elemlen--;
if(length<=0)
break;
type = *data;
data++;
length --;
elemlen--;
-   if(length<=0)
+   if(length <= 0)
break;
switch(type){
case 0x1:
printf("NDflag:%x\n", *data);
break;
+   case 0x8:
case 0x9:
printf("LocalName:");
for(i = 0; i < MIN(length,elemlen); i++){
putchar(data[i]);
+   }
+   printf("\n");
+   break;
+   case 0x6:
+   case 0x7:
+   {
+   uuid_t uuid;
+   char *uuidstr;
+   uint32_t ustatus;
+   if (elemlen < 16)
+   break;
+   uuid.time_low = le32dec(data+12);
+   uuid.time_mid = le16dec(data+10);
+   uuid.time_hi_and_version = le16dec(data+8);
+   uuid.clock_seq_hi_and_reserved = data[7];
+   uuid.clock_seq_low = data[6];
+   for(i = 0; i < _UUID_NODE_LEN; i++){
+   uuid.node[i] = data[5 - i];
+   }
+   uuid_to_string(, , );
+   
+   printf("ServiceUUID: %s\n", uuidstr);
+   break;
+   }   
+   case 0xff:
+   if (elemlen < 2)
+   break;
+   printf("Vendor:%04x:", data[0]|data[1]<<8);
+   for (i = 2; i < MIN(length,elemlen); i++) {
+   printf("%02x ",data[i]);
}
printf("\n");
break;
___
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"


svn commit: r359560 - head/sys/netgraph/bluetooth/hci

2020-04-02 Thread Takanori Watanabe
Author: takawata
Date: Thu Apr  2 09:15:31 2020
New Revision: 359560
URL: https://svnweb.freebsd.org/changeset/base/359560

Log:
  Fix mbuf handling in le advertize  packet processing.
  
  Submitted by: Marc Veldman 

Modified:
  head/sys/netgraph/bluetooth/hci/ng_hci_evnt.c

Modified: head/sys/netgraph/bluetooth/hci/ng_hci_evnt.c
==
--- head/sys/netgraph/bluetooth/hci/ng_hci_evnt.c   Thu Apr  2 07:42:29 
2020(r359559)
+++ head/sys/netgraph/bluetooth/hci/ng_hci_evnt.c   Thu Apr  2 09:15:31 
2020(r359560)
@@ -381,17 +381,20 @@ le_advertizing_report(ng_hci_unit_p unit, struct mbuf 
ng_hci_neighbor_pn = NULL;
bdaddr_t bdaddr;
int  error = 0;
+   int  num_reports = 0;
u_int8_t event_type;
u_int8_t addr_type;
-
+   
NG_HCI_M_PULLUP(event, sizeof(*ep));
if (event == NULL)
return (ENOBUFS);
 
ep = mtod(event, ng_hci_le_advertising_report_ep *);
+   num_reports = ep->num_reports;
m_adj(event, sizeof(*ep));
-
-   for (; ep->num_reports > 0; ep->num_reports --) {
+   ep = NULL;
+   
+   for (; num_reports > 0; num_reports --) {
/* Get remote unit address */
NG_HCI_M_PULLUP(event, sizeof(u_int8_t));
event_type = *mtod(event, u_int8_t *);
___
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"


svn commit: r359479 - in head: share/man/man4 sys/dev/intel sys/modules sys/modules/pchtherm

2020-03-31 Thread Takanori Watanabe
Author: takawata
Date: Tue Mar 31 06:25:43 2020
New Revision: 359479
URL: https://svnweb.freebsd.org/changeset/base/359479

Log:
  Add Platform Controller Hub built-in thermal management device driver.
  
  Differential Revision:https://reviews.freebsd.org/D24077

Added:
  head/share/man/man4/pchtherm.4   (contents, props changed)
  head/sys/dev/intel/pchtherm.c   (contents, props changed)
  head/sys/modules/pchtherm/
  head/sys/modules/pchtherm/Makefile   (contents, props changed)
Modified:
  head/share/man/man4/Makefile
  head/sys/modules/Makefile

Modified: head/share/man/man4/Makefile
==
--- head/share/man/man4/MakefileTue Mar 31 02:36:39 2020
(r359478)
+++ head/share/man/man4/MakefileTue Mar 31 06:25:43 2020
(r359479)
@@ -404,6 +404,7 @@ MAN=aac.4 \
pccard.4 \
pccbb.4 \
pcf.4 \
+   ${_pchtherm.4} \
pci.4 \
pcib.4 \
pcic.4 \
@@ -815,6 +816,7 @@ _nvd.4= nvd.4
 _nvme.4=   nvme.4
 _nvram.4=  nvram.4
 _padlock.4=padlock.4
+_pchtherm.4=   pchtherm.4
 _rr232x.4= rr232x.4
 _speaker.4=speaker.4
 _spkr.4=   spkr.4

Added: head/share/man/man4/pchtherm.4
==
--- /dev/null   00:00:00 1970   (empty, because file is newly added)
+++ head/share/man/man4/pchtherm.4  Tue Mar 31 06:25:43 2020
(r359479)
@@ -0,0 +1,117 @@
+.\"
+.\" Copyright (c) 2020 Takanori Watanabe 
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\"notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\"notice, this list of conditions and the following disclaimer in the
+.\"documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" $FreeBSD$
+.\"
+.Dd March 15, 2020
+.Dt pchtherm 4
+.Os
+.Sh NAME
+.Nm pchtherm
+.Nd Intel PCH thermal subsystem
+.Sh SYNOPSIS
+.Cd "device pci"
+.Cd "device pchtherm"
+.Sh DESCRIPTION
+The
+.Nm
+driver provides access to sensor data and configuration 
+installed in Intel PCH chipset.
+.Nm
+configuration register.
+.Pp
+The access to
+.Nm
+data is made via the
+.Xr sysctl 8
+interface:
+.Bd -literal
+dev.pchtherm.0.ctt: 115.0C
+dev.pchtherm.0.temperature: 28.5C
+dev.pchtherm.0.t2temp: 91.0C
+dev.pchtherm.0.t1temp: 86.0C
+dev.pchtherm.0.t0temp: 81.0C
+dev.pchtherm.0.tahv: 83.0C
+dev.pchtherm.0.talv: 30.0C
+dev.pchtherm.0.pmtime: 32
+dev.pchtherm.0.pmtemp: 50.0C
+dev.pchtherm.0.%parent: pci0
+dev.pchtherm.0.%pnpinfo: vendor=0x8086 device=0x9d31 subvendor=0x17aa 
subdevice=0x2256 class=0x118000
+dev.pchtherm.0.%location: slot=20 function=2 dbsf=pci0:0:20:2
+dev.pchtherm.0.%driver: pchtherm
+dev.pchtherm.0.%desc: Skylake PCH Thermal Subsystem
+dev.pchtherm.%parent: 
+.Ed
+.Bl -tag -width ".Va dev.pchtherm.%d.pch_hot_level"
+.It Va dev.pchtherm.%d.temperature
+Is the read-only value of the current temperature read by the sensor.
+.It Va dev.pchtherm.%d.ctt
+When the system reaches this temperature, it will shut down.
+This will not appear when this feature is disabled and locked down.
+.It Va dev.pchtherm.%d.t0temp
+When temperature is under this value, system will be in T0 state.
+.It Va dev.pchtherm.%d.t1temp
+When temperature is over
+.Va t0temp
+and under this value, system will be in T1 state.
+.It Va dev.pchtherm.%d.t2temp
+When temperature is over
+.Va t1temp
+and under this value, system will be in T2 state.
+Over this value, system will be in T3 state.
+.It Va dev.pchtherm.%d.talv
+Lower alart value.
+This will not appear when sensor enable bit is locked down and the value is 
zero(which will show -50.0C).
+.It Va dev.pchtherm.%d.tahv
+High alart value.
+This will not appear when sensor enable bit is locked down and the value i

svn commit: r355574 - head/share/man/man4

2019-12-09 Thread Takanori Watanabe
Author: takawata
Date: Tue Dec 10 02:19:07 2019
New Revision: 355574
URL: https://svnweb.freebsd.org/changeset/base/355574

Log:
  Add ACPI battery subsystem man page.
  
  PR:242100
  Differential Revision:https://reviews.freebsd.org/D22556

Added:
  head/share/man/man4/acpi_battery.4   (contents, props changed)
Modified:
  head/share/man/man4/Makefile

Modified: head/share/man/man4/Makefile
==
--- head/share/man/man4/MakefileTue Dec 10 00:08:05 2019
(r355573)
+++ head/share/man/man4/MakefileTue Dec 10 02:19:07 2019
(r355574)
@@ -16,6 +16,7 @@ MAN=  aac.4 \
${_acpi_rapidstart.4} \
${_acpi_sony.4} \
acpi_thermal.4 \
+   acpi_battery.4 \
${_acpi_toshiba.4} \
acpi_video.4 \
${_acpi_wmi.4} \

Added: head/share/man/man4/acpi_battery.4
==
--- /dev/null   00:00:00 1970   (empty, because file is newly added)
+++ head/share/man/man4/acpi_battery.4  Tue Dec 10 02:19:07 2019
(r355574)
@@ -0,0 +1,283 @@
+.\"
+.\" Copyright (c) 2019 Takanori Watanabe
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\"notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\"notice, this list of conditions and the following disclaimer in the
+.\"documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" $FreeBSD$
+.\"
+.Dd November 26, 2019
+.Dt ACPI_BATTERY 4
+.Os
+.Sh NAME
+.Nm acpi_battery
+.Nd ACPI battery management subsystem
+.Sh SYNOPSIS
+.Cd "device acpi"
+.Sh DESCRIPTION
+The
+.Nm
+is a driver for battery management features of the ACPI module.
+An ACPI-compatible battery device supports either a Control
+Method Battery interface or a Smart Battery subsystem interface.
+The former is accessed by the AML
+.Pq ACPI Machine Language
+code control methods,
+and the latter is controlled directly through the ACPI EC
+.Pq Embedded Controller
+typically via an SMBus interface.
+This driver supports the 
+.Xr sysctl 8
+and
+.Xr ioctl 2
+interfaces as well as the
+.Xr devd 8
+event notification interface.
+.Sh IOCTLS
+Every ioctl for the
+.Nm
+driver takes a single integer value for the battery unit
+number as an argument,
+and returns a specific structure for each request.
+A special unit number
+.Li ACPI_BATTERY_ALL_UNITS
+specifies all of the attached units
+and reports accumulated information.
+.Bl -tag -width indent
+.It ACPIIO_BATT_GET_UNITS Vt int
+Returns the number of battery units in the system.
+The unit number argument will be ignored.
+.It ACPIIO_BATT_GET_BATTINFO Vt struct acpi_battinfo
+Returns the following:
+.Bl -tag -width indent
+.It cap
+Battery capacity in percent,
+.It min
+Remaining battery life in minutes,
+.It state
+Current status of the battery encoded in the following:
+.Bl -tag -width indent
+.It ACPI_BATT_STAT_DISCHARG Pq 0x0001
+Battery is discharging,
+.It ACPI_BATT_STAT_CHARGING Pq 0x0002
+Battery is being charged, or
+.It ACPI_BATT_STAT_CRITICAL Pq 0x0004
+Remaining battery life is critically low.
+.El
+.Pp
+Note that the status bits of each battery will be
+consolidated when
+.Li ACPI_BATTERY_ALL_UNITS
+is specified.
+.It rate
+Current battery discharging rate in mW.
+.Li -1
+means not discharging right now.
+.El
+.It ACPIIO_BATT_GET_BIF Vt struct acpi_bif
+Returns battery information given by the ACPI
+.Li _BIF Pq Battery Information
+object,
+which is the static portion of the Control Method
+Battery information.
+In the case of a Smart Battery attached to SMBus,
+this ioctl will build a
+.Vt struct acpi_bif
+structure based on the obtained information
+and return it.
+.Bl -tag -width ind

svn commit: r351930 - in head: share/man/man4 sys/dev/acpi_support

2019-09-06 Thread Takanori Watanabe
Author: takawata
Date: Fri Sep  6 10:12:05 2019
New Revision: 351930
URL: https://svnweb.freebsd.org/changeset/base/351930

Log:
  Add embedded Managed Object Format blob access to acpi_wmi(4).
  This blob is can be converted to human readable form by bmfdec.
  (http://github.com/pali/bmfdec)
  
  Differential Revision:https://reviews.freebsd.org/D21529

Modified:
  head/share/man/man4/acpi_wmi.4
  head/sys/dev/acpi_support/acpi_wmi.c

Modified: head/share/man/man4/acpi_wmi.4
==
--- head/share/man/man4/acpi_wmi.4  Fri Sep  6 08:08:33 2019
(r351929)
+++ head/share/man/man4/acpi_wmi.4  Fri Sep  6 10:12:05 2019
(r351930)
@@ -24,7 +24,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd November 22, 2011
+.Dd Sep 5, 2019
 .Dt ACPI_WMI 4
 .Os
 .Sh NAME
@@ -56,6 +56,15 @@ information about GUIDs found in the system.
 .It Pa /dev/wmistat%d
 WMI status device.
 .El
+.Sh SYSCTLS
+The following sysctl node is currently implemented:
+.Bl -tag 
+.It Va dev.acpi_wmi.%d.bmof
+Managed Object Format (MOF) blob.
+You can obtain human readable output by bmf2mof in bmfdec tool.
+(https://github.com/pali/bmfdec)
+.El
+
 .Sh EXAMPLES
 .Bd -literal
 # cat /dev/wmistat0
@@ -72,6 +81,20 @@ GUID  INST EXPE METH S
 {8232DE3D-663D-4327-A8F4-E293ADB9BF05}   0 NO   NO   NO  NOBG
 {8F1F6436-9F42-42C8-BADC-0E9424F20C9A}   0 NO   NO   NO  NOBH
 {8F1F6435-9F42-42C8-BADC-0E9424F20C9A}   0 NO   NO   NO  NOBI
+# sysctl -b dev.acpi_wmi.0.bmof |bmf2mof
+[abstract]
+class Lenovo_BIOSElement {
+};
+
+[WMI, Dynamic, Provider("WMIProv"), WmiExpense(1), Description("Bios Setting"),
+GUID("{51F5230E-9677-46cd-A1CF-C0B23EE34DB7}"), Locale("MS\\0x409")]
+class Lenovo_BiosSetting : Lenovo_BiosElement {
+  [key, read] String InstanceName;
+[read] Boolean Active;
+  [WmiDataId(1), Description("BIOS setting")] String CurrentSetting;
+  };
+   ...
+
 .Ed
 .Sh SEE ALSO
 .Xr acpi 4
@@ -91,6 +114,9 @@ Work has been inspired by the Linux acpi-wmi driver wr
 .Pp
 See http://www.microsoft.com/whdc/system/pnppwr/wmi/wmi-acpi.mspx for
 the specification of ACPI-WMI.
+.Pp
+MOF part has been inspired by the Linux wmi-bmof driver
+written by Andy Lutomirski.
 .Pp
 This manual page was written by
 .An Michael Gmelin Aq Mt free...@grem.de .

Modified: head/sys/dev/acpi_support/acpi_wmi.c
==
--- head/sys/dev/acpi_support/acpi_wmi.cFri Sep  6 08:08:33 2019
(r351929)
+++ head/sys/dev/acpi_support/acpi_wmi.cFri Sep  6 10:12:05 2019
(r351930)
@@ -62,6 +62,7 @@ ACPI_MODULE_NAME("ACPI_WMI");
 #define ACPI_WMI_REGFLAG_METHOD0x2 /* GUID flag: Method 
call */
 #define ACPI_WMI_REGFLAG_STRING0x4 /* GUID flag: String */
 #define ACPI_WMI_REGFLAG_EVENT 0x8 /* GUID flag: Event */
+#define ACPI_WMI_BMOF_UUID "05901221-D566-11D1-B2F0-00A0C9062910"
 
 /*
  * acpi_wmi driver private structure
@@ -74,6 +75,8 @@ struct acpi_wmi_softc {
struct sbuf wmistat_sbuf;   /* sbuf for /dev/wmistat output */
pid_t   wmistat_open_pid; /* pid operating on /dev/wmistat */
int wmistat_bufptr; /* /dev/wmistat ptr to buffer position 
*/
+   char*mofbuf;
+   
TAILQ_HEAD(wmi_info_list_head, wmi_info) wmi_info_list;
 };
 
@@ -274,6 +277,29 @@ acpi_wmi_attach(device_t dev)
}
ACPI_SERIAL_END(acpi_wmi);
 
+   if (acpi_wmi_provides_guid_string_method(dev, ACPI_WMI_BMOF_UUID)) {
+   ACPI_BUFFER out = { ACPI_ALLOCATE_BUFFER, NULL };
+   ACPI_OBJECT *obj;
+
+   device_printf(dev, "Embedded MOF found\n");
+   status = acpi_wmi_get_block_method(dev,  ACPI_WMI_BMOF_UUID,
+   0, );
+   if (ACPI_SUCCESS(status)) {
+   obj = out.Pointer;
+   if (obj && obj->Type == ACPI_TYPE_BUFFER) {
+   SYSCTL_ADD_OPAQUE(device_get_sysctl_ctx(dev),
+   SYSCTL_CHILDREN(
+   device_get_sysctl_tree(dev)),
+   OID_AUTO, "bmof", 
+   CTLFLAG_RD | CTLFLAG_MPSAFE,
+   obj->Buffer.Pointer,
+   obj->Buffer.Length,
+   "A", "MOF Blob");
+   }
+   }
+   sc->mofbuf = out.Pointer;
+   }
+   
if (ret == 0) {
bus_generic_probe(dev);
ret = bus_generic_attach(dev);
@@ -321,6 +347,7 @@ acpi_wmi_detach(device_t dev)
sc->wmistat_open_pid = 0;
destroy_dev(sc->wmistat_dev_t);
ret = 0;
+   AcpiOsFree(sc->mofbuf);
}

svn commit: r350558 - head/sys/dev/usb

2019-08-03 Thread Takanori Watanabe
Author: takawata
Date: Sat Aug  3 16:13:44 2019
New Revision: 350558
URL: https://svnweb.freebsd.org/changeset/base/350558

Log:
  Add per hub sysctl to expose port information for phyisical form etc.
  
  Reviewed by:hselasky
  Differential Revision:https://reviews.freebsd.org/D20865

Modified:
  head/sys/dev/usb/usb_hub_acpi.c

Modified: head/sys/dev/usb/usb_hub_acpi.c
==
--- head/sys/dev/usb/usb_hub_acpi.c Sat Aug  3 14:42:07 2019
(r350557)
+++ head/sys/dev/usb/usb_hub_acpi.c Sat Aug  3 16:13:44 2019
(r350558)
@@ -79,11 +79,22 @@
 #include 
 #include 
 #include 
+#include 
 
+#define ACPI_PLD_SIZE 20
+struct acpi_uhub_port {
+   ACPI_HANDLE handle;
+#defineACPI_UPC_CONNECTABLE 0x8000
+#defineACPI_UPC_PORTTYPE(x) ((x)&0xff)
+   uint32_t upc;
+   uint8_t pld[ACPI_PLD_SIZE];
+};
+
 struct acpi_uhub_softc {
struct uhub_softc usc;
uint8_t nports;
-   ACPI_HANDLE *porthandle;
+   ACPI_HANDLE ah;
+   struct acpi_uhub_port *port;
 };
 
 static UINT32
@@ -107,51 +118,157 @@ acpi_uhub_find_rh_cb(ACPI_HANDLE ah, UINT32 nl, void *
return (ret);
 }
 
+static const char *
+acpi_uhub_upc_type(uint8_t type)
+{
+   const char *typelist[] = {"TypeA", "MiniAB", "Express",
+ "USB3-A", "USB3-B", "USB-MicroB",
+ "USB3-MicroAB", "USB3-PowerB",
+ "TypeC-USB2", "TypeC-Switch",
+ "TypeC-nonSwitch"};
+   const int last = sizeof(typelist) / sizeof(typelist[0]);
+
+   if (type == 0xff) {
+   return "Proprietary";
+   }
+
+   return (type < last) ? typelist[type] : "Unknown";
+}
+
 static int
-acpi_uhub_parse_upc(device_t dev, unsigned int port, ACPI_HANDLE ah)
+acpi_uhub_parse_upc(device_t dev, unsigned int p, ACPI_HANDLE ah, struct 
sysctl_oid_list *poid)
 {
ACPI_BUFFER buf;
+   struct acpi_uhub_softc *sc = device_get_softc(dev);
+   struct acpi_uhub_port *port = >port[p - 1];
 
buf.Pointer = NULL;
buf.Length = ACPI_ALLOCATE_BUFFER;
 
if (AcpiEvaluateObject(ah, "_UPC", NULL, ) == AE_OK) {
-   UINT64 porttypenum, conn;
-   const char *connectable;
-   const char *typelist[] = {
-   "TypeA", "MiniAB", "Express",
-   "USB3-A", "USB3-B", "USB-MicroB",
-   "USB3-MicroAB", "USB3-PowerB",
-   "TypeC-USB2", "TypeC-Switch",
-   "TypeC-nonSwitch"
-   };
-   const char *porttype;
-   const int last = sizeof(typelist) / sizeof(typelist[0]);
ACPI_OBJECT *obj = buf.Pointer;
+   UINT64 porttypenum, conn;
+   uint8_t *connectable;
 
acpi_PkgInt(obj, 0, );
acpi_PkgInt(obj, 1, );
connectable = conn ? "" : "non";
-   if (porttypenum == 0xff)
-   porttype = "Proprietary";
-   else if (porttypenum < last) {
-   porttype = typelist[porttypenum];
-   } else {
-   porttype = "Unknown";
-   }
+
+   port->upc = porttypenum;
+   port->upc |= (conn) ? (ACPI_UPC_CONNECTABLE) : 0;
+
if (usb_debug)
device_printf(dev, "Port %u %sconnectable %s\n",
-   port, connectable, porttype);
+   p, connectable,
+   acpi_uhub_upc_type(porttypenum));
+
+   SYSCTL_ADD_U32(
+   device_get_sysctl_ctx(dev),
+   poid, OID_AUTO,
+   "upc",
+   CTLFLAG_RD | CTLFLAG_MPSAFE,
+   SYSCTL_NULL_U32_PTR, port->upc,
+   "UPC value. MSB is visible flag");
}
AcpiOsFree(buf.Pointer);
 
return (0);
 }
+static int
+acpi_uhub_port_sysctl(SYSCTL_HANDLER_ARGS)
+{
+   struct acpi_uhub_port *port = oidp->oid_arg1;
+   struct sbuf sb;
+   int error;
 
+   sbuf_new_for_sysctl(, NULL, 256, req);
+   sbuf_printf(, "Handle %s\n", acpi_name(port->handle));
+   if (port->upc == 0x) {
+   sbuf_printf(, "\tNo information\n");
+   goto end;
+   }
+   sbuf_printf(, "\t");
+   if (port->upc & ACPI_UPC_CONNECTABLE) {
+   sbuf_printf(, "Connectable ");
+   }
+   sbuf_printf(, "%s port\n", acpi_uhub_upc_type(port->upc & 0xff));
+
+   if ((port->pld[0] & 0x80) == 0) {
+   sbuf_printf(,
+   "\tColor:#%02x%02x%02x\n",
+   port->pld[1], port->pld[2],
+   port->pld[3]);
+   }
+   sbuf_printf(, "\tWidth %d mm Height %d mm\n",
+   port->pld[4] | (port->pld[5] << 8),
+

svn commit: r349251 - head/sys/dev/usb

2019-06-20 Thread Takanori Watanabe
Author: takawata
Date: Thu Jun 20 23:52:33 2019
New Revision: 349251
URL: https://svnweb.freebsd.org/changeset/base/349251

Log:
  Fix the case where no root hub object while host controller object exist in 
ACPI namespace.
  Also you can disable ACPI support for USB by setting
  debug.acpi.disabled="usb"
  
  PR:   238711

Modified:
  head/sys/dev/usb/usb_hub_acpi.c

Modified: head/sys/dev/usb/usb_hub_acpi.c
==
--- head/sys/dev/usb/usb_hub_acpi.c Thu Jun 20 23:32:25 2019
(r349250)
+++ head/sys/dev/usb/usb_hub_acpi.c Thu Jun 20 23:52:33 2019
(r349251)
@@ -243,13 +243,14 @@ acpi_uhub_parse_pld(device_t dev, unsigned int port, A
 }
 
 ACPI_STATUS
-acpi_uhub_find_rh(device_t dev, ACPI_HANDLE * ah){
+acpi_uhub_find_rh(device_t dev, ACPI_HANDLE * ah)
+{
device_t grand;
ACPI_HANDLE gah;
 
+   *ah = NULL;
grand = device_get_parent(device_get_parent(dev));
if ((gah = acpi_get_handle(grand)) == NULL) {
-   *ah = NULL;
return AE_ERROR;
}
return AcpiWalkNamespace(ACPI_TYPE_DEVICE, gah, 1,
@@ -257,7 +258,8 @@ acpi_uhub_find_rh(device_t dev, ACPI_HANDLE * ah){
 }
 
 ACPI_STATUS
-acpi_usb_hub_port_probe_cb(ACPI_HANDLE ah, UINT32 lv, void *ctx, void **rv){
+acpi_usb_hub_port_probe_cb(ACPI_HANDLE ah, UINT32 lv, void *ctx, void **rv)
+{
ACPI_DEVICE_INFO *devinfo;
device_t dev = ctx;
struct acpi_uhub_softc *sc = device_get_softc(dev);
@@ -281,7 +283,8 @@ acpi_usb_hub_port_probe_cb(ACPI_HANDLE ah, UINT32 lv, 
 }
 
 ACPI_STATUS
-acpi_usb_hub_port_probe(device_t dev, ACPI_HANDLE ah){
+acpi_usb_hub_port_probe(device_t dev, ACPI_HANDLE ah)
+{
return AcpiWalkNamespace(ACPI_TYPE_DEVICE,
ah, 1,
acpi_usb_hub_port_probe_cb,
@@ -293,6 +296,9 @@ acpi_uhub_root_probe(device_t dev)
ACPI_HANDLE ah;
ACPI_STATUS status;
 
+   if(acpi_disabled("usb")) {
+   return ENXIO;
+   }
status = acpi_uhub_find_rh(dev, );
if (ACPI_SUCCESS(status)
&& ah != NULL
@@ -308,7 +314,7 @@ acpi_uhub_probe(device_t dev)
 {
ACPI_HANDLE ah = acpi_get_handle(dev);
 
-   if (ah && (uhub_probe(dev) <= 0)) {
+   if (!acpi_disabled("usb") && ah && (uhub_probe(dev) <= 0)) {
/*success prior than non - acpi hub*/
return (BUS_PROBE_DEFAULT + 1);
}
@@ -335,7 +341,6 @@ acpi_uhub_root_attach(device_t dev)
sc->nports = uh->nports;
sc->porthandle = malloc(sizeof(ACPI_HANDLE) * uh->nports,
M_USBDEV, M_WAITOK | M_ZERO);
-   acpi_uhub_find_rh(dev, );
acpi_usb_hub_port_probe(dev, devhandle);
 
return 0;
___
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"


svn commit: r349161 - in head/sys: conf dev/usb modules/usb/usb

2019-06-17 Thread Takanori Watanabe
device_t child,
 struct hub_result *res)
 {
@@ -1673,7 +1635,7 @@ uhub_find_iface_index(struct usb_hub *hub, device_t ch
res->portno = 0;
 }
 
-static int
+int
 uhub_child_location_string(device_t parent, device_t child,
 char *buf, size_t buflen)
 {

Added: head/sys/dev/usb/usb_hub_acpi.c
==
--- /dev/null   00:00:00 1970   (empty, because file is newly added)
+++ head/sys/dev/usb/usb_hub_acpi.c Mon Jun 17 23:03:30 2019
(r349161)
@@ -0,0 +1,451 @@
+/* $FreeBSD$ */
+/*-
+ * SPDX-License-Identifier: BSD-2-Clause-NetBSD
+ *
+ * Copyright (c) 1998 The NetBSD Foundation, Inc. All rights reserved.
+ * Copyright (c) 1998 Lennart Augustsson. All rights reserved.
+ * Copyright (c) 2008-2010 Hans Petter Selasky. All rights reserved.
+ * Copyright (c) 2019 Takanori Watanabe.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *notice, this list of conditions and the following disclaimer in the
+ *documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+/*
+ * USB spec: http://www.usb.org/developers/docs/usbspec.zip
+ */
+
+#ifdef USB_GLOBAL_INCLUDE_FILE
+#include USB_GLOBAL_INCLUDE_FILE
+#else
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+#include 
+#include 
+#include 
+
+#defineUSB_DEBUG_VAR uhub_debug
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+#include 
+#include 
+#endif /* USB_GLOBAL_INCLUDE_FILE */
+#include 
+#include 
+#include 
+#include 
+
+static UINT32 acpi_uhub_find_rh_cb(ACPI_HANDLE ah, UINT32 nl, void *ctx, void 
**status);
+static ACPI_STATUS acpi_uhub_find_rh(device_t dev, ACPI_HANDLE * ah);
+static ACPI_STATUS
+acpi_usb_hub_port_probe_cb(ACPI_HANDLE ah, UINT32 lv, void *ctx, void **rv);
+static ACPI_STATUS acpi_usb_hub_port_probe(device_t dev, ACPI_HANDLE ah);
+static int acpi_uhub_root_probe(device_t dev);
+static int acpi_uhub_probe(device_t dev);
+static int acpi_uhub_root_attach(device_t dev);
+static int acpi_uhub_attach(device_t dev);
+static int acpi_uhub_detach(device_t dev);
+static int
+acpi_uhub_read_ivar(device_t dev, device_t child, int idx,
+uintptr_t *res);
+static int
+acpi_uhub_child_location_string(device_t parent, device_t child,
+char *buf, size_t buflen);
+static int acpi_uhub_parse_upc(device_t dev, unsigned int port, ACPI_HANDLE 
ah);
+
+struct acpi_uhub_softc {
+   struct uhub_softc usc;
+   uint8_t nports;
+   ACPI_HANDLE *porthandle;
+};
+
+UINT32
+acpi_uhub_find_rh_cb(ACPI_HANDLE ah, UINT32 nl, void *ctx, void **status){
+   ACPI_DEVICE_INFO *devinfo;
+   UINT32 ret = AE_OK;
+
+   *status = NULL;
+   devinfo = NULL;
+
+   ret = AcpiGetObjectInfo(ah, );
+
+   if (ACPI_FAILURE(ret)) {
+   return ret;
+   }
+   if ((devinfo->Valid & ACPI_VALID_ADR) &&
+   (devinfo->Address == 0)) {
+   ret = AE_CTRL_TERMINATE;
+   *status = ah;
+   }
+   AcpiOsFree(devinfo);
+
+   return ret;
+}
+
+static int
+acpi_uhub_parse_upc(device_t dev, unsigned int port, ACPI_HANDLE ah)
+{
+   ACPI_BUFFER buf;
+
+   buf.Pointer = NULL;
+   buf.Length = ACPI_ALLOCATE_BUFFER;
+   if (AcpiEvaluateObject(ah, "_UPC", NULL, ) == AE_OK) {
+   UINT64 porttypenum, conn;
+   const char *connectable;
+   const char *typelist[] = {"TypeA", "MiniAB", "Express",
+   "USB3-A", "USB3-B", "USB-MicroB",
+   "USB3-MicroAB", "USB3-PowerB",

svn commit: r343438 - in head: sys/dev/tpm usr.sbin/acpi/acpidump

2019-01-25 Thread Takanori Watanabe
Author: takawata
Date: Fri Jan 25 16:16:10 2019
New Revision: 343438
URL: https://svnweb.freebsd.org/changeset/base/343438

Log:
  Use ACPI TPM2 table to probe tpmtis and tpmcrb device.
  
  Differential Revision: https://reviews.freebsd.org/D18937

Modified:
  head/sys/dev/tpm/tpm20.h
  head/sys/dev/tpm/tpm_crb.c
  head/sys/dev/tpm/tpm_tis.c
  head/usr.sbin/acpi/acpidump/acpi.c

Modified: head/sys/dev/tpm/tpm20.h
==
--- head/sys/dev/tpm/tpm20.hFri Jan 25 15:48:00 2019(r343437)
+++ head/sys/dev/tpm/tpm20.hFri Jan 25 16:16:10 2019(r343438)
@@ -93,6 +93,12 @@ __FBSDID("$FreeBSD$");
 #defineTPM_CDEV_NAME   "tpm0"
 #defineTPM_CDEV_PERM_FLAG  0600
 
+
+#define TPM2_START_METHOD_ACPI 2
+#define TPM2_START_METHOD_TIS 6
+#define TPM2_START_METHOD_CRB 7
+#define TPM2_START_METHOD_CRB_ACPI 8
+
 struct tpm_sc {
device_tdev;
 

Modified: head/sys/dev/tpm/tpm_crb.c
==
--- head/sys/dev/tpm/tpm_crb.c  Fri Jan 25 15:48:00 2019(r343437)
+++ head/sys/dev/tpm/tpm_crb.c  Fri Jan 25 16:16:10 2019(r343438)
@@ -104,27 +104,20 @@ char *tpmcrb_ids[] = {"MSFT0101", NULL};
 static int
 tpmcrb_acpi_probe(device_t dev)
 {
-   struct resource *res;
-   int err, rid = 0;
-   uint32_t caps;
-
+   int err;
+   ACPI_TABLE_TPM23 *tbl;
+   ACPI_STATUS status;
err = ACPI_ID_PROBE(device_get_parent(dev), dev, tpmcrb_ids, NULL);
if (err > 0)
return (err);
+   /*Find TPM2 Header*/
+   status = AcpiGetTable(ACPI_SIG_TPM2, 1, (ACPI_TABLE_HEADER **) );
+   if(ACPI_FAILURE(status) ||
+  tbl->StartMethod != TPM2_START_METHOD_CRB)
+   err = ENXIO;
 
-   /* Check if device is in CRB mode */
-   res = bus_alloc_resource_any(dev, SYS_RES_MEMORY, , RF_ACTIVE);
-   if (res == NULL)
-   return (ENXIO);
-
-   caps = bus_read_4(res, TPM_CRB_INTF_ID);
-   bus_release_resource(dev, SYS_RES_MEMORY, rid, res);
-
-   if ((caps & TPM_CRB_INTF_ID_TYPE) != TPM_CRB_INTF_ID_TYPE_CRB)
-   return (ENXIO);
-
device_set_desc(dev, "Trusted Platform Module 2.0, CRB mode");
-   return (BUS_PROBE_DEFAULT);
+   return (err);
 }
 
 static ACPI_STATUS

Modified: head/sys/dev/tpm/tpm_tis.c
==
--- head/sys/dev/tpm/tpm_tis.c  Fri Jan 25 15:48:00 2019(r343437)
+++ head/sys/dev/tpm/tpm_tis.c  Fri Jan 25 16:16:10 2019(r343438)
@@ -100,26 +100,21 @@ char *tpmtis_ids[] = {"MSFT0101", NULL};
 static int
 tpmtis_acpi_probe(device_t dev)
 {
-   struct resource *res;
-   int err, rid = 0;
-   uint32_t caps;
+   int err;
+   ACPI_TABLE_TPM23 *tbl;
+   ACPI_STATUS status;
 
err = ACPI_ID_PROBE(device_get_parent(dev), dev, tpmtis_ids, NULL);
if (err > 0)
return (err);
+   /*Find TPM2 Header*/
+   status = AcpiGetTable(ACPI_SIG_TPM2, 1, (ACPI_TABLE_HEADER **) );
+   if(ACPI_FAILURE(status) ||
+  tbl->StartMethod != TPM2_START_METHOD_TIS)
+   err = ENXIO;
 
-   /* Check if device is in TPM 2.0 TIS mode */
-   res = bus_alloc_resource_any(dev, SYS_RES_MEMORY, , RF_ACTIVE);
-   if (res == NULL)
-   return (ENXIO);
-
-   caps = bus_read_4(res, TPM_INTF_CAPS);
-   bus_release_resource(dev, SYS_RES_MEMORY, rid, res);
-   if ((caps & TPM_INTF_CAPS_VERSION) != TPM_INTF_CAPS_TPM20)
-   return (ENXIO);
-
device_set_desc(dev, "Trusted Platform Module 2.0, FIFO mode");
-   return (BUS_PROBE_DEFAULT);
+   return (err);
 }
 
 static int

Modified: head/usr.sbin/acpi/acpidump/acpi.c
==
--- head/usr.sbin/acpi/acpidump/acpi.c  Fri Jan 25 15:48:00 2019
(r343437)
+++ head/usr.sbin/acpi/acpidump/acpi.c  Fri Jan 25 16:16:10 2019
(r343438)
@@ -970,7 +970,18 @@ acpi_handle_tcpa(ACPI_TABLE_HEADER *sdp)
 
printf(END_COMMENT);
 }
-
+static void acpi_handle_tpm2(ACPI_TABLE_HEADER *sdp)
+{
+   ACPI_TABLE_TPM2 *tpm2;
+   
+   printf (BEGIN_COMMENT);
+   acpi_print_sdt(sdp);
+   tpm2 = (ACPI_TABLE_TPM2 *) sdp;
+   printf ("\t\tControlArea=%lx\n", tpm2->ControlAddress);
+   printf ("\t\tStartMethod=%x\n", tpm2->StartMethod); 
+   printf (END_COMMENT);
+}
+   
 static const char *
 devscope_type2str(int type)
 {
@@ -1769,6 +1780,8 @@ acpi_handle_rsdt(ACPI_TABLE_HEADER *rsdp)
acpi_handle_wddt(sdp);
else if (!memcmp(sdp->Signature, ACPI_SIG_LPIT, 4))
acpi_handle_lpit(sdp);
+   else if (!memcmp(sdp->Signature, ACPI_SIG_TPM2, 4))
+   acpi_handle_tpm2(sdp);
else {

svn commit: r339754 - in head/sys/dev: acpi_support acpica amdgpio asmc fdc gpio hyperv/vmbus ichiic intel ipmi sdhci tpm

2018-10-25 Thread Takanori Watanabe
Author: takawata
Date: Fri Oct 26 00:05:46 2018
New Revision: 339754
URL: https://svnweb.freebsd.org/changeset/base/339754

Log:
  Distinguish _CID match and _HID match and make lower priority probe
  when _CID match.
  
  Reviewed by: jhb, imp
  Differential Revision:https://reviews.freebsd.org/D16468

Modified:
  head/sys/dev/acpi_support/acpi_asus.c
  head/sys/dev/acpi_support/acpi_fujitsu.c
  head/sys/dev/acpi_support/acpi_ibm.c
  head/sys/dev/acpi_support/acpi_panasonic.c
  head/sys/dev/acpi_support/acpi_rapidstart.c
  head/sys/dev/acpi_support/acpi_sony.c
  head/sys/dev/acpi_support/acpi_toshiba.c
  head/sys/dev/acpi_support/acpi_wmi.c
  head/sys/dev/acpi_support/atk0110.c
  head/sys/dev/acpica/acpi.c
  head/sys/dev/acpica/acpi_acad.c
  head/sys/dev/acpica/acpi_button.c
  head/sys/dev/acpica/acpi_cmbat.c
  head/sys/dev/acpica/acpi_container.c
  head/sys/dev/acpica/acpi_cpu.c
  head/sys/dev/acpica/acpi_ec.c
  head/sys/dev/acpica/acpi_hpet.c
  head/sys/dev/acpica/acpi_if.m
  head/sys/dev/acpica/acpi_isab.c
  head/sys/dev/acpica/acpi_lid.c
  head/sys/dev/acpica/acpi_pci_link.c
  head/sys/dev/acpica/acpi_resource.c
  head/sys/dev/acpica/acpi_smbat.c
  head/sys/dev/acpica/acpivar.h
  head/sys/dev/amdgpio/amdgpio.c
  head/sys/dev/asmc/asmc.c
  head/sys/dev/fdc/fdc_acpi.c
  head/sys/dev/gpio/bytgpio.c
  head/sys/dev/gpio/chvgpio.c
  head/sys/dev/hyperv/vmbus/vmbus_res.c
  head/sys/dev/ichiic/ig4_acpi.c
  head/sys/dev/intel/spi.c
  head/sys/dev/ipmi/ipmi_acpi.c
  head/sys/dev/sdhci/sdhci_acpi.c
  head/sys/dev/tpm/tpm_acpi.c

Modified: head/sys/dev/acpi_support/acpi_asus.c
==
--- head/sys/dev/acpi_support/acpi_asus.c   Fri Oct 26 00:00:13 2018
(r339753)
+++ head/sys/dev/acpi_support/acpi_asus.c   Fri Oct 26 00:05:46 2018
(r339754)
@@ -549,15 +549,16 @@ acpi_asus_probe(device_t dev)
ACPI_OBJECT Arg, *Obj;
ACPI_OBJECT_LISTArgs;
static char *asus_ids[] = { "ATK0100", "ASUS010", NULL };
+   int rv;
char *rstr;
 
ACPI_FUNCTION_TRACE((char *)(uintptr_t)__func__);
 
if (acpi_disabled("asus"))
return (ENXIO);
-   rstr = ACPI_ID_PROBE(device_get_parent(dev), dev, asus_ids);
-   if (rstr == NULL) {
-   return (ENXIO);
+   rv = ACPI_ID_PROBE(device_get_parent(dev), dev, asus_ids, );
+   if (rv > 0) {
+   return (rv);
}
 
sc = device_get_softc(dev);
@@ -595,7 +596,7 @@ acpi_asus_probe(device_t dev)
sc->model = _samsung_models[0];
device_set_desc(dev, "Samsung P30 Laptop Extras");
AcpiOsFree(Buf.Pointer);
-   return (0);
+   return (rv);
}
 
/* EeePC */
@@ -603,7 +604,7 @@ acpi_asus_probe(device_t dev)
sc->model = _eeepc_models[0];
device_set_desc(dev, "ASUS EeePC");
AcpiOsFree(Buf.Pointer);
-   return (0);
+   return (rv);
}
}
 
@@ -627,7 +628,7 @@ good:
 
sbuf_delete(sb);
AcpiOsFree(Buf.Pointer);
-   return (0);
+   return (rv);
}

/*

Modified: head/sys/dev/acpi_support/acpi_fujitsu.c
==
--- head/sys/dev/acpi_support/acpi_fujitsu.cFri Oct 26 00:00:13 2018
(r339753)
+++ head/sys/dev/acpi_support/acpi_fujitsu.cFri Oct 26 00:05:46 2018
(r339754)
@@ -228,16 +228,15 @@ acpi_fujitsu_probe(device_t dev)
 {
char *name;
char buffer[64];
+   int rv;
 
-   name = ACPI_ID_PROBE(device_get_parent(dev), dev, fujitsu_ids);
-   if (acpi_disabled("fujitsu") || name == NULL ||
-   device_get_unit(dev) > 1)
+   rv =  ACPI_ID_PROBE(device_get_parent(dev), dev, fujitsu_ids, );
+   if (acpi_disabled("fujitsu") || rv > 0 || device_get_unit(dev) > 1)
return (ENXIO);
-
sprintf(buffer, "Fujitsu Function Hotkeys %s", name);
device_set_desc_copy(dev, buffer);
 
-   return (0);
+   return (rv);
 }
 
 static int

Modified: head/sys/dev/acpi_support/acpi_ibm.c
==
--- head/sys/dev/acpi_support/acpi_ibm.cFri Oct 26 00:00:13 2018
(r339753)
+++ head/sys/dev/acpi_support/acpi_ibm.cFri Oct 26 00:05:46 2018
(r339754)
@@ -411,14 +411,17 @@ acpi_ibm_mic_led_set (struct acpi_ibm_softc *sc, int a
 static int
 acpi_ibm_probe(device_t dev)
 {
+   int rv;
+
if (acpi_disabled("ibm") ||
-   ACPI_ID_PROBE(device_get_parent(dev), dev, ibm_ids) == NULL ||
device_get_unit(dev) != 0)
 

svn commit: r317506 - in head: lib/libbluetooth sys/netgraph/bluetooth/hci sys/netgraph/bluetooth/include usr.sbin/bluetooth/hccontrol

2017-04-27 Thread Takanori Watanabe
Author: takawata
Date: Thu Apr 27 15:03:24 2017
New Revision: 317506
URL: https://svnweb.freebsd.org/changeset/base/317506

Log:
  Make cached Bluetooth LE host advertise information visible from userland.
  
  Differential Revision:https://reviews.freebsd.org/D10362

Modified:
  head/lib/libbluetooth/bluetooth.h
  head/sys/netgraph/bluetooth/hci/ng_hci_evnt.c
  head/sys/netgraph/bluetooth/hci/ng_hci_main.c
  head/sys/netgraph/bluetooth/hci/ng_hci_var.h
  head/sys/netgraph/bluetooth/include/ng_bluetooth.h
  head/sys/netgraph/bluetooth/include/ng_btsocket.h
  head/sys/netgraph/bluetooth/include/ng_hci.h
  head/usr.sbin/bluetooth/hccontrol/node.c

Modified: head/lib/libbluetooth/bluetooth.h
==
--- head/lib/libbluetooth/bluetooth.h   Thu Apr 27 14:39:52 2017
(r317505)
+++ head/lib/libbluetooth/bluetooth.h   Thu Apr 27 15:03:24 2017
(r317506)
@@ -46,6 +46,7 @@
 #include 
 
 #include 
+#include 
 #include 
 #include 
 #include 

Modified: head/sys/netgraph/bluetooth/hci/ng_hci_evnt.c
==
--- head/sys/netgraph/bluetooth/hci/ng_hci_evnt.c   Thu Apr 27 14:39:52 
2017(r317505)
+++ head/sys/netgraph/bluetooth/hci/ng_hci_evnt.c   Thu Apr 27 15:03:24 
2017(r317506)
@@ -417,7 +417,6 @@ le_advertizing_report(ng_hci_unit_p unit
} else
getmicrotime(>updated);

-#if 0
{
/* 
 * TODO: Make these information 
@@ -425,21 +424,36 @@ le_advertizing_report(ng_hci_unit_p unit
 */
u_int8_t length_data;

-   char *rssi;
-   
-   NG_HCI_M_PULLUP(event, sizeof(u_int8_t));
+   event = m_pullup(event, sizeof(u_int8_t));
+   if(event == NULL){
+   NG_HCI_WARN("%s: Event datasize Pullup 
Failed\n", __func__);
+   goto out;
+   }
length_data = *mtod(event, u_int8_t *);
m_adj(event, sizeof(u_int8_t));
+   n->extinq_size = (length_data < NG_HCI_EXTINQ_MAX)?
+   length_data : NG_HCI_EXTINQ_MAX;
+   
/*Advertizement data*/
-   NG_HCI_M_PULLUP(event, length_data);
-   m_adj(event, length_data);
-   NG_HCI_M_PULLUP(event, sizeof(char ));
+   event = m_pullup(event, n->extinq_size);
+   if(event == NULL){
+   NG_HCI_WARN("%s: Event data pullup Failed\n", 
__func__);
+   goto out;
+   }
+   m_copydata(event, 0, n->extinq_size, n->extinq_data);
+   m_adj(event, n->extinq_size);
+   event = m_pullup(event, sizeof(char ));
/*Get RSSI*/
-   rssi = mtod(event, char *);
+   if(event == NULL){
+   NG_HCI_WARN("%s: Event rssi pull up Failed\n", 
__func__);
+   
+   goto out;
+   }   
+   n->page_scan_mode = *mtod(event, char *);
m_adj(event, sizeof(u_int8_t));
}
-#endif
}
+ out:
NG_FREE_M(event);
 
return (error);

Modified: head/sys/netgraph/bluetooth/hci/ng_hci_main.c
==
--- head/sys/netgraph/bluetooth/hci/ng_hci_main.c   Thu Apr 27 14:39:52 
2017(r317505)
+++ head/sys/netgraph/bluetooth/hci/ng_hci_main.c   Thu Apr 27 15:03:24 
2017(r317506)
@@ -93,7 +93,22 @@ NETGRAPH_INIT(hci, );
 MODULE_VERSION(ng_hci, NG_BLUETOOTH_VERSION);
 MODULE_DEPEND(ng_hci, ng_bluetooth, NG_BLUETOOTH_VERSION,
NG_BLUETOOTH_VERSION, NG_BLUETOOTH_VERSION);
+static int ng_hci_linktype_to_addrtype(int linktype);
 
+static int ng_hci_linktype_to_addrtype(int linktype)
+{
+   switch(linktype){
+   case NG_HCI_LINK_LE_PUBLIC:
+   return BDADDR_LE_PUBLIC;
+   case NG_HCI_LINK_LE_RANDOM:
+   return BDADDR_LE_RANDOM;
+   case NG_HCI_LINK_ACL:
+   /*FALLTHROUGH*/
+   default:
+   return BDADDR_BREDR;
+   }
+   return BDADDR_BREDR;
+}
 /*
  *
  **   Netgraph methods implementation
@@ -481,11 +496,15 @@ ng_hci_default_rcvmsg(node_p node, item_
  

svn commit: r301558 - in head/sys/netgraph/bluetooth: l2cap socket

2016-06-07 Thread Takanori Watanabe
Author: takawata
Date: Tue Jun  7 16:57:13 2016
New Revision: 301558
URL: https://svnweb.freebsd.org/changeset/base/301558

Log:
  Disconnect LE socket when the HCI connection associated is disconnected.

Modified:
  head/sys/netgraph/bluetooth/l2cap/ng_l2cap_misc.c
  head/sys/netgraph/bluetooth/l2cap/ng_l2cap_ulpi.c
  head/sys/netgraph/bluetooth/socket/ng_btsocket_l2cap.c

Modified: head/sys/netgraph/bluetooth/l2cap/ng_l2cap_misc.c
==
--- head/sys/netgraph/bluetooth/l2cap/ng_l2cap_misc.c   Tue Jun  7 16:56:15 
2016(r301557)
+++ head/sys/netgraph/bluetooth/l2cap/ng_l2cap_misc.c   Tue Jun  7 16:57:13 
2016(r301558)
@@ -346,7 +346,8 @@ ng_l2cap_new_chan(ng_l2cap_p l2cap, ng_l
ch->scid = ng_l2cap_get_cid(l2cap,
(con->linktype!= NG_HCI_LINK_ACL));
}
-
+   
+   ch->idtype = idtype;
if (ch->scid != NG_L2CAP_NULL_CID) {
/* Initialize channel */
ch->psm = psm;

Modified: head/sys/netgraph/bluetooth/l2cap/ng_l2cap_ulpi.c
==
--- head/sys/netgraph/bluetooth/l2cap/ng_l2cap_ulpi.c   Tue Jun  7 16:56:15 
2016(r301557)
+++ head/sys/netgraph/bluetooth/l2cap/ng_l2cap_ulpi.c   Tue Jun  7 16:57:13 
2016(r301558)
@@ -1389,7 +1389,13 @@ ng_l2cap_l2ca_discon_ind(ng_l2cap_chan_p
error = ENOMEM;
else {
ip = (ng_l2cap_l2ca_discon_ind_ip *)(msg->data);
-   ip->lcid = ch->scid;
+   ip->idtype = ch->idtype;
+   if(ch->idtype == NG_L2CAP_L2CA_IDTYPE_ATT||
+  ch->idtype == NG_L2CAP_L2CA_IDTYPE_SMP)
+   ip->lcid = ch->con->con_handle;
+   else
+   ip->lcid = ch->scid;
+   
NG_SEND_MSG_HOOK(error, l2cap->node, msg, l2cap->l2c, 0);
} 
 

Modified: head/sys/netgraph/bluetooth/socket/ng_btsocket_l2cap.c
==
--- head/sys/netgraph/bluetooth/socket/ng_btsocket_l2cap.c  Tue Jun  7 
16:56:15 2016(r301557)
+++ head/sys/netgraph/bluetooth/socket/ng_btsocket_l2cap.c  Tue Jun  7 
16:57:13 2016(r301558)
@@ -1115,7 +1115,7 @@ ng_btsocket_l2cap_process_l2ca_discon_in
 
/* Look for the socket with given channel ID */
pcb = ng_btsocket_l2cap_pcb_by_cid(>src, ip->lcid,
-  NG_L2CAP_L2CA_IDTYPE_BREDR);
+  ip->idtype);
if (pcb == NULL) {
mtx_unlock(_btsocket_l2cap_sockets_mtx);
return (0);
___
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"


svn commit: r290491 - in head/sys/netgraph/bluetooth: hci socket

2015-11-07 Thread Takanori Watanabe
Author: takawata
Date: Sat Nov  7 12:15:02 2015
New Revision: 290491
URL: https://svnweb.freebsd.org/changeset/base/290491

Log:
  Fix encryption error handling.
  Close l2cap connection on encryption error.

Modified:
  head/sys/netgraph/bluetooth/hci/ng_hci_evnt.c
  head/sys/netgraph/bluetooth/socket/ng_btsocket_l2cap.c

Modified: head/sys/netgraph/bluetooth/hci/ng_hci_evnt.c
==
--- head/sys/netgraph/bluetooth/hci/ng_hci_evnt.c   Sat Nov  7 12:11:17 
2015(r290490)
+++ head/sys/netgraph/bluetooth/hci/ng_hci_evnt.c   Sat Nov  7 12:15:02 
2015(r290491)
@@ -913,17 +913,17 @@ encryption_change(ng_hci_unit_p unit, st
ng_hci_encryption_change_ep *ep = NULL;
ng_hci_unit_con_pcon = NULL;
int  error = 0;
+   u_int16_t   h;
 
NG_HCI_M_PULLUP(event, sizeof(*ep));
if (event == NULL)
return (ENOBUFS);
 
ep = mtod(event, ng_hci_encryption_change_ep *);
+   h = NG_HCI_CON_HANDLE(le16toh(ep->con_handle));
+   con = ng_hci_con_by_handle(unit, h);
 
if (ep->status == 0) {
-   u_int16_t   h = NG_HCI_CON_HANDLE(le16toh(ep->con_handle));
-
-   con = ng_hci_con_by_handle(unit, h);
if (con == NULL) {
NG_HCI_ALERT(
 "%s: %s - invalid connection handle=%d\n",
@@ -940,12 +940,14 @@ encryption_change(ng_hci_unit_p unit, st
con->encryption_mode = NG_HCI_ENCRYPTION_MODE_P2P;
else
con->encryption_mode = NG_HCI_ENCRYPTION_MODE_NONE;
-   ng_hci_lp_enc_change(con, ep->encryption_enable);
} else
NG_HCI_ERR(
 "%s: %s - failed to change encryption mode, status=%d\n",
__func__, NG_NODE_NAME(unit->node), ep->status);
 
+   /*Anyway, propagete encryption status to upper layer*/
+   ng_hci_lp_enc_change(con, con->encryption_mode);
+
NG_FREE_M(event);
 
return (error);

Modified: head/sys/netgraph/bluetooth/socket/ng_btsocket_l2cap.c
==
--- head/sys/netgraph/bluetooth/socket/ng_btsocket_l2cap.c  Sat Nov  7 
12:11:17 2015(r290490)
+++ head/sys/netgraph/bluetooth/socket/ng_btsocket_l2cap.c  Sat Nov  7 
12:15:02 2015(r290491)
@@ -467,6 +467,7 @@ ng_btsocket_l2cap_process_l2ca_con_req_r
   (pcb->idtype == NG_L2CAP_L2CA_IDTYPE_SMP)){
pcb->encryption = op->encryption;   
pcb->cid = op->lcid;
if(pcb->need_encrypt && !(pcb->encryption)){
+   ng_btsocket_l2cap_timeout(pcb);
pcb->state = NG_BTSOCKET_L2CAP_W4_ENC_CHANGE;
}else{
pcb->state = NG_BTSOCKET_L2CAP_OPEN;
@@ -713,6 +714,7 @@ static int ng_btsocket_l2cap_process_l2c
pcb->encryption = op->result;

if(pcb->need_encrypt){
+   ng_btsocket_l2cap_untimeout(pcb);   
if(pcb->state != NG_BTSOCKET_L2CAP_W4_ENC_CHANGE){
NG_BTSOCKET_L2CAP_WARN("%s: Invalid pcb status %d",
   __func__, pcb->state);
@@ -721,6 +723,7 @@ static int ng_btsocket_l2cap_process_l2c
soisconnected(pcb->so);
}else{
pcb->so->so_error = EPERM;
+   ng_btsocket_l2cap_send_l2ca_discon_req(0, pcb);
pcb->state = NG_BTSOCKET_L2CAP_CLOSED;
soisdisconnected(pcb->so);
}
@@ -2844,6 +2847,7 @@ ng_btsocket_l2cap_process_timeout(void *
switch (pcb->state) {
case NG_BTSOCKET_L2CAP_CONNECTING:
case NG_BTSOCKET_L2CAP_CONFIGURING:
+   case NG_BTSOCKET_L2CAP_W4_ENC_CHANGE:   
/* Send disconnect request with "zero" token */
if (pcb->cid != 0)
ng_btsocket_l2cap_send_l2ca_discon_req(0, pcb);
___
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"


svn commit: r290038 - in head/sys/netgraph/bluetooth: hci include l2cap socket

2015-10-26 Thread Takanori Watanabe
Author: takawata
Date: Tue Oct 27 03:42:26 2015
New Revision: 290038
URL: https://svnweb.freebsd.org/changeset/base/290038

Log:
  Bluetooth LE Security Management channel support.
  Add a socket option to block until underlying HCI connection encrypted.
  
  Differential Revision:https://reviews.freebsd.org/D3981

Modified:
  head/sys/netgraph/bluetooth/hci/ng_hci_evnt.c
  head/sys/netgraph/bluetooth/hci/ng_hci_ulpi.c
  head/sys/netgraph/bluetooth/hci/ng_hci_ulpi.h
  head/sys/netgraph/bluetooth/include/ng_btsocket.h
  head/sys/netgraph/bluetooth/include/ng_btsocket_l2cap.h
  head/sys/netgraph/bluetooth/include/ng_hci.h
  head/sys/netgraph/bluetooth/include/ng_l2cap.h
  head/sys/netgraph/bluetooth/l2cap/ng_l2cap_evnt.c
  head/sys/netgraph/bluetooth/l2cap/ng_l2cap_llpi.c
  head/sys/netgraph/bluetooth/l2cap/ng_l2cap_llpi.h
  head/sys/netgraph/bluetooth/l2cap/ng_l2cap_main.c
  head/sys/netgraph/bluetooth/l2cap/ng_l2cap_misc.c
  head/sys/netgraph/bluetooth/l2cap/ng_l2cap_ulpi.c
  head/sys/netgraph/bluetooth/l2cap/ng_l2cap_ulpi.h
  head/sys/netgraph/bluetooth/l2cap/ng_l2cap_var.h
  head/sys/netgraph/bluetooth/socket/ng_btsocket_l2cap.c

Modified: head/sys/netgraph/bluetooth/hci/ng_hci_evnt.c
==
--- head/sys/netgraph/bluetooth/hci/ng_hci_evnt.c   Tue Oct 27 03:02:48 
2015(r290037)
+++ head/sys/netgraph/bluetooth/hci/ng_hci_evnt.c   Tue Oct 27 03:42:26 
2015(r290038)
@@ -929,7 +929,7 @@ encryption_change(ng_hci_unit_p unit, st
 "%s: %s - invalid connection handle=%d\n",
__func__, NG_NODE_NAME(unit->node), h);
error = ENOENT;
-   } else if (con->link_type != NG_HCI_LINK_ACL) {
+   } else if (con->link_type == NG_HCI_LINK_SCO) {
NG_HCI_ALERT(
 "%s: %s - invalid link type=%d\n",
__func__, NG_NODE_NAME(unit->node), 
@@ -940,6 +940,7 @@ encryption_change(ng_hci_unit_p unit, st
con->encryption_mode = NG_HCI_ENCRYPTION_MODE_P2P;
else
con->encryption_mode = NG_HCI_ENCRYPTION_MODE_NONE;
+   ng_hci_lp_enc_change(con, ep->encryption_enable);
} else
NG_HCI_ERR(
 "%s: %s - failed to change encryption mode, status=%d\n",

Modified: head/sys/netgraph/bluetooth/hci/ng_hci_ulpi.c
==
--- head/sys/netgraph/bluetooth/hci/ng_hci_ulpi.c   Tue Oct 27 03:02:48 
2015(r290037)
+++ head/sys/netgraph/bluetooth/hci/ng_hci_ulpi.c   Tue Oct 27 03:42:26 
2015(r290038)
@@ -814,6 +814,37 @@ ng_hci_lp_con_cfm(ng_hci_unit_con_p con,
return (0);
 } /* ng_hci_lp_con_cfm */
 
+int
+ng_hci_lp_enc_change(ng_hci_unit_con_p con, int status)
+{
+   ng_hci_unit_punit = con->unit;
+   struct ng_mesg  *msg = NULL;
+   ng_hci_lp_enc_change_ep *ep = NULL;
+   int  error;
+
+
+   if (con->link_type != NG_HCI_LINK_SCO) {
+   if (unit->acl != NULL && NG_HOOK_IS_VALID(unit->acl)) {
+   NG_MKMESSAGE(msg, NGM_HCI_COOKIE, NGM_HCI_LP_ENC_CHG, 
+   sizeof(*ep), M_NOWAIT);
+   if (msg != NULL) {
+   ep = (ng_hci_lp_enc_change_ep *) msg->data;
+   ep->status = status;
+   ep->link_type = con->link_type;
+   ep->con_handle = con->con_handle;
+
+   NG_SEND_MSG_HOOK(error, unit->node, msg,
+   unit->acl, 0);
+   }
+   } else
+   NG_HCI_INFO(
+"%s: %s - ACL hook not valid, hook=%p\n",
+   __func__, NG_NODE_NAME(unit->node), unit->acl);
+
+   }
+   return (0);
+} /* ng_hci_lp_con_cfm */
+
 /*
  * Send LP_ConnectInd event to the upper layer protocol
  */

Modified: head/sys/netgraph/bluetooth/hci/ng_hci_ulpi.h
==
--- head/sys/netgraph/bluetooth/hci/ng_hci_ulpi.h   Tue Oct 27 03:02:48 
2015(r290037)
+++ head/sys/netgraph/bluetooth/hci/ng_hci_ulpi.h   Tue Oct 27 03:42:26 
2015(r290038)
@@ -47,6 +47,7 @@ int  ng_hci_lp_discon_ind   
 int  ng_hci_lp_qos_req   (ng_hci_unit_p, item_p, hook_p);
 int  ng_hci_lp_qos_cfm   (ng_hci_unit_con_p, int);
 int  ng_hci_lp_qos_ind   (ng_hci_unit_con_p);
+int  ng_hci_lp_enc_change(ng_hci_unit_con_p, int);
 
 void ng_hci_process_con_timeout  (node_p, hook_p, void *, int);
 

Modified: head/sys/netgraph/bluetooth/include/ng_btsocket.h
==
--- 

svn commit: r287597 - head/usr.sbin/bluetooth/hccontrol

2015-09-09 Thread Takanori Watanabe
Author: takawata
Date: Wed Sep  9 13:24:39 2015
New Revision: 287597
URL: https://svnweb.freebsd.org/changeset/base/287597

Log:
  fix compare argument for address type.
  
  Submitted by: issei10193 (via Twitter)

Modified:
  head/usr.sbin/bluetooth/hccontrol/le.c

Modified: head/usr.sbin/bluetooth/hccontrol/le.c
==
--- head/usr.sbin/bluetooth/hccontrol/le.c  Wed Sep  9 11:51:14 2015
(r287596)
+++ head/usr.sbin/bluetooth/hccontrol/le.c  Wed Sep  9 13:24:39 2015
(r287597)
@@ -88,7 +88,7 @@ le_set_scan_param(int s, int argc, char 

if (strcmp(argv[3], "public") == 0)
adrtype = 0;
-   else if (strcmp(argv[0], "random") == 0)
+   else if (strcmp(argv[3], "random") == 0)
adrtype = 1;
else
return USAGE;
___
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"


svn commit: r285244 - in head/sys/netgraph/bluetooth: l2cap socket

2015-07-07 Thread Takanori Watanabe
Author: takawata
Date: Tue Jul  7 15:56:51 2015
New Revision: 285244
URL: https://svnweb.freebsd.org/changeset/base/285244

Log:
  Fix rfcomm_sppd regression I could reproduced.
  To reproduce it, Two machine running FreeBSD and
  run
  rfcomm_sppd -c 3 -S
  rfcomm_sppd -a ${PEER} -c 3
  on each side.

Modified:
  head/sys/netgraph/bluetooth/l2cap/ng_l2cap_ulpi.c
  head/sys/netgraph/bluetooth/socket/ng_btsocket_rfcomm.c

Modified: head/sys/netgraph/bluetooth/l2cap/ng_l2cap_ulpi.c
==
--- head/sys/netgraph/bluetooth/l2cap/ng_l2cap_ulpi.c   Tue Jul  7 15:22:29 
2015(r285243)
+++ head/sys/netgraph/bluetooth/l2cap/ng_l2cap_ulpi.c   Tue Jul  7 15:56:51 
2015(r285244)
@@ -398,7 +398,7 @@ ng_l2cap_l2ca_con_ind(ng_l2cap_chan_p ch
ip-lcid = ch-scid;
ip-psm = ch-psm;
ip-ident = ch-ident;
-
+   ip-linktype = ch-con-linktype;
NG_SEND_MSG_HOOK(error, l2cap-node, msg, l2cap-l2c, 0);
}
 

Modified: head/sys/netgraph/bluetooth/socket/ng_btsocket_rfcomm.c
==
--- head/sys/netgraph/bluetooth/socket/ng_btsocket_rfcomm.c Tue Jul  7 
15:22:29 2015(r285243)
+++ head/sys/netgraph/bluetooth/socket/ng_btsocket_rfcomm.c Tue Jul  7 
15:56:51 2015(r285244)
@@ -1339,6 +1339,8 @@ ng_btsocket_rfcomm_session_create(ng_bts
l2sa.l2cap_family = AF_BLUETOOTH;
l2sa.l2cap_psm = (dst == NULL)? htole16(NG_L2CAP_PSM_RFCOMM) : 0;
bcopy(src, l2sa.l2cap_bdaddr, sizeof(l2sa.l2cap_bdaddr));
+   l2sa.l2cap_cid = 0;
+   l2sa.l2cap_bdaddr_type = BDADDR_BREDR;
 
error = sobind(s-l2so, (struct sockaddr *) l2sa, td);
if (error != 0)
@@ -1360,6 +1362,8 @@ ng_btsocket_rfcomm_session_create(ng_bts
l2sa.l2cap_family = AF_BLUETOOTH;
l2sa.l2cap_psm = htole16(NG_L2CAP_PSM_RFCOMM);
bcopy(dst, l2sa.l2cap_bdaddr, sizeof(l2sa.l2cap_bdaddr));
+   l2sa.l2cap_cid = 0;
+   l2sa.l2cap_bdaddr_type = BDADDR_BREDR;
 
error = soconnect(s-l2so, (struct sockaddr *) l2sa, td);
if (error != 0)
___
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org


svn commit: r281920 - head/sys/dev/ichsmb

2015-04-24 Thread Takanori Watanabe
Author: takawata
Date: Fri Apr 24 07:24:31 2015
New Revision: 281920
URL: https://svnweb.freebsd.org/changeset/base/281920

Log:
  Add Lynx-Point LP smbus controller ID.

Modified:
  head/sys/dev/ichsmb/ichsmb_pci.c

Modified: head/sys/dev/ichsmb/ichsmb_pci.c
==
--- head/sys/dev/ichsmb/ichsmb_pci.cFri Apr 24 05:00:57 2015
(r281919)
+++ head/sys/dev/ichsmb/ichsmb_pci.cFri Apr 24 07:24:31 2015
(r281920)
@@ -88,6 +88,7 @@ __FBSDID($FreeBSD$);
 #define ID_AVOTON  0x1f3c8086
 #define ID_COLETOCRK   0x23B08086
 #define ID_LPT 0x8c228086
+#define ID_LPTLP   0x9c228086
 #define ID_WCPT0x8ca28086
 #define ID_WCPTLP  0x9ca28086
 
@@ -199,6 +200,9 @@ ichsmb_pci_probe(device_t dev)
case ID_LPT:
device_set_desc(dev, Intel Lynx Point SMBus controller);
break;
+   case ID_LPTLP:
+   device_set_desc(dev, Intel Lynx Point-LP SMBus controller);
+   break;
case ID_WCPT:
device_set_desc(dev, Intel Wildcat Point SMBus controller);
break;
___
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org


svn commit: r281690 - head/usr.sbin/bluetooth/hccontrol

2015-04-18 Thread Takanori Watanabe
Author: takawata
Date: Sat Apr 18 16:04:32 2015
New Revision: 281690
URL: https://svnweb.freebsd.org/changeset/base/281690

Log:
  Change printf formatting to unbroke i386 arch.
  
  Submitted by:da...@catwhisker.org

Modified:
  head/usr.sbin/bluetooth/hccontrol/le.c

Modified: head/usr.sbin/bluetooth/hccontrol/le.c
==
--- head/usr.sbin/bluetooth/hccontrol/le.c  Sat Apr 18 09:49:09 2015
(r281689)
+++ head/usr.sbin/bluetooth/hccontrol/le.c  Sat Apr 18 16:04:32 2015
(r281690)
@@ -232,7 +232,7 @@ le_read_local_supported_features(int s, 
NG_HCI_OCF_LE_READ_LOCAL_SUPPORTED_FEATURES), 
(void *)rp, n);
 
-   printf(LOCAL SUPPORTED: %d %d %lu\n, e, rp.status,
+   printf(LOCAL SUPPORTED: %d %d %jx\n, e, rp.status,
rp.le_features);
 
return 0;
@@ -250,7 +250,7 @@ le_read_supported_status(int s, int argc
NG_HCI_OCF_LE_READ_SUPPORTED_STATUS),
(void *)rp, n);
 
-   printf(LE_STATUS: %d %d %lx\n, e, rp.status, rp.le_status);
+   printf(LE_STATUS: %d %d %jx\n, e, rp.status, rp.le_status);
 
return 0;
 }
___
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org


svn commit: r281697 - head/usr.sbin/bluetooth/hccontrol

2015-04-18 Thread Takanori Watanabe
Author: takawata
Date: Sat Apr 18 17:41:09 2015
New Revision: 281697
URL: https://svnweb.freebsd.org/changeset/base/281697

Log:
  To ensure j formatting string valid, cast uint64_t values to uintmax_t.

Modified:
  head/usr.sbin/bluetooth/hccontrol/le.c

Modified: head/usr.sbin/bluetooth/hccontrol/le.c
==
--- head/usr.sbin/bluetooth/hccontrol/le.c  Sat Apr 18 17:21:12 2015
(r281696)
+++ head/usr.sbin/bluetooth/hccontrol/le.c  Sat Apr 18 17:41:09 2015
(r281697)
@@ -43,6 +43,7 @@
 #include stdlib.h
 #include string.h
 #include unistd.h
+#include stdint.h
 #define L2CAP_SOCKET_CHECKED
 #include bluetooth.h
 #include hccontrol.h
@@ -233,7 +234,7 @@ le_read_local_supported_features(int s, 
(void *)rp, n);
 
printf(LOCAL SUPPORTED: %d %d %jx\n, e, rp.status,
-   rp.le_features);
+  (uintmax_t) rp.le_features);
 
return 0;
 }
@@ -250,7 +251,7 @@ le_read_supported_status(int s, int argc
NG_HCI_OCF_LE_READ_SUPPORTED_STATUS),
(void *)rp, n);
 
-   printf(LE_STATUS: %d %d %jx\n, e, rp.status, rp.le_status);
+   printf(LE_STATUS: %d %d %jx\n, e, rp.status, (uintmax_t)rp.le_status);
 
return 0;
 }
___
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org


svn commit: r281683 - head/sys/netgraph/bluetooth/include

2015-04-18 Thread Takanori Watanabe
Author: takawata
Date: Sat Apr 18 06:16:33 2015
New Revision: 281683
URL: https://svnweb.freebsd.org/changeset/base/281683

Log:
  Forgot to add  default event mask definition.

Modified:
  head/sys/netgraph/bluetooth/include/ng_hci.h

Modified: head/sys/netgraph/bluetooth/include/ng_hci.h
==
--- head/sys/netgraph/bluetooth/include/ng_hci.hSat Apr 18 05:05:38 
2015(r281682)
+++ head/sys/netgraph/bluetooth/include/ng_hci.hSat Apr 18 06:16:33 
2015(r281683)
@@ -897,6 +897,8 @@ typedef struct {
 } __attribute__ ((packed)) ng_hci_set_event_mask_cp;
 
 typedef ng_hci_status_rp   ng_hci_set_event_mask_rp;
+#define NG_HCI_EVENT_MASK_DEFAULT 0x1fff
+#define NG_HCI_EVENT_MASK_LE  0x2000
 
 #define NG_HCI_OCF_RESET   0x0003
 /* No command parameter(s) */
@@ -1454,6 +1456,7 @@ typedef struct {

 } __attribute__ ((packed)) ng_hci_le_set_event_mask_cp;
 typedef ng_hci_status_rp   ng_hci_le_set_event_mask_rp;
+#define NG_HCI_LE_EVENT_MASK_ALL 0x1f
 
 #define NG_HCI_OCF_LE_READ_BUFFER_SIZE 0x0002
 /*No command parameter */
___
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org


svn commit: r281688 - head/usr.sbin/bluetooth/hccontrol

2015-04-18 Thread Takanori Watanabe
Author: takawata
Date: Sat Apr 18 09:08:47 2015
New Revision: 281688
URL: https://svnweb.freebsd.org/changeset/base/281688

Log:
  Fix Typo.

Modified:
  head/usr.sbin/bluetooth/hccontrol/le.c

Modified: head/usr.sbin/bluetooth/hccontrol/le.c
==
--- head/usr.sbin/bluetooth/hccontrol/le.c  Sat Apr 18 08:01:12 2015
(r281687)
+++ head/usr.sbin/bluetooth/hccontrol/le.c  Sat Apr 18 09:08:47 2015
(r281688)
@@ -247,7 +247,7 @@ le_read_supported_status(int s, int argc
 
e = hci_simple_request(s, NG_HCI_OPCODE(
NG_HCI_OGF_LE,
-   NG_HCI_OCF_LE_READ_SUPPORTED),
+   NG_HCI_OCF_LE_READ_SUPPORTED_STATUS),
(void *)rp, n);
 
printf(LE_STATUS: %d %d %lx\n, e, rp.status, rp.le_status);
___
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org


svn commit: r281680 - head/usr.sbin/bluetooth/hccontrol

2015-04-17 Thread Takanori Watanabe
 != 0  n != 1)){
+   printf(ARGC1: %d\n, n);
+   return (USAGE);
+   }
+
+   cp.le_supported_host = (n 1);
+   break;
+
+   default:
+   return (USAGE);
+   }
+
+
+   /* send command */
+   n = sizeof(rp);
+   if (hci_request(s, NG_HCI_OPCODE(NG_HCI_OGF_HC_BASEBAND,
+   NG_HCI_OCF_WRITE_LE_HOST_SUPPORTED),
+   (char const *) cp, sizeof(cp),
+   (char *) rp, n) == ERROR)
+   return (ERROR);
+
+   if (rp.status != 0x00) {
+   fprintf(stdout, Status: %s [%#02x]\n, 
+   hci_status2str(rp.status), rp.status);
+   return (FAILED);
+   }
+
+   return (OK);
+}
+
 struct hci_command host_controller_baseband_commands[] = {
 {
 reset,
@@ -1873,6 +1945,17 @@ struct hci_command   host_controller_baseb
 \t0x03 - Optional Page Scan Mode III,
 hci_write_page_scan_mode
 },
+{
+read_le_host_supported_command,  \
+Read if this host is in le supported mode and stimulatenouse le supported 
mode,
+hci_read_le_host_supported_command,
+},  
+{
+write_le_host_supported_command, \
+write_le_host_supported_command le_host[0|1] stimultajeous_le[0|1],
+hci_write_le_host_supported_command,
+},  
+
 { NULL, }
 };
 

Added: head/usr.sbin/bluetooth/hccontrol/le.c
==
--- /dev/null   00:00:00 1970   (empty, because file is newly added)
+++ head/usr.sbin/bluetooth/hccontrol/le.c  Sat Apr 18 04:53:17 2015
(r281680)
@@ -0,0 +1,352 @@
+/*
+ * le.c
+ *
+ * Copyright (c) 2015 Takanori Watanabe takaw...@freebsd.org
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *notice, this list of conditions and the following disclaimer in the
+ *documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * $Id: hccontrol.c,v 1.5 2003/09/05 00:38:24 max Exp $
+ * $FreeBSD$
+ */
+
+#include sys/types.h
+#include sys/ioctl.h
+#include sys/sysctl.h
+#include sys/bitstring.h
+#include sys/select.h
+#include assert.h
+#include err.h
+#include errno.h
+#include netgraph/ng_message.h
+#include errno.h
+#include stdio.h
+#include stdlib.h
+#include string.h
+#include unistd.h
+#define L2CAP_SOCKET_CHECKED
+#include bluetooth.h
+#include hccontrol.h
+static int le_set_scan_param(int s, int argc, char *argv[]);
+static int le_set_scan_enable(int s, int argc, char *argv[]);
+static int parse_param(int argc, char *argv[], char *buf, int *len);
+static int le_set_scan_response(int s, int argc, char *argv[]);
+static int le_read_supported_status(int s, int argc, char *argv[]);
+static int le_read_local_supported_features(int s, int argc ,char *argv[]);
+static int set_le_event_mask(int s, uint64_t mask);
+static int set_event_mask(int s, uint64_t mask);
+static int le_enable(int s, int argc, char *argv[]);
+
+static int le_set_scan_param(int s, int argc, char *argv[])
+{
+   int type;
+   int interval;
+   int window;
+   int adrtype;
+   int  policy;
+
+   ng_hci_le_set_scan_parameters_cp cp;
+   ng_hci_le_set_scan_parameters_rp rp;
+   int e,n;
+
+   if(argc != 5){
+   return USAGE;
+   }
+   
+   if(strcmp(argv[0], active)==0){
+   type = 1;
+   }else if (strcmp(argv[0], passive) == 0){
+   type = 0;
+   }else{
+   return USAGE;
+   }
+
+   interval = (int)(atof(argv[1])/0.625);
+   interval = (interval  4)? 4: interval;
+   window = (int)(atof(argv[2])/0.625);
+   window = (window  4) ? 4 : interval;
+   
+   if(strcmp(argv[3], public)==0){
+   adrtype = 0;
+   }else if (strcmp(argv[0], random) == 0){
+   adrtype = 1;
+   }else

svn commit: r281467 - head/usr.sbin/bluetooth/hccontrol

2015-04-12 Thread Takanori Watanabe
Author: takawata
Date: Sun Apr 12 14:38:18 2015
New Revision: 281467
URL: https://svnweb.freebsd.org/changeset/base/281467

Log:
  Add HCI/LMP revision information.

Modified:
  head/usr.sbin/bluetooth/hccontrol/util.c

Modified: head/usr.sbin/bluetooth/hccontrol/util.c
==
--- head/usr.sbin/bluetooth/hccontrol/util.cSun Apr 12 13:00:58 2015
(r281466)
+++ head/usr.sbin/bluetooth/hccontrol/util.cSun Apr 12 14:38:18 2015
(r281467)
@@ -152,7 +152,12 @@ hci_ver2str(int ver)
/* 0x00 */ Bluetooth HCI Specification 1.0B,
/* 0x01 */ Bluetooth HCI Specification 1.1,
/* 0x02 */ Bluetooth HCI Specification 1.2,
-   /* 0x03 */ Bluetooth HCI Specification 2.0
+   /* 0x03 */ Bluetooth HCI Specification 2.0,
+   /* 0x04 */ Bluetooth HCI Specification 2.1,
+   /* 0x05 */ Bluetooth HCI Specification 3.0,
+   /* 0x06 */ Bluetooth HCI Specification 4.0,
+   /* 0x07 */ Bluetooth HCI Specification 4.1,
+   /* 0x08 */ Bluetooth HCI Specification 4.2
};
 
return (ver = SIZE(t)? ? : t[ver]);
@@ -165,7 +170,12 @@ hci_lmpver2str(int ver)
/* 0x00 */ Bluetooth LMP 1.0,
/* 0x01 */ Bluetooth LMP 1.1,
/* 0x02 */ Bluetooth LMP 1.2,
-   /* 0x03 */ Bluetooth LMP 2.0
+   /* 0x03 */ Bluetooth LMP 2.0,
+   /* 0x04 */ Bluetooth LMP 2.1,
+   /* 0x04 */ Bluetooth LMP 3.0,
+   /* 0x04 */ Bluetooth LMP 4.0,
+   /* 0x04 */ Bluetooth LMP 4.1,
+   /* 0x04 */ Bluetooth LMP 4.2  
};
 
return (ver = SIZE(t)? ? : t[ver]);
___
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org


svn commit: r281468 - head/usr.sbin/bluetooth/hccontrol

2015-04-12 Thread Takanori Watanabe
Author: takawata
Date: Sun Apr 12 15:08:41 2015
New Revision: 281468
URL: https://svnweb.freebsd.org/changeset/base/281468

Log:
  Accept LE event on hccontrol socket.

Modified:
  head/usr.sbin/bluetooth/hccontrol/hccontrol.c

Modified: head/usr.sbin/bluetooth/hccontrol/hccontrol.c
==
--- head/usr.sbin/bluetooth/hccontrol/hccontrol.c   Sun Apr 12 14:38:18 
2015(r281467)
+++ head/usr.sbin/bluetooth/hccontrol/hccontrol.c   Sun Apr 12 15:08:41 
2015(r281468)
@@ -144,6 +144,7 @@ socket_open(char const *node)
bit_set(filter.event_mask, NG_HCI_EVENT_READ_CLOCK_OFFSET_COMPL - 1);
bit_set(filter.event_mask, NG_HCI_EVENT_CON_PKT_TYPE_CHANGED - 1);
bit_set(filter.event_mask, NG_HCI_EVENT_ROLE_CHANGE - 1);
+   bit_set(filter.event_mask, NG_HCI_EVENT_LE -1);
 
if (setsockopt(s, SOL_HCI_RAW, SO_HCI_RAW_FILTER, 
(void * const) filter, sizeof(filter))  0)
___
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org


svn commit: r281198 - in head/sys/netgraph/bluetooth: hci include l2cap socket

2015-04-07 Thread Takanori Watanabe
Author: takawata
Date: Tue Apr  7 10:22:56 2015
New Revision: 281198
URL: https://svnweb.freebsd.org/changeset/base/281198

Log:
  Initial Bluetooth LE support.
  
  Note that sockaddr_l2cap structure is changed , check socket address
  to initialize new structure member and define L2CAP_SOCKET_CHECKED
  before including ng_btsocket.h
  
  Differential Revision:https://reviews.freebsd.org/D2021
  Reviewed by:emax

Modified:
  head/sys/netgraph/bluetooth/hci/ng_hci_cmds.c
  head/sys/netgraph/bluetooth/hci/ng_hci_evnt.c
  head/sys/netgraph/bluetooth/hci/ng_hci_main.c
  head/sys/netgraph/bluetooth/hci/ng_hci_misc.c
  head/sys/netgraph/bluetooth/hci/ng_hci_misc.h
  head/sys/netgraph/bluetooth/hci/ng_hci_ulpi.c
  head/sys/netgraph/bluetooth/hci/ng_hci_var.h
  head/sys/netgraph/bluetooth/include/ng_btsocket.h
  head/sys/netgraph/bluetooth/include/ng_btsocket_l2cap.h
  head/sys/netgraph/bluetooth/include/ng_hci.h
  head/sys/netgraph/bluetooth/include/ng_l2cap.h
  head/sys/netgraph/bluetooth/l2cap/ng_l2cap_cmds.c
  head/sys/netgraph/bluetooth/l2cap/ng_l2cap_cmds.h
  head/sys/netgraph/bluetooth/l2cap/ng_l2cap_evnt.c
  head/sys/netgraph/bluetooth/l2cap/ng_l2cap_llpi.c
  head/sys/netgraph/bluetooth/l2cap/ng_l2cap_llpi.h
  head/sys/netgraph/bluetooth/l2cap/ng_l2cap_misc.c
  head/sys/netgraph/bluetooth/l2cap/ng_l2cap_misc.h
  head/sys/netgraph/bluetooth/l2cap/ng_l2cap_ulpi.c
  head/sys/netgraph/bluetooth/l2cap/ng_l2cap_var.h
  head/sys/netgraph/bluetooth/socket/ng_btsocket_hci_raw.c
  head/sys/netgraph/bluetooth/socket/ng_btsocket_l2cap.c
  head/sys/netgraph/bluetooth/socket/ng_btsocket_l2cap_raw.c

Modified: head/sys/netgraph/bluetooth/hci/ng_hci_cmds.c
==
--- head/sys/netgraph/bluetooth/hci/ng_hci_cmds.c   Tue Apr  7 09:52:14 
2015(r281197)
+++ head/sys/netgraph/bluetooth/hci/ng_hci_cmds.c   Tue Apr  7 10:22:56 
2015(r281198)
@@ -71,11 +71,15 @@ static int process_status_params
(ng_hci_unit_p, u_int16_t, struct mbuf *, struct mbuf *);
 static int process_testing_params
(ng_hci_unit_p, u_int16_t, struct mbuf *, struct mbuf *);
+static int process_le_params
+   (ng_hci_unit_p, u_int16_t, struct mbuf *, struct mbuf *);
 
 static int process_link_control_status
(ng_hci_unit_p, ng_hci_command_status_ep *, struct mbuf *);
 static int process_link_policy_status
(ng_hci_unit_p, ng_hci_command_status_ep *, struct mbuf *);
+static int process_le_status
+   (ng_hci_unit_p, ng_hci_command_status_ep *, struct mbuf *);
 
 /*
  * Send HCI command to the driver.
@@ -222,7 +226,10 @@ ng_hci_process_command_complete(ng_hci_u
error = process_testing_params(unit,
NG_HCI_OCF(ep-opcode), cp, e);
break;
-
+   case NG_HCI_OGF_LE:
+   error = process_le_params(unit,
+ NG_HCI_OCF(ep-opcode), cp, e);
+   break;
case NG_HCI_OGF_BT_LOGO:
case NG_HCI_OGF_VENDOR:
NG_FREE_M(cp);
@@ -294,7 +301,9 @@ ng_hci_process_command_status(ng_hci_uni
case NG_HCI_OGF_LINK_POLICY:
error = process_link_policy_status(unit, ep, cp);
break;
-
+   case NG_HCI_OGF_LE:
+   error = process_le_status(unit, ep, cp);
+   break;
case NG_HCI_OGF_BT_LOGO:
case NG_HCI_OGF_VENDOR:
NG_FREE_M(cp);
@@ -604,6 +613,8 @@ process_hc_baseband_params(ng_hci_unit_p
case NG_HCI_OCF_READ_LOCAL_NAME:
case NG_HCI_OCF_READ_UNIT_CLASS:
case NG_HCI_OCF_WRITE_UNIT_CLASS:
+   case NG_HCI_OCF_READ_LE_HOST_SUPPORTED:
+   case NG_HCI_OCF_WRITE_LE_HOST_SUPPORTED:
/* These do not need post processing */
break;
 
@@ -796,6 +807,132 @@ process_testing_params(ng_hci_unit_p uni
return (error);
 } /* process_testing_params */
 
+/* 
+ * Process LE command return parameters
+ */
+
+static int
+process_le_params(ng_hci_unit_p unit, u_int16_t ocf,
+   struct mbuf *mcp, struct mbuf *mrp)
+{
+   int error = 0;
+
+   switch (ocf){
+   case NG_HCI_OCF_LE_SET_EVENT_MASK:
+   case NG_HCI_OCF_LE_READ_BUFFER_SIZE:
+   case NG_HCI_OCF_LE_READ_LOCAL_SUPPORTED_FEATURES:
+   case NG_HCI_OCF_LE_SET_RANDOM_ADDRESS:
+   case NG_HCI_OCF_LE_SET_ADVERTISING_PARAMETERS:
+   case NG_HCI_OCF_LE_READ_ADVERTISING_CHANNEL_TX_POWER:
+   case NG_HCI_OCF_LE_SET_ADVERTISING_DATA:
+   case NG_HCI_OCF_LE_SET_SCAN_RESPONSE_DATA:
+   case NG_HCI_OCF_LE_SET_ADVERTISE_ENABLE:
+   case NG_HCI_OCF_LE_SET_SCAN_PARAMETERS:
+   case NG_HCI_OCF_LE_SET_SCAN_ENABLE:
+   case NG_HCI_OCF_LE_CREATE_CONNECTION_CANCEL:
+   case NG_HCI_OCF_LE_CLEAR_WHITE_LIST:
+   case NG_HCI_OCF_LE_READ_WHITE_LIST_SIZE:
+   case 

svn commit: r281210 - in head: lib/libbluetooth lib/libsdp usr.bin/bluetooth/bthost usr.bin/bluetooth/btsockstat usr.bin/bluetooth/rfcomm_sppd usr.sbin/bluetooth/bthidcontrol usr.sbin/bluetooth/bth...

2015-04-07 Thread Takanori Watanabe
Author: takawata
Date: Tue Apr  7 16:48:23 2015
New Revision: 281210
URL: https://svnweb.freebsd.org/changeset/base/281210

Log:
  Check l2cap socket initialisation and define L2CAP_SOCKET_CHECKED
  This will fix build.

Modified:
  head/lib/libbluetooth/bluetooth.c
  head/lib/libbluetooth/dev.c
  head/lib/libbluetooth/hci.c
  head/lib/libsdp/search.c
  head/lib/libsdp/service.c
  head/lib/libsdp/session.c
  head/lib/libsdp/util.c
  head/usr.bin/bluetooth/bthost/bthost.c
  head/usr.bin/bluetooth/btsockstat/btsockstat.c
  head/usr.bin/bluetooth/rfcomm_sppd/rfcomm_sdp.c
  head/usr.bin/bluetooth/rfcomm_sppd/rfcomm_sppd.c
  head/usr.sbin/bluetooth/bthidcontrol/bthidcontrol.c
  head/usr.sbin/bluetooth/bthidcontrol/hid.c
  head/usr.sbin/bluetooth/bthidcontrol/sdp.c
  head/usr.sbin/bluetooth/bthidd/bthidd.c
  head/usr.sbin/bluetooth/bthidd/client.c
  head/usr.sbin/bluetooth/bthidd/hid.c
  head/usr.sbin/bluetooth/bthidd/kbd.c
  head/usr.sbin/bluetooth/bthidd/lexer.l
  head/usr.sbin/bluetooth/bthidd/parser.y
  head/usr.sbin/bluetooth/bthidd/server.c
  head/usr.sbin/bluetooth/bthidd/session.c
  head/usr.sbin/bluetooth/btpand/bnep.c
  head/usr.sbin/bluetooth/btpand/btpand.c
  head/usr.sbin/bluetooth/btpand/channel.c
  head/usr.sbin/bluetooth/btpand/client.c
  head/usr.sbin/bluetooth/btpand/event.c
  head/usr.sbin/bluetooth/btpand/packet.c
  head/usr.sbin/bluetooth/btpand/sdp.c
  head/usr.sbin/bluetooth/btpand/server.c
  head/usr.sbin/bluetooth/btpand/tap.c
  head/usr.sbin/bluetooth/hccontrol/hccontrol.c
  head/usr.sbin/bluetooth/hccontrol/host_controller_baseband.c
  head/usr.sbin/bluetooth/hccontrol/info.c
  head/usr.sbin/bluetooth/hccontrol/link_control.c
  head/usr.sbin/bluetooth/hccontrol/link_policy.c
  head/usr.sbin/bluetooth/hccontrol/node.c
  head/usr.sbin/bluetooth/hccontrol/util.c
  head/usr.sbin/bluetooth/hcsecd/hcsecd.c
  head/usr.sbin/bluetooth/hcsecd/parser.y
  head/usr.sbin/bluetooth/l2control/l2cap.c
  head/usr.sbin/bluetooth/l2control/l2control.c
  head/usr.sbin/bluetooth/l2ping/l2ping.c
  head/usr.sbin/bluetooth/rfcomm_pppd/rfcomm_pppd.c
  head/usr.sbin/bluetooth/sdpcontrol/sdpcontrol.c
  head/usr.sbin/bluetooth/sdpcontrol/search.c
  head/usr.sbin/bluetooth/sdpd/bgd.c
  head/usr.sbin/bluetooth/sdpd/dun.c
  head/usr.sbin/bluetooth/sdpd/ftrn.c
  head/usr.sbin/bluetooth/sdpd/gn.c
  head/usr.sbin/bluetooth/sdpd/irmc.c
  head/usr.sbin/bluetooth/sdpd/irmc_command.c
  head/usr.sbin/bluetooth/sdpd/lan.c
  head/usr.sbin/bluetooth/sdpd/main.c
  head/usr.sbin/bluetooth/sdpd/nap.c
  head/usr.sbin/bluetooth/sdpd/opush.c
  head/usr.sbin/bluetooth/sdpd/panu.c
  head/usr.sbin/bluetooth/sdpd/profile.c
  head/usr.sbin/bluetooth/sdpd/provider.c
  head/usr.sbin/bluetooth/sdpd/sar.c
  head/usr.sbin/bluetooth/sdpd/scr.c
  head/usr.sbin/bluetooth/sdpd/sd.c
  head/usr.sbin/bluetooth/sdpd/server.c
  head/usr.sbin/bluetooth/sdpd/sp.c
  head/usr.sbin/bluetooth/sdpd/srr.c
  head/usr.sbin/bluetooth/sdpd/ssar.c
  head/usr.sbin/bluetooth/sdpd/ssr.c
  head/usr.sbin/bluetooth/sdpd/sur.c
  head/usr.sbin/bluetooth/sdpd/uuid.c

Modified: head/lib/libbluetooth/bluetooth.c
==
--- head/lib/libbluetooth/bluetooth.c   Tue Apr  7 15:56:08 2015
(r281209)
+++ head/lib/libbluetooth/bluetooth.c   Tue Apr  7 16:48:23 2015
(r281210)
@@ -30,7 +30,7 @@
  * $Id: bluetooth.c,v 1.3 2003/05/20 23:04:30 max Exp $
  * $FreeBSD$
  */
-
+#define L2CAP_SOCKET_CHECKED
 #include bluetooth.h
 #include stdio.h
 #include stdlib.h

Modified: head/lib/libbluetooth/dev.c
==
--- head/lib/libbluetooth/dev.c Tue Apr  7 15:56:08 2015(r281209)
+++ head/lib/libbluetooth/dev.c Tue Apr  7 16:48:23 2015(r281210)
@@ -30,6 +30,7 @@
  * $FreeBSD$
  */
 
+#define L2CAP_SOCKET_CHECKED
 #include bluetooth.h
 #include stdio.h
 #include string.h

Modified: head/lib/libbluetooth/hci.c
==
--- head/lib/libbluetooth/hci.c Tue Apr  7 15:56:08 2015(r281209)
+++ head/lib/libbluetooth/hci.c Tue Apr  7 16:48:23 2015(r281210)
@@ -31,6 +31,7 @@
  */
 
 #include assert.h
+#define L2CAP_SOCKET_CHECKED
 #include bluetooth.h
 #include inttypes.h
 #include stdio.h

Modified: head/lib/libsdp/search.c
==
--- head/lib/libsdp/search.cTue Apr  7 15:56:08 2015(r281209)
+++ head/lib/libsdp/search.cTue Apr  7 16:48:23 2015(r281210)
@@ -32,6 +32,7 @@
 #include sys/uio.h
 #include netinet/in.h
 #include arpa/inet.h
+#define L2CAP_SOCKET_CHECKED
 #include bluetooth.h
 #include errno.h
 #include stdio.h

Modified: head/lib/libsdp/service.c
==
--- head/lib/libsdp/service.c   Tue Apr  7 15:56:08 2015(r281209)
+++ head/lib/libsdp/service.c   Tue Apr  7 

svn commit: r263794 - head/sys/x86/acpica

2014-03-27 Thread Takanori Watanabe
Author: takawata
Date: Thu Mar 27 06:08:07 2014
New Revision: 263794
URL: http://svnweb.freebsd.org/changeset/base/263794

Log:
  To check polarity, check ACPI_MADT_POLARITY_CONFORMS, instead of 
ACPI_MADT_TRIGGER_CONFORMS.
  
  PR:amd64/188010
  Submitted by: syuu

Modified:
  head/sys/x86/acpica/madt.c

Modified: head/sys/x86/acpica/madt.c
==
--- head/sys/x86/acpica/madt.c  Thu Mar 27 04:30:07 2014(r263793)
+++ head/sys/x86/acpica/madt.c  Thu Mar 27 06:08:07 2014(r263794)
@@ -492,7 +492,7 @@ madt_parse_nmi(ACPI_MADT_NMI_SOURCE *nmi
if (!(nmi-IntiFlags  ACPI_MADT_TRIGGER_CONFORMS))
ioapic_set_triggermode(ioapic, pin,
interrupt_trigger(nmi-IntiFlags, 0));
-   if (!(nmi-IntiFlags  ACPI_MADT_TRIGGER_CONFORMS))
+   if (!(nmi-IntiFlags  ACPI_MADT_POLARITY_CONFORMS))
ioapic_set_polarity(ioapic, pin,
interrupt_polarity(nmi-IntiFlags, 0));
 }
___
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org


svn commit: r263795 - head/sys/x86/acpica

2014-03-27 Thread Takanori Watanabe
Author: takawata
Date: Thu Mar 27 06:36:38 2014
New Revision: 263795
URL: http://svnweb.freebsd.org/changeset/base/263795

Log:
  Strict value checking will cause problem.
  Bay trail DN2820FYKH is supported on Linux but does not work on FreeBSD.
  This behaviour is bug-compatible with Linux-3.13.5.
  
  References:
  http://d.hatena.ne.jp/syuu1228/20140326
  http://lxr.linux.no/linux+v3.13.5/arch/x86/kernel/acpi/boot.c#L1094
  
  Submitted by: syuu

Modified:
  head/sys/x86/acpica/madt.c

Modified: head/sys/x86/acpica/madt.c
==
--- head/sys/x86/acpica/madt.c  Thu Mar 27 06:08:07 2014(r263794)
+++ head/sys/x86/acpica/madt.c  Thu Mar 27 06:36:38 2014(r263795)
@@ -306,10 +306,11 @@ interrupt_polarity(UINT16 IntiFlags, UIN
case ACPI_MADT_POLARITY_ACTIVE_HIGH:
return (INTR_POLARITY_HIGH);
case ACPI_MADT_POLARITY_ACTIVE_LOW:
-   return (INTR_POLARITY_LOW);
+   break;
default:
-   panic(Bogus Interrupt Polarity);
+   printf(WARNING: Bogus Interrupt Polarity. Assume POLALITY 
LOW);
}
+   return (INTR_POLARITY_LOW);
 }
 
 static enum intr_trigger
@@ -325,10 +326,13 @@ interrupt_trigger(UINT16 IntiFlags, UINT
case ACPI_MADT_TRIGGER_EDGE:
return (INTR_TRIGGER_EDGE);
case ACPI_MADT_TRIGGER_LEVEL:
-   return (INTR_TRIGGER_LEVEL);
+   break;
default:
-   panic(Bogus Interrupt Trigger Mode);
+   printf(WARNING: Bogus Interrupt Trigger Mode. Assume Level 
trigger.);
+   
+   break;
}
+   return (INTR_TRIGGER_LEVEL);
 }
 
 /*
___
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org


svn commit: r263859 - head/sys/x86/acpica

2014-03-27 Thread Takanori Watanabe
Author: takawata
Date: Fri Mar 28 02:38:14 2014
New Revision: 263859
URL: http://svnweb.freebsd.org/changeset/base/263859

Log:
  Change default logic to CONFORM because this routine is shared
  with SCI polarity setting.
  
  Reviewed by: jhb

Modified:
  head/sys/x86/acpica/madt.c

Modified: head/sys/x86/acpica/madt.c
==
--- head/sys/x86/acpica/madt.c  Fri Mar 28 02:06:51 2014(r263858)
+++ head/sys/x86/acpica/madt.c  Fri Mar 28 02:38:14 2014(r263859)
@@ -298,6 +298,9 @@ interrupt_polarity(UINT16 IntiFlags, UIN
 {
 
switch (IntiFlags  ACPI_MADT_POLARITY_MASK) {
+   default:
+   printf(WARNING: Bogus Interrupt Polarity. Assume CONFORMS);
+   /* FALLTHROUGH*/
case ACPI_MADT_POLARITY_CONFORMS:
if (Source == AcpiGbl_FADT.SciInterrupt)
return (INTR_POLARITY_LOW);
@@ -306,11 +309,8 @@ interrupt_polarity(UINT16 IntiFlags, UIN
case ACPI_MADT_POLARITY_ACTIVE_HIGH:
return (INTR_POLARITY_HIGH);
case ACPI_MADT_POLARITY_ACTIVE_LOW:
-   break;
-   default:
-   printf(WARNING: Bogus Interrupt Polarity. Assume POLALITY 
LOW);
+   return (INTR_POLARITY_LOW);
}
-   return (INTR_POLARITY_LOW);
 }
 
 static enum intr_trigger
@@ -318,6 +318,9 @@ interrupt_trigger(UINT16 IntiFlags, UINT
 {
 
switch (IntiFlags  ACPI_MADT_TRIGGER_MASK) {
+   default:
+   printf(WARNING: Bogus Interrupt Trigger Mode. Assume 
CONFORMS.);
+   /*FALLTHROUGH*/
case ACPI_MADT_TRIGGER_CONFORMS:
if (Source == AcpiGbl_FADT.SciInterrupt)
return (INTR_TRIGGER_LEVEL);
@@ -326,13 +329,8 @@ interrupt_trigger(UINT16 IntiFlags, UINT
case ACPI_MADT_TRIGGER_EDGE:
return (INTR_TRIGGER_EDGE);
case ACPI_MADT_TRIGGER_LEVEL:
-   break;
-   default:
-   printf(WARNING: Bogus Interrupt Trigger Mode. Assume Level 
trigger.);
-   
-   break;
+   return (INTR_TRIGGER_LEVEL);
}
-   return (INTR_TRIGGER_LEVEL);
 }
 
 /*
___
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org


svn commit: r250363 - in head/sys: dev/acpi_support modules/acpi/acpi_rapidstart

2013-05-08 Thread Takanori Watanabe
Author: takawata
Date: Wed May  8 12:53:21 2013
New Revision: 250363
URL: http://svnweb.freebsd.org/changeset/base/250363

Log:
  A driver for Intel Rapid Start Technology ACPI device.
  Note that it is just for 'Advanced' configuration for Rapid start technology.

Added:
  head/sys/dev/acpi_support/acpi_rapidstart.c   (contents, props changed)
  head/sys/modules/acpi/acpi_rapidstart/
  head/sys/modules/acpi/acpi_rapidstart/Makefile   (contents, props changed)

Added: head/sys/dev/acpi_support/acpi_rapidstart.c
==
--- /dev/null   00:00:00 1970   (empty, because file is newly added)
+++ head/sys/dev/acpi_support/acpi_rapidstart.c Wed May  8 12:53:21 2013
(r250363)
@@ -0,0 +1,133 @@
+/*-
+ * Copyright (c) 2013 Takanori Watanabe
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *notice, this list of conditions and the following disclaimer in the
+ *documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include sys/cdefs.h
+__FBSDID($FreeBSD$);
+
+#include opt_acpi.h
+#include sys/param.h
+#include sys/kernel.h
+#include sys/bus.h
+
+#include contrib/dev/acpica/include/acpi.h
+
+#include acpi_if.h
+#include sys/module.h
+#include dev/acpica/acpivar.h
+#include sys/sysctl.h
+static int sysctl_acpi_rapidstart_gen_handler(SYSCTL_HANDLER_ARGS);
+
+
+static struct acpi_rapidstart_name_list
+{
+   char *nodename;
+   char *getmethod;
+   char *setmethod;
+   char *comment;
+} acpi_rapidstart_oids[] ={
+   {ffs,GFFS,SFFS,Flash Fast Store Flag},
+   {ftv,GFTV,SFTV,Time value},
+   {NULL, NULL, NULL, NULL}
+};
+
+struct acpi_rapidstart_softc {
+   struct sysctl_ctx_list  *sysctl_ctx;
+   struct sysctl_oid   *sysctl_tree;
+
+};
+static char*rapidstart_ids[] = {INT3392, NULL};
+static int
+acpi_rapidstart_probe(device_t dev)
+{
+   if (acpi_disabled(rapidstart) ||
+   ACPI_ID_PROBE(device_get_parent(dev), dev, rapidstart_ids) == NULL 
||
+   device_get_unit(dev) != 0)
+   return (ENXIO);
+
+   device_set_desc(dev, Intel Rapid Start ACPI device);
+
+   return (0);
+   
+}
+
+static int
+acpi_rapidstart_attach(device_t dev)
+{
+   struct acpi_rapidstart_softc *sc;
+   int i;
+
+   sc = device_get_softc(dev);
+   
+   sc-sysctl_ctx = device_get_sysctl_ctx(dev);
+   sc-sysctl_tree = device_get_sysctl_tree(dev);
+   for (i = 0 ; acpi_rapidstart_oids[i].nodename != NULL; i++){
+   SYSCTL_ADD_PROC(device_get_sysctl_ctx(dev),
+   SYSCTL_CHILDREN(device_get_sysctl_tree(dev)),
+   i, acpi_rapidstart_oids[i].nodename , CTLTYPE_INT |
+   ((acpi_rapidstart_oids[i].setmethod)? CTLFLAG_RW: 
CTLFLAG_RD),
+   dev, i, sysctl_acpi_rapidstart_gen_handler, I,
+   acpi_rapidstart_oids[i].comment);
+   }
+   return (0);
+}
+
+static int 
+sysctl_acpi_rapidstart_gen_handler(SYSCTL_HANDLER_ARGS)
+{
+   device_tdev = arg1;
+   int function = oidp-oid_arg2;
+   int error = 0, val;
+
+   acpi_GetInteger(acpi_get_handle(dev),
+   acpi_rapidstart_oids[function].getmethod, val);
+   error = sysctl_handle_int(oidp, val, 0, req);
+   if (error || !req-newptr || !acpi_rapidstart_oids[function].setmethod)
+   return (error);
+   acpi_SetInteger(acpi_get_handle(dev),
+   acpi_rapidstart_oids[function].setmethod, val);
+   return (0);
+}
+
+static device_method_t acpi_rapidstart_methods[] = {
+   /* Device interface */
+   DEVMETHOD(device_probe, acpi_rapidstart_probe),
+   DEVMETHOD(device_attach, acpi_rapidstart_attach),
+
+   DEVMETHOD_END
+};
+
+static driver_tacpi_rapidstart_driver = {
+   acpi_rapidstart

svn commit: r250364 - head/share/man/man4

2013-05-08 Thread Takanori Watanabe
Author: takawata
Date: Wed May  8 13:26:17 2013
New Revision: 250364
URL: http://svnweb.freebsd.org/changeset/base/250364

Log:
  Manual page for acpi_rapidstart(4) driver.
  
  
   Description of fields to fill in above: 76 columns --|
   PR:If a GNATS PR is affected by the change.
   Submitted by:  If someone else sent in the change.
   Reviewed by:   If someone else reviewed your modification.
   Approved by:   If you needed approval for this commit.
   Obtained from: If the change is from a third party.
   MFC after: N [day[s]|week[s]|month[s]].  Request a reminder email.
   Security:  Vulnerability reference (one per line) or description.
   Empty fields above will be automatically removed.
  
  AM   acpi_rapidstart.4

Added:
  head/share/man/man4/acpi_rapidstart.4   (contents, props changed)

Added: head/share/man/man4/acpi_rapidstart.4
==
--- /dev/null   00:00:00 1970   (empty, because file is newly added)
+++ head/share/man/man4/acpi_rapidstart.4   Wed May  8 13:26:17 2013
(r250364)
@@ -0,0 +1,82 @@
+.\ Copyright (c) 2013 Takanori Watanabe
+.\ All rights reserved.
+.\
+.\ Redistribution and use in source and binary forms, with or without
+.\ modification, are permitted provided that the following conditions
+.\ are met:
+.\ 1. Redistributions of source code must retain the above copyright
+.\notice, this list of conditions and the following disclaimer.
+.\ 2. Redistributions in binary form must reproduce the above copyright
+.\notice, this list of conditions and the following disclaimer in the
+.\documentation and/or other materials provided with the distribution.
+.\
+.\ THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\ ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\ OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\ SUCH DAMAGE.
+.\
+.\ $FreeBSD$
+.\
+.Dd May 8, 2013
+.Dt ACPI_RAPIDSTART 4
+.Os
+.Sh NAME
+.Nm acpi_rapidstart
+.Nd Intel rapid start technology ACPI driver
+.Sh SYNOPSIS
+To compile this driver into the kernel,
+place the following line in your
+kernel configuration file:
+.Bd -ragged -offset indent
+.Cd device acpi_rapidstart
+.Ed
+.Pp
+Alternatively, to load the driver as a
+module at boot time, place the following line in
+.Xr loader.conf 5 :
+.Bd -literal -offset indent
+acpi_rapidstart_load=YES
+.Ed
+.Sh DESCRIPTION
+The
+.Nm
+driver provides support for Intel Rapid Start technology ACPI device interface.
+Note that this is only for ACPI device interface . This has _CID PNP0C02 so
+should be loaded in boot time to avoid attaching acpi_sysresource driver.
+
+.Sh SYSCTLS
+The following sysctl nodes are currently implemented:
+.Bl -tag -width indent
+.It Va dev.acpi_rapidstart.0.ffs
+Rapid start flag.
+It is a bitwise OR of the following:
+.Pp
+.Bl -tag -width indent-two -compact
+.It Li 1
+Enter Fast Flash Standby in RTC wake.
+.It Li 2
+Enter Fast Flash Standby in Critical Battery Wake enable
+.El
+.It Va dev.acpi_rapidstart.0.ftv
+Fast Flash Standby timer value in minutes.
+.El
+.Sh SEE ALSO
+.Xr acpi 4 ,
+.Xr sysctl 8
+.Sh HISTORY
+The
+.Nm
+driver first appeared in
+.Fx 10.0 .
+.Sh AUTHORS
+The
+.Nm
+driver was written by
+.An Takanori Watanabe Aq takaw...@freebsd.org .
___
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org


svn commit: r238288 - head/usr.sbin/acpi/acpidump

2012-07-09 Thread Takanori Watanabe
Author: takawata
Date: Mon Jul  9 09:38:53 2012
New Revision: 238288
URL: http://svn.freebsd.org/changeset/base/238288

Log:
  Add range and table revision checking to avoid abend.
  
  PR:bin/169707
  Submitted by:Dan Lukes d...@obluda.cz
  MFC after:3 days.

Modified:
  head/usr.sbin/acpi/acpidump/acpi.c

Modified: head/usr.sbin/acpi/acpidump/acpi.c
==
--- head/usr.sbin/acpi/acpidump/acpi.c  Mon Jul  9 09:24:46 2012
(r238287)
+++ head/usr.sbin/acpi/acpidump/acpi.c  Mon Jul  9 09:38:53 2012
(r238288)
@@ -654,16 +654,24 @@ acpi_handle_tcpa(ACPI_TABLE_HEADER *sdp)
printf(END_COMMENT);
return;
}
+   if(sdp-Revision == 1){
+   printf(\tOLD TCPA spec log found. Dumping not supported.\n);
+   printf(END_COMMENT);
+   return;
+   }
 
vaddr = (unsigned char *)acpi_map_physical(paddr, len);
vend = vaddr + len;
 
while (vaddr != NULL) {
-   if (vaddr + sizeof(struct TCPAevent) = vend)
+   if ((vaddr + sizeof(struct TCPAevent) = vend)||
+   (vaddr + sizeof(struct TCPAevent)  vaddr))
break;
event = (struct TCPAevent *)(void *)vaddr;
if (vaddr + event-event_size = vend)
break;
+   if (vaddr + event-event_size  vaddr)
+   break;
if (event-event_type == 0  event-event_size == 0)
break;
 #if 0
___
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org


svn commit: r237605 - in head/sys: dev/nand modules/nand

2012-06-26 Thread Takanori Watanabe
Author: takawata
Date: Tue Jun 26 18:08:03 2012
New Revision: 237605
URL: http://svn.freebsd.org/changeset/base/237605

Log:
  Add nand core module and module dependency information.
  
  Reviewed by:gber

Added:
  head/sys/modules/nand/
  head/sys/modules/nand/Makefile   (contents, props changed)
Modified:
  head/sys/dev/nand/nand.c
  head/sys/dev/nand/nandsim.c

Modified: head/sys/dev/nand/nand.c
==
--- head/sys/dev/nand/nand.cTue Jun 26 16:45:18 2012(r237604)
+++ head/sys/dev/nand/nand.cTue Jun 26 18:08:03 2012(r237605)
@@ -830,3 +830,5 @@ nand_erase_blocks(struct nand_chip *chip
 
return (err);
 }
+
+MODULE_VERSION(nand, 1);

Modified: head/sys/dev/nand/nandsim.c
==
--- head/sys/dev/nand/nandsim.c Tue Jun 26 16:45:18 2012(r237604)
+++ head/sys/dev/nand/nandsim.c Tue Jun 26 18:08:03 2012(r237605)
@@ -663,3 +663,5 @@ nandsim_modevent(module_t mod __unused, 
 
 DEV_MODULE(nandsim, nandsim_modevent, NULL);
 MODULE_VERSION(nandsim, 1);
+MODULE_DEPEND(nandsim, nand, 1, 1, 1);
+MODULE_DEPEND(nandsim, alq, 1, 1, 1);

Added: head/sys/modules/nand/Makefile
==
--- /dev/null   00:00:00 1970   (empty, because file is newly added)
+++ head/sys/modules/nand/Makefile  Tue Jun 26 18:08:03 2012
(r237605)
@@ -0,0 +1,13 @@
+# $FreeBSD$
+
+.PATH: ${.CURDIR}/../../dev/nand
+
+KMOD = nand
+SRCS=  nand.c nand_bbt.c nand_cdev.c nand_generic.c nand_geom.c \
+   nand_id.c nandbus.c nandbus_if.c nand_if.c nfc_if.c \
+   nand_if.h device_if.h bus_if.h nfc_if.h nandbus_if.h
+
+MFILES=kern/bus_if.m kern/device_if.m dev/nand/nfc_if.m \
+   dev/nand/nand_if.m dev/nand/nandbus_if.m
+
+.include bsd.kmod.mk
___
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org


svn commit: r211278 - head/usr.sbin/acpi/acpidump

2010-08-13 Thread Takanori Watanabe
Author: takawata
Date: Fri Aug 13 09:58:17 2010
New Revision: 211278
URL: http://svn.freebsd.org/changeset/base/211278

Log:
  use uintmax_t instead of uint64_t.
  
  Pointed out by: des.

Modified:
  head/usr.sbin/acpi/acpidump/acpi.c

Modified: head/usr.sbin/acpi/acpidump/acpi.c
==
--- head/usr.sbin/acpi/acpidump/acpi.c  Fri Aug 13 07:34:41 2010
(r211277)
+++ head/usr.sbin/acpi/acpidump/acpi.c  Fri Aug 13 09:58:17 2010
(r211278)
@@ -622,7 +622,7 @@ acpi_handle_tcpa(ACPI_TABLE_HEADER *sdp)
 {
struct TCPAbody *tcpa;
struct TCPAevent *event;
-   uint64_t len, paddr;
+   uintmax_t len, paddr;
unsigned char *vaddr = NULL;
unsigned char *vend = NULL;
 
___
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org


svn commit: r211196 - head/usr.sbin/acpi/acpidump

2010-08-12 Thread Takanori Watanabe
Author: takawata
Date: Wed Aug 11 23:21:25 2010
New Revision: 211196
URL: http://svn.freebsd.org/changeset/base/211196

Log:
  Add TCG ACPI spec table (TCPA) support.
  
  Submitted by: hans-joerg_hoe...@genua.de

Modified:
  head/usr.sbin/acpi/acpidump/acpi.c
  head/usr.sbin/acpi/acpidump/acpidump.h

Modified: head/usr.sbin/acpi/acpidump/acpi.c
==
--- head/usr.sbin/acpi/acpidump/acpi.c  Wed Aug 11 22:44:10 2010
(r211195)
+++ head/usr.sbin/acpi/acpidump/acpi.c  Wed Aug 11 23:21:25 2010
(r211196)
@@ -68,6 +68,7 @@ static void   acpi_print_srat_cpu(uint32_t
 static voidacpi_print_srat_memory(ACPI_SRAT_MEM_AFFINITY *mp);
 static voidacpi_print_srat(ACPI_SUBTABLE_HEADER *srat);
 static voidacpi_handle_srat(ACPI_TABLE_HEADER *sdp);
+static voidacpi_handle_tcpa(ACPI_TABLE_HEADER *sdp);
 static voidacpi_print_sdt(ACPI_TABLE_HEADER *sdp);
 static voidacpi_print_fadt(ACPI_TABLE_HEADER *sdp);
 static voidacpi_print_facs(ACPI_TABLE_FACS *facs);
@@ -81,6 +82,46 @@ static void  acpi_walk_subtables(ACPI_TAB
 /* Size of an address. 32-bit for ACPI 1.0, 64-bit for ACPI 2.0 and up. */
 static int addr_size;
 
+/* Strings used in the TCPA table */
+static const char *tcpa_event_type_strings[] = {
+   PREBOOT Certificate,
+   POST Code,
+   Unused,
+   No Action,
+   Separator,
+   Action,
+   Event Tag,
+   S-CRTM Contents,
+   S-CRTM Version,
+   CPU Microcode,
+   Platform Config Flags,
+   Table of Devices,
+   Compact Hash,
+   IPL,
+   IPL Partition Data,
+   Non-Host Code,
+   Non-Host Config,
+   Non-Host Info
+};
+
+static const char *TCPA_pcclient_strings[] = {
+   undefined,
+   SMBIOS,
+   BIS Certificate,
+   POST BIOS ROM Strings,
+   ESCD,
+   CMOS,
+   NVRAM,
+   Option ROM Execute,
+   Option ROM Configurateion,
+   undefined,
+   Option ROM Microcode Update ,
+   S-CRTM Version String,
+   S-CRTM Contents,
+   POST Contents,
+   Table of Devices,
+};
+
 static void
 acpi_print_string(char *s, size_t length)
 {
@@ -492,6 +533,165 @@ acpi_print_srat_cpu(uint32_t apic_id, ui
printf(\tProximity Domain=%d\n, proximity_domain);
 }
 
+static char *
+acpi_tcpa_evname(struct TCPAevent *event)
+{
+   struct TCPApc_event *pc_event;
+   char *eventname = NULL;
+
+   pc_event = (struct TCPApc_event *)(event + 1);
+
+   switch(event-event_type) {
+   case PREBOOT:
+   case POST_CODE:
+   case UNUSED:
+   case NO_ACTION:
+   case SEPARATOR:
+   case SCRTM_CONTENTS:
+   case SCRTM_VERSION:
+   case CPU_MICROCODE:
+   case PLATFORM_CONFIG_FLAGS:
+   case TABLE_OF_DEVICES:
+   case COMPACT_HASH:
+   case IPL:
+   case IPL_PARTITION_DATA:
+   case NONHOST_CODE:
+   case NONHOST_CONFIG:
+   case NONHOST_INFO:
+   asprintf(eventname, %s,
+   tcpa_event_type_strings[event-event_type]);
+   break;
+
+   case ACTION:
+   eventname = calloc(event-event_size + 1, sizeof(char));
+   memcpy(eventname, pc_event, event-event_size);
+   break;
+
+   case EVENT_TAG:
+   switch (pc_event-event_id) {
+   case SMBIOS:
+   case BIS_CERT:
+   case CMOS:
+   case NVRAM:
+   case OPTION_ROM_EXEC:
+   case OPTION_ROM_CONFIG:
+   case S_CRTM_VERSION:
+   case POST_BIOS_ROM:
+   case ESCD:
+   case OPTION_ROM_MICROCODE:
+   case S_CRTM_CONTENTS:
+   case POST_CONTENTS:
+   asprintf(eventname, %s,
+   TCPA_pcclient_strings[pc_event-event_id]);
+   break;
+
+   default:
+   asprintf(eventname, unknown tag 0x%02x,
+   pc_event-event_id);
+   break;
+   }
+   break;
+
+   default:
+   asprintf(eventname, unknown 0x%02x, event-event_type);
+   break;
+   }
+
+   return eventname;
+}
+
+static void
+acpi_print_tcpa(struct TCPAevent *event)
+{
+   int i;
+   char *eventname;
+
+   eventname = acpi_tcpa_evname(event);
+
+   printf(\t%d, event-pcr_index);
+   printf( 0x);
+   for (i = 0; i  20; i++)
+   printf(%02x, event-pcr_value[i]);
+   printf( [%s]\n, eventname ? eventname : unknown);
+
+   free(eventname);
+}
+
+static void
+acpi_handle_tcpa(ACPI_TABLE_HEADER *sdp)
+{
+   struct TCPAbody *tcpa;
+   struct TCPAevent *event;
+   u_int64_t len, paddr;
+   unsigned char *vaddr = NULL;
+   unsigned char *vend = NULL;
+
+   printf(BEGIN_COMMENT);
+   acpi_print_sdt(sdp);
+   tcpa = (struct TCPAbody *) sdp;
+
+   

svn commit: r211201 - in head: share/man/man4 sys/conf sys/dev/tpm sys/modules sys/modules/tpm

2010-08-12 Thread Takanori Watanabe
Author: takawata
Date: Thu Aug 12 00:16:18 2010
New Revision: 211201
URL: http://svn.freebsd.org/changeset/base/211201

Log:
  Add tpm(4) driver for Trusted Platform Module.
  You may want to look at http://bsssd.sourceforge.net/ .
  
  Submitted by: Hans-Joerg Hoexer hans-joerg_hoe...@genua.de

Added:
  head/share/man/man4/tpm.4   (contents, props changed)
  head/sys/dev/tpm/
  head/sys/dev/tpm/tpm.c   (contents, props changed)
  head/sys/dev/tpm/tpm_acpi.c   (contents, props changed)
  head/sys/dev/tpm/tpm_isa.c   (contents, props changed)
  head/sys/dev/tpm/tpmvar.h   (contents, props changed)
  head/sys/modules/tpm/
  head/sys/modules/tpm/Makefile   (contents, props changed)
Modified:
  head/sys/conf/files.i386
  head/sys/modules/Makefile

Added: head/share/man/man4/tpm.4
==
--- /dev/null   00:00:00 1970   (empty, because file is newly added)
+++ head/share/man/man4/tpm.4   Thu Aug 12 00:16:18 2010(r211201)
@@ -0,0 +1,74 @@
+.\
+.\ Copyright (c) 2010 Hans-J
+.\
+.\ Permission to use, copy, modify, and distribute this software for any
+.\ purpose with or without fee is hereby granted, provided that the above
+.\ copyright notice and this permission notice appear in all copies.
+.\
+.\ THE SOFTWARE IS PROVIDED AS IS AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+.\ WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+.\ MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+.\ ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+.\ WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+.\ ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+.\ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+.\
+.\ $FreeBSD$
+.\
+.Dd March 8, 2010
+.Dt TPM 4
+.Os
+.Sh NAME
+.Nm tpm
+.Nd Trusted Platform Module
+.Sh SYNOPSIS
+.Cd device tpm
+.Pp
+In
+.Pa /boot/device.hints :
+.Cd hint.tpm.0.at=isa
+.Cd hint.tpm.0.maddr=0xfed4
+.Cd hint.tpm.0.msize=0x5000
+.Cd hint.tpm.1.at=isa
+.Cd hint.tpm.1.maddr=0xfed4
+.Cd hint.tpm.1.msize=0x1000
+.Sh DESCRIPTION
+The
+.Nm
+driver provides support for various trusted platfrom modules (TPM) that can
+store cryptographic keys. 
+.Pp
+Supported modules:
+.Pp
+.Bl -bullet -compact -offset indent
+.It
+Atmel 97SC3203
+.It
+Broadcom BCM0102
+.It
+Infineon IFX SLD 9630 TT 1.1 and IFX SLB 9635 TT 1.2
+.It
+Intel INTC0102
+.It
+Sinosun SNS SSX35
+.It
+STM ST19WP18
+.It
+Winbond WEC WPCT200
+.El
+.Pp
+The driver can be configured to use an IRQ by providing a free ISA
+interrupt vector in
+.Pa /boot/device.hints .
+.Sh SEE ALSO
+.Xr intro 4 ,
+.Xr files.conf 5,
+.Xr config 8
+.Sh AUTHORS
+.An -nosplit
+The
+.Nm
+driver was written by
+.An Michael Shalayeff
+and
+.An Hans-Joerg Hoexer .

Modified: head/sys/conf/files.i386
==
--- head/sys/conf/files.i386Wed Aug 11 23:59:21 2010(r211200)
+++ head/sys/conf/files.i386Thu Aug 12 00:16:18 2010(r211201)
@@ -231,6 +231,9 @@ dev/syscons/scterm-teken.c  optional sc
 dev/syscons/scvesactl.coptional sc vga vesa
 dev/syscons/scvgarndr.coptional sc vga
 dev/syscons/scvtb.coptional sc
+dev/tpm/tpm.c  optional tpm
+dev/tpm/tpm_acpi.c optional tpm acpi
+dev/tpm/tpm_isa.c  optional tpm isa
 dev/uart/uart_cpu_i386.c   optional uart
 dev/acpica/acpi_if.m   standard
 dev/acpi_support/acpi_wmi_if.m standard

Added: head/sys/dev/tpm/tpm.c
==
--- /dev/null   00:00:00 1970   (empty, because file is newly added)
+++ head/sys/dev/tpm/tpm.c  Thu Aug 12 00:16:18 2010(r211201)
@@ -0,0 +1,1492 @@
+/*
+ * Copyright (c) 2008, 2009 Michael Shalayeff
+ * Copyright (c) 2009, 2010 Hans-Joerg Hoexer
+ * All rights reserved.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED AS IS AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER IN
+ * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
+ * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+/* #define TPM_DEBUG */
+
+#include sys/cdefs.h
+__FBSDID($FreeBSD$);
+
+#include sys/param.h
+#include sys/systm.h
+#include sys/kernel.h
+#include sys/malloc.h
+#include sys/proc.h
+
+#ifdef __FreeBSD__
+#include sys/module.h
+#include sys/conf.h
+#include 

svn commit: r211204 - head/share/man/man4

2010-08-12 Thread Takanori Watanabe
Author: takawata
Date: Thu Aug 12 01:08:50 2010
New Revision: 211204
URL: http://svn.freebsd.org/changeset/base/211204

Log:
  Fix copyright information.

Modified:
  head/share/man/man4/tpm.4

Modified: head/share/man/man4/tpm.4
==
--- head/share/man/man4/tpm.4   Thu Aug 12 00:55:35 2010(r211203)
+++ head/share/man/man4/tpm.4   Thu Aug 12 01:08:50 2010(r211204)
@@ -1,5 +1,5 @@
 .\
-.\ Copyright (c) 2010 Hans-J
+.\ Copyright (c) 2010 Hans-Joerg Hoexer
 .\
 .\ Permission to use, copy, modify, and distribute this software for any
 .\ purpose with or without fee is hereby granted, provided that the above
___
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org


svn commit: r211219 - head/usr.sbin/acpi/acpidump

2010-08-12 Thread Takanori Watanabe
Author: takawata
Date: Thu Aug 12 11:01:38 2010
New Revision: 211219
URL: http://svn.freebsd.org/changeset/base/211219

Log:
  Fix tindebox breakage about format warning.

Modified:
  head/usr.sbin/acpi/acpidump/acpi.c

Modified: head/usr.sbin/acpi/acpidump/acpi.c
==
--- head/usr.sbin/acpi/acpidump/acpi.c  Thu Aug 12 11:00:45 2010
(r211218)
+++ head/usr.sbin/acpi/acpidump/acpi.c  Thu Aug 12 11:01:38 2010
(r211219)
@@ -646,7 +646,7 @@ acpi_handle_tcpa(ACPI_TABLE_HEADER *sdp)
printf(END_COMMENT);
return;
}
-   printf(\tClass %d Base Address 0x%jx Length %lld\n\n,
+   printf(\tClass %d Base Address 0x%jx Length %llu\n\n,
tcpa-platform_class, paddr, len);
 
if (len == 0) {
___
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org


svn commit: r211221 - head/usr.sbin/acpi/acpidump

2010-08-12 Thread Takanori Watanabe
Author: takawata
Date: Thu Aug 12 13:58:46 2010
New Revision: 211221
URL: http://svn.freebsd.org/changeset/base/211221

Log:
  Fix breakage on 64bit architecture by using inttypes.h macro.

Modified:
  head/usr.sbin/acpi/acpidump/acpi.c

Modified: head/usr.sbin/acpi/acpidump/acpi.c
==
--- head/usr.sbin/acpi/acpidump/acpi.c  Thu Aug 12 13:46:43 2010
(r211220)
+++ head/usr.sbin/acpi/acpidump/acpi.c  Thu Aug 12 13:58:46 2010
(r211221)
@@ -40,6 +40,7 @@
 #include stdlib.h
 #include string.h
 #include unistd.h
+#include inttypes.h
 
 #include acpidump.h
 
@@ -646,7 +647,7 @@ acpi_handle_tcpa(ACPI_TABLE_HEADER *sdp)
printf(END_COMMENT);
return;
}
-   printf(\tClass %d Base Address 0x%jx Length %llu\n\n,
+   printf(\tClass %d Base Address 0x%jx Length % PRIu64 \n\n,
tcpa-platform_class, paddr, len);
 
if (len == 0) {
___
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org


svn commit: r211252 - head/usr.sbin/acpi/acpidump

2010-08-12 Thread Takanori Watanabe
Author: takawata
Date: Fri Aug 13 00:45:30 2010
New Revision: 211252
URL: http://svn.freebsd.org/changeset/base/211252

Log:
  Fix build on amd64 and ia64.

Modified:
  head/usr.sbin/acpi/acpidump/acpi.c

Modified: head/usr.sbin/acpi/acpidump/acpi.c
==
--- head/usr.sbin/acpi/acpidump/acpi.c  Fri Aug 13 00:21:32 2010
(r211251)
+++ head/usr.sbin/acpi/acpidump/acpi.c  Fri Aug 13 00:45:30 2010
(r211252)
@@ -40,7 +40,6 @@
 #include stdlib.h
 #include string.h
 #include unistd.h
-#include inttypes.h
 
 #include acpidump.h
 
@@ -623,7 +622,7 @@ acpi_handle_tcpa(ACPI_TABLE_HEADER *sdp)
 {
struct TCPAbody *tcpa;
struct TCPAevent *event;
-   u_int64_t len, paddr;
+   uint64_t len, paddr;
unsigned char *vaddr = NULL;
unsigned char *vend = NULL;
 
@@ -647,7 +646,7 @@ acpi_handle_tcpa(ACPI_TABLE_HEADER *sdp)
printf(END_COMMENT);
return;
}
-   printf(\tClass %d Base Address 0x%jx Length % PRIu64 \n\n,
+   printf(\tClass %u Base Address 0x%jx Length %ju\n\n,
tcpa-platform_class, paddr, len);
 
if (len == 0) {
@@ -662,7 +661,7 @@ acpi_handle_tcpa(ACPI_TABLE_HEADER *sdp)
while (vaddr != NULL) {
if (vaddr + sizeof(struct TCPAevent) = vend)
break;
-   event = (struct TCPAevent *)vaddr;
+   event = (struct TCPAevent *)(void *)vaddr;
if (vaddr + event-event_size = vend)
break;
if (event-event_type == 0  event-event_size == 0)
___
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org


svn commit: r211270 - head/sys/modules/tpm

2010-08-12 Thread Takanori Watanabe
Author: takawata
Date: Fri Aug 13 04:00:35 2010
New Revision: 211270
URL: http://svn.freebsd.org/changeset/base/211270

Log:
  Hook tpm.4 manual to build.

Modified:
  head/sys/modules/tpm/Makefile

Modified: head/sys/modules/tpm/Makefile
==
--- head/sys/modules/tpm/Makefile   Fri Aug 13 03:17:33 2010
(r211269)
+++ head/sys/modules/tpm/Makefile   Fri Aug 13 04:00:35 2010
(r211270)
@@ -3,7 +3,9 @@
 .PATH: ${.CURDIR}/../../dev/tpm
 
 KMOD=  tpm
-SRCS=  tpm.c tpm_isa.c tpm_acpi.c isa_if.h opt_acpi.h acpi_if.h \
-   bus_if.h device_if.h
+
+SRCS=  tpm.c bus_if.h device_if.h
+#Bus specific stuff.
+SRCS+= tpm_isa.c tpm_acpi.c isa_if.h opt_acpi.h acpi_if.h
 
 .include bsd.kmod.mk
___
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org


svn commit: r211271 - head/share/man/man4

2010-08-12 Thread Takanori Watanabe
Author: takawata
Date: Fri Aug 13 05:01:44 2010
New Revision: 211271
URL: http://svn.freebsd.org/changeset/base/211271

Log:
  Hook tpm.4 manual to hook.

Modified:
  head/share/man/man4/Makefile

Modified: head/share/man/man4/Makefile
==
--- head/share/man/man4/MakefileFri Aug 13 04:00:35 2010
(r211270)
+++ head/share/man/man4/MakefileFri Aug 13 05:01:44 2010
(r211271)
@@ -419,6 +419,7 @@ MAN=aac.4 \
ti.4 \
tl.4 \
tnt4882.4 \
+   ${_tpm.4} \
trm.4 \
tty.4 \
tun.4 \
@@ -670,6 +671,7 @@ _padlock.4= padlock.4
 _rr232x.4= rr232x.4
 _speaker.4=speaker.4
 _spkr.4=   spkr.4
+_tpm.4=tpm.4
 _urtw.4=   urtw.4
 _wpi.4=wpi.4
 
___
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org


Re: svn commit: r211270 - head/sys/modules/tpm

2010-08-12 Thread Takanori Watanabe
In message 201008130400.o7d40zwp087...@svn.freebsd.org, Takanori Watanabe :
Author: takawata
Date: Fri Aug 13 04:00:35 2010
New Revision: 211270
URL: http://svn.freebsd.org/changeset/base/211270

Log:
  Hook tpm.4 manual to build.


Wrong directory. Real change was committed separately.

This is cosmetic change to separate core and 
bus frontend, because I heard some embedded platform also uses TPM.
___
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org


svn commit: r209967 - in head/sys/dev/usb: . serial

2010-07-12 Thread Takanori Watanabe
Author: takawata
Date: Tue Jul 13 03:49:30 2010
New Revision: 209967
URL: http://svn.freebsd.org/changeset/base/209967

Log:
  One more Prolific serial device ID.
  
  Submitted by: Kouichi Hirabayashi on FreeBSD-users-jp
  MFC after: 1 week.

Modified:
  head/sys/dev/usb/serial/uplcom.c
  head/sys/dev/usb/usbdevs

Modified: head/sys/dev/usb/serial/uplcom.c
==
--- head/sys/dev/usb/serial/uplcom.cTue Jul 13 02:48:42 2010
(r209966)
+++ head/sys/dev/usb/serial/uplcom.cTue Jul 13 03:49:30 2010
(r209967)
@@ -256,6 +256,8 @@ static const struct usb_device_id uplcom
UPLCOM_DEV(PROLIFIC, RSAQ2, 0, 0x, PL2303),
/* I/O DATA USB-RSAQ3 */
UPLCOM_DEV(PROLIFIC, RSAQ3, 0, 0x, PL2303X),
+   /* I/O DATA USB-RSAQ3 */
+   UPLCOM_DEV(IODATA, USBRSAQ5, 0, 0x, PL2303X),
/* PLANEX USB-RS232 URS-03 */
UPLCOM_DEV(ATEN, UC232A, 0, 0x, PL2303),
/* TrendNet TU-S9 */

Modified: head/sys/dev/usb/usbdevs
==
--- head/sys/dev/usb/usbdevsTue Jul 13 02:48:42 2010(r209966)
+++ head/sys/dev/usb/usbdevsTue Jul 13 03:49:30 2010(r209967)
@@ -1807,6 +1807,7 @@ product IODATA RT3072_2   0x0945  RT3072
 product IODATA RT3072_30x0947  RT3072
 product IODATA RT3072_40x0948  RT3072
 product IODATA USBRSAQ 0x0a03  Serial USB-RSAQ1
+product IODATA USBRSAQ50x0a0e  Serial USB-RSAQ5
 product IODATA2 USB2SC 0x0a09  USB2.0-SCSI Bridge USB2-SC
 
 /* Iomega products */
___
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org


svn commit: r209968 - head/sys/dev/usb/serial

2010-07-12 Thread Takanori Watanabe
Author: takawata
Date: Tue Jul 13 03:56:29 2010
New Revision: 209968
URL: http://svn.freebsd.org/changeset/base/209968

Log:
  Fix comment.
  
  Pointed out by: hrs

Modified:
  head/sys/dev/usb/serial/uplcom.c

Modified: head/sys/dev/usb/serial/uplcom.c
==
--- head/sys/dev/usb/serial/uplcom.cTue Jul 13 03:49:30 2010
(r209967)
+++ head/sys/dev/usb/serial/uplcom.cTue Jul 13 03:56:29 2010
(r209968)
@@ -256,7 +256,7 @@ static const struct usb_device_id uplcom
UPLCOM_DEV(PROLIFIC, RSAQ2, 0, 0x, PL2303),
/* I/O DATA USB-RSAQ3 */
UPLCOM_DEV(PROLIFIC, RSAQ3, 0, 0x, PL2303X),
-   /* I/O DATA USB-RSAQ3 */
+   /* I/O DATA USB-RSAQ5 */
UPLCOM_DEV(IODATA, USBRSAQ5, 0, 0x, PL2303X),
/* PLANEX USB-RS232 URS-03 */
UPLCOM_DEV(ATEN, UC232A, 0, 0x, PL2303),
___
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org


svn commit: r191346 - in head/sys/dev/usb: . serial

2009-04-20 Thread Takanori Watanabe
Author: takawata
Date: Tue Apr 21 05:06:31 2009
New Revision: 191346
URL: http://svn.freebsd.org/changeset/base/191346

Log:
  Add another FTDI serial converter.

Modified:
  head/sys/dev/usb/serial/uftdi.c
  head/sys/dev/usb/usbdevs

Modified: head/sys/dev/usb/serial/uftdi.c
==
--- head/sys/dev/usb/serial/uftdi.c Tue Apr 21 00:42:11 2009
(r191345)
+++ head/sys/dev/usb/serial/uftdi.c Tue Apr 21 05:06:31 2009
(r191346)
@@ -207,6 +207,7 @@ static struct usb2_device_id uftdi_devs[
{USB_VPI(USB_VENDOR_FTDI, USB_PRODUCT_FTDI_SERIAL_8U100AX, 
UFTDI_TYPE_SIO)},
{USB_VPI(USB_VENDOR_FTDI, USB_PRODUCT_FTDI_SERIAL_2232C, 
UFTDI_TYPE_8U232AM)},
{USB_VPI(USB_VENDOR_FTDI, USB_PRODUCT_FTDI_SERIAL_8U232AM, 
UFTDI_TYPE_8U232AM)},
+   {USB_VPI(USB_VENDOR_FTDI, USB_PRODUCT_FTDI_SERIAL_8U232AM4, 
UFTDI_TYPE_8U232AM)},
{USB_VPI(USB_VENDOR_FTDI, USB_PRODUCT_FTDI_SEMC_DSS20, 
UFTDI_TYPE_8U232AM)},
{USB_VPI(USB_VENDOR_FTDI, USB_PRODUCT_FTDI_CFA_631, 
UFTDI_TYPE_8U232AM)},
{USB_VPI(USB_VENDOR_FTDI, USB_PRODUCT_FTDI_CFA_632, 
UFTDI_TYPE_8U232AM)},

Modified: head/sys/dev/usb/usbdevs
==
--- head/sys/dev/usb/usbdevsTue Apr 21 00:42:11 2009(r191345)
+++ head/sys/dev/usb/usbdevsTue Apr 21 05:06:31 2009(r191346)
@@ -1287,6 +1287,7 @@ product FSC E5400 0x1009  PrismGT USB 2.
 /* Future Technology Devices products */
 product FTDI SERIAL_8U100AX0x8372  8U100AX Serial
 product FTDI SERIAL_8U232AM0x6001  8U232AM Serial
+product FTDI SERIAL_8U232AM4   0x6004  8U232AM Serial
 product FTDI SERIAL_2232C  0x6010  FT2232C Dual port Serial
 /* Gude Analog- und Digitalsysteme products also uses FTDI's id: */
 product FTDI TACTRIX_OPENPORT_13M 0xcc48 OpenPort 1.3 Mitsubishi
___
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org


svn commit: r187579 - head/sys/dev/usb2/serial

2009-01-21 Thread Takanori Watanabe
Author: takawata
Date: Thu Jan 22 05:05:56 2009
New Revision: 187579
URL: http://svn.freebsd.org/changeset/base/187579

Log:
  Rename sc_is_pseudo to sc_nobulk member in ufoma_softc.
  That was pseudo ucom because it used home brew tty interface.
  Now, it is integrated to usb serial framework, so it is not pseudo
  ucom any more.

Modified:
  head/sys/dev/usb2/serial/ufoma2.c

Modified: head/sys/dev/usb2/serial/ufoma2.c
==
--- head/sys/dev/usb2/serial/ufoma2.c   Thu Jan 22 04:24:15 2009
(r187578)
+++ head/sys/dev/usb2/serial/ufoma2.c   Thu Jan 22 05:05:56 2009
(r187579)
@@ -175,7 +175,7 @@ struct ufoma_softc {
uint16_t sc_line;
 
uint8_t sc_num_msg;
-   uint8_t sc_is_pseudo;
+   uint8_t sc_nobulk;
uint8_t sc_ctrl_iface_no;
uint8_t sc_ctrl_iface_index;
uint8_t sc_data_iface_no;
@@ -449,9 +449,9 @@ ufoma_attach(device_t dev)
}
if ((mad-bType == UMCPC_ACM_TYPE_AB5) ||
(mad-bType == UMCPC_ACM_TYPE_AB6)) {
-   sc-sc_is_pseudo = 1;
+   sc-sc_nobulk = 1;
} else {
-   sc-sc_is_pseudo = 0;
+   sc-sc_nobulk = 0;
if (ufoma_modem_setup(dev, sc, uaa)) {
goto detach;
}
@@ -764,7 +764,7 @@ ufoma_intr_callback(struct usb2_xfer *xf
}
switch (pkt.bNotification) {
case UCDC_N_RESPONSE_AVAILABLE:
-   if (!(sc-sc_is_pseudo)) {
+   if (!(sc-sc_nobulk)) {
DPRINTF(Wrong serial state!\n);
break;
}
@@ -775,7 +775,7 @@ ufoma_intr_callback(struct usb2_xfer *xf
break;
 
case UCDC_N_SERIAL_STATE:
-   if (sc-sc_is_pseudo) {
+   if (sc-sc_nobulk) {
DPRINTF(Wrong serial state!\n);
break;
}
@@ -952,7 +952,7 @@ ufoma_cfg_set_break(struct usb2_com_soft
struct usb2_device_request req;
uint16_t wValue;
 
-   if (sc-sc_is_pseudo ||
+   if (sc-sc_nobulk ||
(sc-sc_currentmode == UMCPC_ACM_MODE_OBEX)) {
return;
}
@@ -1004,7 +1004,7 @@ ufoma_cfg_set_dtr(struct usb2_com_softc 
 {
struct ufoma_softc *sc = ucom-sc_parent;
 
-   if (sc-sc_is_pseudo) {
+   if (sc-sc_nobulk) {
return;
}
if (onoff)
@@ -1020,7 +1020,7 @@ ufoma_cfg_set_rts(struct usb2_com_softc 
 {
struct ufoma_softc *sc = ucom-sc_parent;
 
-   if (sc-sc_is_pseudo) {
+   if (sc-sc_nobulk) {
return;
}
if (onoff)
@@ -1044,7 +1044,7 @@ ufoma_cfg_param(struct usb2_com_softc *u
struct usb2_device_request req;
struct usb2_cdc_line_state ls;
 
-   if (sc-sc_is_pseudo ||
+   if (sc-sc_nobulk ||
(sc-sc_currentmode == UMCPC_ACM_MODE_OBEX)) {
return;
}
@@ -1175,7 +1175,7 @@ ufoma_start_read(struct usb2_com_softc *
usb2_transfer_start(sc-sc_ctrl_xfer[UFOMA_CTRL_ENDPT_INTR]);
 
/* start data transfer */
-   if (sc-sc_is_pseudo) {
+   if (sc-sc_nobulk) {
usb2_transfer_start(sc-sc_ctrl_xfer[UFOMA_CTRL_ENDPT_READ]);
} else {
usb2_transfer_start(sc-sc_bulk_xfer[UFOMA_BULK_ENDPT_READ]);
@@ -1192,7 +1192,7 @@ ufoma_stop_read(struct usb2_com_softc *u
usb2_transfer_stop(sc-sc_ctrl_xfer[UFOMA_CTRL_ENDPT_INTR_CLEAR]);
 
/* stop data transfer */
-   if (sc-sc_is_pseudo) {
+   if (sc-sc_nobulk) {
usb2_transfer_stop(sc-sc_ctrl_xfer[UFOMA_CTRL_ENDPT_READ]);
} else {

usb2_transfer_stop(sc-sc_bulk_xfer[UFOMA_BULK_ENDPT_READ_CLEAR]);
@@ -1205,7 +1205,7 @@ ufoma_start_write(struct usb2_com_softc 
 {
struct ufoma_softc *sc = ucom-sc_parent;
 
-   if (sc-sc_is_pseudo) {
+   if (sc-sc_nobulk) {
usb2_transfer_start(sc-sc_ctrl_xfer[UFOMA_CTRL_ENDPT_WRITE]);
} else {
usb2_transfer_start(sc-sc_bulk_xfer[UFOMA_BULK_ENDPT_WRITE]);
@@ -1217,7 +1217,7 @@ ufoma_stop_write(struct usb2_com_softc *
 {
struct ufoma_softc *sc = ucom-sc_parent;
 
-   if (sc-sc_is_pseudo) {
+   if (sc-sc_nobulk) {
usb2_transfer_stop(sc-sc_ctrl_xfer[UFOMA_CTRL_ENDPT_WRITE]);
} else {

usb2_transfer_stop(sc-sc_bulk_xfer[UFOMA_BULK_ENDPT_WRITE_CLEAR]);
___
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org


svn commit: r187299 - head/sys/dev/usb2/serial

2009-01-15 Thread Takanori Watanabe
Author: takawata
Date: Thu Jan 15 16:04:11 2009
New Revision: 187299
URL: http://svn.freebsd.org/changeset/base/187299

Log:
  Name the items of xfer array.

Modified:
  head/sys/dev/usb2/serial/ufoma2.c

Modified: head/sys/dev/usb2/serial/ufoma2.c
==
--- head/sys/dev/usb2/serial/ufoma2.c   Thu Jan 15 12:15:46 2009
(r187298)
+++ head/sys/dev/usb2/serial/ufoma2.c   Thu Jan 15 16:04:11 2009
(r187299)
@@ -143,8 +143,21 @@ typedef struct ufoma_mobile_acm_descript
 
 #defineUFOMA_BULK_BUF_SIZE 1024/* bytes */
 
-#defineUFOMA_CTRL_ENDPT_MAX 4  /* units */
-#defineUFOMA_BULK_ENDPT_MAX 4  /* units */
+enum {
+   UFOMA_CTRL_ENDPT_INTR,
+   UFOMA_CTRL_ENDPT_INTR_CLEAR,
+   UFOMA_CTRL_ENDPT_READ,
+   UFOMA_CTRL_ENDPT_WRITE,
+   UFOMA_CTRL_ENDPT_MAX = 4,
+};
+
+enum {
+   UFOMA_BULK_ENDPT_WRITE,
+   UFOMA_BULK_ENDPT_READ,  
+   UFOMA_BULK_ENDPT_WRITE_CLEAR,
+   UFOMA_BULK_ENDPT_READ_CLEAR,
+   UFOMA_BULK_ENDPT_MAX = 4,
+};
 
 struct ufoma_softc {
struct usb2_com_super_softc sc_super_ucom;
@@ -227,7 +240,7 @@ static int ufoma_sysctl_open(SYSCTL_HAND
 static const struct usb2_config
ufoma_ctrl_config[UFOMA_CTRL_ENDPT_MAX] = {
 
-   [0] = {
+   [UFOMA_CTRL_ENDPT_INTR] = {
.type = UE_INTERRUPT,
.endpoint = UE_ADDR_ANY,
.direction = UE_DIR_IN,
@@ -236,7 +249,7 @@ static const struct usb2_config
.mh.callback = ufoma_intr_callback,
},
 
-   [1] = {
+   [UFOMA_CTRL_ENDPT_INTR_CLEAR] = {
.type = UE_CONTROL,
.endpoint = 0x00,   /* Control pipe */
.direction = UE_DIR_ANY,
@@ -247,7 +260,7 @@ static const struct usb2_config
.mh.interval = 50,  /* 50ms */
},
 
-   [2] = {
+   [UFOMA_CTRL_ENDPT_READ] = {
.type = UE_CONTROL,
.endpoint = 0x00,   /* Control pipe */
.direction = UE_DIR_ANY,
@@ -257,7 +270,7 @@ static const struct usb2_config
.mh.timeout = 1000, /* 1 second */
},
 
-   [3] = {
+   [UFOMA_CTRL_ENDPT_WRITE] = {
.type = UE_CONTROL,
.endpoint = 0x00,   /* Control pipe */
.direction = UE_DIR_ANY,
@@ -271,7 +284,7 @@ static const struct usb2_config
 static const struct usb2_config
ufoma_bulk_config[UFOMA_BULK_ENDPT_MAX] = {
 
-   [0] = {
+   [UFOMA_BULK_ENDPT_WRITE] = {
.type = UE_BULK,
.endpoint = UE_ADDR_ANY,
.direction = UE_DIR_OUT,
@@ -280,7 +293,7 @@ static const struct usb2_config
.mh.callback = ufoma_bulk_write_callback,
},
 
-   [1] = {
+   [UFOMA_BULK_ENDPT_READ] = {
.type = UE_BULK,
.endpoint = UE_ADDR_ANY,
.direction = UE_DIR_IN,
@@ -289,7 +302,7 @@ static const struct usb2_config
.mh.callback = ufoma_bulk_read_callback,
},
 
-   [2] = {
+   [UFOMA_BULK_ENDPT_WRITE_CLEAR] = {
.type = UE_CONTROL,
.endpoint = 0x00,   /* Control pipe */
.direction = UE_DIR_ANY,
@@ -300,7 +313,7 @@ static const struct usb2_config
.mh.interval = 50,  /* 50ms */
},
 
-   [3] = {
+   [UFOMA_BULK_ENDPT_READ_CLEAR] = {
.type = UE_CONTROL,
.endpoint = 0x00,   /* Control pipe */
.direction = UE_DIR_ANY,
@@ -701,7 +714,7 @@ static void
 ufoma_intr_clear_stall_callback(struct usb2_xfer *xfer)
 {
struct ufoma_softc *sc = xfer-priv_sc;
-   struct usb2_xfer *xfer_other = sc-sc_ctrl_xfer[0];
+   struct usb2_xfer *xfer_other = sc-sc_ctrl_xfer[UFOMA_CTRL_ENDPT_INTR];
 
if (usb2_clear_stall_callback(xfer, xfer_other)) {
DPRINTF(stall cleared\n);
@@ -758,7 +771,7 @@ ufoma_intr_callback(struct usb2_xfer *xf
if (sc-sc_num_msg != 0xFF) {
sc-sc_num_msg++;
}
-   usb2_transfer_start(sc-sc_ctrl_xfer[2]);
+   
usb2_transfer_start(sc-sc_ctrl_xfer[UFOMA_CTRL_ENDPT_READ]);
break;
 
case UCDC_N_SERIAL_STATE:
@@ -803,7 +816,7 @@ ufoma_intr_callback(struct usb2_xfer *xf
case USB_ST_SETUP:
 tr_setup:
if (sc-sc_flags  UFOMA_FLAG_INTR_STALL) {
-   usb2_transfer_start(sc-sc_ctrl_xfer[1]);
+   
usb2_transfer_start(sc-sc_ctrl_xfer[UFOMA_CTRL_ENDPT_INTR_CLEAR]);
} else {
xfer-frlengths[0] = xfer-max_data_length;
usb2_start_hardware(xfer);
@@ -814,7 +827,7 @@ tr_setup:
if (xfer-error != USB_ERR_CANCELLED) {
 

svn commit: r187113 - head/sys/dev/usb2/serial

2009-01-12 Thread Takanori Watanabe
Author: takawata
Date: Mon Jan 12 20:13:14 2009
New Revision: 187113
URL: http://svn.freebsd.org/changeset/base/187113

Log:
  More usb2 foma driver update.
  1. Export usb serial port unit number as sysctl.
  2. Fix bug on handsfree port.

Modified:
  head/sys/dev/usb2/serial/ufoma2.c

Modified: head/sys/dev/usb2/serial/ufoma2.c
==
--- head/sys/dev/usb2/serial/ufoma2.c   Mon Jan 12 19:23:46 2009
(r187112)
+++ head/sys/dev/usb2/serial/ufoma2.c   Mon Jan 12 20:13:14 2009
(r187113)
@@ -3,7 +3,6 @@
 #include sys/cdefs.h
 __FBSDID($FreeBSD$);
 #define UFOMA_HANDSFREE
-
 /*-
  * Copyright (c) 2005, Takanori Watanabe
  * Copyright (c) 2003, M. Warner Losh i...@freebsd.org.
@@ -486,7 +485,9 @@ ufoma_attach(device_t dev)
SYSCTL_ADD_PROC(sctx, SYSCTL_CHILDREN(soid), OID_AUTO, openmode,
CTLFLAG_RW|CTLTYPE_STRING, sc, 0, ufoma_sysctl_open,
A, Mode to transit when port is opened);
-
+   SYSCTL_ADD_UINT(sctx, SYSCTL_CHILDREN(soid), OID_AUTO, comunit,
+   CTLFLAG_RD, (sc-sc_ucom.sc_unit), 0, 
+   Unit number as USB serial);
 
return (0); /* success */
 
@@ -758,7 +759,7 @@ ufoma_intr_callback(struct usb2_xfer *xf
if (sc-sc_num_msg != 0xFF) {
sc-sc_num_msg++;
}
-   usb2_transfer_start(sc-sc_ctrl_xfer[3]);
+   usb2_transfer_start(sc-sc_ctrl_xfer[2]);
break;
 
case UCDC_N_SERIAL_STATE:
___
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org


svn commit: r185295 - head/sys/i386/i386

2008-11-25 Thread Takanori Watanabe
Author: takawata
Date: Tue Nov 25 13:35:06 2008
New Revision: 185295
URL: http://svn.freebsd.org/changeset/base/185295

Log:
  Core i7 supports invaliant TSC and the presense is presented on
  this CPUID information, according to recently updated AP485.

Modified:
  head/sys/i386/i386/identcpu.c

Modified: head/sys/i386/i386/identcpu.c
==
--- head/sys/i386/i386/identcpu.c   Tue Nov 25 13:33:18 2008
(r185294)
+++ head/sys/i386/i386/identcpu.c   Tue Nov 25 13:35:06 2008
(r185295)
@@ -846,7 +846,8 @@ printcpuinfo(void)
 * mention the capability.
 */
if (!tsc_is_invariant 
-   (strcmp(cpu_vendor, AuthenticAMD) == 0 
+   ((strcmp(cpu_vendor, AuthenticAMD) == 0 ||
+ (strcmp(cpu_vendor, GenuineIntel) == 0))
((amd_pminfo  AMDPM_TSC_INVARIANT) != 0 ||
I386_CPU_FAMILY(cpu_id) = 0x10 ||
cpu_id == 0x60fb2))) {
___
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to [EMAIL PROTECTED]