From owner-freebsd-drivers@freebsd.org Sun Mar 10 02:51:21 2019 Return-Path: Delivered-To: freebsd-drivers@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9445015442A4 for ; Sun, 10 Mar 2019 02:51:21 +0000 (UTC) (envelope-from mevgheni@gmail.com) Received: from mail-pf1-x431.google.com (mail-pf1-x431.google.com [IPv6:2607:f8b0:4864:20::431]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 9C32388316 for ; Sun, 10 Mar 2019 02:51:20 +0000 (UTC) (envelope-from mevgheni@gmail.com) Received: by mail-pf1-x431.google.com with SMTP id u9so1083143pfn.1 for ; Sat, 09 Mar 2019 18:51:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=Ze3o2GLs2rFoOqnf1LsjP53cSXWry/K9DejoJ9dJuZo=; b=aak7GqCdlF5g09tac+l8z15DhmltYvNexhffrVCt02UfPxszCe0P+51wZyyRwuSbk/ rJPZAbSFBpR+JK9TAGFeWMiso8F5AsDy6jm56BcyTmdAKLABwJ4ObEBuZ/IKtoUwfrLf +IKfNnAA7r9H/isad6VWX5Snwfw3A88GZ8nLGa7GvVQ46O78mClMnrUNbrXOwu0jAnKh oBhnU5NQb1R8zUGJap7QI32W1AY2Hi7l01kuQ5/LhVCi71KKmrt+jEyV1vDO6X+WwdTs IM0agkzR05qHel3kyC8rEKuHg3oS9MLIbvjbgnxW7eQ1qY8vQHNkft5pRLn8xGMoDgZb ZbWQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=Ze3o2GLs2rFoOqnf1LsjP53cSXWry/K9DejoJ9dJuZo=; b=JdGaHPIcFD6U0hm4WY0RSTGf3lstqO0NfsyU0IeJ17mUGS95Cbjz6r3JgkwOy9yh9x ftCSaXQrU8bK1fc3SlxyPMRUnxoqUaiK+eO38zQujMKBXSP9RgeNhykX/eP+M3pAMCJ9 PQ8N4d42JLX/NPiUErINQap1orIaO+N//JEoCUgY0aVDOojCIakTFdkE/RexuauVr0Jn bJKEnrAK+3TbZK7b01wuNJHZctVD+mVgGToeU353Tbum+AlRWH7LZ6+f9U4KCx68G43J Vm1ZXZv/0GXI7SAL+lkXkfDNhlsgewfGu3a6IJQs62KE1cK8U3VAekpGTd+Ab2zZQkGC mGtw== X-Gm-Message-State: APjAAAWvy5j/KFjpGNW0rhIfL3QFVF3VWw+GQ+Qven8acHJN/y7FXbiS o25O8kWQrZHBNlYuWjHgi2ffnwRwpvnHUdCkKCoGV87Q X-Google-Smtp-Source: APXvYqxMwv82cuY5XwAD/j96y7Qhe72T0tpbuRasekv3udqct7j4B+jc6emWC6znhAwK00JaP+K7j7qmFjNcbp8WvLg= X-Received: by 2002:a63:ec4c:: with SMTP id r12mr24022058pgj.379.1552186279080; Sat, 09 Mar 2019 18:51:19 -0800 (PST) MIME-Version: 1.0 From: Evgheni Melman Date: Sat, 9 Mar 2019 21:51:10 -0500 Message-ID: Subject: PMC Sierra SPC SAS-SATA Card + ESXi To: freebsd-drivers@freebsd.org X-Rspamd-Queue-Id: 9C32388316 X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=gmail.com header.s=20161025 header.b=aak7GqCd; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (mx1.freebsd.org: domain of mevgheni@gmail.com designates 2607:f8b0:4864:20::431 as permitted sender) smtp.mailfrom=mevgheni@gmail.com X-Spamd-Result: default: False [-5.67 / 15.00]; R_SPF_ALLOW(-0.20)[+ip6:2607:f8b0:4000::/36]; FREEMAIL_FROM(0.00)[gmail.com]; TO_DN_NONE(0.00)[]; URI_COUNT_ODD(1.00)[5]; DKIM_TRACE(0.00)[gmail.com:+]; DMARC_POLICY_ALLOW(-0.50)[gmail.com,none]; MX_GOOD(-0.01)[cached: alt3.gmail-smtp-in.l.google.com]; NEURAL_HAM_SHORT(-0.84)[-0.840,0]; FROM_EQ_ENVFROM(0.00)[]; RCVD_TLS_LAST(0.00)[]; MIME_TRACE(0.00)[0:+,1:+]; FREEMAIL_ENVFROM(0.00)[gmail.com]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; DWL_DNSWL_NONE(0.00)[gmail.com.dwl.dnswl.org : 127.0.5.0]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; R_DKIM_ALLOW(-0.20)[gmail.com:s=20161025]; FROM_HAS_DN(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; PREVIOUSLY_DELIVERED(0.00)[freebsd-drivers@freebsd.org]; RCPT_COUNT_ONE(0.00)[1]; IP_SCORE(-2.82)[ip: (-9.24), ipnet: 2607:f8b0::/32(-2.73), asn: 15169(-2.06), country: US(-0.07)]; RCVD_IN_DNSWL_NONE(0.00)[1.3.4.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.4.6.8.4.0.b.8.f.7.0.6.2.list.dnswl.org : 127.0.5.0]; RCVD_COUNT_TWO(0.00)[2] Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: freebsd-drivers@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Writing device drivers for FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 10 Mar 2019 02:51:21 -0000 So I got this weird setup, where I need to passthrough a PMC-Sierra PM8003 card (same as PM8001, but with external QSFP afaik) to FreeBSD 11-STABLE running in ESXi. The card works fine in baremetal FreeBSD 11. Boot is ok, all disks detected. When done in ESXi with passthrough though: 1. First try, host crashed with PSOD. After tweaking passthrough.map in esxi to do d3d0 reset, host does not psod anymore. 2. FreeBSD kernel panics at pciAttach. After analyzing the driver (sys\dev\pms), turns out it only works in MSI-X mode. Disabling msi_blacklist in loader.conf makes FreeBSD not panic. 3. FreeBSD deadlocks on boot. After analyzing the driver more (turning on all debug features, and adding a few extra), I got this log (pastebin link: https://pastebin.com/cEGwFZZ2). The code tries to initialize SGPIO, but for whatever reason does not get an interrupt reply when run on ESXi which makes it loop for infinity waiting for said interrupt. The deadlock happens in the while(!sgpioResponseSet) { tiCOMDelayedInterruptHandler(tiRoot, 0, 1, tiNonInterruptContext); } section of SendSgpioRequest in sys\dev\pms\RefTisa\tisa\sassata\common\tdport.c Sgpi seems not-so-critical feature to me, so I just limited the while loop to 100 iterations, which lets SendSgpioRequest return an error that is not considered fatal, and lets the code execute further which can be seen in the log: https://pastebin.com/Rk6MD5ci (disregard the final fatal trap, I think it is caused by me and/or my debugging code, same modifications without debugging features do not trap and I get same trap on baremetal with my debug kernel). With those modifications, pciAttach is successful, I finally get a boot, the card exists in lspci, BUT no drives connected to it are detected. At this stage, I am out of ideas, looking for suggestions. From owner-freebsd-drivers@freebsd.org Tue Mar 12 16:17:08 2019 Return-Path: Delivered-To: freebsd-drivers@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 73E1B1534EE7 for ; Tue, 12 Mar 2019 16:17:08 +0000 (UTC) (envelope-from fesse@mail.ru) Received: from smtp17.mail.ru (smtp17.mail.ru [94.100.176.154]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D5A186E957 for ; Tue, 12 Mar 2019 16:17:06 +0000 (UTC) (envelope-from fesse@mail.ru) Received: by smtp17.mail.ru with esmtpa (envelope-from ) id 1h3k5I-0000YV-AL for freebsd-drivers@freebsd.org; Tue, 12 Mar 2019 19:16:57 +0300 Date: Tue, 12 Mar 2019 19:16:56 +0300 User-Agent: K-9 Mail for Android MIME-Version: 1.0 Subject: ACPI Suspend/Resume support in sound drivers To: freebsd-drivers@freebsd.org From: =?UTF-8?B?0JDQu9C10LrRgdC10Lkg0J/QsNC70Y7RgtC40L0=?= Message-ID: <0812D16E-3F71-4C1C-82E0-DA7AE0D81E46@mail.ru> X-77F55803: CF41D5CA8C6D3C0C7F9F52485CB584D7FE68477BFBFC01B45266539DCEEC5A5EEE8C493BEC1B01DCD6AB21314ABC6FEA51CE0648C9E8651D X-7FA49CB5: 0D63561A33F958A52215FA9964EF07D181665F0A8AF0647EBD409193995E8F5A8941B15DA834481FA18204E546F3947CA9FF340AA05FB58CF6B57BC7E64490618DEB871D839B7333395957E7521B51C2545D4CF71C94A83E9FA2833FD35BB23D27C277FBC8AE2E8BAE9A1BBD95851C5BA471835C12D1D977C4224003CC8364767815B9869FA544D8D32BA5DBAC0009BE9E8FC8737B5C2249EC9D17400D4640693AA81AA40904B5D9CF19DD082D7633A0E7DDDDC251EA7DABD81D268191BDAD3D78DA827A17800CE7F37C1F64ECBCA44BCD04E86FAF290E2D40A5AABA2AD3711975ECD9A6C639B01B78DA827A17800CE72B812CDA4A1440EEA55CBCB8DEF6C1B775ECD9A6C639B01B4E70A05D1297E1BBC6867C52282FAC85D9B7C4F32B44FF57D4B828FA1BC0F1ACBD9CCCA9EDD067B1EDA766A37F9254B7 X-Mailru-Sender: 49D287FBCBBF3A5C4AC4B4D3231166EE12418628DE267F408081AA6DB578D7E2345C11AF1AD87E65629687592B7445BC8FCA44E9AC9C8EC25865B368DA895DE95FEEDEB644C299C0ED14614B50AE0675 X-Mras: OK X-Rspamd-Queue-Id: D5A186E957 X-Spamd-Bar: --- X-Spamd-Result: default: False [-3.11 / 15.00]; RCVD_VIA_SMTP_AUTH(0.00)[]; R_SPF_ALLOW(-0.20)[+ip4:94.100.176.0/20]; FREEMAIL_FROM(0.00)[mail.ru]; TO_DN_NONE(0.00)[]; DKIM_TRACE(0.00)[mail.ru:+]; MX_GOOD(-0.01)[mxs.mail.ru,mxs.mail.ru]; DMARC_POLICY_ALLOW(-0.50)[mail.ru,reject]; NEURAL_HAM_SHORT(-0.21)[-0.209,0]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+,1:+]; RCVD_TLS_LAST(0.00)[]; RCVD_IN_DNSWL_LOW(-0.10)[154.176.100.94.list.dnswl.org : 127.0.5.1]; ASN(0.00)[asn:47764, ipnet:94.100.176.0/20, country:RU]; MID_RHS_MATCH_FROM(0.00)[]; DWL_DNSWL_NONE(0.00)[mail.ru.dwl.dnswl.org : 127.0.5.0]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-0.82)[-0.816,0]; R_DKIM_ALLOW(-0.20)[mail.ru:s=mail2]; FROM_HAS_DN(0.00)[]; FREEMAIL_ENVFROM(0.00)[mail.ru]; TO_MATCH_ENVRCPT_ALL(0.00)[]; NEURAL_HAM_LONG(-1.00)[-0.999,0]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; IP_SCORE(0.03)[ipnet: 94.100.176.0/20(0.08), asn: 47764(0.05), country: RU(0.00)]; RCPT_COUNT_ONE(0.00)[1]; RCVD_COUNT_TWO(0.00)[2] Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: freebsd-drivers@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Writing device drivers for FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 12 Mar 2019 16:17:08 -0000 Hi I trying to add suspend/resume support to PCI soundcard driver=2E As I can see, when system goes to s1/s3 state sound system doesn't warn dr= iver about that event at all=2E But interrupt should be masked, and chip clock should be disabled too for = power saving=2E When driver's suspend function being called by kernel, mask= ing interrupts subsequentally ending up with "timeout, channel dead" just a= fter wake up from s1/s3 states (since pcm doesn't know that we doing), and = userland playback application exits with error=2E Is there a way to tell pcm to "pause" running channels before going to sle= ep? Other drivers simply calls their own trigger function with PCMTRIG_ABORT p= arameter, but again, pcm doesn't know about this, and I believe this also e= nds with "channel dead"=2E I want sound system to resume playback, interrupted by ACPI sleep event, j= ust after wake up=2E Is it possible? Is there any "right way" on how to han= dle ACPI events safely in sound driver? --=20 =D0=9F=D1=80=D0=BE=D1=81=D1=82=D0=B8=D1=82=D0=B5 =D0=B7=D0=B0 =D0=BA=D1=80= =D0=B0=D1=82=D0=BA=D0=BE=D1=81=D1=82=D1=8C, =D1=81=D0=BE=D0=B7=D0=B4=D0=B0= =D0=BD=D0=BE =D0=B2 K-9 Mail=2E