From nobody Wed May 14 00:33:18 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; 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 1488365205829557.982446430364; Wed, 1 Mar 2017 02:46:45 -0800 (PST) Received: from [127.0.0.1] (helo=ra.coresystems.de) by mail.coreboot.org with esmtp (Exim 4.86_2) (envelope-from ) id 1cj1mI-0004eK-3G; Wed, 01 Mar 2017 11:46:38 +0100 Received: from mail-ve1eur01on0130.outbound.protection.outlook.com ([104.47.1.130] 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 1cj1m8-0004Mo-UA for seabios@seabios.org; Wed, 01 Mar 2017 11:46:35 +0100 Received: from rkaganb.sw.ru (195.214.232.6) by DB6PR0802MB2469.eurprd08.prod.outlook.com (10.172.251.17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.947.12; Wed, 1 Mar 2017 10:45:51 +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=TcnkRA750o1cpvZn2lGlIWQhyv2YmBUKekrDsirnHNwlXUpe9BAyJ6NdH/AMjLL6RaZhK+I6EWpKU3i1tLcapgwBl6E/zPxgR4uLEL0wq2wpajVVeZTJct2EPhtG9DU2RBi783qD9JrBoUEskkonSDbRZeqpQjMD4utKFLkIzlg= 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: Date: Wed, 1 Mar 2017 13:45:42 +0300 Message-ID: <20170301104542.7373-10-rkagan@virtuozzo.com> X-Mailer: git-send-email 2.9.3 In-Reply-To: <20170301104542.7373-1-rkagan@virtuozzo.com> References: <20170301104542.7373-1-rkagan@virtuozzo.com> MIME-Version: 1.0 X-Originating-IP: [195.214.232.6] X-ClientProxiedBy: HE1PR03CA0038.eurprd03.prod.outlook.com (10.163.170.176) To DB6PR0802MB2469.eurprd08.prod.outlook.com (10.172.251.17) X-MS-Office365-Filtering-Correlation-Id: fc024eb8-11d7-44d0-dfea-08d46090214e X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001); SRVR:DB6PR0802MB2469; X-Microsoft-Exchange-Diagnostics: 1; DB6PR0802MB2469; 3:hOBtYyPq3VvTsJEZTv9ruhnzngIbwVsIgOV7sWl4ymIDhsQsbhHQu8YPVB+1/L4y8MF9IUjtgQiMOxcpbcOcDmqVgKAFpdmJWqJe6QFXhsoGkYJ5ktFdssPUUz2al+mpqL+a1VoJG/7RvTzeQ2sh3zX2HmMg50QhwgCaWpJkR9d/r6miUjVs6dDB0PtVm5a3twQGARwvYaxiBM17bUrZyHVu64/taNZqY+rZILwl7rmxiT7Tl4tRbAGL/vP9JeH6UVcfkmk0fkLHf2gwcikyLQ==; 25:EGDrVVVZgkMe831hwS5FC+wNkAwzj10PmcT7PhFb+ek9AvDYwfPEBjP5vL8Wh5/ZtF7fWawWXndmxW6DGW8el3az8vjxr2tHyECN5bfQn2FQkqGp8XvIr8gdxr6cLFyOKOK2ghmAjytltsCrQGthkMH8VQTv7QiPijK5+jkHMBsX2IP/JjWKOR1jeitdsr1OqxYkvu3E6oheuYqfVr7Thjgm4poUWczpfMhVbrN5DTpvPyiVvbXiCIyAFqFNP8JTJR2jzL5kETuk6/veBBCSRuxrBRdNKhhXJBeQDtbUbMbV8CYXVKxlNEFnyMvhNlCXVmA3IDh9lySTdRcXB6MMSLEr/QxQuKO0ctPE5cDenWPLnTRappJA2xMGS2c84YtVExHv2YWQgApqbQtPGNFKnHMnCvoqeMFzZ/aoJFdKuD3hvsXg1Fv5VVMeUzsHuv/+rgizFJ1Ll6Q+SeG4JRnW0w== X-Microsoft-Exchange-Diagnostics: 1; DB6PR0802MB2469; 31:2vtQ0ge0e1C4aKKCYKviRmMVAsb44EGF1hHFIQy3356cKOJ6ihpRsRUUP02zDaER6a2bOwWvRDpEdFNNew9v8bPF6BwJphwEA729ndgOQVlspEte5xH4rKUnTYttJOcW9cz7N5dkp06ryp2l7GU+OoX5KWUQxSxEyB/e2L8mwbrCT8qiS6AVl2pXQV1dtqX4WNRhrJQAqEwi/YxWT2vaezNUL9zMFzDzlN8bNpjfpXCjeacplRTm54REPmdndbFVCkGkckupszgvXKx/UGhtoA==; 20:R47IBo5fZoRF7GK8J7W284Er19+qXmMexEKvXR1jl2RckchtZC53rqrF+ah2yke1fV1cgzyAdgQX9fcqZ4p6TlJJpG+wmSri4v6a8ewdMKyBnj+bdu0Lv7FKQPOKjtnNHYXOAOgDi2XqmdOkZFNmzOvCaqyLsWMMzzradMM3dq+xvdtdkYe1EZyIi3F0SQIL03iQeIZJGiMzl/6MQfuqTkTWbiI2lmQOhygiKZmspkew4ekiZyR+5CUKkbIrvNmUWQsM5pSiOxtSwn2Q82/sWqaoshixwrkYWWObTZaBBGPE7FinQT92mPoo7iU9jNdtQMUcveJJOENOl9eOFWivn88Tfc05+C2ZWKd1aR7OdIPz6bUtRm25KmY4ttXfCLPtnkSrL4GNiIH9pmpqVeUkRWtBkL2I8W3oZLXAVOh/6W8= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040375)(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046)(6041248)(20161123555025)(20161123562025)(20161123564025)(20161123558025)(20161123560025)(6072148); SRVR:DB6PR0802MB2469; BCL:0; PCL:0; RULEID:; SRVR:DB6PR0802MB2469; X-Microsoft-Exchange-Diagnostics: 1; DB6PR0802MB2469; 4:IAPkRPR9DX/y6upAyuePNtL4vkDS8ep+caiqKn+YHDXZABXZWjSMdqezGaGAIsg4diYOOGqmAnWcFUi9MY0qTLD427RbyTzNVVAV8zr1CSpq5UnM7P8rC2IxW2MdWej4s96fSBL7/9aqYOVYf9eSSemLqGHgicLGZrtENi13OjaDyx7aB8HkcAS0nwGQUYk6xUu0OkVBITyUEbdDWhWRUJxl24Xen+Z6oZrjBJFL98bd6qeKV5dKgedo77wGxFLj3s7LGo7djU6MiKRAoHGxqTVKif934JznXc43qeYxGGQR6qh59xoAxAEEqXAmK/P/yuklGTJV42HM970kBjHUukazLKatmy7KvAD1W2u/tbW/Rjdo5mWNGUoUsdPP6rUclYj6uEnsHOT3Go6FC9B113KtxmeyiqQxwX024rTQCLlVIrigdvHoX3k0npYL+c5ZqgykdQ5G5ttJO8uPkfPbGZIgTaBSFj9FwLGznKGIXODT2nj8AQdkblHlDzGBVLFEjIS8b+LRJ6s1Q+AVffAKcdO973uJTnZA4dM8vLmpz3tIlvsxklgfY5k60L8FMkabtSu1LgjzxHAl/5b1Baw+gUvPUvHuVDE4v2fsT1A9cDY= X-Forefront-PRVS: 0233768B38 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(4630300001)(6009001)(7916002)(39450400003)(36756003)(5660300001)(6486002)(5003940100001)(50986999)(76176999)(6512007)(2906002)(25786008)(575784001)(2950100002)(450100001)(1076002)(6666003)(33646002)(6916009)(50466002)(6506006)(2351001)(42186005)(38730400002)(53936002)(305945005)(66066001)(92566002)(81166006)(8676002)(86362001)(53416004)(7736002)(110136004)(189998001)(47776003)(6116002)(3846002)(50226002); DIR:OUT; SFP:1102; SCL:1; SRVR:DB6PR0802MB2469; H:rkaganb.sw.ru; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DB6PR0802MB2469; 23:ffCPjiu1JW12PTH6/dxr3ZUpHZcniBEQ0kecY4+?= =?us-ascii?Q?P8Ys+WM312VyRrKWtyxy3+M4tyUcwhmnVmCBqVwqLyeg4B29ZZ6RITfTDRA4?= =?us-ascii?Q?ZnbAFbaJ6weQtHLhZn6qFuW/Fcvv8jXa9Ak/PJGfwBC5ogt3VZAv2dAdEgQv?= =?us-ascii?Q?aHKkFRvfnakuIsSoWR01e29KM9jJM4wbA8GnNU0jZE53VlgNLXvB327Y40GC?= =?us-ascii?Q?WatlCLwTVxK2OmouPR4oZlemjxVvTXkJ3mYxNerJem1f45mDllIF3BfsJp9I?= =?us-ascii?Q?AR7LDtqD9nXyCSkRyt4LWBQgVe+BB+J2R8OEYeEvQecgp5ekp+cYfQqcDKQM?= =?us-ascii?Q?O2mgNNjghW41uty+0uGx4ALuyurZzIP9Nlwi0+KwEY0jeNYtB9azahsrHHYa?= =?us-ascii?Q?F2Ym3vMJhs0gFv9F4KADku2MirmXz8cqAoYFgaE4uGTG0MpK7Q+3qig++tSe?= =?us-ascii?Q?VH+w9Nagpeq5iTwXJPlK4WZMfRY0n++axy1fVDqbRubPd/adl0+tnHXc6HHk?= =?us-ascii?Q?Eh9FrZVmAdmoX15G9aHg2khBawDfsM3wkAX003ceHgn5eCPzg10LqWhiPdKW?= =?us-ascii?Q?MZPzu3fWXTmmlN4xaOAOvS1gUOBB0WKo/23HaldNAwSS6Ix2jpI51R366MkJ?= =?us-ascii?Q?zDn4dAWbsVjjfQEy9TEV7rde3GPGmAFL97cs/NkTAilTdExvo2t21GOPcVu4?= =?us-ascii?Q?WtGw++vNQ1FRRczwotfKxcLz6c259csaFWqo/rlbqd+sedC7tup663SeEn/J?= =?us-ascii?Q?VEaV1b2eBzl5mpN7HsN+nuXTEuzT4ywUkCUjzXX/oiHz0Sjhqo4AJOQzlmVQ?= =?us-ascii?Q?+sWnxRaePVrMoDOZb2xrel1ixtEZJLrx6+28U93sclMkVvye/lkxGmfM4f7u?= =?us-ascii?Q?D1mI0epcUS8XAfnRomxAWS9SCzWwMwoka+8poJAolTIhZQ81eTWoVNwqq0sB?= =?us-ascii?Q?byVT/SSeCtGlPNEPwVQosU4onkdhHM7vCQ5V0aD2s1Fcyr1k53I+/CdmklEC?= =?us-ascii?Q?qO2/SoDO99kULSRxFaLFfWafj?= X-Microsoft-Exchange-Diagnostics: 1; DB6PR0802MB2469; 6:N6sY7Pz8TKzKvnmw5P5vUXHZmEUzRrNU2CMdNL6Evj1i9s0G58pTdZDjB82XHIm3GYXushOo5p+2wBzrwc/idRX3RIZBvaKPH8t/c7AmFYUozzN6SmphuxdVPD7Gp+TJGPD7yATFvBSzQlPJA+Kp5EOq1cnNj5C+koeGNZJC2jhRZAjlO4LYyKYnxauCtoePnm+lU/VOIcgN+1jpDp9CsPZVMFx5u+LqlLU8eKSItJe4RyhorVG7rkb1zhtEox10OcZE6hnu4B3f0lIKAxhrnloKesUKuzleJH+jrWumPLCc8MrHi9//yiMcWh6ecAnSFltBlnf2ZmveyL0s5q5dqharUVjGdBYw24GrOVLrdVyc4t+rQTCHZNIeMcWEcJIUsM/qK8jD8DmIepk9gmgyLA==; 5:CVG3bMczMK8GFRd6ni9n9sZ3T9k92EV+nFv7wTAt613hW6dLezdxGVbQOQgCAHQJzCGFW94xsCxw6kLEISjQ7uMx9KKBHdMWHVo84qIMuZJU695+9Mti3igTllKw1gyYqRUdOUKw4BEC3VtbYdnJvQ==; 24:jaWCFw62gn/pjuOwDy+WVvWlgfxMjhchF5qBMyqJ57CwCKOzFu22fyQmd6wjzjMdaAT9fZ1uFcZ5KtV08+2pxAMppWN/6QIpXkcZgJBjfWI= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DB6PR0802MB2469; 7:5dVJxlA1pr7aAEBiBdeZ5PMZO1cI9nHmPVOFl8n5FP7HBDRtpWFJe7kxE38Fy+PnEXI7xwhwiER3cWJRgmYigDOZGxb2ueK7eZY4hwHrXM/sm9Jd64oCn2ryN6kdhqXAHaFKNmKNUQ8gabM7EI2IdyyrrZ6Ael9al9nqD52c534m63QkRHYbUZdYTpkQ7tCahi8qnRNpSSBputiFf1F8hRsQ1WQaAuUKB2x2MrXeErNIfbKYno/jHd7B4lB8UOpAxPtZIPPRWF5YsDQTfUY3tFTussTwyQOksTL7n3yvIPLilM4bgGzJLpaFZRGlDz9PqWAdNTqeLbcBdhe9odFZpg==; 20:z7npLr8edm90oaxQVGbKnr7RqMyTAnyzs7tAyuPUJ9ghQvg9PXy/nM8j0Z73T4+aRKiqyzXeH5bLK8cvh+T5eXl8DLBZnK80QdOyiikJbTTeEIBvXfocPRFeF0SoD2jy6Mpmb7h/H5Pp/KLO+L1cJgGgVSHzZy590iVZqqQFt3I= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Mar 2017 10:45:51.4084 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0802MB2469 X-Spam-Score: -6.6 (------) Subject: [SeaBIOS] [PATCH 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: , 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: 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://www.coreboot.org/mailman/listinfo/seabios