From nobody Fri May 17 11:28:48 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1587389451; cv=none; d=zohomail.com; s=zohoarc; b=Z3MaP7qExRSJoMsdoLEGJ8j2Yv0OfRn3VmxJC6qTvIXJ9G6r6VsWpgcMAlb/qiABekwYY1WUkcM8IuY2xNcGLeiME263IPmlwEGlENPBnpZ77Z2mGjnGOZ5GA04tK79XXaZae/WJjNS0jejR5sH0vdKI2Q3IowJkitEHMRWR6zc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1587389451; h=Content-Type: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; bh=09TJwsmOuS2nlb9BQG9YMwh8nZNuEZc4zt/gXYeOK3M=; b=kJvOkGH+kAfcyq6hJycSB7TsTjlBmTe9pTJa8IGnf45f03sX0hzi4tUH9Raj/YUvPGUT5jUdDc+BpOcI12AjzjUER/gD0BvIpoo4gtRW0NtKpoNaKXFdoYNOXrOTBBJbZ96aYPfXsawEviQfLwif3uWYCmIMI8Oc3YK8BjIcsa4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1587389451378222.8731933456877; Mon, 20 Apr 2020 06:30:51 -0700 (PDT) Received: from localhost ([::1]:35554 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jQWVc-0001JJ-PG for importer@patchew.org; Mon, 20 Apr 2020 09:30:48 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:59568 helo=eggs1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jQWTT-0007Pw-2P for qemu-devel@nongnu.org; Mon, 20 Apr 2020 09:28:37 -0400 Received: from Debian-exim by eggs1p.gnu.org with spam-scanned (Exim 4.90_1) (envelope-from ) id 1jQWTR-0002o7-Vd for qemu-devel@nongnu.org; Mon, 20 Apr 2020 09:28:34 -0400 Received: from us-smtp-delivery-1.mimecast.com ([205.139.110.120]:58529 helo=us-smtp-1.mimecast.com) by eggs1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1jQWTR-0002hO-86 for qemu-devel@nongnu.org; Mon, 20 Apr 2020 09:28:33 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-16-4-4F3Zd-OGqlF1O7b0-fYg-1; Mon, 20 Apr 2020 09:28:30 -0400 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id D7060107ACCD; Mon, 20 Apr 2020 13:28:28 +0000 (UTC) Received: from blackfin.pond.sub.org (ovpn-113-6.ams2.redhat.com [10.36.113.6]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 3C64F5DA76; Mon, 20 Apr 2020 13:28:27 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 1D36611358BD; Mon, 20 Apr 2020 15:28:26 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1587389311; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=09TJwsmOuS2nlb9BQG9YMwh8nZNuEZc4zt/gXYeOK3M=; b=ZLWG7Wks3Q6v0+Gb+ZnvPG9STmrJIE4/nL2rlCmZYWGgUwi+eW9vn/JIDzvDfyOdqIieEj EQyB3u+tJwp2xBwK42U2o9PzW5FZvQ/AxiMzVWneJgKSpt3frEIH9aVafwH3Qet+4XqPKH ePOR4+lCn2APvPhVl+smHtjH+1tA7Vs= X-MC-Unique: 4-4F3Zd-OGqlF1O7b0-fYg-1 From: Markus Armbruster To: qemu-devel@nongnu.org Subject: [PATCH 1/4] sam460ex: Revert change to SPD memory type for <= 128 MiB Date: Mon, 20 Apr 2020 15:28:23 +0200 Message-Id: <20200420132826.8879-2-armbru@redhat.com> In-Reply-To: <20200420132826.8879-1-armbru@redhat.com> References: <20200420132826.8879-1-armbru@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.139.110.120; envelope-from=armbru@redhat.com; helo=us-smtp-1.mimecast.com X-detected-operating-system: by eggs1p.gnu.org: First seen = 2020/04/20 04:32:42 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] X-Received-From: 205.139.110.120 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: David Gibson , qemu-ppc@nongnu.org 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" Requesting 32 or 64 MiB of RAM with the sam460ex machine type produces a useless warning: qemu-system-ppc: warning: Memory size is too small for SDRAM type, adju= sting type This is because sam460ex_init() asks spd_data_generate() for DDR2, which is impossible, so spd_data_generate() corrects it to DDR. The warning goes back to commit 08fd99179a "sam460ex: Clean up SPD EEPROM creation". Turns out that commit changed memory type and number of banks to RAM size #banks type bank size 128 MiB 1 DDR2 128 MiB 64 MiB 2 DDR 32 MiB 32 MiB 1 DDR 32 MiB from RAM size #banks type bank size 128 MiB 2 SDR 64 MiB 64 MiB 2 SDR 32 MiB 32 MiB 2 SDR 16 MiB Reverting that change also gets rid of the warning. I doubt physical Sam460ex boards can take SDR or DDR modules, though. The commit changed SPD contents in other places, too. So does commit fb1b0fcc03 "target/mips: fulong2e: Dynamically generate SPD EEPROM data" for machine type fulong2e. I'm not reverting these changes. Signed-off-by: Markus Armbruster --- hw/ppc/sam460ex.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/hw/ppc/sam460ex.c b/hw/ppc/sam460ex.c index 898453cf30..856bc0b5a3 100644 --- a/hw/ppc/sam460ex.c +++ b/hw/ppc/sam460ex.c @@ -335,7 +335,8 @@ static void sam460ex_init(MachineState *machine) dev =3D sysbus_create_simple(TYPE_PPC4xx_I2C, 0x4ef600700, uic[0][2]); i2c =3D PPC4xx_I2C(dev)->bus; /* SPD EEPROM on RAM module */ - spd_data =3D spd_data_generate(DDR2, ram_sizes[0], &err); + spd_data =3D spd_data_generate(ram_sizes[0] < 256 * MiB ? SDR : DDR2, + ram_sizes[0], &err); if (err) { warn_report_err(err); } --=20 2.21.1 From nobody Fri May 17 11:28:48 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1587389577; cv=none; d=zohomail.com; s=zohoarc; b=fTlV3zO1mDQAIMlPRN/yFS5T0VXFlFNCtkFpQyMiZ03TMsXp4K8vIjZIObRhTktqHn9KQNSscFRKdPZaEDb4MqRR+eZXhQ69oaJJoH/3MkzTJ5MXh/sOUnFgs09NrNKyRpMyQv+sssVi48zUJfhZO6gpEXWLGxS/sfO3xB+mV8A= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1587389577; h=Content-Type: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; bh=OkF+d5Soeig59ShJKDhw7z7Z25lBabsoXcRBnwG33As=; b=OAPPlwr5QTbcZCDDIjhuRd3rC7ceYQrM9wZYT3qUYTEmSVyEIUNdGcJpNfv/6iBw4GHKUW/rHbK9vhszdJK2TRf5DPQBVrfERl+ykfTp2jk/O3UFCU5rXuedLzqhktvAp0tD4qgcGMPbGW3LnZvvd76+/5jEjqYiVy+ut8/uTR0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 158738957720033.42867211298528; Mon, 20 Apr 2020 06:32:57 -0700 (PDT) Received: from localhost ([::1]:35549 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jQWVZ-00018Q-1K for importer@patchew.org; Mon, 20 Apr 2020 09:30:45 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:59600 helo=eggs1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jQWTT-0007RE-Mm for qemu-devel@nongnu.org; Mon, 20 Apr 2020 09:28:37 -0400 Received: from Debian-exim by eggs1p.gnu.org with spam-scanned (Exim 4.90_1) (envelope-from ) id 1jQWTS-0002rM-C6 for qemu-devel@nongnu.org; Mon, 20 Apr 2020 09:28:35 -0400 Received: from us-smtp-2.mimecast.com ([205.139.110.61]:27695 helo=us-smtp-delivery-1.mimecast.com) by eggs1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1jQWTR-0002iV-TO for qemu-devel@nongnu.org; Mon, 20 Apr 2020 09:28:33 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-514-BNUsM4HqPRS2M4pd1IYNAA-1; Mon, 20 Apr 2020 09:28:30 -0400 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id AF679108838C; Mon, 20 Apr 2020 13:28:29 +0000 (UTC) Received: from blackfin.pond.sub.org (ovpn-113-6.ams2.redhat.com [10.36.113.6]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 3D0E239C; Mon, 20 Apr 2020 13:28:27 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 1FE9411358BE; Mon, 20 Apr 2020 15:28:26 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1587389312; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=OkF+d5Soeig59ShJKDhw7z7Z25lBabsoXcRBnwG33As=; b=PRwBbuALG97gv/wQ5/8m4+rMIZWKGtmXBB8Rj8Z4SXll2Qrn/Hi/vIBTTlKwotTjiNtnyc WKUfK6jE86YWjMgBuatWGk08uVJvgl9b4C5X85lexg8irbNpkgn+exlbKwxoDrFlSDmIpm CJYjjhS7fflSWxoq2wg8JWorKM9a1lU= X-MC-Unique: BNUsM4HqPRS2M4pd1IYNAA-1 From: Markus Armbruster To: qemu-devel@nongnu.org Subject: [PATCH 2/4] smbus: Fix spd_data_generate() error API violation Date: Mon, 20 Apr 2020 15:28:24 +0200 Message-Id: <20200420132826.8879-3-armbru@redhat.com> In-Reply-To: <20200420132826.8879-1-armbru@redhat.com> References: <20200420132826.8879-1-armbru@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.139.110.61; envelope-from=armbru@redhat.com; helo=us-smtp-delivery-1.mimecast.com X-detected-operating-system: by eggs1p.gnu.org: First seen = 2020/04/20 09:01:45 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] X-Received-From: 205.139.110.61 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: David Gibson , qemu-ppc@nongnu.org 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" The Error ** argument must be NULL, &error_abort, &error_fatal, or a pointer to a variable containing NULL. Passing an argument of the latter kind twice without clearing it in between is wrong: if the first call sets an error, it no longer points to NULL for the second call. spd_data_generate() can pass @errp to error_setg() more than once when it adjusts both memory size and type. Harmless, because no caller passes anything that needs adjusting. Until the previous commit, sam460ex passed types that needed adjusting, but not sizes. spd_data_generate()'s contract is rather awkward: If everything's fine, return non-null and don't set an error. Else, if memory size or type need adjusting, return non-null and set an error describing the adjustment. Else, return null and set an error reporting why no data can be generated. Its callers treat the error as a warning even when null is returned. They don't create the "smbus-eeprom" device then. Suspicious. Since the previous commit, only "everything's fine" can actually happen. Drop the unused code and simplify the callers. This gets rid of the error API violation. Signed-off-by: Markus Armbruster --- include/hw/i2c/smbus_eeprom.h | 2 +- hw/i2c/smbus_eeprom.c | 30 ++++-------------------------- hw/mips/mips_fulong2e.c | 10 ++-------- hw/ppc/sam460ex.c | 12 +++--------- 4 files changed, 10 insertions(+), 44 deletions(-) diff --git a/include/hw/i2c/smbus_eeprom.h b/include/hw/i2c/smbus_eeprom.h index 15e2151b50..68b0063ab6 100644 --- a/include/hw/i2c/smbus_eeprom.h +++ b/include/hw/i2c/smbus_eeprom.h @@ -31,6 +31,6 @@ void smbus_eeprom_init(I2CBus *bus, int nb_eeprom, const uint8_t *eeprom_spd, int size); =20 enum sdram_type { SDR =3D 0x4, DDR =3D 0x7, DDR2 =3D 0x8 }; -uint8_t *spd_data_generate(enum sdram_type type, ram_addr_t size, Error **= errp); +uint8_t *spd_data_generate(enum sdram_type type, ram_addr_t size); =20 #endif diff --git a/hw/i2c/smbus_eeprom.c b/hw/i2c/smbus_eeprom.c index 5adf3b15b5..07fbbf87f1 100644 --- a/hw/i2c/smbus_eeprom.c +++ b/hw/i2c/smbus_eeprom.c @@ -195,8 +195,7 @@ void smbus_eeprom_init(I2CBus *smbus, int nb_eeprom, } =20 /* Generate SDRAM SPD EEPROM data describing a module of type and size */ -uint8_t *spd_data_generate(enum sdram_type type, ram_addr_t ram_size, - Error **errp) +uint8_t *spd_data_generate(enum sdram_type type, ram_addr_t ram_size) { uint8_t *spd; uint8_t nbanks; @@ -222,29 +221,10 @@ uint8_t *spd_data_generate(enum sdram_type type, ram_= addr_t ram_size, g_assert_not_reached(); } size =3D ram_size >> 20; /* work in terms of megabytes */ - if (size < 4) { - error_setg(errp, "SDRAM size is too small"); - return NULL; - } sz_log2 =3D 31 - clz32(size); size =3D 1U << sz_log2; - if (ram_size > size * MiB) { - error_setg(errp, "SDRAM size 0x"RAM_ADDR_FMT" is not a power of 2,= " - "truncating to %u MB", ram_size, size); - } - if (sz_log2 < min_log2) { - error_setg(errp, - "Memory size is too small for SDRAM type, adjusting typ= e"); - if (size >=3D 32) { - type =3D DDR; - min_log2 =3D 5; - max_log2 =3D 12; - } else { - type =3D SDR; - min_log2 =3D 2; - max_log2 =3D 9; - } - } + assert(ram_size =3D=3D size * MiB); + assert(sz_log2 >=3D min_log2); =20 nbanks =3D 1; while (sz_log2 > max_log2 && nbanks < 8) { @@ -252,9 +232,7 @@ uint8_t *spd_data_generate(enum sdram_type type, ram_ad= dr_t ram_size, nbanks++; } =20 - if (size > (1ULL << sz_log2) * nbanks) { - error_setg(errp, "Memory size is too big for SDRAM, truncating"); - } + assert(size =3D=3D (1ULL << sz_log2) * nbanks); =20 /* split to 2 banks if possible to avoid a bug in MIPS Malta firmware = */ if (nbanks =3D=3D 1 && sz_log2 > min_log2) { diff --git a/hw/mips/mips_fulong2e.c b/hw/mips/mips_fulong2e.c index 5040afd581..ef02d54b33 100644 --- a/hw/mips/mips_fulong2e.c +++ b/hw/mips/mips_fulong2e.c @@ -297,7 +297,6 @@ static void mips_fulong2e_init(MachineState *machine) MemoryRegion *bios =3D g_new(MemoryRegion, 1); long bios_size; uint8_t *spd_data; - Error *err =3D NULL; int64_t kernel_entry; PCIBus *pci_bus; ISABus *isa_bus; @@ -377,13 +376,8 @@ static void mips_fulong2e_init(MachineState *machine) } =20 /* Populate SPD eeprom data */ - spd_data =3D spd_data_generate(DDR, machine->ram_size, &err); - if (err) { - warn_report_err(err); - } - if (spd_data) { - smbus_eeprom_init_one(smbus, 0x50, spd_data); - } + spd_data =3D spd_data_generate(DDR, machine->ram_size); + smbus_eeprom_init_one(smbus, 0x50, spd_data); =20 mc146818_rtc_init(isa_bus, 2000, NULL); =20 diff --git a/hw/ppc/sam460ex.c b/hw/ppc/sam460ex.c index 856bc0b5a3..029fb6191a 100644 --- a/hw/ppc/sam460ex.c +++ b/hw/ppc/sam460ex.c @@ -292,7 +292,6 @@ static void sam460ex_init(MachineState *machine) SysBusDevice *sbdev; struct boot_info *boot_info; uint8_t *spd_data; - Error *err =3D NULL; int success; =20 cpu =3D POWERPC_CPU(cpu_create(machine->cpu_type)); @@ -336,14 +335,9 @@ static void sam460ex_init(MachineState *machine) i2c =3D PPC4xx_I2C(dev)->bus; /* SPD EEPROM on RAM module */ spd_data =3D spd_data_generate(ram_sizes[0] < 256 * MiB ? SDR : DDR2, - ram_sizes[0], &err); - if (err) { - warn_report_err(err); - } - if (spd_data) { - spd_data[20] =3D 4; /* SO-DIMM module */ - smbus_eeprom_init_one(i2c, 0x50, spd_data); - } + ram_sizes[0]); + spd_data[20] =3D 4; /* SO-DIMM module */ + smbus_eeprom_init_one(i2c, 0x50, spd_data); /* RTC */ i2c_create_slave(i2c, "m41t80", 0x68); =20 --=20 2.21.1 From nobody Fri May 17 11:28:48 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1587389465; cv=none; d=zohomail.com; s=zohoarc; b=KGbLuAQxPtMMiaN4fWuvAVBPArtjSzMfJBexmW28l1I7AHVH/hurplWHPrFfpYyEUOCETPgJvE9L517kS/SrAX2PUFwuIV22WehGL6hy/zJAIPHn0BPB0j4mpns6lmiHkLXeUn1LEBwogpUAUBHwjcuBF+TricKN/xrf7+6WHsI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1587389465; h=Content-Type: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; bh=FBvMs/dXtPNm3i2AJLw+p31L6gqvU7ODiUZUb2RuKsg=; b=hoUA2cWcBPqaeA80IpwiGUrKzN7KVbLM6mu8p3e3PS6ERdtImu/+Bl0Hwl08XLkFjfJLQr9diG69/nQUHYHBKxZjr5V8e00aehFkG54HE6/YAtmTba9zCllUz/29ze6PykFJbDRSo4q2M/z1GrGRacouFmKv75tt1Yy7O5DeN6I= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1587389465683279.05974151197665; Mon, 20 Apr 2020 06:31:05 -0700 (PDT) Received: from localhost ([::1]:35562 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jQWVp-0001oV-Mi for importer@patchew.org; Mon, 20 Apr 2020 09:31:01 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:59622 helo=eggs1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jQWTV-0007Sv-Hj for qemu-devel@nongnu.org; Mon, 20 Apr 2020 09:28:37 -0400 Received: from Debian-exim by eggs1p.gnu.org with spam-scanned (Exim 4.90_1) (envelope-from ) id 1jQWTT-0002uS-Dk for qemu-devel@nongnu.org; Mon, 20 Apr 2020 09:28:37 -0400 Received: from us-smtp-1.mimecast.com ([205.139.110.61]:43393 helo=us-smtp-delivery-1.mimecast.com) by eggs1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1jQWTT-0002s6-14 for qemu-devel@nongnu.org; Mon, 20 Apr 2020 09:28:35 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-214-y_aUdheiPiOYg5H9NK48Aw-1; Mon, 20 Apr 2020 09:28:30 -0400 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 89BE318B9FD8; Mon, 20 Apr 2020 13:28:29 +0000 (UTC) Received: from blackfin.pond.sub.org (ovpn-113-6.ams2.redhat.com [10.36.113.6]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 48E723A0; Mon, 20 Apr 2020 13:28:27 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 232B911358BF; Mon, 20 Apr 2020 15:28:26 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1587389314; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=FBvMs/dXtPNm3i2AJLw+p31L6gqvU7ODiUZUb2RuKsg=; b=iWuWbLdhf4uLHs+gDy/PxZTEdEFypsGPKTDilVx1pimQQRr3smUXPBuokxRl4zk/GGfIUm jSmUJo6NsFuxMdZSyx0wY5JkOUV14mSqUaVYCg9yp183kaKcnazKlEKaYw1bDtKhB07Ma8 +dBovXMsmOCIqr1a5WjxgEHKbyxl+R8= X-MC-Unique: y_aUdheiPiOYg5H9NK48Aw-1 From: Markus Armbruster To: qemu-devel@nongnu.org Subject: [PATCH 3/4] bamboo, sam460ex: Tidy up error message for unsupported RAM size Date: Mon, 20 Apr 2020 15:28:25 +0200 Message-Id: <20200420132826.8879-4-armbru@redhat.com> In-Reply-To: <20200420132826.8879-1-armbru@redhat.com> References: <20200420132826.8879-1-armbru@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.139.110.61; envelope-from=armbru@redhat.com; helo=us-smtp-delivery-1.mimecast.com X-detected-operating-system: by eggs1p.gnu.org: First seen = 2020/04/20 09:01:45 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] X-Received-From: 205.139.110.61 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: David Gibson , qemu-ppc@nongnu.org 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" Improve $ ppc-softmmu/qemu-system-ppc -M sam460ex -m 4096 qemu-system-ppc: Max 1 banks of 2048 ,1024 ,512 ,256 ,128 ,64 ,32 MB DI= MM/bank supported qemu-system-ppc: Possible valid RAM size: 2048 to qemu-system-ppc: Max 1 banks of 2048, 1024, 512, 256, 128, 64, 32 MB DI= MM/bank supported Possible valid RAM size: 2048 Signed-off-by: Markus Armbruster Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- hw/ppc/ppc4xx_devs.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hw/ppc/ppc4xx_devs.c b/hw/ppc/ppc4xx_devs.c index 3376c43ff5..dea39546ad 100644 --- a/hw/ppc/ppc4xx_devs.c +++ b/hw/ppc/ppc4xx_devs.c @@ -716,11 +716,11 @@ void ppc4xx_sdram_banks(MemoryRegion *ram, int nr_ban= ks, for (i =3D 0; sdram_bank_sizes[i]; i++) { g_string_append_printf(s, "%" PRIi64 "%s", sdram_bank_sizes[i] / MiB, - sdram_bank_sizes[i + 1] ? " ," : ""); + sdram_bank_sizes[i + 1] ? ", " : ""); } error_report("Max %d banks of %s MB DIMM/bank supported", nr_banks, s->str); - error_report("Possible valid RAM size: %" PRIi64, + error_printf("Possible valid RAM size: %" PRIi64 "\n", used_size ? used_size / MiB : sdram_bank_sizes[i - 1] / MiB); =20 g_string_free(s, true); --=20 2.21.1 From nobody Fri May 17 11:28:48 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1587389431; cv=none; d=zohomail.com; s=zohoarc; b=aAWMApIf7VrxfdVwHbPym+m3qaXAZQUOzWyGclUFshXzythmYPdD0BSfoRZBV2PCBaKGAJ7qHWlnNv4+LV1c4G3JXI1mZYf/cTS90jNHgbdvCYYw1Mqibl/ny3F2t96Q0L1L1MOtmhoApa7iZOR+8AYYuki+U5nyy7ZMxr6YD+c= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1587389431; h=Content-Type: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; bh=ZMenhwkXU3W7qk+WShZLNVc7ADewiurDzFW6wwCy6vU=; b=ERxv9Y87u1HmH1kGAujHmly6t6tGY59jKv1WYzzuMswhqAuOPfNjKStod9fKJGQN4I0C04q8QkcjuI5BXMaeKnd6WFfaCWObap0Uz+IyqSlCaEb4mE7z66fSYBPQejGc7r6Ulg9CvIEodG7g2MoVEKPre/zNb96gB1eBwuvQqLs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1587389431208828.3277485660568; Mon, 20 Apr 2020 06:30:31 -0700 (PDT) Received: from localhost ([::1]:35546 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jQWVH-0000yp-8V for importer@patchew.org; Mon, 20 Apr 2020 09:30:27 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:59626 helo=eggs1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jQWTV-0007Sw-J0 for qemu-devel@nongnu.org; Mon, 20 Apr 2020 09:28:38 -0400 Received: from Debian-exim by eggs1p.gnu.org with spam-scanned (Exim 4.90_1) (envelope-from ) id 1jQWTT-0002uw-I4 for qemu-devel@nongnu.org; Mon, 20 Apr 2020 09:28:37 -0400 Received: from us-smtp-delivery-1.mimecast.com ([205.139.110.120]:48424 helo=us-smtp-1.mimecast.com) by eggs1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1jQWTT-0002sA-5U for qemu-devel@nongnu.org; Mon, 20 Apr 2020 09:28:35 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-476-hYc81HP3MCugVcw2KD_F5w-1; Mon, 20 Apr 2020 09:28:30 -0400 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 893CF802569; Mon, 20 Apr 2020 13:28:29 +0000 (UTC) Received: from blackfin.pond.sub.org (ovpn-113-6.ams2.redhat.com [10.36.113.6]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 48DE360C99; Mon, 20 Apr 2020 13:28:27 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 266EC11358C0; Mon, 20 Apr 2020 15:28:26 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1587389314; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=ZMenhwkXU3W7qk+WShZLNVc7ADewiurDzFW6wwCy6vU=; b=VtD3I0zb6pdfVj6Cp5io0ejJvZ4zZSXX/usj7QBISWS+LscYA0eZPeuCyZpA6mJu6a12tJ XheCWtgeySCx/3ddFqy3AcOEQkUVAn0sIVyaphD2vHYvQWk0W2YH6AxScdw7rAm7DlwEby XsVQeu3wspa0u5210RyBcMb4WieWPZQ= X-MC-Unique: hYc81HP3MCugVcw2KD_F5w-1 From: Markus Armbruster To: qemu-devel@nongnu.org Subject: [PATCH 4/4] smbus: Fix spd_data_generate() for number of banks > 2 Date: Mon, 20 Apr 2020 15:28:26 +0200 Message-Id: <20200420132826.8879-5-armbru@redhat.com> In-Reply-To: <20200420132826.8879-1-armbru@redhat.com> References: <20200420132826.8879-1-armbru@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.139.110.120; envelope-from=armbru@redhat.com; helo=us-smtp-1.mimecast.com X-detected-operating-system: by eggs1p.gnu.org: First seen = 2020/04/20 04:32:42 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] X-Received-From: 205.139.110.120 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: David Gibson , qemu-ppc@nongnu.org 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" spd_data_generate() splits @ram_size bytes into @nbanks RAM banks of 1 << sz_log2 MiB each, like this: size =3D ram_size >> 20; /* work in terms of megabytes */ [...] nbanks =3D 1; while (sz_log2 > max_log2 && nbanks < 8) { sz_log2--; nbanks++; } Each iteration halves the size of a bank, and increments the number of banks. Wrong: it should double the number of banks. The bug goes back all the way to commit b296b664ab "smbus: Add a helper to generate SPD EEPROM data". It can't bite because spd_data_generate()'s current users pass only @ram_size that result in *zero* iterations: machine RAM size #banks type bank size fulong2e 256 MiB 1 DDR 256 MiB sam460ex 2048 MiB 1 DDR2 2048 MiB 1024 MiB 1 DDR2 1024 MiB 512 MiB 1 DDR2 512 MiB 256 MiB 1 DDR2 256 MiB 128 MiB 1 SDR 128 MiB 64 MiB 1 SDR 64 MiB 32 MiB 1 SDR 32 MiB Apply the obvious, minimal fix. I admit I'm tempted to rip out the unused (and obviously untested) feature instead, because YAGNI. Note that this is not the final result, as spd_data_generate() next increases #banks from 1 to 2 if possible. This is done "to avoid a bug in MIPS Malta firmware". We don't even use this function with machine type malta. *Shrug* Signed-off-by: Markus Armbruster --- hw/i2c/smbus_eeprom.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/i2c/smbus_eeprom.c b/hw/i2c/smbus_eeprom.c index 07fbbf87f1..e199fc8678 100644 --- a/hw/i2c/smbus_eeprom.c +++ b/hw/i2c/smbus_eeprom.c @@ -229,7 +229,7 @@ uint8_t *spd_data_generate(enum sdram_type type, ram_ad= dr_t ram_size) nbanks =3D 1; while (sz_log2 > max_log2 && nbanks < 8) { sz_log2--; - nbanks++; + nbanks *=3D 2; } =20 assert(size =3D=3D (1ULL << sz_log2) * nbanks); --=20 2.21.1