From nobody Tue Feb 10 11:16:11 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.221.68 as permitted sender) client-ip=209.85.221.68; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wr1-f68.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.221.68 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1603054564; cv=none; d=zohomail.com; s=zohoarc; b=iteNk/LY2DmMBczU2MpwgSiHBERoK86p+XDVzb0Q8q2EFhRlIZbJugD4OtCe6Q4eGoX6QjbgcpjkRhNA8zzDtJ9naNAUPQNy2B+x9qie4YfHlgf80BnyandAbBoT2qKqiIbJve2hNg+o0uECQPcSmMKD6Jc187GTTV9+DShNf6M= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1603054564; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=VqdKnd4Twgx8yICk/fUvLd4Y9zGgGTiuVIGMLYhnK2s=; b=hehsyCQXm3A7XFCjip/ooLzLk2Zy6ykpNkI/z2pPL7Prn1LC/q9UZIdnrrEFWIgqViqQqj4V8UXjSkqnsoJgs8Co173aLwjI3G14JsJuIFuCExPjqanzhqDmTdgfN1l06W3Ru9fsmEIA+XJd4oqqRUDfQF4ADqCpIU0lVH5JeKQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.221.68 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-wr1-f68.google.com (mail-wr1-f68.google.com [209.85.221.68]) by mx.zohomail.com with SMTPS id 1603054564453961.9513838105387; Sun, 18 Oct 2020 13:56:04 -0700 (PDT) Received: by mail-wr1-f68.google.com with SMTP id h7so9187119wre.4 for ; Sun, 18 Oct 2020 13:56:03 -0700 (PDT) Return-Path: Return-Path: Received: from localhost.localdomain (117.red-83-52-172.dynamicip.rima-tde.net. [83.52.172.117]) by smtp.gmail.com with ESMTPSA id o194sm13453555wme.24.2020.10.18.13.56.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 18 Oct 2020 13:56:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=VqdKnd4Twgx8yICk/fUvLd4Y9zGgGTiuVIGMLYhnK2s=; b=h46BvoPMlVaL7Ekb8SrICZhfn7Z0J4A4005iNJgFfapG++dos2wR681FZOhgvEXZVH QDchDGE22IZMvpCjlpK3hNDTn5ybXd4llTJmFn7ojHneaAzk4HBw2iodXOreoGvky803 kh4jJQROMomHf5triZkfh9MRBgQlTu3zzyTw7tnoZJHYIbWm2obehVngX9aL3vgq2JPO NUeuU9D/v29iH8srgSvVa8S4eB+f5btOS6hOFWi48RhwEEwH8xegHV1f07xWmZ9HKzkw vJqH34IqI5AXYbZW/BVF+u8jQWerkhW5LrjrELbEHeSUw5BPNxGHJophGAzbSv80iZpT hHuw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=VqdKnd4Twgx8yICk/fUvLd4Y9zGgGTiuVIGMLYhnK2s=; b=RtBBcFpxWh6LVp76W+MhvIyVjbIffmN+4eSpIp5WCcRRAKAEczxks2my9zzIWgxfq5 E5M9xA+lAUhwYQNmeFaJ8kEZ+xqsJnR9AxQid9kH72at3igwRbEQN8ACJ1E6MIEZkPYi 0XQj8ZMRQj+UmDABG2c8GVLxeXUiuw5F4txHJUHhSdWAzaJiooJQS4TexkWN2KDHgAzg wt1ZFunGrnS0XH3HLsftHdrw/FXB2A5vZ/hw1JWDASmvrsk9hUZhooHt2D82O8L1j/Eg 2SSOyoO8jLeEprEev0nEfg23FhrXlptdQF9XnAxUPaKvnbu338B2tHfszgcaXG9ZzHLc n9FQ== X-Gm-Message-State: AOAM533UCGG4Q7tFwn8JJuZG10cLII5uY7Fu5YwmlnMzOeDy9kyV9oO3 i+QZP0OpoTbH1N2F+y3gEIU= X-Google-Smtp-Source: ABdhPJywO7sQ100/xbHnc+jGftLDSQUSlT/NI6jUs2/qYJ2jjAif4gI9cjvGJ/m3TzcrEJ/otUxtsA== X-Received: by 2002:adf:9dd1:: with SMTP id q17mr16392270wre.317.1603054562540; Sun, 18 Oct 2020 13:56:02 -0700 (PDT) Sender: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Johnny Sun , Peter Maydell , qemu-arm@nongnu.org, Stewart Hildebrand , Andrew Baumann , Esteban Bosse , Luc Michel , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [RFC PATCH v2 2/3] hw/arm/raspi: Add the Raspberry Pi 4 model B Date: Sun, 18 Oct 2020 22:55:50 +0200 Message-Id: <20201018205551.1537927-3-f4bug@amsat.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20201018205551.1537927-1-f4bug@amsat.org> References: <20201018205551.1537927-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @gmail.com) Add 2 variants of the raspi4: - raspi4b1g: Raspberry Pi 4B (revision 1.1, with 1 GiB of RAM) - raspi4b2g Raspberry Pi 4B (revision 1.2, with 2 GiB) Example booting the 2GiB machine using content from [*]: $ qemu-system-aarch64 -M raspi4b2g -serial stdio \ -kernel raspberrypi/firmware/boot/kernel8.img \ -dtb raspberrypi/firmware/boot/bcm2711-rpi-4-b.dtb \ -append 'printk.time=3D0 earlycon=3Dpl011,0xfe201000 console=3DttyAMA= 0' [ 0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd083] [ 0.000000] Linux version 5.4.51-v8+ (dom@buildbot) (gcc version 5.4.0= 20160609 (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.9)) #1333 SMP PREEMPT Mon Aug= 10 16:58:35 BST 2020 [ 0.000000] Machine model: Raspberry Pi 4 Model B [ 0.000000] earlycon: pl11 at MMIO 0x00000000fe201000 (options '') [ 0.000000] printk: bootconsole [pl11] enabled [ 0.000000] efi: Getting EFI parameters from FDT: [ 0.000000] efi: UEFI not found. [ 0.000000] Reserved memory: created CMA memory pool at 0x000000002c00= 0000, size 64 MiB [ 0.000000] OF: reserved mem: initialized node linux,cma, compatible i= d shared-dma-pool [ 0.000000] Detected PIPT I-cache on CPU0 [ 0.000000] CPU features: detected: EL2 vector hardening [ 0.000000] ARM_SMCCC_ARCH_WORKAROUND_1 missing from firmware [ 0.000000] software IO TLB: mapped [mem 0x3bfff000-0x3ffff000] (64MB) [ 0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0 [ 0.000000] GIC: Using split EOI/Deactivate mode [ 0.633289] smp: Bringing up secondary CPUs ... [ 0.694226] Detected PIPT I-cache on CPU1 [ 0.699002] CPU1: Booted secondary processor 0x0000000001 [0x410fd083] [ 0.782443] Detected PIPT I-cache on CPU2 [ 0.783511] CPU2: Booted secondary processor 0x0000000002 [0x410fd083] [ 0.848854] Detected PIPT I-cache on CPU3 [ 0.850003] CPU3: Booted secondary processor 0x0000000003 [0x410fd083] [ 0.857099] smp: Brought up 1 node, 4 CPUs [ 0.863500] SMP: Total of 4 processors activated. [ 0.865446] CPU features: detected: 32-bit EL0 Support [ 0.866667] CPU features: detected: CRC32 instructions [ 2.235648] CPU: All CPU(s) started at EL2 ... [*] http://archive.raspberrypi.org/debian/pool/main/r/raspberrypi-firmware/= raspberrypi-kernel_1.20200512-2_armhf.deb Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- hw/arm/raspi.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/hw/arm/raspi.c b/hw/arm/raspi.c index 4ea200572ea..6a793766840 100644 --- a/hw/arm/raspi.c +++ b/hw/arm/raspi.c @@ -73,6 +73,7 @@ typedef enum RaspiProcessorId { PROCESSOR_ID_BCM2835 =3D 0, PROCESSOR_ID_BCM2836 =3D 1, PROCESSOR_ID_BCM2837 =3D 2, + PROCESSOR_ID_BCM2838 =3D 3, } RaspiProcessorId; =20 static const struct { @@ -82,6 +83,7 @@ static const struct { [PROCESSOR_ID_BCM2835] =3D {TYPE_BCM2835, 1}, [PROCESSOR_ID_BCM2836] =3D {TYPE_BCM2836, BCM283X_NCPUS}, [PROCESSOR_ID_BCM2837] =3D {TYPE_BCM2837, BCM283X_NCPUS}, + [PROCESSOR_ID_BCM2838] =3D {TYPE_BCM2838, BCM283X_NCPUS}, }; =20 static uint64_t board_ram_size(uint32_t board_rev) @@ -366,6 +368,24 @@ static void raspi3b_machine_class_init(ObjectClass *oc= , void *data) rmc->board_rev =3D 0xa02082; raspi_machine_class_common_init(mc, rmc->board_rev); }; + +static void raspi4b1g_machine_class_init(ObjectClass *oc, void *data) +{ + MachineClass *mc =3D MACHINE_CLASS(oc); + RaspiMachineClass *rmc =3D RASPI_MACHINE_CLASS(oc); + + rmc->board_rev =3D 0xa03111; + raspi_machine_class_common_init(mc, rmc->board_rev); +}; + +static void raspi4b2g_machine_class_init(ObjectClass *oc, void *data) +{ + MachineClass *mc =3D MACHINE_CLASS(oc); + RaspiMachineClass *rmc =3D RASPI_MACHINE_CLASS(oc); + + rmc->board_rev =3D 0xb03112; + raspi_machine_class_common_init(mc, rmc->board_rev); +}; #endif /* TARGET_AARCH64 */ =20 static const TypeInfo raspi_machine_types[] =3D { @@ -390,6 +410,14 @@ static const TypeInfo raspi_machine_types[] =3D { .name =3D MACHINE_TYPE_NAME("raspi3b"), .parent =3D TYPE_RASPI_MACHINE, .class_init =3D raspi3b_machine_class_init, + }, { + .name =3D MACHINE_TYPE_NAME("raspi4b1g"), + .parent =3D TYPE_RASPI_MACHINE, + .class_init =3D raspi4b1g_machine_class_init, + }, { + .name =3D MACHINE_TYPE_NAME("raspi4b2g"), + .parent =3D TYPE_RASPI_MACHINE, + .class_init =3D raspi4b2g_machine_class_init, #endif }, { .name =3D TYPE_RASPI_MACHINE, --=20 2.26.2