From nobody Sun Feb 8 19:48:52 2026 Delivered-To: importer@patchew.org Received-SPF: temperror (zoho.com: Error in retrieving data from DNS) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=temperror (zoho.com: Error in retrieving data from DNS) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1555539015; cv=none; d=zoho.com; s=zohoarc; b=K4jIkneh4PT1xD0dvXjoRxp4PiiRETvnXkCEl9vDBHb7vyzQabO9DpQ2+kOax4rui/5aco2O1VVcbL77e1BzN8gS1Fpye4h060hjzqTkn69SQAg9w2ykolnOq6Ll8ndG+IjJ6mz0RYPgz/9cC4oNRF+zHUZIEDVB8kMPpJkz6oU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1555539015; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=JK1jenobNkp2h3wHQtfPIyfKfvzIb1aDxQY+2ztH4do=; b=W58YHd/HRqnEklp/fNjVxLQklgtxZJUhBjF38DEq+vyZzF848suji7jkkSh1My27Cckq4ptClO3kUYfWl5BJ0mCYCY1/buEF4Crsl5ckOcXBMNlG/CLwr6XFcw0unPe0O9ZaBr2EFyDADEsls7WziPX6kK6fyZjEhux2JYNcxuA= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=fail; spf=temperror (zoho.com: Error in retrieving data from DNS) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1555539015316204.51431795105043; Wed, 17 Apr 2019 15:10:15 -0700 (PDT) Received: from localhost ([127.0.0.1]:60385 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hGskf-0004R2-NP for importer@patchew.org; Wed, 17 Apr 2019 18:09:57 -0400 Received: from eggs.gnu.org ([209.51.188.92]:37932) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hGsdQ-00071V-2r for qemu-devel@nongnu.org; Wed, 17 Apr 2019 18:02:29 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hGsdO-0004RU-Q3 for qemu-devel@nongnu.org; Wed, 17 Apr 2019 18:02:28 -0400 Received: from mail-it1-x135.google.com ([2607:f8b0:4864:20::135]:40113) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hGsdO-0004QI-Cr for qemu-devel@nongnu.org; Wed, 17 Apr 2019 18:02:26 -0400 Received: by mail-it1-x135.google.com with SMTP id k64so251926itb.5 for ; Wed, 17 Apr 2019 15:02:26 -0700 (PDT) Received: from worksec.wireless.oberlin.edu (ip-70-93.wireless.oberlin.edu. [132.162.70.93]) by smtp.gmail.com with ESMTPSA id e81sm147874itc.3.2019.04.17.15.02.24 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 17 Apr 2019 15:02:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oberlin-edu.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=JK1jenobNkp2h3wHQtfPIyfKfvzIb1aDxQY+2ztH4do=; b=XgBbK3IuXWLpWA9GvyzPJHytQa7v5+Reyb+TjXwLBZVUKLCInfM1/Teyui8mZOE4Ng LDmo7hpl3I6b3zz04vsYHzNMMk5HSETLaTvgEp2lzRGzuXtB3iD8kQ6thuRgGoeQq4Kf Lp+HeX5ZIi57v5SPj/EraH5bUjzxvwk4kp2UjRy+M6QE6r9KXs6k8YbgTR2H9jWHsRFC oX5+ZkC1oxHH/uN0+h121WKJG6G7+YNLSIFl2pj7jYCL2fgrvic9QOYFJnsay5124rm4 5HYr3GiLtbTeiwODpjOpMDeULyMq/IhunPuldet7PL9EdTaVlgbEkA/3HV/y9vTuC/DV HoXA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=JK1jenobNkp2h3wHQtfPIyfKfvzIb1aDxQY+2ztH4do=; b=pYw4tm0EXpeSji5m4KiUmy3kU/C3uzdlOnkakN1mvMX/mEVrs3GcVKAUfscU03ThX8 9L69Q0kUOAzWl+hHZrjtuoRJm/UsZpnCO/uHscRYTC8lwrbYiKqv38DNln7ZSeIf0+Lk Z2YUBvtup5LFS/UXCd9+LkohxOH3uw1r5KqbDa6obtWG2l7vA8YYEKFNGN64M8Wl55Ip Quy7cTNa6MvPIN0cXzjQKosQAGtLbOHyy47Wvpww+Ck4Jin0saRltllrTohu3jfIj2oa 9/Qf12ll1ZSqZvP+9mHO/HpyDqda8/Ar/ZxbeFj+5gjsj0HOI9h9/wMgd/A9FJKxhUco GuJQ== X-Gm-Message-State: APjAAAWxhUnSFUqLER0O601qZxkuQt/7ea7mgBLI86bJVCHbWDSXkUw/ Zou+xaKJ9J578P73HrDqAQbZSDujg5HJ7hiO X-Google-Smtp-Source: APXvYqzh73grEGYLYWOiq3gXD3PKnAEORe2S+GIG3n5b1AdzKGL6/3GhR5ZWpAT2sE2y4yk/sjXnyQ== X-Received: by 2002:a24:7c9:: with SMTP id f192mr730927itf.97.1555538545662; Wed, 17 Apr 2019 15:02:25 -0700 (PDT) From: Stephen Checkoway To: QEMU Developers , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Kevin Wolf , Max Reitz , "open list:Block layer core" , Stephen Checkoway , Markus Armbruster , Laszlo Ersek , Laurent Vivier , Paolo Bonzini Date: Wed, 17 Apr 2019 18:01:40 -0400 Message-Id: <20190417220147.67648-4-stephen.checkoway@oberlin.edu> X-Mailer: git-send-email 2.20.1 (Apple Git-117) In-Reply-To: <20190417220147.67648-1-stephen.checkoway@oberlin.edu> References: <20190417220147.67648-1-stephen.checkoway@oberlin.edu> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::135 Subject: [Qemu-devel] [PATCH v3 03/10] block/pflash_cfi02: Fix command address comparison X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Thomas Huth Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Most AMD commands only examine 11 bits of the address. This masks the addresses used in the comparison to 11 bits. The exceptions are word or sector addresses which use offset directly rather than the shifted offset, boff. Signed-off-by: Stephen Checkoway Acked-by: Thomas Huth --- hw/block/pflash_cfi02.c | 8 +++++++- tests/pflash-cfi02-test.c | 12 ++++++++++-- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/hw/block/pflash_cfi02.c b/hw/block/pflash_cfi02.c index 4b7af71806..e4bff0c8f8 100644 --- a/hw/block/pflash_cfi02.c +++ b/hw/block/pflash_cfi02.c @@ -296,11 +296,13 @@ static void pflash_write(void *opaque, hwaddr offset,= uint64_t value, =20 DPRINTF("%s: offset " TARGET_FMT_plx " %08" PRIx64 " %d\n", __func__, offset, value, width); - boff =3D offset & (pfl->sector_len - 1); + boff =3D offset; if (pfl->width =3D=3D 2) boff =3D boff >> 1; else if (pfl->width =3D=3D 4) boff =3D boff >> 2; + /* Only the least-significant 11 bits are used in most cases. */ + boff &=3D 0x7FF; switch (pfl->wcycle) { case 0: /* Set the device in I/O access mode if required */ @@ -519,6 +521,10 @@ static void pflash_cfi02_realize(DeviceState *dev, Err= or **errp) return; } =20 + /* Only 11 bits are used in the comparison. */ + pfl->unlock_addr0 &=3D 0x7FF; + pfl->unlock_addr1 &=3D 0x7FF; + chip_len =3D pfl->sector_len * pfl->nb_blocs; =20 memory_region_init_rom_device(&pfl->orig_mem, OBJECT(pfl), diff --git a/tests/pflash-cfi02-test.c b/tests/pflash-cfi02-test.c index b113fca5af..b91bb66a79 100644 --- a/tests/pflash-cfi02-test.c +++ b/tests/pflash-cfi02-test.c @@ -23,8 +23,8 @@ =20 #define FLASH_WIDTH 2 #define CFI_ADDR (FLASH_WIDTH * 0x55) -#define UNLOCK0_ADDR (FLASH_WIDTH * 0x5555) -#define UNLOCK1_ADDR (FLASH_WIDTH * 0x2AAA) +#define UNLOCK0_ADDR (FLASH_WIDTH * 0x555) +#define UNLOCK1_ADDR (FLASH_WIDTH * 0x2AA) =20 #define CFI_CMD 0x98 #define UNLOCK0_CMD 0xAA @@ -192,6 +192,14 @@ static void test_flash(void) g_assert_cmpint(flash_read(6), =3D=3D, 0xCDEF); g_assert_cmpint(flash_read(8), =3D=3D, 0xFFFF); =20 + /* Test ignored high order bits of address. */ + flash_write(FLASH_WIDTH * 0x5555, UNLOCK0_CMD); + flash_write(FLASH_WIDTH * 0x2AAA, UNLOCK1_CMD); + flash_write(FLASH_WIDTH * 0x5555, AUTOSELECT_CMD); + g_assert_cmpint(flash_read(FLASH_WIDTH * 0x0000), =3D=3D, 0x00BF); + g_assert_cmpint(flash_read(FLASH_WIDTH * 0x0001), =3D=3D, 0x236D); + reset(); + qtest_quit(global_qtest); } =20 --=20 2.20.1 (Apple Git-117)