From nobody Wed Nov 5 00:53:03 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1500840464343901.3146129388873; Sun, 23 Jul 2017 13:07:44 -0700 (PDT) Received: from localhost ([::1]:51445 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dZNAF-0007XF-1u for importer@patchew.org; Sun, 23 Jul 2017 16:07:43 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:57089) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dZN7S-00069Q-N1 for qemu-devel@nongnu.org; Sun, 23 Jul 2017 16:04:51 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dZN7R-0008Bn-U0 for qemu-devel@nongnu.org; Sun, 23 Jul 2017 16:04:50 -0400 Received: from mail-yb0-x232.google.com ([2607:f8b0:4002:c09::232]:36703) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dZN7R-00089m-P8 for qemu-devel@nongnu.org; Sun, 23 Jul 2017 16:04:49 -0400 Received: by mail-yb0-x232.google.com with SMTP id 74so19341681ybf.3 for ; Sun, 23 Jul 2017 13:04:48 -0700 (PDT) Received: by 10.13.250.66 with HTTP; Sun, 23 Jul 2017 13:04:47 -0700 (PDT) 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=RXRLdxwbLSbrj6kfP6guKckoANLciZ7q9tZkPp0/lm0=; b=XMRcooYsKorFtb/GMP0FJ1pJ9ZYZULNMJ+EPL8PAYhQKSYHyKqAPgKhzQrpHkDdkLS kknXFttwFEhSViJQ8I+rWMQnvdft9gQP39FPX/muVKFajI29/Sg7kp6zQehScw1UPl9K LXRzunryt7hU7jxgdvICfh3bqUtqaEdMHbW/k/53Z9tyPTahYqatTkEkFshiudIsX7Qu 0BKif2d4P6BjOEZWlkL0VAq237ArkESSzJNFhtgyU1LF7p776u6p+TPkdnbgI77UImft ic7tSp129wwZjRptgHBDuYzcFeGjiB4Yf+VDb00oq0H9PnrVElxZ7UYV33TgxR7BHhXp gvQQ== 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=RXRLdxwbLSbrj6kfP6guKckoANLciZ7q9tZkPp0/lm0=; b=MGbNsOPdyYJbvqsjk4uKjvzAZk/wM1vcWPVOt8SG8nJJUVpD5Amk+qL/6YHDVizrI6 ugKyCAQbuB+bN6oOprkESP3M0QQMoZF6SKqIbEPLB8pQPf98y81EwCv4fvnQyJXsJZeK xmqcmWw/K1udvASDgnDvioKQCjd9om8hnAA8t5yH1YhzEEpdWkjA5FW5Hh/2Fl1nlo5r MLSJfZLq2kJXP7QurXUtgrWUOx4xtOv8xP+nDS3jb07uibiL2OVb4kAPuscGuGJ24L5J T5VLVHkquqUzGsBFB9NA6q5wx8E+gPajAPSjqlKRBhzArBOCJUD5OAV9VwURVXnYvPIk xJXg== X-Gm-Message-State: AIVw113S4aCJH4vRAzp4s4O4lqXLJe8Dhy+j13tFAcrVbXx90vQaYrKx IyFT9xOG6v0Yc580AFXZyMIFzGaYV0YG X-Received: by 10.37.165.7 with SMTP id h7mr12032568ybi.171.1500840287497; Sun, 23 Jul 2017 13:04:47 -0700 (PDT) MIME-Version: 1.0 From: Hua Yanghao Date: Sun, 23 Jul 2017 22:04:47 +0200 Message-ID: To: qemu-devel@nongnu.org X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4002:c09::232 Subject: [Qemu-devel] [PATCH] hw/core/loader: do not check for regions overlap 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: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From 84f25a8e4269f44255a8037837fdaa6e5404b76e Mon Sep 17 00:00:00 2001 From: Hua Yanghao Date: Sun, 23 Jul 2017 21:48:21 +0200 Subject: [PATCH] hw/core/loader: do not check for regions overlap There is a use case where regions are overlapped on purpose. It should be up to the linker to check for regions overlap and qemu should better not to do so. For example: SECTIONS { ...... /* the normal text/data */ _on_chip_ram_load_start =3D .; . =3D . + SIZEOF(.on_chip_ram_section); _on_chip_ram_load_end =3D .; .bss (NOLOAD) { *(.bss*) *(COM*) } ...... /* other things */ } with current hw/core/loader implementation, .bss section consumes no LMU ad= dress space as .bss is not a loadable section, it is only useful for VMA at runti= me. Where the .on_chip_ram_section is told to be loaded (LMA) from the VMA of .= bss section. And qemu complains and exits. This patch fixes the issue and tested running fine for the above scenario. --- hw/core/loader.c | 9 --------- 1 file changed, 9 deletions(-) diff --git a/hw/core/loader.c b/hw/core/loader.c index c17ace0a2e..9542cb3555 100644 --- a/hw/core/loader.c +++ b/hw/core/loader.c @@ -1099,26 +1099,17 @@ int rom_check_and_register_reset(void) hwaddr addr =3D 0; MemoryRegionSection section; Rom *rom; - AddressSpace *as =3D NULL; QTAILQ_FOREACH(rom, &roms, next) { if (rom->fw_file) { continue; } - if ((addr > rom->addr) && (as =3D=3D rom->as)) { - fprintf(stderr, "rom: requested regions overlap " - "(rom %s. free=3D0x" TARGET_FMT_plx - ", addr=3D0x" TARGET_FMT_plx ")\n", - rom->name, addr, rom->addr); - return -1; - } addr =3D rom->addr; addr +=3D rom->romsize; section =3D memory_region_find(rom->mr ? rom->mr : get_system_memo= ry(), rom->addr, 1); rom->isrom =3D int128_nz(section.size) && memory_region_is_rom(section.mr); memory_region_unref(section.mr); - as =3D rom->as; } qemu_register_reset(rom_reset, NULL); roms_loaded =3D 1; --=20 2.11.0