From nobody Sat May 10 13:16:21 2025 Delivered-To: importer@patchew.org Received-SPF: none (zoho.com: 80.81.252.135 is neither permitted nor denied by domain of seabios.org) client-ip=80.81.252.135; envelope-from=seabios-bounces@seabios.org; helo=mail.coreboot.org; Authentication-Results: mx.zoho.com; dkim=fail spf=none (zoho.com: 80.81.252.135 is neither permitted nor denied by domain of seabios.org) smtp.mailfrom=seabios-bounces@seabios.org; Return-Path: Received: from mail.coreboot.org (mail.coreboot.org [80.81.252.135]) by mx.zohomail.com with SMTPS id 1493216365021655.3602101608595; Wed, 26 Apr 2017 07:19:25 -0700 (PDT) Received: from [127.0.0.1] (helo=ra.coresystems.de) by mail.coreboot.org with esmtp (Exim 4.86_2) (envelope-from ) id 1d3Nmn-0003Ib-5W; Wed, 26 Apr 2017 16:19:17 +0200 Received: from mail-ve1eur01on0129.outbound.protection.outlook.com ([104.47.1.129] helo=EUR01-VE1-obe.outbound.protection.outlook.com) by mail.coreboot.org with esmtps (TLSv1.2:ECDHE-RSA-AES256-SHA384:256) (Exim 4.86_2) (envelope-from ) id 1d3Nmd-00035K-DF for seabios@seabios.org; Wed, 26 Apr 2017 16:19:14 +0200 Received: from rkaganb.sw.ru (195.214.232.6) by VI1PR08MB0845.eurprd08.prod.outlook.com (10.164.93.143) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1047.13; Wed, 26 Apr 2017 14:18:24 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=virtuozzo.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=yOm40PN7okguAub9Www3aMs4tn6p+XRN41XdjtJ3XuM=; b=hbsQPYtEIMFVzgj3NYdFuK0Fage4D7LR0PIwqmtUHrikz2bU73xR/PobhGd/aPy9vCyVd0ZFT1c/mCvjLs0T4Krr7kuhjZQpGW4cSTMF2TVp34XxwbgF3FN6U3KhD6UXr9LP9nSkwuIerohHhgRry3mqo0XBBDDPci2QTrDB4Ho= Authentication-Results: seabios.org; dkim=none (message not signed) header.d=none;seabios.org; dmarc=none action=none header.from=virtuozzo.com; From: Roman Kagan To: , Kevin O'Connor Date: Wed, 26 Apr 2017 17:18:09 +0300 Message-ID: <20170426141809.12661-10-rkagan@virtuozzo.com> X-Mailer: git-send-email 2.9.3 In-Reply-To: <20170426141809.12661-1-rkagan@virtuozzo.com> References: <20170426141809.12661-1-rkagan@virtuozzo.com> MIME-Version: 1.0 X-Originating-IP: [195.214.232.6] X-ClientProxiedBy: DB6PR0802CA0047.eurprd08.prod.outlook.com (10.172.252.161) To VI1PR08MB0845.eurprd08.prod.outlook.com (10.164.93.143) X-MS-Office365-Filtering-Correlation-Id: 658c8c19-e138-4a35-8fee-08d48caf1a35 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(201703131423075)(201703031133081); SRVR:VI1PR08MB0845; X-Microsoft-Exchange-Diagnostics: 1; VI1PR08MB0845; 3:Os24hlbdC0YgSaYRRytG2GUm7OqTFwzVy8hStilCfSNzrolSACvsHl5r84ZDT8g39d6+W+0I8lH5MUL+MzTmAipWgw4kmJOQlR+gUUF9oxe7yhbW8PzE1FRFtUWSilbSUAz3Ww+YQq4Pvov98vBVqOdGWcO8fUOr2oLF/T+pRc181TCYVRxwFR8KmiLyGYLTGt6KTIt7nhJe6Ivuc6uMv64kl5St0glsoDQ60RJaKQksgTejD+8KDxXG3XXJ3RkUFIOAHfAISlDbkKviRjcFCY9YKtINR/LIRpjLUJ4qFsoMPkK6AgXAGqrYoJ85YLqi0UXyonkG+jH2zZNkl80HbA==; 25:xSopgfRRgr2jeVZ7jIZRkUQfX8JLImbdqtbaBiowd8GdEtB7VQRXvnQZ/vVFqEywrzTA77yA97s89es0DIrk1AxYRvoAUCuD4d/AsrhJOzg8mSUl3mc95EIdKjMbrbAsbIZ5WFFAfFqX569wkoMWS+bLy+suz7Ik3WCxtMZrdDkxIya21/qrcYeuHWL6/39t77tS+1K73zmln6jaCbUgazcc+a4rL9iF+tHdF5isOtZuOo5kVSZbtgfqviBVklNQFiXIpRku+zOoEFFF9iSlfsNxzOs8QqKkFRfBnOi6VdSw3VcgmTNxZH3HLBpI2SIToMlaLC4T1YsKJB3LUYoTlS/8qKstxHjgTShJjS8eJLy8AliwGpWbtdNNjiQwOQJOXsgfWpLtpXmQs/r658ZIpF3v7meQ0Ht4aVrKtU8cLIRz47P2ix6G+1Q3B8iIFvCbSWWBM/2NKpeZ0DM/fAr9Zg== X-Microsoft-Exchange-Diagnostics: 1; VI1PR08MB0845; 31:p87N+ufDuHdzJWSuDduSMviZ/+/iueKASvlfmQ4v13hELHyCCAawDt/jFtETa0SLRtNiRlrMHBwN9zjn0ANVkpmb0l8M8Fp0HZel5NOmW7M+RUN3yLVsFMybuXc5Ypo+sCqdTKUVePibAMP2aEyxA6ZLqSRIJ+ICxhvJ6kce5/fbRzaBeutkVZ6wrKbcJJN7d1jHMZmrSAAkbTDgZJuTSUq+pqhWpKNE72wOFvgKIeDtumvB9aR5qzeuYLxvkYl1; 20:Zp5jKs6U9D2PKKOHJDtX8l1hIbyQnE2f52wsoLeYRpscZgZh0PvccZ+EUeHAoN3mxR4BYiYyaLYonRvrwUqKJ5DwD9CysD2KRUjaPOzuOh1ZGgKB6P92U7RvkgY8BXdvfpXICI9h+Z1YiwsbWGYqIXGa158Fnl3mNMiQLTYkaPYbu6m8DaZHR6SjTRLKMRC+5dpeq0IdhLQJXfO7PRKNe4OB7J5Qq/nkOv8ffyzf8zOW6XknkEHLK4HbTllliSvOQpK2gCSetg/nDsMf0sBlJaECGFSdSOEnDJDlv/2IEGh4k8dwk8ETqt45Ca1VIqFA/x7xHddD5JkA/2Rcl2dlSEpCAPJY6wHsRDRtuh1K28/CdkyUiYhC59J20uAMvtwcmbz3laGP5drjQ5hUG8nHMDGOl0UrXGLfYCV6Y7vCrUQ= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040450)(601004)(2401047)(5005006)(8121501046)(10201501046)(93006095)(93001095)(3002001)(6041248)(20161123562025)(20161123564025)(201703131423075)(201702281528075)(201703061421075)(20161123560025)(20161123555025)(6072148); SRVR:VI1PR08MB0845; BCL:0; PCL:0; RULEID:; SRVR:VI1PR08MB0845; X-Microsoft-Exchange-Diagnostics: 1; VI1PR08MB0845; 4:9ytRpnXJy64el+k8R8AhImIcWLQxEJMXPR0itBmuhNzH7yJ5VcDMIRWcbEGwjv2/KIx/pFKubVSxd1tqUBT6oGgQEYwc5CO8Bk86qnMpTsYKVJUE2i33sFcuTOKgEXk16omhvj4ohLbwY/UZ66nQgRJGeENnOJkM7RZJ68tFmonLbBdgx/rx1JgJsSaD+9tAuMGHhpb1VI7z242a3bjzIU9Xueha0RykBAq3uzMxlckCeKvA1HJ7HLwA9UNpINjVcGZMVWDK5f3oBnLrJEvJcPO2IhDwDt71Quje4ZrjlBY55MIcz/19zQsLpsazDdzWcsvL8vt3I8i7A61zgzW8/3rjosxBQQSyH6EpHES2I3ULafAYOuNO87kLXDKbBxlqrfDlQuww8VW/x1iJcZhg1nIKaYx1zjC5cfZKNCXDBjPWwKc/d6ThvSDd6j0/7cHMeGMh31PVfSbyli3kfY93WC6hs+/uQKHeVwNC8PaaqGWDWzcz+YOkX9sabfImCypR0MMoHfZ+G6ADkdduigl2UW7AN8iy0zc4xG9frMkcH+CCyLKrBqOALJ00EuW09E5hjOnwYOO5GgL54wEhtZOewIbqEGkBes/Ag6drzIIM1tmwpf5+VtkiLkZl7uGp5AYwQW42w/dk3IF0ssyZjNjVWC9g1IHcODcZUXDCAgmS+gH921FtMpe552QMU7ykcLO60I+ijf/FGJWrPOPv3ckNtA== X-Forefront-PRVS: 0289B6431E X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(4630300001)(6009001)(39410400002)(39840400002)(39450400003)(39400400002)(305945005)(7736002)(189998001)(5660300001)(8676002)(25786009)(48376002)(86362001)(575784001)(53416004)(42186005)(4326008)(2950100002)(38730400002)(81166006)(6666003)(36756003)(2906002)(50466002)(33646002)(66066001)(50226002)(6506006)(6116002)(54906002)(76176999)(47776003)(6512007)(50986999)(5003940100001)(6486002)(3846002)(53936002)(1076002); DIR:OUT; SFP:1102; SCL:1; SRVR:VI1PR08MB0845; H:rkaganb.sw.ru; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; VI1PR08MB0845; 23:swMXEKdL7owej9mt1qLkos2kHbIFLZPId5DJyZFRX?= =?us-ascii?Q?87cqhq49Ypisgrk6hIkfqtInBQNtfOE/M+ZeWOwRIJRHCBg28/5CQYdD9LPg?= =?us-ascii?Q?YipjlZA4nD09q4n7IQ7D/zLeyJgFBDmNtWiuMXnDQawGQDS1oyMFYJxNo8hM?= =?us-ascii?Q?dtXbnFqpKv0En9lm/PSC6u7qD3LRLe0gMxSvqY0vjGvaqF1QKiD5RNFdj20a?= =?us-ascii?Q?+h675PkrLLZbFppUm6L7WMYXJtq6Jf8R6hCbNnj+nWdoOzgQumVOEK1HFtm2?= =?us-ascii?Q?j+MmHD9He5jDsZPmK+PRcrCUFe9s4gFJDbn6gTW77Te3g2UxtBP3zZvF5U0n?= =?us-ascii?Q?wfHg+WX3nH6Z2BMrS1kU0SNdhNCSRvri1mnEw1xkZ80x0ZsTcOpcoa38Y+Rj?= =?us-ascii?Q?qq9CNWf2Wmubj78phGvCRyzRo3l2rky+/P5ghvthENkd+B/C80zs1HqEual4?= =?us-ascii?Q?cv1vC/7jwcREiBYcmQ5+EKua950OlNxlenncvJpSaj95gqp01pitdwUlE0mF?= =?us-ascii?Q?45zZLTmhI2A/Fm4GjkOiO8lXiPEhGxm4Lzq+afM0umjxa5qdOVk1nHVFEgvU?= =?us-ascii?Q?pk5Q/1Zcr7zTtxGhZ6nWYGi6jyV0y6qt+yAxKgmcQHb2tve1ACX4BYO1q4TC?= =?us-ascii?Q?UBTZUpSJtc65lPF3Qy8Z8aHNNadr49fvQl2SyjoseLP7XNalyDkysn5RRwHb?= =?us-ascii?Q?2e+wMpg1GmHy5iWUee3+mjk34g4JAP3g7SYPOT3cjDwPdzO9hP4pbwa+tLV4?= =?us-ascii?Q?3zf054GLeC6E5kL9nynhRmM7mY2mFoqelP2L9Blvs+vEN2AW6+vaLZtV23Ep?= =?us-ascii?Q?NU2dqMQtOZKSYUUJ5Pu2rGIhwtfIaex7UE4elt/85iSdkFTXcTPd2oqozslw?= =?us-ascii?Q?4VuGF7qVArbMk0a6CIF4YMWpCqxEmpIJKoL+glxypBS85p8/O5Za+wOYB3GP?= =?us-ascii?Q?Q6fv5b9U/NrEiItN5i1eReYYoENIG9Jvnd1ZNnICnWfEJ5pbjL71RQUm6fSj?= =?us-ascii?Q?2PBk4SF2KWJwCZiHOQT/jvV?= X-Microsoft-Exchange-Diagnostics: 1; VI1PR08MB0845; 6:e23K9nQHjXn+XP4SOZyzPqnMhdmMcAGhRMO4GT4xIzq0EJdQsoyf5b48VUX8lcXzMc95CRjpXMQ5wDCJN91UDsq2fT3LfxOEa/gvOdr6GqQ/XYbetRwbIHl2dtPK3aT48NMY4SjRSmCPcWLA8zKizJ6p/Ww7o7mryP+E5PH3uCba1Um/rRacWMOubX1VFCt2AQalq+JtCQVcMqZw0ObHhXfniJcv9vrSPUlYcRW3unidkEFcpOqll4ac6xmTkn58RWcsJTo43SIQKbaPprVpa4wL+0J1Iosrsmk92pwfNVHLpLgFK15NIqbb1Pg7LjSWCbVE00TT9YAQ2bppFl7itWa3q0zJxYobv7WUCE3aKnRa9ipWIT9mnkr75Yo2fnpyaIcn57/vDA7eeg5GRk3gFM7fEKDvRDe1lnL4bMAheetfoZhV4h6MkgO81UjNz71ut3bvu+PW0gxRuFE2pCq3KybuDbYwO3tjQTzOWViya5l8EPthArctWXU65hocYQha/DKszNzaLbdRAMxpL24nLQ==; 5:y+mo2aOuc+ldwvyL1P/8vj92dpGCnGEI42gveJk9x3i0CD+57+rqdWvE+PAIxsrqQXAeUeD8EYX+W2b0WfJLQ5r/BAa64SJvm6L4fo0/rVID2DPO34vxNuZgK9AkQOIWr1cy4Jn0HqsykJX9YOXiNg==; 24:YFMO0dBmKqAwolCg3MyANvhVJPHmL+IENM/39SKlDQro9mrqNDCK46Fyrx2xY2dA67jzRCBE8uNe7zjKNNCF8CP3Rh5W90ucEg4tgYeYHf4= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; VI1PR08MB0845; 7:k4wRIpdqtg1xFXEYeRz4yHSZsuiX5/rYVergtgOYuxhNvjhL1pAx3WssWgK8Spi83/E3WqBn1kN1UIfXidbVghYhSFQBKNhRO9LzjTuia59DomWZwhGWVvJZV7TzghWi5xI9DEtJ8Grm2sES6kOCnTBODyauBqKpMyeBQactETbyTvGLIq7wRdA49/OHxDfp0XVWXAxJsivNyWyKcoJP3u+BTbV823Brplog0+DI/bGqP7qsRxYi5LVufLrnoSLvEU89NLzXvRfsICpdl06QEIjrd3FeS0UbXOJrMMDupwCQsw6DQT1Vu+L05Ib1sueveQmR8r1LrRoqJ/e6PGjU6g==; 20:4qtizzYxAzBXmQQpshfgp7qlTxhHbUuyK7R/fR8v8uCpmfZcHt4KwS8nt4H9Pxr0UA7TtiMY/QZb3WHkCdw86uofGxO1xva/2bK5OrlODc4/STWqF3fGv01G0WS8q06EJXLhNtAI6sYlSSPWGULGSjztffIjzYWMf2Wgielo8pw= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Apr 2017 14:18:24.6930 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR08MB0845 X-Spam-Score: -5.6 (-----) Subject: [SeaBIOS] [PATCH v2 9/9] lsi-scsi: try to enumerate luns with REPORT LUNS X-BeenThere: seabios@seabios.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SeaBIOS mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Evgeniy Yakovlev Content-Transfer-Encoding: quoted-printable Errors-To: seabios-bounces@seabios.org Sender: "SeaBIOS" X-Duff: Orig. Duff, Duff Lite, Duff Dry, Duff Dark, Raspberry Duff, Lady Duff, Red Duff, Tartar Control Duff X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_4 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Enumerate active luns with REPORT LUNS and, if that fails[*], fall back to sequentially enumerating them up to (arbitrarily chosen) #8 [**]. [*] in current QEMU, REPORT LUNS does fail in lsi53c895a because the returned data is smaller than the allocation length which is (wrongly) considered an underflow [**] in current QEMU, luns above 0 are not supported in lsi53c895a, so this patch is here only for completeness. Signed-off-by: Roman Kagan --- src/hw/lsi-scsi.c | 37 ++++++++++++++++++++++++++----------- 1 file changed, 26 insertions(+), 11 deletions(-) diff --git a/src/hw/lsi-scsi.c b/src/hw/lsi-scsi.c index d264993..846bb0b 100644 --- a/src/hw/lsi-scsi.c +++ b/src/hw/lsi-scsi.c @@ -134,14 +134,10 @@ fail: return DISK_RET_EBADTRACK; } =20 -static int -lsi_scsi_add_lun(struct pci_device *pci, u32 iobase, u8 target, u8 lun) +static void +lsi_scsi_init_lun(struct lsi_lun_s *llun, struct pci_device *pci, u32 ioba= se, + u8 target, u8 lun) { - struct lsi_lun_s *llun =3D malloc_fseg(sizeof(*llun)); - if (!llun) { - warn_noalloc(); - return -1; - } memset(llun, 0, sizeof(*llun)); llun->drive.type =3D DTYPE_LSI_SCSI; llun->drive.cntl_id =3D pci->bdf; @@ -149,9 +145,24 @@ lsi_scsi_add_lun(struct pci_device *pci, u32 iobase, u= 8 target, u8 lun) llun->target =3D target; llun->lun =3D lun; llun->iobase =3D iobase; +} + +static int +lsi_scsi_add_lun(u32 lun, struct drive_s *tmpl_drv) +{ + struct lsi_lun_s *tmpl_llun =3D + container_of(tmpl_drv, struct lsi_lun_s, drive); + struct lsi_lun_s *llun =3D malloc_fseg(sizeof(*llun)); + if (!llun) { + warn_noalloc(); + return -1; + } + lsi_scsi_init_lun(llun, tmpl_llun->pci, tmpl_llun->iobase, + tmpl_llun->target, lun); =20 - char *name =3D znprintf(MAXDESCSIZE, "lsi %pP %d:%d", pci, target, lun= ); - int prio =3D bootprio_find_scsi_device(pci, target, lun); + char *name =3D znprintf(MAXDESCSIZE, "lsi %pP %d:%d", + llun->pci, llun->target, llun->lun); + int prio =3D bootprio_find_scsi_device(llun->pci, llun->target, llun->= lun); int ret =3D scsi_drive_setup(&llun->drive, name, prio); free(name); if (ret) @@ -166,8 +177,12 @@ fail: static void lsi_scsi_scan_target(struct pci_device *pci, u32 iobase, u8 target) { - /* TODO: send REPORT LUNS. For now, only LUN 0 is recognized. */ - lsi_scsi_add_lun(pci, iobase, target, 0); + struct lsi_lun_s llun0; + + lsi_scsi_init_lun(&llun0, pci, iobase, target, 0); + + if (scsi_rep_luns_scan(&llun0.drive, lsi_scsi_add_lun) < 0) + scsi_sequential_scan(&llun0.drive, 8, lsi_scsi_add_lun); } =20 static void --=20 2.9.3 _______________________________________________ SeaBIOS mailing list SeaBIOS@seabios.org https://mail.coreboot.org/mailman/listinfo/seabios