From owner-freebsd-usb@FreeBSD.ORG Thu Aug 4 14:40:17 2005 Return-Path: X-Original-To: freebsd-usb@hub.freebsd.org Delivered-To: freebsd-usb@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 2E8C816A41F for ; Thu, 4 Aug 2005 14:40:17 +0000 (GMT) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id 6AE9043D4C for ; Thu, 4 Aug 2005 14:40:16 +0000 (GMT) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.13.3/8.13.3) with ESMTP id j74EeGcW094500 for ; Thu, 4 Aug 2005 14:40:16 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.13.3/8.13.1/Submit) id j74EeGe8094499; Thu, 4 Aug 2005 14:40:16 GMT (envelope-from gnats) Date: Thu, 4 Aug 2005 14:40:16 GMT Message-Id: <200508041440.j74EeGe8094499@freefall.freebsd.org> To: freebsd-usb@FreeBSD.org From: Mohacsi Janos Cc: Subject: Re: usb/83863: Communication problem between opensc/openct via USB with e-gate smart-card. X-BeenThere: freebsd-usb@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Mohacsi Janos List-Id: FreeBSD support for USB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 04 Aug 2005 14:40:17 -0000 The following reply was made to PR usb/83863; it has been noted by GNATS. From: Mohacsi Janos To: Hans Petter Selasky Cc: bug-followup@freebsd.org, janos.mohacsi@bsd.hu Subject: Re: usb/83863: Communication problem between opensc/openct via USB with e-gate smart-card. Date: Thu, 4 Aug 2005 16:39:39 +0200 (CEST) This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. --0-318097300-1123166379=:86134 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Hi Hans, Here it is: - (Sorry, it is large... - should I omit bug-followup next time?) 1. debug output of ifdhandler Aug 4 15:47:23 scone ifdhandler[808]: ifd_open: trying to open egate@/dev/ugen0 Aug 4 15:47:23 scone ifdhandler[808]: eg_open: device=/dev/ugen0 Aug 4 15:47:23 scone ifdhandler[808]: ifd_sysdep_device_type: BSD: ifd_sysdep_device_type(/dev/ugen0) Aug 4 15:47:23 scone ifdhandler[808]: ifd_sysdep_device_type: BSD: returning IFD_DEVICE_TYPE_USB Aug 4 15:47:23 scone ifdhandler[808]: eg_activate: called. Aug 4 15:47:23 scone ifdhandler[808]: eg_card_status: slot=0 Aug 4 15:47:23 scone ifdhandler[808]: ifdhandler_poll_presence: card status change: 0 -> 1 Aug 4 15:47:24 scone ifdhandler[808]: eg_card_status: slot=0 Aug 4 15:47:55 scone last message repeated 31 times Aug 4 15:48:10 scone last message repeated 15 times Aug 4 15:48:10 scone ifdhandler[808]: ifdhandler_process: ifdhandler_process(cmd=CT_CMD_RESET, unit=0) Aug 4 15:48:10 scone ifdhandler[808]: eg_card_reset: called. Aug 4 15:48:10 scone ifdhandler[808]: ifd_usb_control: usb req type=x40 req=x90 val=x0000 ind=x0000 len=0 Aug 4 15:48:10 scone ifdhandler[808]: ifd_sysdep_usb_control: BSD: ifd_sysdep_usb_control(0x90) Aug 4 15:48:10 scone ifdhandler[808]: ifd_sysdep_usb_control: BSD: CTRL bmRequestType 0x40 bRequest 0x90 wValue 0x0 wIndex 0x0 wLength 0x0 Aug 4 15:48:10 scone ifdhandler[808]: ifd_sysdep_usb_control: BSD: ctrl.ucr_data == NULL Aug 4 15:48:10 scone ifdhandler[808]: ifd_sysdep_usb_control: BSD: ifd_sysdep_usb_control(0xa0) Aug 4 15:48:10 scone ifdhandler[808]: ifd_sysdep_usb_control: BSD: CTRL bmRequestType 0xc0 bRequest 0xa0 wValue 0x0 wIndex 0x0 wLength 0x1 Aug 4 15:48:10 scone ifdhandler[808]: ifd_sysdep_usb_control: BSD: CTRL SEND data 80 Aug 4 15:48:10 scone ifdhandler[808]: ifd_sysdep_usb_control: BSD: CTRL RECV data 00 Aug 4 15:48:10 scone ifdhandler[808]: ifd_usb_control: usb req type=xc0 req=xa0 val=x0000 ind=x0000 len=1 Aug 4 15:48:10 scone ifdhandler[808]: ifd_usb_control: recv 00 Aug 4 15:48:10 scone ifdhandler[808]: ifd_sysdep_usb_control: BSD: ifd_sysdep_usb_control(0x83) Aug 4 15:48:10 scone ifdhandler[808]: ifd_sysdep_usb_control: BSD: CTRL bmRequestType 0xc0 bRequest 0x83 wValue 0x0 wIndex 0x0 wLength 0x23 Aug 4 15:48:10 scone ifdhandler[808]: ifd_sysdep_usb_control: BSD: CTRL SEND data 05 00 00 00 05 00 00 00 00 01 07 28 00 00 00 01 64 ca 56 0d 66 84 07 28 00 01 07 28 a0 ab bf bf 05 00 00 Aug 4 15:48:10 scone ifdhandler[808]: ifd_sysdep_usb_control: BSD: CTRL RECV data 3b 95 18 40 ff 62 01 02 01 04 Aug 4 15:48:10 scone ifdhandler[808]: ifd_usb_control: usb req type=xc0 req=x83 val=x0000 ind=x0000 len=10 Aug 4 15:48:10 scone ifdhandler[808]: ifd_usb_control: recv 3b 95 18 40 ff 62 01 02 01 04 Aug 4 15:48:10 scone ifdhandler[808]: ifd_protocol_select: atr= 3b 95 18 40 ff 62 01 02 01 04 Aug 4 15:48:10 scone ifdhandler[808]: ifd_protocol_select: default T=0, supported protocols=0x1 Aug 4 15:48:10 scone ifdhandler[808]: eg_set_protocol: proto=0 Aug 4 15:48:10 scone ifdhandler[808]: ifdhandler_process: ifdhandler_process(cmd=CT_CMD_LOCK, unit=0) Aug 4 15:48:10 scone ifdhandler[808]: ifdhandler_lock: granted excl lock 0 for slot 0 by uid=4294967294 Aug 4 15:48:10 scone ifdhandler[808]: ifdhandler_process: ifdhandler_process(cmd=CT_CMD_TRANSACT, unit=0) Aug 4 15:48:10 scone ifdhandler[808]: ifd_protocol_transceive: cmd: c0 a4 00 00 02 3f 00 Aug 4 15:48:10 scone ifdhandler[808]: ifd_sysdep_usb_control: BSD: ifd_sysdep_usb_control(0xa0) Aug 4 15:48:10 scone ifdhandler[808]: ifd_sysdep_usb_control: BSD: CTRL bmRequestType 0xc0 bRequest 0xa0 wValue 0x0 wIndex 0x0 wLength 0x1 Aug 4 15:48:10 scone ifdhandler[808]: ifd_sysdep_usb_control: BSD: CTRL SEND data 28 Aug 4 15:48:10 scone ifdhandler[808]: ifd_sysdep_usb_control: BSD: CTRL RECV data 00 Aug 4 15:48:10 scone ifdhandler[808]: ifd_usb_control: usb req type=xc0 req=xa0 val=x0000 ind=x0000 len=1 Aug 4 15:48:10 scone ifdhandler[808]: ifd_usb_control: recv 00 Aug 4 15:48:10 scone ifdhandler[808]: ifd_usb_control: usb req type=x40 req=x80 val=x0000 ind=x0000 len=5 Aug 4 15:48:10 scone ifdhandler[808]: ifd_usb_control: send c0 a4 00 00 02 Aug 4 15:48:10 scone ifdhandler[808]: ifd_sysdep_usb_control: BSD: ifd_sysdep_usb_control(0x80) Aug 4 15:48:10 scone ifdhandler[808]: ifd_sysdep_usb_control: BSD: CTRL bmRequestType 0x40 bRequest 0x80 wValue 0x0 wIndex 0x0 wLength 0x5 Aug 4 15:48:10 scone ifdhandler[808]: ifd_sysdep_usb_control: BSD: CTRL SEND data c0 a4 00 00 02 Aug 4 15:48:10 scone ifdhandler[808]: ifd_sysdep_usb_control: USB_DO_REQUEST failed: -1 Aug 4 15:48:10 scone ifdhandler[808]: ifd_protocol_transceive: transceive error: Communication error Aug 4 15:48:10 scone ifdhandler[808]: ifdhandler_unlock_all: released excl lock 0 for slot 0 by uid=4294967294 Aug 4 15:48:11 scone ifdhandler[808]: eg_card_status: slot=0 2. The trimmed down uhci debug output Aug 4 15:48:10 scone kernel: uhci_device_ctrl_start: type=0x40, request=0x90, wValue=0x0000, wIndex=0x0000 len=0, addr=126, endpt=0 Aug 4 15:48:10 scone kernel: uhci_setup_standard_chain: addr=126 endpt=0 len=8 speed=1 Aug 4 15:48:10 scone kernel: uhci_setup_standard_chain: nexttog=1; data before transfer: Aug 4 15:48:10 scone kernel: uhci_dump_td: TD(0xc1bdb1e0) at 1f06f1e4 = link=0x1f06f204 status=0x1c8003ff token=0x00e07e2d buffer=0x1f06f1d4 Aug 4 15:48:10 scone kernel: uhci_dump_td: 1f06f204 1c8003ff,errcnt=3,actlen=0 pid=2d,addr=126,endpt=0,D=0,maxlen=8 Aug 4 15:48:10 scone kernel: uhci_dump_td: TD(0xc1bdb200) at 1f06f204 = link=0x00000001 status=0x3d8003ff token=0xffe87e69 buffer=0x00000000 Aug 4 15:48:10 scone kernel: uhci_dump_td: 1 3d8003ff,errcnt=3,actlen=0 pid=69,addr=126,endpt=0,D=1,maxlen=0 Aug 4 15:48:10 scone kernel: _uhci_append_qh: 0xc1bdb260 to 0xdd6c5000 Aug 4 15:48:10 scone kernel: uhci_non_isoc_done: xfer=0xc1bdb000 pipe=0xc1ca3004 transfer done Aug 4 15:48:10 scone kernel: uhci_dump_td: TD(0xc1bdb1e0) at 1f06f1e4 = link=0x1f06f204 status=0x1c000007 token=0x00e07e2d buffer=0x1f06f1d4 Aug 4 15:48:10 scone kernel: uhci_dump_td: 1f06f204 1c000007,errcnt=3,actlen=8 pid=2d,addr=126,endpt=0,D=0,maxlen=8 Aug 4 15:48:10 scone kernel: uhci_dump_td: TD(0xc1bdb200) at 1f06f204 = link=0x00000001 status=0x3d0007ff token=0xffe87e69 buffer=0x00000000 Aug 4 15:48:10 scone kernel: uhci_dump_td: 1 3d0007ff,errcnt=3,actlen=0 pid=69,addr=126,endpt=0,D=1,maxlen=0 Aug 4 15:48:10 scone kernel: uhci_non_isoc_done: actlen=8 Aug 4 15:48:10 scone kernel: uhci_device_done: xfer=0xc1bdb000, pipe=0xc1ca3004 length=8 error=0 Aug 4 15:48:10 scone kernel: _uhci_remove_qh: 0xc1bdb260 from 0xc1bdb260 Aug 4 15:48:10 scone kernel: uhci_device_done: xfer=0xc1bdb000, pipe=0xc1ca3004 length=8 error=5 Aug 4 15:48:10 scone kernel: _uhci_remove_qh: 0xc1bdb260 from 0xdd6c5000 Aug 4 15:48:10 scone kernel: uhci_device_ctrl_start: type=0xc0, request=0xa0, wValue=0x0000, wIndex=0x0000 len=1, addr=126, endpt=0 Aug 4 15:48:10 scone kernel: uhci_setup_standard_chain: addr=126 endpt=0 len=9 speed=1 Aug 4 15:48:10 scone kernel: uhci_setup_standard_chain: nexttog=1; data before transfer: Aug 4 15:48:10 scone kernel: uhci_dump_td: TD(0xc1c809e0) at 003749e4 = link=0x00374a04 status=0x1c8003ff token=0x00e07e2d buffer=0x003749d4 Aug 4 15:48:10 scone kernel: uhci_dump_td: 374a04 1c8003ff,errcnt=3,actlen=0 pid=2d,addr=126,endpt=0,D=0,maxlen=8 Aug 4 15:48:10 scone kernel: uhci_dump_td: TD(0xc1c80a00) at 00374a04 = link=0x00374a24 status=0x3c8003ff token=0x00087e69 buffer=0x003749dc Aug 4 15:48:10 scone kernel: uhci_dump_td: 374a24 3c8003ff,errcnt=3,actlen=0 pid=69,addr=126,endpt=0,D=1,maxlen=1 Aug 4 15:48:10 scone kernel: uhci_dump_td: TD(0xc1c80a20) at 00374a24 = link=0x00000001 status=0x3d8003ff token=0xffe87ee1 buffer=0x00000000 Aug 4 15:48:10 scone kernel: uhci_dump_td: 1 3d8003ff,errcnt=3,actlen=0 pid=e1,addr=126,endpt=0,D=1,maxlen=0 Aug 4 15:48:10 scone kernel: _uhci_append_qh: 0xc1c80a60 to 0xdd6c5000 Aug 4 15:48:10 scone kernel: uhci_non_isoc_done: xfer=0xc1c80800 pipe=0xc1ca3004 transfer done Aug 4 15:48:10 scone kernel: uhci_dump_td: TD(0xc1c809e0) at 003749e4 = link=0x00374a04 status=0x1c000007 token=0x00e07e2d buffer=0x003749d4 Aug 4 15:48:10 scone kernel: uhci_dump_td: 374a04 1c000007,errcnt=3,actlen=8 pid=2d,addr=126,endpt=0,D=0,maxlen=8 Aug 4 15:48:10 scone kernel: uhci_dump_td: TD(0xc1c80a00) at 00374a04 = link=0x00374a24 status=0x3c000000 token=0x00087e69 buffer=0x003749dc Aug 4 15:48:10 scone kernel: uhci_dump_td: 374a24 3c000000,errcnt=3,actlen=1 pid=69,addr=126,endpt=0,D=1,maxlen=1 Aug 4 15:48:10 scone kernel: uhci_dump_td: TD(0xc1c80a20) at 00374a24 = link=0x00000001 status=0x3d0007ff token=0xffe87ee1 buffer=0x00000000 Aug 4 15:48:10 scone kernel: uhci_dump_td: 1 3d0007ff,errcnt=3,actlen=0 pid=e1,addr=126,endpt=0,D=1,maxlen=0 Aug 4 15:48:10 scone kernel: uhci_non_isoc_done: actlen=9 Aug 4 15:48:10 scone kernel: uhci_device_done: xfer=0xc1c80800, pipe=0xc1ca3004 length=9 error=0 Aug 4 15:48:10 scone kernel: _uhci_remove_qh: 0xc1c80a60 from 0xc1c80a60 Aug 4 15:48:10 scone kernel: uhci_device_done: xfer=0xc1c80800, pipe=0xc1ca3004 length=9 error=5 Aug 4 15:48:10 scone kernel: _uhci_remove_qh: 0xc1c80a60 from 0xdd6c5000 Aug 4 15:48:10 scone kernel: uhci_device_ctrl_start: type=0xc0, request=0x83, wValue=0x0000, wIndex=0x0000 len=35, addr=126, endpt=0 Aug 4 15:48:10 scone kernel: uhci_setup_standard_chain: addr=126 endpt=0 len=43 speed=1 Aug 4 15:48:10 scone kernel: uhci_setup_standard_chain: nexttog=1; data before transfer: Aug 4 15:48:10 scone kernel: uhci_dump_td: TD(0xc1bdb200) at 1f06f204 = link=0x1f06f224 status=0x1c8003ff token=0x00e07e2d buffer=0x1f06f1d4 Aug 4 15:48:10 scone kernel: uhci_dump_td: 1f06f224 1c8003ff,errcnt=3,actlen=0 pid=2d,addr=126,endpt=0,D=0,maxlen=8 Aug 4 15:48:10 scone kernel: uhci_dump_td: TD(0xc1bdb220) at 1f06f224 = link=0x1f06f244 status=0x3c8003ff token=0x00e87e69 buffer=0x1f06f1dc Aug 4 15:48:10 scone kernel: uhci_dump_td: 1f06f244 3c8003ff,errcnt=3,actlen=0 pid=69,addr=126,endpt=0,D=1,maxlen=8 Aug 4 15:48:10 scone kernel: uhci_dump_td: TD(0xc1bdb240) at 1f06f244 = link=0x1f06f264 status=0x3c8003ff token=0x00e07e69 buffer=0x1f06f1e4 Aug 4 15:48:10 scone kernel: uhci_dump_td: 1f06f264 3c8003ff,errcnt=3,actlen=0 pid=69,addr=126,endpt=0,D=0,maxlen=8 Aug 4 15:48:10 scone kernel: uhci_dump_td: TD(0xc1bdb260) at 1f06f264 = link=0x1f06f284 status=0x3c8003ff token=0x00e87e69 buffer=0x1f06f1ec Aug 4 15:48:10 scone kernel: uhci_dump_td: 1f06f284 3c8003ff,errcnt=3,actlen=0 pid=69,addr=126,endpt=0,D=1,maxlen=8 Aug 4 15:48:10 scone kernel: uhci_dump_td: TD(0xc1bdb280) at 1f06f284 = link=0x1f06f2a4 status=0x3c8003ff token=0x00e07e69 buffer=0x1f06f1f4 Aug 4 15:48:10 scone kernel: uhci_dump_td: 1f06f2a4 3c8003ff,errcnt=3,actlen=0 pid=69,addr=126,endpt=0,D=0,maxlen=8 Aug 4 15:48:10 scone kernel: uhci_dump_td: TD(0xc1bdb2a0) at 1f06f2a4 = link=0x1f06f2c4 status=0x3c8003ff token=0x00487e69 buffer=0x1f06f1fc Aug 4 15:48:10 scone kernel: uhci_dump_td: 1f06f2c4 3c8003ff,errcnt=3,actlen=0 pid=69,addr=126,endpt=0,D=1,maxlen=3 Aug 4 15:48:10 scone kernel: uhci_dump_td: TD(0xc1bdb2c0) at 1f06f2c4 = link=0x00000001 status=0x3d8003ff token=0xffe87ee1 buffer=0x00000000 Aug 4 15:48:10 scone kernel: uhci_dump_td: 1 3d8003ff,errcnt=3,actlen=0 pid=e1,addr=126,endpt=0,D=1,maxlen=0 Aug 4 15:48:10 scone kernel: _uhci_append_qh: 0xc1bdb300 to 0xdd6c5000 Aug 4 15:48:10 scone kernel: uhci_check_transfer: xfer=0xc1bdb000 active Aug 4 15:48:10 scone kernel: uhci_non_isoc_done: xfer=0xc1bdb000 pipe=0xc1ca3004 transfer done Aug 4 15:48:10 scone kernel: uhci_dump_td: TD(0xc1bdb200) at 1f06f204 = link=0x1f06f224 status=0x1c000007 token=0x00e07e2d buffer=0x1f06f1d4 Aug 4 15:48:10 scone kernel: uhci_dump_td: 1f06f224 1c000007,errcnt=3,actlen=8 pid=2d,addr=126,endpt=0,D=0,maxlen=8 Aug 4 15:48:10 scone kernel: uhci_dump_td: TD(0xc1bdb220) at 1f06f224 = link=0x1f06f244 status=0x3c000007 token=0x00e87e69 buffer=0x1f06f1dc Aug 4 15:48:10 scone kernel: uhci_dump_td: 1f06f244 3c000007,errcnt=3,actlen=8 pid=69,addr=126,endpt=0,D=1,maxlen=8 Aug 4 15:48:10 scone kernel: uhci_dump_td: TD(0xc1bdb240) at 1f06f244 = link=0x1f06f264 status=0x3c000001 token=0x00e07e69 buffer=0x1f06f1e4 Aug 4 15:48:10 scone kernel: uhci_dump_td: 1f06f264 3c000001,errcnt=3,actlen=2 pid=69,addr=126,endpt=0,D=0,maxlen=8 Aug 4 15:48:10 scone kernel: uhci_dump_td: TD(0xc1bdb260) at 1f06f264 = link=0x1f06f284 status=0x3c8003ff token=0x00e87e69 buffer=0x1f06f1ec Aug 4 15:48:10 scone kernel: uhci_dump_td: 1f06f284 3c8003ff,errcnt=3,actlen=0 pid=69,addr=126,endpt=0,D=1,maxlen=8 Aug 4 15:48:10 scone kernel: uhci_dump_td: TD(0xc1bdb280) at 1f06f284 = link=0x1f06f2a4 status=0x3c8003ff token=0x00e07e69 buffer=0x1f06f1f4 Aug 4 15:48:10 scone kernel: uhci_dump_td: 1f06f2a4 3c8003ff,errcnt=3,actlen=0 pid=69,addr=126,endpt=0,D=0,maxlen=8 Aug 4 15:48:10 scone kernel: uhci_dump_td: TD(0xc1bdb2a0) at 1f06f2a4 = link=0x1f06f2c4 status=0x3c8003ff token=0x00487e69 buffer=0x1f06f1fc Aug 4 15:48:10 scone kernel: uhci_dump_td: 1f06f2c4 3c8003ff,errcnt=3,actlen=0 pid=69,addr=126,endpt=0,D=1,maxlen=3 Aug 4 15:48:10 scone kernel: uhci_dump_td: TD(0xc1bdb2c0) at 1f06f2c4 = link=0x00000001 status=0x3d8003ff token=0xffe87ee1 buffer=0x00000000 Aug 4 15:48:10 scone kernel: uhci_dump_td: 1 3d8003ff,errcnt=3,actlen=0 pid=e1,addr=126,endpt=0,D=1,maxlen=0 Aug 4 15:48:10 scone kernel: uhci_non_isoc_done: actlen=18 Aug 4 15:48:10 scone kernel: uhci_device_done: xfer=0xc1bdb000, pipe=0xc1ca3004 length=18 error=0 Aug 4 15:48:10 scone kernel: _uhci_remove_qh: 0xc1bdb300 from 0xc1bdb300 Aug 4 15:48:10 scone kernel: uhci_device_done: xfer=0xc1bdb000, pipe=0xc1ca3004 length=18 error=5 Aug 4 15:48:10 scone kernel: _uhci_remove_qh: 0xc1bdb300 from 0xdd6c5000 Aug 4 15:48:10 scone kernel: uhci_root_intr_start: xfer=0xc1be6c00 len=32 Aug 4 15:48:10 scone kernel: uhci_root_intr_start: xfer=0xc1beac00 len=32 Aug 4 15:48:10 scone kernel: uhci_root_intr_start: xfer=0xc1c7e800 len=32 Aug 4 15:48:10 scone kernel: uhci_device_ctrl_start: type=0xc0, request=0xa0, wValue=0x0000, wIndex=0x0000 len=1, addr=126, endpt=0 Aug 4 15:48:10 scone kernel: uhci_setup_standard_chain: addr=126 endpt=0 len=9 speed=1 Aug 4 15:48:10 scone kernel: uhci_setup_standard_chain: nexttog=1; data before transfer: Aug 4 15:48:10 scone kernel: uhci_dump_td: TD(0xc1bea9e0) at 0033e9e4 = link=0x0033ea04 status=0x1c8003ff token=0x00e07e2d buffer=0x0033e9d4 Aug 4 15:48:10 scone kernel: uhci_dump_td: 33ea04 1c8003ff,errcnt=3,actlen=0 pid=2d,addr=126,endpt=0,D=0,maxlen=8 Aug 4 15:48:10 scone kernel: uhci_dump_td: TD(0xc1beaa00) at 0033ea04 = link=0x0033ea24 status=0x3c8003ff token=0x00087e69 buffer=0x0033e9dc Aug 4 15:48:10 scone kernel: uhci_dump_td: 33ea24 3c8003ff,errcnt=3,actlen=0 pid=69,addr=126,endpt=0,D=1,maxlen=1 Aug 4 15:48:10 scone kernel: uhci_dump_td: TD(0xc1beaa20) at 0033ea24 = link=0x00000001 status=0x3d8003ff token=0xffe87ee1 buffer=0x00000000 Aug 4 15:48:10 scone kernel: uhci_dump_td: 1 3d8003ff,errcnt=3,actlen=0 pid=e1,addr=126,endpt=0,D=1,maxlen=0 Aug 4 15:48:10 scone kernel: _uhci_append_qh: 0xc1beaa60 to 0xdd6c5000 Aug 4 15:48:10 scone kernel: uhci_non_isoc_done: xfer=0xc1bea800 pipe=0xc1ca3004 transfer done Aug 4 15:48:10 scone kernel: uhci_dump_td: TD(0xc1bea9e0) at 0033e9e4 = link=0x0033ea04 status=0x1c000007 token=0x00e07e2d buffer=0x0033e9d4 Aug 4 15:48:10 scone kernel: uhci_dump_td: 33ea04 1c000007,errcnt=3,actlen=8 pid=2d,addr=126,endpt=0,D=0,maxlen=8 Aug 4 15:48:10 scone kernel: uhci_dump_td: TD(0xc1beaa00) at 0033ea04 = link=0x0033ea24 status=0x3c000000 token=0x00087e69 buffer=0x0033e9dc Aug 4 15:48:10 scone kernel: uhci_dump_td: 33ea24 3c000000,errcnt=3,actlen=1 pid=69,addr=126,endpt=0,D=1,maxlen=1 Aug 4 15:48:10 scone kernel: uhci_dump_td: TD(0xc1beaa20) at 0033ea24 = link=0x00000001 status=0x3d0007ff token=0xffe87ee1 buffer=0x00000000 Aug 4 15:48:10 scone kernel: uhci_dump_td: 1 3d0007ff,errcnt=3,actlen=0 pid=e1,addr=126,endpt=0,D=1,maxlen=0 Aug 4 15:48:10 scone kernel: uhci_non_isoc_done: actlen=9 Aug 4 15:48:10 scone kernel: uhci_device_done: xfer=0xc1bea800, pipe=0xc1ca3004 length=9 error=0 Aug 4 15:48:10 scone kernel: _uhci_remove_qh: 0xc1beaa60 from 0xc1beaa60 Aug 4 15:48:10 scone kernel: uhci_device_done: xfer=0xc1bea800, pipe=0xc1ca3004 length=9 error=5 Aug 4 15:48:10 scone kernel: _uhci_remove_qh: 0xc1beaa60 from 0xdd6c5000 Aug 4 15:48:10 scone kernel: uhci_device_ctrl_start: type=0x40, request=0x80, wValue=0x0000, wIndex=0x0000 len=5, addr=126, endpt=0 Aug 4 15:48:10 scone kernel: uhci_setup_standard_chain: addr=126 endpt=0 len=13 speed=1 Aug 4 15:48:10 scone kernel: uhci_setup_standard_chain: nexttog=1; data before transfer: Aug 4 15:48:10 scone kernel: uhci_dump_td: TD(0xc1bb31f0) at 002071f4 = link=0x00207214 status=0x1c8003ff token=0x00e07e2d buffer=0x002071d4 Aug 4 15:48:10 scone kernel: uhci_dump_td: 207214 1c8003ff,errcnt=3,actlen=0 pid=2d,addr=126,endpt=0,D=0,maxlen=8 Aug 4 15:48:10 scone kernel: uhci_dump_td: TD(0xc1bb3210) at 00207214 = link=0x00207234 status=0x3c8003ff token=0x00887ee1 buffer=0x002071dc Aug 4 15:48:10 scone kernel: uhci_dump_td: 207234 3c8003ff,errcnt=3,actlen=0 pid=e1,addr=126,endpt=0,D=1,maxlen=5 Aug 4 15:48:10 scone kernel: uhci_dump_td: TD(0xc1bb3230) at 00207234 = link=0x00000001 status=0x3d8003ff token=0xffe87e69 buffer=0x00000000 Aug 4 15:48:10 scone kernel: uhci_dump_td: 1 3d8003ff,errcnt=3,actlen=0 pid=69,addr=126,endpt=0,D=1,maxlen=0 Aug 4 15:48:10 scone kernel: _uhci_append_qh: 0xc1bb3270 to 0xdd6c5000 Aug 4 15:48:10 scone kernel: uhci_check_transfer: xfer=0xc1bb3000 active Aug 4 15:48:10 scone kernel: uhci_non_isoc_done: xfer=0xc1bb3000 pipe=0xc1ca3004 transfer done Aug 4 15:48:10 scone kernel: uhci_dump_td: TD(0xc1bb31f0) at 002071f4 = link=0x00207214 status=0x1c000007 token=0x00e07e2d buffer=0x002071d4 Aug 4 15:48:10 scone kernel: uhci_dump_td: 207214 1c000007,errcnt=3,actlen=8 pid=2d,addr=126,endpt=0,D=0,maxlen=8 Aug 4 15:48:10 scone kernel: uhci_dump_td: TD(0xc1bb3210) at 00207214 = link=0x00207234 status=0x3c400004 token=0x00887ee1 buffer=0x002071dc Aug 4 15:48:10 scone kernel: uhci_dump_td: 207234 3c400004,errcnt=3,actlen=5 pid=e1,addr=126,endpt=0,D=1,maxlen=5 Aug 4 15:48:10 scone kernel: uhci_dump_td: TD(0xc1bb3230) at 00207234 = link=0x00000001 status=0x3d8003ff token=0xffe87e69 buffer=0x00000000 Aug 4 15:48:10 scone kernel: uhci_dump_td: 1 3d8003ff,errcnt=3,actlen=0 pid=69,addr=126,endpt=0,D=1,maxlen=0 Aug 4 15:48:10 scone kernel: uhci_non_isoc_done: actlen=13 Aug 4 15:48:10 scone kernel: uhci_non_isoc_done: error, addr=126, endpt=0x00, status 400000 Aug 4 15:48:10 scone kernel: uhci_device_done: xfer=0xc1bb3000, pipe=0xc1ca3004 length=13 error=22 Aug 4 15:48:10 scone kernel: _uhci_remove_qh: 0xc1bb3270 from 0xc1bb3270 Aug 4 15:48:10 scone kernel: uhci_device_done: xfer=0xc1bb3000, pipe=0xc1ca3004 length=13 error=5 Aug 4 15:48:10 scone kernel: _uhci_remove_qh: 0xc1bb3270 from 0xdd6c5000 Aug 4 15:48:10 scone ifdhandler[808]: usb_do_request failed: Input/output error (5) Aug 4 15:48:11 scone kernel: uhci_root_intr_start: xfer=0xc1be6c00 len=32 3. the usb handler routine is attached sys-bsd.c. You will find the usb_do_request ioctl in the function ifd_sysdep_usb_control() - I am not sure usb device handled properly there - timeout? USBD_SHORT_XFER_OK option? 4. The relevant part of the egate driver also included. For some reason it does not like the EGATE_CMD_SEND_APDU (0x80): ifd_usb_control() actually after some debug printing and setting timeout to 10000 if <0, invokes ifd_sysdep_usb_control() I can include that one if you want Janos Mohacsi Network Engineer, Research Associate NIIF/HUNGARNET, HUNGARY Key 00F9AF98: 8645 1312 D249 471B DBAE 21A2 9F52 0D1F 00F9 AF98 On Thu, 4 Aug 2005, Hans Petter Selasky wrote: > On Thursday 04 August 2005 03:40, Janos Mohacsi wrote: >> I tried new usb subsystem with similar results: >> Aug 4 02:58:14 scone kernel: usbd_transfer_done: xfer=0xc1b7ec00 >> pipe=0xc1b7e004 status=22 actlen=13 > > status=22 means that the transfer stalled. > >> Aug 4 02:58:14 scone ifdhandler[677]: usb_do_request failed: >> Input/output error (5) >> >> Next? > > Control endpoints shouldn't stall. > > Maybe you could turn on some more debugging: > > sysctl hw.usb.uhci.debug=15 > > This will show which of the transfers in the control transfer, that stalled. > > Could you have posted the code from "ifdhandler" where "usb_do_request" is > called from? > > --HPS > --0-318097300-1123166379=:86134 Content-Type: TEXT/PLAIN; charset=US-ASCII; name=egate_driver.c_snippet Content-Transfer-Encoding: BASE64 Content-ID: <20050804163939.Q86134@mignon.ki.iif.hu> Content-Description: Content-Disposition: attachment; filename=egate_driver.c_snippet LyoNCiAqIFNlbmQvcmVjZWl2ZSByb3V0aW5lcw0KICovDQpzdGF0aWMgaW50 DQplZ190cmFuc3BhcmVudChpZmRfcmVhZGVyX3QgKnJlYWRlciwgaW50IGRh ZCwgY29uc3Qgdm9pZCAqaW5idWZmZXIsIHNpemVfdCBpbmxlbiwNCiAgICAg ICAgICAgICAgdm9pZCAqb3V0YnVmZmVyLCBzaXplX3Qgb3V0bGVuKQ0Kew0K ICAgICBpbnQgcmM7DQogICAgIHVuc2lnbmVkIGNoYXIgc3RhdDsNCiAgICAg aWZkX2lzb19hcGR1X3QgaXNvOw0KICAgICB1bnNpZ25lZCBjaGFyIGNtZGJ1 Zls1XTsNCg0KICAgICBzdGF0PWVnX3N0YXR1cyhyZWFkZXIpOw0KICAgICBp ZiAoc3RhdCAhPSBFR0FURV9TVEFUVVNfUkVBRFkpIHsNCglpZmRfZGVidWco MiwgImRldmljZSBub3QgcmVhZHksIGF0dGVtcHRpbmcgcmVzZXQiKTsNCgly YyA9IGlmZF91c2JfY29udHJvbChyZWFkZXItPmRldmljZSwgRUdBVEVfRElS X09VVCwgRUdBVEVfQ01EX1JFU0VULA0KCQkJICAgICAwLCAwLCBOVUxMLCAw LCBFR19USU1FT1VUKTsNCglpZiAocmMgPCAwKQ0KCQlyZXR1cm4gSUZEX0VS Uk9SX0NPTU1fRVJST1I7DQogICAgIH0NCiAgICAgaWYgKGlmZF9pc29fYXBk dV9wYXJzZShpbmJ1ZmZlciwgaW5sZW4sICZpc28pIDwgMCkgDQogICAgICAg ICByZXR1cm4gSUZEX0VSUk9SX0lOVkFMSURfQVJHOw0KICAgICBpZiAoaW5s ZW4gPj0gNSAmJiBpbmxlbiA8IDUgKyBpc28ubGMpDQoJIHJldHVybiBJRkRf RVJST1JfQlVGRkVSX1RPT19TTUFMTDsNCiAgICAgaWYgKG91dGxlbiA8IDIg KyBpc28ubGUpDQoJIHJldHVybiBJRkRfRVJST1JfQlVGRkVSX1RPT19TTUFM TDsNCiAgICAgbWVtc2V0KGNtZGJ1ZiwwLDUpOw0KICAgICBtZW1tb3ZlKGNt ZGJ1ZiwgaW5idWZmZXIsIGlubGVuIDwgNSA/IGlubGVuIDogNSk7DQogICAg IHJjPWlmZF91c2JfY29udHJvbChyZWFkZXItPmRldmljZSwgRUdBVEVfRElS X09VVCwgRUdBVEVfQ01EX1NFTkRfQVBEVSwNCgkJICAgICAgICAwLCAwLCAo dm9pZCAqKSBjbWRidWYsIDUsIC0xKTsNCiAgICAgaWYgKHJjICE9IDUpDQog ICAgICAgICAgcmV0dXJuIElGRF9FUlJPUl9DT01NX0VSUk9SOw0KICAgICBz dGF0PWVnX3N0YXR1cyhyZWFkZXIpOw0KICAgICBpZiAoaW5sZW4gPiA1ICYm IHN0YXQgPT0gRUdBVEVfU1RBVFVTX0RBVEEpIHsNCiAgICAgICAgICByYz1p ZmRfdXNiX2NvbnRyb2wocmVhZGVyLT5kZXZpY2UsIEVHQVRFX0RJUl9PVVQs IEVHQVRFX0NNRF9XUklURSwNCgkJCSAgMCwgMCwgKHZvaWQgKikgKCgodW5z aWduZWQgY2hhciAqKWluYnVmZmVyKSs1KSwgaXNvLmxjLCAtMSk7DQoJICBp ZiAocmMgPCAwKQ0KCSAgICAgICByZXR1cm4gSUZEX0VSUk9SX0NPTU1fRVJS T1I7DQogICAgICAgICAgaWYgKHJjICE9IGlzby5sYykgew0KCSAgICAgICBp ZmRfZGVidWcoMSwgInNob3J0IFVTQiB3cml0ZSAoJXUgb2YgJXUgYnl0ZXMp IiwgcmMsIGlzby5sYyk7DQogICAgICAgICAgICAgICByZXR1cm4gSUZEX0VS Uk9SX0NPTU1fRVJST1I7DQoJICB9DQogICAgICAgICAgaWZkX2RlYnVnKDMs ICJzZW50ICVkIGJ5dGVzIG9mIGRhdGEiLCBpc28ubGMpOw0KICAgICAgICAg IHN0YXQ9ZWdfc3RhdHVzKHJlYWRlcik7DQogICAgIH0NCiAgICAgaWYgKHN0 YXQgPT0gRUdBVEVfU1RBVFVTX0RBVEEpIHsNCiAgICAgICAgICByYz1pZmRf dXNiX2NvbnRyb2wocmVhZGVyLT5kZXZpY2UsIEVHQVRFX0RJUl9JTiwgRUdB VEVfQ01EX1JFQUQsIDAsIDAsDQogICAgICAgICAgICAgICAgICAgICAgICAg KHZvaWQgKikgb3V0YnVmZmVyLCBpc28ubGUsIEVHX1RJTUVPVVQpOw0KCSAg aWYgKHJjIDwgMCkNCgkgICAgICAgcmV0dXJuIElGRF9FUlJPUl9DT01NX0VS Uk9SOw0KICAgICAgICAgIGlmIChyYyAhPSBpc28ubGUpIHsNCgkgICAgICAg aWZkX2RlYnVnKDEsICJzaG9ydCBVU0IgcmVhZCAoJXUgb2YgJXUgYnl0ZXMp IiwgcmMsIGlzby5sZSk7DQogICAgICAgICAgICAgICByZXR1cm4gSUZEX0VS Uk9SX0NPTU1fRVJST1I7DQogICAgICAgICAgfQ0KICAgICAgICAgIGlmZF9k ZWJ1ZygzLCAicmVjZWl2ZWQgJWQgYnl0ZXMgb2YgZGF0YSIsIGlzby5sZSk7 DQogICAgICAgICAgc3RhdD1lZ19zdGF0dXMocmVhZGVyKTsNCiAgICAgfSBl bHNlDQogICAgICAgaXNvLmxlPTA7DQogICAgIGlmIChzdGF0ICE9IEVHQVRF X1NUQVRVU19TVykNCiAgICAgICAgICByZXR1cm4gSUZEX0VSUk9SX0RFVklD RV9ESVNDT05ORUNURUQ7DQogICAgIHJjPWlmZF91c2JfY29udHJvbChyZWFk ZXItPmRldmljZSwgRUdBVEVfRElSX0lOLCBFR0FURV9DTURfUkVBRCwgMCwg MCwNCiAgICAgICAgICAgICAgICAgICAgKHZvaWQgKikgKCgodW5zaWduZWQg Y2hhciAqKW91dGJ1ZmZlcikraXNvLmxlKSwgMiwgRUdfVElNRU9VVCk7DQog ICAgIGlmIChyYyAhPSAyKQ0KICAgICAgICAgIHJldHVybiBJRkRfRVJST1Jf Q09NTV9FUlJPUjsNCiAgICAgaWZkX2RlYnVnKDIsICJyZXR1cm5pbmcgYSAl ZCBieXRlIHJlc3BvbnNlIiwgaXNvLmxlICsgMik7DQogICAgIHJldHVybiBp c28ubGUrMjsNCn0NCg== --0-318097300-1123166379=:86134 Content-Type: TEXT/PLAIN; charset=US-ASCII; name=sys-bsd.c Content-Transfer-Encoding: BASE64 Content-ID: <20050804163939.Y86134@mignon.ki.iif.hu> Content-Description: Content-Disposition: attachment; filename=sys-bsd.c LyoNCiAqICpCU0Qgc3BlY2lmaWMgZnVuY3Rpb25zDQogKg0KICogQ29weXJp Z2h0IChDKSAyMDAzIE9sYWYgS2lyY2ggPG9raXJAc3VzZS5kZT4NCiAqIENv cHlyaWdodCAoQykgMjAwMyBBbmRyZWFzIEplbGxpbmdoYXVzIDxhakBkdW5n ZW9uLmlua2EuZGU+DQogKiBDb3B5cmlnaHQgKEMpIDIwMDMgTWFya3VzIEZy aWVkbCA8bWFya3VzQG9wZW5ic2Qub3JnPg0KICogQ29weXJpZ2h0IChDKSAy MDA0LTIwMDUgV2lsbGlhbSBXYW5kZXJzIDx3aWxsaWFtQHdhbmRlcnMub3Jn Pg0KICoNCiAqIFRoZXNlIGZ1bmN0aW9ucyBuZWVkIHRvIGJlIHJlLWltcGxl bWVudGVkIGZvciBldmVyeQ0KICogbmV3IHBsYXRmb3JtLg0KICovDQoNCiNp bmNsdWRlICJpbnRlcm5hbC5oIg0KI2lmIGRlZmluZWQoX19OZXRCU0RfXykg fHwgZGVmaW5lZChfX0ZyZWVCU0RfXykgfHwgZGVmaW5lZChfX09wZW5CU0Rf XykNCiNpbmNsdWRlIDxzeXMvdHlwZXMuaD4NCiNpbmNsdWRlIDxkZXYvdXNi L3VzYi5oPg0KI2luY2x1ZGUgPHN5cy9zdGF0Lmg+DQojaW5jbHVkZSA8c3lz L2lvY3RsLmg+DQojaW5jbHVkZSA8c3lzL3BvbGwuaD4NCiNpbmNsdWRlIDxz dHJpbmcuaD4NCiNpbmNsdWRlIDxzdGRpby5oPg0KI2luY2x1ZGUgPHNpZ25h bC5oPg0KI2luY2x1ZGUgPGZjbnRsLmg+DQojaW5jbHVkZSA8dW5pc3RkLmg+ DQojaW5jbHVkZSA8ZXJybm8uaD4NCiNpbmNsdWRlIDxvcGVuY3QvZHJpdmVy Lmg+DQoNCiNpbmNsdWRlICJ1c2ItZGVzY3JpcHRvcnMuaCINCg0KaW50DQpp ZmRfc3lzZGVwX2RldmljZV90eXBlKGNvbnN0IGNoYXIgKm5hbWUpDQp7DQoJ c3RydWN0IHN0YXQgc3RiOw0KDQoJaWZkX2RlYnVnKDEsICJCU0Q6IGlmZF9z eXNkZXBfZGV2aWNlX3R5cGUoJXMpIiwgbmFtZSk7DQoJaWYgKCFuYW1lIHx8 IG5hbWVbMF0gIT0gJy8nKQ0KCQlyZXR1cm4gLTE7DQoNCglpZiAoIXN0cm5j bXAobmFtZSwgIi9kZXYvdWdlbiIsIDkpKSB7DQoJCWlmZF9kZWJ1ZygxLCAi QlNEOiByZXR1cm5pbmcgSUZEX0RFVklDRV9UWVBFX1VTQiIpOw0KCQlpZiAo c3RhdChuYW1lLCAmc3RiKSA8IDApDQoJCQlyZXR1cm4gLTE7DQoJCXJldHVy biBJRkRfREVWSUNFX1RZUEVfVVNCOw0KCX0NCg0KCXJldHVybiAtMTsNCn0N Cg0KLyoNCiAqIFBvbGwgZm9yIHByZXNlbmNlIG9mIFVTQiBkZXZpY2UNCiAq Lw0KaW50DQppZmRfc3lzZGVwX3VzYl9wb2xsX3ByZXNlbmNlKGlmZF9kZXZp Y2VfdCAqZGV2LCBzdHJ1Y3QgcG9sbGZkICpwZmQpDQp7DQoJaWYgKHBmZC0+ cmV2ZW50cyAmIFBPTExIVVApDQoJCXJldHVybiAwOw0KCXBmZC0+ZmQgPSBk ZXYtPmZkOw0KCXBmZC0+ZXZlbnRzID0gUE9MTEhVUDsNCglyZXR1cm4gMTsN Cn0NCg0KdHlwZWRlZiBzdHJ1Y3QgZXAgew0KICAgIGludCBlcF9mZDsNCn0g ZXBfdDsNCg0KdHlwZWRlZiBlcF90IGludGVyZmFjZV90WzEyOF07DQoNCnN0 YXRpYyBpbnRlcmZhY2VfdCBpbnRlcmZhY2VzWzFdOw0KDQojZGVmaW5lIFVT Ql9SRVFVRVNUX1NJWkUJOA0KDQovKg0KICogT3BlbiBpbnRlcmZhY2UgZW5k cG9pbnQNCiAqLw0KaW50DQpvcGVuX2VwKGNoYXIgKm5hbWUsIGludCBpbnRl cmZhY2UsIGludCBlbmRwb2ludCwgaW50IGZsYWdzKQ0Kew0KICAgIGNoYXIg ZmlsZW5hbWVbMjU2XTsNCg0KICAgIGlmKGludGVyZmFjZXNbaW50ZXJmYWNl XVtlbmRwb2ludF0uZXBfZmQpIHsNCglpZmRfZGVidWcoNiwgIm9wZW5fZXA6 IGVuZHBvaW50IGFscmVhZHkgb3BlbmVkIik7DQoJcmV0dXJuIDA7DQogICAg fQ0KDQogICAgc3ByaW50ZigoY2hhciAqKSZmaWxlbmFtZSwiJXMuJWQiLCBu YW1lLCBlbmRwb2ludCk7DQoJDQogICAgaWYoKGludGVyZmFjZXNbaW50ZXJm YWNlXVtlbmRwb2ludF0uZXBfZmQ9b3BlbigNCglmaWxlbmFtZSwgZmxhZ3Mp KSA8IDApIHsNCglpZmRfZGVidWcoNiwgIm9wZW5fZXA6IGVycm9yIG9wZW5p bmcgXCIlc1wiOiAlcyIsIGZpbGVuYW1lLCBzdHJlcnJvcihlcnJubykpOw0K ICAgICAgICBpbnRlcmZhY2VzW2ludGVyZmFjZV1bZW5kcG9pbnRdLmVwX2Zk PTA7DQoJcmV0dXJuIC0xOw0KICAgIH0NCiAgICByZXR1cm4gMDsNCn0NCg0K Y2xvc2VfZXAoaW50IGludGVyZmFjZSwgaW50IGVuZHBvaW50KQ0Kew0KICAg IGlmKGludGVyZmFjZXNbaW50ZXJmYWNlXVtlbmRwb2ludF0uZXBfZmQpIHsN CiAgICAgICAgY2xvc2UoaW50ZXJmYWNlc1tpbnRlcmZhY2VdW2VuZHBvaW50 XS5lcF9mZCk7DQogICAgICAgIGludGVyZmFjZXNbaW50ZXJmYWNlXVtlbmRw b2ludF0uZXBfZmQ9MDsNCiAgICB9DQp9DQoNCmludA0KaWZkX3N5c2RlcF91 c2JfYnVsayhpZmRfZGV2aWNlX3QgKmRldiwgaW50IGVwLCB2b2lkICpidWZm ZXIsIHNpemVfdCBsZW4sIGxvbmcgdGltZW91dCkNCnsNCiAgICBpbnQJYnl0 ZXNfdG9fcHJvY2VzczsNCiAgICBpbnQJYnl0ZXNfcHJvY2Vzc2VkOw0KICAg IGludCBkaXJlY3Rpb24gPSAoZXAgJiBJRkRfVVNCX0VORFBPSU5UX0RJUl9N QVNLKSA9PSBJRkRfVVNCX0VORFBPSU5UX0lOID8gMSA6IDA7DQogICAgaW50 IGVuZHBvaW50ID0gKGVwICYgfklGRF9VU0JfRU5EUE9JTlRfRElSX01BU0sp Ow0KDQogICAgY3RfZGVidWcoImlmZF9zeXNkZXBfdXNiX2J1bGs6IGVuZHBv aW50PSVkIGRpcmVjdGlvbj0lZCIsIGVuZHBvaW50LCBkaXJlY3Rpb24pOw0K ICAgIGlmKG9wZW5fZXAoZGV2LT5uYW1lLDAsZW5kcG9pbnQsT19SRFdSfE9f Tk9OQkxPQ0spKSB7DQoJY3RfZGVidWcoImlmZF9zeXNkZXBfdXNiX2J1bGs6 IG9wZW5pbmcgZW5kcG9pbnQgZmFpbGVkIik7DQoJcmV0dXJuIC0xOw0KICAg IH0NCiAgICBpZihkaXJlY3Rpb24pIHsNCglpZigoYnl0ZXNfdG9fcHJvY2Vz cz1yZWFkKGludGVyZmFjZXNbMF1bZW5kcG9pbnRdLmVwX2ZkLGJ1ZmZlcixs ZW4pKTwwKSB7DQoJICAgIGlmZF9kZWJ1Zyg2LCAiaWZkX3N5c2RlcF91c2Jf YnVsazogcmVhZCBmYWlsZWQ6ICVzIiwgc3RyZXJyb3IoZXJybm8pKTsNCgkg ICAgY3RfZXJyb3IoInVzYl9idWxrIHJlYWQgZmFpbGVkOiAlcyIsIHN0cmVy cm9yKGVycm5vKSk7DQoJICAgIHJldHVybiBJRkRfRVJST1JfQ09NTV9FUlJP UjsNCgl9DQoJY3RfZGVidWcoImlmZF9zeXNkZXBfdXNiX2J1bGs6IHJlYWQg JWQgYnl0ZXMiLCBieXRlc190b19wcm9jZXNzKTsNCglyZXR1cm4gYnl0ZXNf dG9fcHJvY2VzczsNCiAgICB9IGVsc2Ugew0KCWJ5dGVzX3RvX3Byb2Nlc3M9 bGVuOw0KCWlmKChieXRlc19wcm9jZXNzZWQ9d3JpdGUoaW50ZXJmYWNlc1sw XVtlbmRwb2ludF0uZXBfZmQsYnVmZmVyLGJ5dGVzX3RvX3Byb2Nlc3MpKSE9 Ynl0ZXNfdG9fcHJvY2Vzcykgew0KCSAgICBpZmRfZGVidWcoNiwgImlmZF9z eXNkZXBfdXNiX2J1bGs6IHdyaXRlIGZhaWxlZDogJXMiLCBzdHJlcnJvcihl cnJubykpOw0KCSAgICBjdF9lcnJvcigidXNiX2J1bGsgd3JpdGUgZmFpbGVk OiAlcyIsIHN0cmVycm9yKGVycm5vKSk7DQoJICAgIHJldHVybiBJRkRfRVJS T1JfQ09NTV9FUlJPUjsNCgl9DQoJY3RfZGVidWcoImlmZF9zeXNkZXBfdXNi X2J1bGs6IHdyb3RlIGJ1ZmZlclslZF09JXMiLCBieXRlc19wcm9jZXNzZWQs IGN0X2hleGR1bXAoYnVmZmVyLGxlbikpOw0KCXJldHVybiBieXRlc19wcm9j ZXNzZWQ7DQogICAgfQ0KfQ0KDQovKg0KICogVVNCIFVSQiBjYXB0dXJlDQog Ki8NCnN0cnVjdCBpZmRfdXNiX2NhcHR1cmUgew0KICAgIGludAkJCXR5cGU7 DQogICAgaW50CQkJZW5kcG9pbnQ7DQogICAgc2l6ZV90CQltYXhwYWNrZXQ7 DQogICAgdW5zaWduZWQgaW50CWludGVyZmFjZTsNCn07DQoNCmludA0KaWZk X3N5c2RlcF91c2JfYmVnaW5fY2FwdHVyZShpZmRfZGV2aWNlX3QgKmRldiwN CglpbnQgdHlwZSwgaW50IGVwLCBzaXplX3QgbWF4cGFja2V0LA0KCWlmZF91 c2JfY2FwdHVyZV90ICoqY2FwcmV0KQ0Kew0KICAgIGlmZF91c2JfY2FwdHVy ZV90CSpjYXA7DQogICAgaW50CQkJIGRpcmVjdGlvbiA9IChlcCAmIElGRF9V U0JfRU5EUE9JTlRfRElSX01BU0spID09IElGRF9VU0JfRU5EUE9JTlRfSU4g PyAxIDogMDsNCiAgICBpbnQJCQkgZW5kcG9pbnQgPSAoZXAgJiB+SUZEX1VT Ql9FTkRQT0lOVF9ESVJfTUFTSyk7DQoNCiAgICBpZighKGNhcCA9IChpZmRf dXNiX2NhcHR1cmVfdCAqKSBjYWxsb2MoMSwgc2l6ZW9mKCpjYXApICsgbWF4 cGFja2V0KSkpIHsNCgljdF9kZWJ1ZygiaWZkX3N5c2RlcF91c2JfYmVnaW5f Y2FwdHVyZTogY2FsbG9jIGZhaWxlZCIpOw0KCXJldHVybiAtMTsNCiAgICB9 DQogICAgY2FwLT50eXBlID0gdHlwZTsNCiAgICBjYXAtPmVuZHBvaW50ID0g ZXA7DQogICAgY2FwLT5tYXhwYWNrZXQgPSBtYXhwYWNrZXQ7DQoNCiAgICBp ZighaW50ZXJmYWNlc1swXVtlbmRwb2ludF0uZXBfZmQpIHsNCglpZihvcGVu X2VwKGRldi0+bmFtZSwwLGVuZHBvaW50LE9fUkRPTkxZfE9fTk9OQkxPQ0sp KSB7DQoJICAgIGN0X2RlYnVnKCJpZmRfc3lzZGVwX3VzYl9iZWdpbl9jYXB0 dXJlOiBvcGVuaW5nIGVuZHBvaW50IGZhaWxlZCIpOw0KCSAgICByZXR1cm4g LTE7DQoJfQ0KICAgIH0NCiAgICAqY2FwcmV0ID0gY2FwOw0KICAgIHJldHVy biAwOw0KfQ0KDQppbnQNCmlmZF9zeXNkZXBfdXNiX2NhcHR1cmUoaWZkX2Rl dmljZV90ICpkZXYsDQoJaWZkX3VzYl9jYXB0dXJlX3QgKmNhcCwNCgl2b2lk ICpidWZmZXIsIHNpemVfdCBsZW4sDQoJbG9uZyB0aW1lb3V0KQ0Kew0KICAg IHN0cnVjdCB0aW1ldmFsCWJlZ2luOw0KICAgIGludAkJCWJ5dGVzX3RvX3By b2Nlc3M9MDsNCiAgICBpbnQJCQlkaXJlY3Rpb24gPSAoY2FwLT5lbmRwb2lu dCAmIElGRF9VU0JfRU5EUE9JTlRfRElSX01BU0spID09IElGRF9VU0JfRU5E UE9JTlRfSU4gPyAxIDogMDsNCiAgICBpbnQJCQllbmRwb2ludCA9IChjYXAt PmVuZHBvaW50ICYgfklGRF9VU0JfRU5EUE9JTlRfRElSX01BU0spOw0KDQog ICAgZ2V0dGltZW9mZGF5KCZiZWdpbixOVUxMKTsNCiAgICBkbyB7DQoJc3Ry dWN0IHBvbGxmZAlwZmQ7DQoJbG9uZwkJd2FpdDsNCg0KCWlmICgod2FpdCA9 ICh0aW1lb3V0IC0gaWZkX3RpbWVfZWxhcHNlZCgmYmVnaW4pKSkgPD0gMCkN CgkgICAgcmV0dXJuIElGRF9FUlJPUl9USU1FT1VUOw0KDQoJcGZkLmZkID0g aW50ZXJmYWNlc1swXVtlbmRwb2ludF0uZXBfZmQ7DQoJcGZkLmV2ZW50cyA9 IFBPTExJTjsNCglpZihwb2xsKCZwZmQsMSx3YWl0KSE9MSkNCgkgICAgY29u dGludWU7DQoNCglpZigoYnl0ZXNfdG9fcHJvY2Vzcz1yZWFkKGludGVyZmFj ZXNbMF1bZW5kcG9pbnRdLmVwX2ZkLGJ1ZmZlcixsZW4pKTwwKSB7DQoJICAg IGlmZF9kZWJ1Zyg2LCAiaWZkX3N5c2RlcF91c2JfYnVsazogcmVhZCBmYWls ZWQ6ICVzIiwgc3RyZXJyb3IoZXJybm8pKTsNCgkgICAgY3RfZXJyb3IoInVz Yl9idWxrIHJlYWQgZmFpbGVkOiAlcyIsIHN0cmVycm9yKGVycm5vKSk7DQoJ ICAgIHJldHVybiBJRkRfRVJST1JfQ09NTV9FUlJPUjsNCgl9DQogICAgfSB3 aGlsZSAoIWJ5dGVzX3RvX3Byb2Nlc3MpOw0KICAgIGN0X2RlYnVnKCJpZmRf c3lzZGVwX3VzYl9jYXB0dXJlOiByZWFkIGJ1ZmZlclslZF09JXMiLCBieXRl c190b19wcm9jZXNzLCBjdF9oZXhkdW1wKGJ1ZmZlcixieXRlc190b19wcm9j ZXNzKSk7DQogICAgcmV0dXJuIGJ5dGVzX3RvX3Byb2Nlc3M7DQp9DQoNCmlu dA0KaWZkX3N5c2RlcF91c2JfZW5kX2NhcHR1cmUoaWZkX2RldmljZV90ICpk ZXYsIGlmZF91c2JfY2FwdHVyZV90ICpjYXApDQp7DQogICAgaW50CWRpcmVj dGlvbiA9IChjYXAtPmVuZHBvaW50ICYgSUZEX1VTQl9FTkRQT0lOVF9ESVJf TUFTSykgPT0gSUZEX1VTQl9FTkRQT0lOVF9JTiA/IDEgOiAwOw0KICAgIGlu dAllbmRwb2ludCA9IChjYXAtPmVuZHBvaW50ICYgfklGRF9VU0JfRU5EUE9J TlRfRElSX01BU0spOw0KICAgIGNsb3NlX2VwKDAsZW5kcG9pbnQpOw0KICAg IGlmKGNhcCkgZnJlZShjYXApOw0KICAgIHJldHVybiAwOw0KfQ0KDQovKg0K ICogVVNCIGNvbnRyb2wgY29tbWFuZA0KICovDQppbnQNCmlmZF9zeXNkZXBf dXNiX2NvbnRyb2woaWZkX2RldmljZV90ICpkZXYsDQoJCXVuc2lnbmVkIGlu dCByZXF1ZXN0dHlwZSwNCgkJdW5zaWduZWQgaW50IHJlcXVlc3QsDQoJCXVu c2lnbmVkIGludCB2YWx1ZSwNCgkJdW5zaWduZWQgaW50IGluZGV4LA0KCQl2 b2lkICpkYXRhLCBzaXplX3QgbGVuLCBsb25nIHRpbWVvdXQpDQp7DQoJc3Ry dWN0IHVzYl9jdGxfcmVxdWVzdCBjdHJsOw0KCWludAkJcmMsdmFsOw0KDQoJ aWZkX2RlYnVnKDEsICJCU0Q6IGlmZF9zeXNkZXBfdXNiX2NvbnRyb2woMHgl eCkiLCByZXF1ZXN0KTsNCgltZW1zZXQoJmN0cmwsIDAsIHNpemVvZihjdHJs KSk7DQoJDQoJY3RybC51Y3JfcmVxdWVzdC5ibVJlcXVlc3RUeXBlID0gcmVx dWVzdHR5cGU7DQoJY3RybC51Y3JfcmVxdWVzdC5iUmVxdWVzdCA9IHJlcXVl c3Q7DQoJVVNFVFcoY3RybC51Y3JfcmVxdWVzdC53VmFsdWUsIHZhbHVlKTsN CglVU0VUVyhjdHJsLnVjcl9yZXF1ZXN0LndJbmRleCwgaW5kZXgpOw0KCVVT RVRXKGN0cmwudWNyX3JlcXVlc3Qud0xlbmd0aCwgbGVuKTsNCg0KCWN0cmwu dWNyX2RhdGEgPSBkYXRhOw0KCWN0cmwudWNyX2ZsYWdzID0gVVNCRF9TSE9S VF9YRkVSX09LOw0KDQoJaWZkX2RlYnVnKDEsICJCU0Q6IENUUkwgYm1SZXF1 ZXN0VHlwZSAweCV4IGJSZXF1ZXN0IDB4JXggIg0KCQkgICAgICJ3VmFsdWUg MHgleCB3SW5kZXggMHgleCB3TGVuZ3RoIDB4JXgiLA0KCQkgICAgIHJlcXVl c3R0eXBlLCByZXF1ZXN0LCB2YWx1ZSwgaW5kZXgsIGxlbik7DQoJaWYobGVu KQ0KCQlpZmRfZGVidWcoNSwgIkJTRDogQ1RSTCBTRU5EIGRhdGEgJXMiLCBj dF9oZXhkdW1wKGRhdGEsbGVuKSk7DQoNCgl2YWwgPSB0aW1lb3V0Ow0KCWlm ICgocmMgPSBpb2N0bChkZXYtPmZkLCBVU0JfU0VUX1RJTUVPVVQsICZ2YWwp KSA8IDApIHsNCgkJaWZkX2RlYnVnKDEsIlVTQl9TRVRfVElNRU9VVCBmYWls ZWQ6ICVkIiwgcmMpOw0KCQljdF9lcnJvcigidXNiX3NldF90aW1lb3V0IGZh aWxlZDogJXMoJWQpIiwNCgkJCQlzdHJlcnJvcihlcnJubyksIGVycm5vKTsN CiAgICAgICAgCXJldHVybiBJRkRfRVJST1JfQ09NTV9FUlJPUjsNCgl9DQog DQoJaWYgKChyYyA9IGlvY3RsKGRldi0+ZmQsIFVTQl9ET19SRVFVRVNULCAm Y3RybCkpIDwgMCkgew0KCQlpZmRfZGVidWcoMSwgIlVTQl9ET19SRVFVRVNU IGZhaWxlZDogJWQiLCByYyk7DQoJCWN0X2Vycm9yKCJ1c2JfZG9fcmVxdWVz dCBmYWlsZWQ6ICVzICglZCkiLA0KCQkJCXN0cmVycm9yKGVycm5vKSwgZXJy bm8pOw0KCQlyZXR1cm4gSUZEX0VSUk9SX0NPTU1fRVJST1I7DQogICAgICAg IH0NCg0KCWlmKGN0cmwudWNyX2RhdGE9PU5VTEwpDQoJCWlmZF9kZWJ1Zygx LCAiQlNEOiBjdHJsLnVjcl9kYXRhID09IE5VTEwgIik7DQoJaWYoY3RybC51 Y3JfZGF0YSAmJiBjdHJsLnVjcl9hY3RsZW4pDQoJCWlmZF9kZWJ1ZygxLCAi QlNEOiBDVFJMIFJFQ1YgZGF0YSAlcyIsDQoJCQljdF9oZXhkdW1wKGN0cmwu dWNyX2RhdGEsY3RybC51Y3JfYWN0bGVuKSk7DQoJcmV0dXJuIGN0cmwudWNy X2FjdGxlbjsNCn0NCg0KaW50DQppZmRfc3lzZGVwX3VzYl9zZXRfY29uZmln dXJhdGlvbihpZmRfZGV2aWNlX3QgKmRldiwgaW50IGNvbmZpZykgDQp7DQog ICAgaW50IHZhbHVlLCByYzsNCiAgICB2YWx1ZSA9IGNvbmZpZzsNCiAgICBp ZiAoKHJjID0gaW9jdGwoZGV2LT5mZCwgVVNCX1NFVF9DT05GSUcsICZ2YWx1 ZSkpIDwgMCkgew0KCWlmZF9kZWJ1ZygxLCJVU0JfU0VUX0NPTkZJRyBmYWls ZWQ6ICVkIiwgcmMpOw0KCWN0X2Vycm9yKCJ1c2Jfc2V0X2NvbmZpZ3VyYXRp b24gZmFpbGVkOiAlcyglZCkiLA0KCQkJc3RyZXJyb3IoZXJybm8pLCBlcnJu byk7DQogICAgICAgCXJldHVybiBJRkRfRVJST1JfQ09NTV9FUlJPUjsNCiAg ICB9DQogICAgcmV0dXJuIDA7DQp9DQoNCg0KaW50DQppZmRfc3lzZGVwX3Vz Yl9zZXRfaW50ZXJmYWNlKGlmZF9kZXZpY2VfdCAqZGV2LCBpbnQgaWZjLCBp bnQgYWx0KSANCnsNCiAgICBpbnQgcmM7DQogICAgc3RydWN0IHVzYl9hbHRf aW50ZXJmYWNlIHsNCglpbnQgdWFpX2NvbmZpZ19pbmRleDsNCglpbnQgdWFp X2ludGVyZmFjZV9pbmRleDsNCglpbnQgdWFpX2FsdF9ubzsNCiAgICB9IHZh bHVlOw0KDQogICAgdmFsdWUudWFpX2NvbmZpZ19pbmRleD1pZmM7DQogICAg dmFsdWUudWFpX2ludGVyZmFjZV9pbmRleD0wOw0KICAgIHZhbHVlLnVhaV9h bHRfbm89YWx0Ow0KICAgIGlmICgocmMgPSBpb2N0bChkZXYtPmZkLCBVU0Jf U0VUX0FMVElOVEVSRkFDRSwgJnZhbHVlKSkgPCAwKSB7DQoJaWZkX2RlYnVn KDEsIlVTQl9TRVRfQUxUSU5URVJGQUNFIGZhaWxlZDogJWQiLCByYyk7DQoJ Y3RfZXJyb3IoInVzYl9zZXRfaW50ZXJmYWNlIGZhaWxlZDogJXMoJWQpIiwN CgkJCXN0cmVycm9yKGVycm5vKSwgZXJybm8pOw0KICAgICAgIAlyZXR1cm4g SUZEX0VSUk9SX0NPTU1fRVJST1I7DQogICAgfQ0KICAgIHJldHVybiAwOw0K fQ0KDQppbnQNCmlmZF9zeXNkZXBfdXNiX2NsYWltX2ludGVyZmFjZShpZmRf ZGV2aWNlX3QgKmRldiwgaW50IGludGVyZmFjZSkgDQp7DQogICAgY3RfZGVi dWcoImlmZF9zeXNkZXBfdXNiX2NsYWltX2ludGVyZmFjZTogaW50ZXJmYWNl PSVkIChub3QgeWV0IGltcGxlbWVudGVkKSIsIGludGVyZmFjZSk7DQogICAg cmV0dXJuIDA7DQp9DQoNCmludA0KaWZkX3N5c2RlcF91c2JfcmVsZWFzZV9p bnRlcmZhY2UoaWZkX2RldmljZV90ICpkZXYsIGludCBpbnRlcmZhY2UpIA0K ew0KICAgIGN0X2RlYnVnKCJpZmRfc3lzZGVwX3VzYl9yZWxlYXNlX2ludGVy ZmFjZTogaW50ZXJmYWNlPSVkIChub3QgeWV0IGltcGxlbWVudGVkKSIsIGlu dGVyZmFjZSk7DQogICAgcmV0dXJuIDA7DQp9DQoNCmludA0KaWZkX3N5c2Rl cF91c2Jfb3BlbihjaGFyICpkZXZpY2UsIGludCBmbGFncykNCnsNCiAgICBy ZXR1cm4gb3BlbihkZXZpY2UsIE9fRVhDTCB8IE9fUkRXUik7DQp9DQoNCi8q DQogKiBTY2FuIGFsbCB1c2IgZGV2aWNlcyB0byBzZWUgaWYgdGhlcmUgaXMg b25lIHdlIHN1cHBvcnQNCiAqLw0KaW50DQppZmRfc2Nhbl91c2Iodm9pZCkN CnsNCiAgICBpbnQgaSwgY29udHJvbGxlcl9mZDsNCiAgICBjaGFyIGNvbnRy b2xsZXJfZGV2bmFtZVsxMF07DQoNCiAgICBpZmRfZGVidWcoMSwgIkJTRDog aWZkX3NjYW5fdXNiIik7DQogICAgZm9yIChpID0gMDsgaSA8IDEwOyBpKysp IHsNCglzbnByaW50Zihjb250cm9sbGVyX2Rldm5hbWUsIDEwLCAiL2Rldi91 c2IlZCIsIGkpOw0KCWlmKChjb250cm9sbGVyX2ZkID0gb3Blbihjb250cm9s bGVyX2Rldm5hbWUsIE9fUkRPTkxZKSk8MCkNCgkgICAgY29udGludWU7DQoN CglpZiAoY29udHJvbGxlcl9mZCA+PSAwKSB7DQoJICAgIGludCBhZGRyZXNz Ow0KCSAgICBmb3IgKGFkZHJlc3MgPSAxOyBhZGRyZXNzIDwgVVNCX01BWF9E RVZJQ0VTOyBhZGRyZXNzKyspIHsNCgkJc3RydWN0IHVzYl9kZXZpY2VfaW5m bwkgZGV2aWNlX2luZm87DQoJCWlmZF9kZXZpZF90CQkgaWQ7DQoJCWNvbnN0 IGNoYXIJCSpkcml2ZXI7DQoJCWNoYXIJCQlkZXZpY2VbMjU2XTsNCg0KCQlk ZXZpY2VfaW5mby51ZGlfYWRkciA9IGFkZHJlc3M7DQoNCgkJaWYoaW9jdGwo Y29udHJvbGxlcl9mZCwgVVNCX0RFVklDRUlORk8sICZkZXZpY2VfaW5mbykp IHsNCgkJICAgIGlmIChlcnJubyAhPSBFTlhJTykNCgkJCWZwcmludGYoc3Rk ZXJyLCAiYWRkciAlZDogSS9PIGVycm9yXG4iLCBhZGRyZXNzKTsNCgkJICAg IGNvbnRpbnVlOw0KCQl9DQoNCgkJaWYoc3RybmNtcChkZXZpY2VfaW5mby51 ZGlfZGV2bmFtZXNbMF0sInVnZW4iLDQpIT0wKQ0KCQkgICAgY29udGludWU7 DQoNCgkJaWQudHlwZSA9IElGRF9ERVZJQ0VfVFlQRV9VU0I7DQoJCWlkLm51 bSAgPSAyOw0KDQoJCWlkLnZhbFswXSA9IGRldmljZV9pbmZvLnVkaV92ZW5k b3JObzsNCgkJaWQudmFsWzFdID0gZGV2aWNlX2luZm8udWRpX3Byb2R1Y3RO bzsNCg0KCQlpZmRfZGVidWcoMSwgIkJTRDogaWZkX3NjYW5fdXNiOiAiDQoJ CQkgICAgICJpZmRfZHJpdmVyX2Zvciglc1sweCUwNHhdLiVzWzB4JTA0eCki LA0KCQkJICAgICBkZXZpY2VfaW5mby51ZGlfdmVuZG9yLA0KCQkJICAgICBk ZXZpY2VfaW5mby51ZGlfdmVuZG9yTm8sDQoJCQkgICAgIGRldmljZV9pbmZv LnVkaV9wcm9kdWN0LA0KCQkJICAgICBkZXZpY2VfaW5mby51ZGlfcHJvZHVj dE5vKTsNCg0KCQlpZiAoIShkcml2ZXIgPSBpZmRfZHJpdmVyX2Zvcl9pZCgm aWQpKSkNCgkJICAgIGNvbnRpbnVlOw0KDQoJCXNucHJpbnRmKGRldmljZSwg c2l6ZW9mKGRldmljZSksDQoJCQkiL2Rldi8lcyIsIGRldmljZV9pbmZvLnVk aV9kZXZuYW1lc1swXSk7DQoNCgkJaWZkX3NwYXduX2hhbmRsZXIoZHJpdmVy LCBkZXZpY2UsIC0xKTsNCgkgICAgfQ0KCSAgICBjbG9zZShjb250cm9sbGVy X2ZkKTsNCgl9IGVsc2Ugew0KCSAgICBpZiAoZXJybm8gPT0gRU5PRU5UIHx8 IGVycm5vID09IEVOWElPKQ0KCQljb250aW51ZTsNCgkgICAgLyogYSBtb3Jl IHN1aXRhYmxlIGVycm9yIHJlY292ZXJ5IHNob3VsZCBiZSBkb25lIGhlcmUg Ki8NCgl9DQogICAgfQ0KICAgIHJldHVybiAwOw0KfQ0KI2VuZGlmIC8qIF9f TmV0L0ZyZWUvT3BlbkJTRF9fICovDQo= --0-318097300-1123166379=:86134--