From patchwork Sat Jun 13 00:54:59 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: BALATON Zoltan X-Patchwork-Id: 11602427 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 6533F60D for ; Sat, 13 Jun 2020 01:11:04 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 455CF206D7 for ; Sat, 13 Jun 2020 01:11:04 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 455CF206D7 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=eik.bme.hu Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:51476 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jjuhL-00081U-H2 for patchwork-qemu-devel@patchwork.kernel.org; Fri, 12 Jun 2020 21:11:03 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:32804) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jjugc-0006he-VT for qemu-devel@nongnu.org; Fri, 12 Jun 2020 21:10:19 -0400 Received: from zero.eik.bme.hu ([2001:738:2001:2001::2001]:45866) by eggs.gnu.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jjugb-0001cq-8V for qemu-devel@nongnu.org; Fri, 12 Jun 2020 21:10:18 -0400 Received: from zero.eik.bme.hu (blah.eik.bme.hu [152.66.115.182]) by localhost (Postfix) with SMTP id 75EDA748DDA; Sat, 13 Jun 2020 03:10:11 +0200 (CEST) Received: by zero.eik.bme.hu (Postfix, from userid 432) id 1CAA0748DD0; Sat, 13 Jun 2020 03:10:03 +0200 (CEST) Message-Id: In-Reply-To: References: From: BALATON Zoltan Subject: [PATCH 2/2] mac_oldworld: Add machine ID register Date: Sat, 13 Jun 2020 02:54:59 +0200 MIME-Version: 1.0 To: qemu-devel@nongnu.org, qemu-ppc@nongnu.org X-Spam-Probability: 8% Received-SPF: pass client-ip=2001:738:2001:2001::2001; envelope-from=balaton@eik.bme.hu; helo=zero.eik.bme.hu X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=_AUTOLEARN X-Spam_action: no action 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: Howard Spoelstra , Mark Cave-Ayland , David Gibson Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" The G3 beige machine has a machine ID register that is accessed by the firmware to deternine the board config. Add basic emulation of it. Signed-off-by: BALATON Zoltan --- hw/ppc/mac_oldworld.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/hw/ppc/mac_oldworld.c b/hw/ppc/mac_oldworld.c index 3812adc441..4dd872c1a3 100644 --- a/hw/ppc/mac_oldworld.c +++ b/hw/ppc/mac_oldworld.c @@ -80,6 +80,15 @@ static void ppc_heathrow_reset(void *opaque) cpu_reset(CPU(cpu)); } +static uint64_t machine_id_read(void *opaque, hwaddr addr, unsigned size) +{ + return (addr == 0 && size == 2 ? 0x3d8c : 0); +} + +const MemoryRegionOps machine_id_reg_ops = { + .read = machine_id_read, +}; + static void ppc_heathrow_init(MachineState *machine) { ram_addr_t ram_size = machine->ram_size; @@ -93,6 +102,7 @@ static void ppc_heathrow_init(MachineState *machine) char *filename; int linux_boot, i; MemoryRegion *bios = g_new(MemoryRegion, 1); + MemoryRegion *machine_id = g_new(MemoryRegion, 1); uint32_t kernel_base, initrd_base, cmdline_base = 0; int32_t kernel_size, initrd_size; PCIBus *pci_bus; @@ -227,6 +237,10 @@ static void ppc_heathrow_init(MachineState *machine) } } + memory_region_init_io(machine_id, OBJECT(machine), &machine_id_reg_ops, + NULL, "machine_id", 2); + memory_region_add_subregion(get_system_memory(), 0xff000004, machine_id); + /* XXX: we register only 1 output pin for heathrow PIC */ pic_dev = qdev_create(NULL, TYPE_HEATHROW); qdev_init_nofail(pic_dev);