All of lore.kernel.org
 help / color / mirror / Atom feed
From: Peter Maydell <peter.maydell@linaro.org>
To: qemu-devel@nongnu.org
Subject: [PULL 43/45] hw/misc/bcm2835_property: Add missed BCM2835 properties
Date: Tue, 27 Feb 2024 13:33:12 +0000	[thread overview]
Message-ID: <20240227133314.1721857-44-peter.maydell@linaro.org> (raw)
In-Reply-To: <20240227133314.1721857-1-peter.maydell@linaro.org>

From: Sergey Kambalin <serg.oker@gmail.com>

Our model of the bcm2835 mailbox is missing a few properties
that we need for the raspi4 kernel:
 * RPI_FWREQ_GET_CLOCKS
 * RPI_FWREQ_GET_THROTTLED
 * RPI_FWREQ_VCHIQ_INIT

Add minimal implementations of them.

Signed-off-by: Sergey Kambalin <sergey.kambalin@auriga.com>
Message-id: 20240226000259.2752893-40-sergey.kambalin@auriga.com
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
[PMM: improved commit message]
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
---
 include/hw/arm/raspberrypi-fw-defs.h | 11 +++++++++++
 hw/misc/bcm2835_property.c           | 21 +++++++++++++++++++++
 2 files changed, 32 insertions(+)

diff --git a/include/hw/arm/raspberrypi-fw-defs.h b/include/hw/arm/raspberrypi-fw-defs.h
index 579cf0d5546..8b404e05336 100644
--- a/include/hw/arm/raspberrypi-fw-defs.h
+++ b/include/hw/arm/raspberrypi-fw-defs.h
@@ -159,4 +159,15 @@ enum rpi_firmware_clk_id {
     RPI_FIRMWARE_NUM_CLK_ID,
 };
 
+struct rpi_firmware_property_tag_header {
+    uint32_t tag;
+    uint32_t buf_size;
+    uint32_t req_resp_size;
+};
+
+typedef struct rpi_firmware_prop_request {
+    struct rpi_firmware_property_tag_header hdr;
+    uint8_t payload[0];
+} rpi_firmware_prop_request_t;
+
 #endif /* INCLUDE_HW_MISC_RASPBERRYPI_FW_DEFS_H_ */
diff --git a/hw/misc/bcm2835_property.c b/hw/misc/bcm2835_property.c
index 5c48f8d7438..bdd9a6bbcec 100644
--- a/hw/misc/bcm2835_property.c
+++ b/hw/misc/bcm2835_property.c
@@ -19,6 +19,8 @@
 #include "trace.h"
 #include "hw/arm/raspi_platform.h"
 
+#define VCHI_BUSADDR_SIZE       sizeof(uint32_t)
+
 /* https://github.com/raspberrypi/firmware/wiki/Mailbox-property-interface */
 
 static void bcm2835_property_mbox_push(BCM2835PropertyState *s, uint32_t value)
@@ -138,6 +140,13 @@ static void bcm2835_property_mbox_push(BCM2835PropertyState *s, uint32_t value)
             resplen = 8;
             break;
 
+        case RPI_FWREQ_GET_CLOCKS:
+            /* TODO: add more clock IDs if needed */
+            stl_le_phys(&s->dma_as, value + 12, 0);
+            stl_le_phys(&s->dma_as, value + 16, RPI_FIRMWARE_ARM_CLK_ID);
+            resplen = 8;
+            break;
+
         case RPI_FWREQ_SET_CLOCK_RATE:
         case RPI_FWREQ_SET_MAX_CLOCK_RATE:
         case RPI_FWREQ_SET_MIN_CLOCK_RATE:
@@ -276,6 +285,7 @@ static void bcm2835_property_mbox_push(BCM2835PropertyState *s, uint32_t value)
             stl_le_phys(&s->dma_as, value + 12, 0);
             resplen = 4;
             break;
+
         case RPI_FWREQ_FRAMEBUFFER_GET_NUM_DISPLAYS:
             stl_le_phys(&s->dma_as, value + 12, 1);
             resplen = 4;
@@ -301,6 +311,17 @@ static void bcm2835_property_mbox_push(BCM2835PropertyState *s, uint32_t value)
                                     resplen);
             break;
 
+        case RPI_FWREQ_GET_THROTTLED:
+            stl_le_phys(&s->dma_as, value + 12, 0);
+            resplen = 4;
+            break;
+
+        case RPI_FWREQ_VCHIQ_INIT:
+            stl_le_phys(&s->dma_as,
+                        value + offsetof(rpi_firmware_prop_request_t, payload),
+                        0);
+            resplen = VCHI_BUSADDR_SIZE;
+            break;
         default:
             qemu_log_mask(LOG_UNIMP,
                           "bcm2835_property: unhandled tag 0x%08x\n", tag);
-- 
2.34.1



  parent reply	other threads:[~2024-02-27 13:34 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-02-27 13:32 [PULL 00/45] target-arm queue Peter Maydell
2024-02-27 13:32 ` [PULL 01/45] hw/arm/sbsa-ref: Simplify init since PCIe is always enabled Peter Maydell
2024-02-27 13:32 ` [PULL 02/45] target/arm: Advertise Cortex-A53 erratum #843419 fix via REVIDR Peter Maydell
2024-02-27 13:32 ` [PULL 03/45] MAINTAINERS: Cover hw/ide/ahci-allwinner.c with AllWinner A10 machine Peter Maydell
2024-02-27 13:32 ` [PULL 04/45] misc: m48t59: replace qemu_system_reset_request() call with watchdog_perform_action() Peter Maydell
2024-02-27 13:32 ` [PULL 05/45] misc: pxa2xx_timer: " Peter Maydell
2024-02-27 13:32 ` [PULL 06/45] xlnx-versal-ospi: disable reentrancy detection for iomem_dac Peter Maydell
2024-02-27 13:32 ` [PULL 07/45] hw/arm: Use TYPE_OR_IRQ when connecting STM32L4x5 EXTI fan-in IRQs Peter Maydell
2024-02-27 13:32 ` [PULL 08/45] tests/qtest: Check that EXTI fan-in irqs are correctly connected Peter Maydell
2024-02-27 13:32 ` [PULL 09/45] pl031: Update last RTCLR value on write in case it's read back Peter Maydell
2024-02-27 13:32 ` [PULL 10/45] block: m25p80: Add support of mt35xu02gbba Peter Maydell
2024-02-27 13:32 ` [PULL 11/45] arm: xlnx-versal-virt: Add machine property ospi-flash Peter Maydell
2024-02-27 13:32 ` [PULL 12/45] arm/ptw: Handle atomic updates of page tables entries in MMIO during PTW Peter Maydell
2024-02-27 13:32 ` [PULL 13/45] system/bootdevice: Don't unregister reset handler in restore_boot_order() Peter Maydell
2024-02-27 13:32 ` [PULL 14/45] include/qom/object.h: New OBJECT_DEFINE_SIMPLE_TYPE{, _WITH_INTERFACES} macros Peter Maydell
2024-02-27 13:32 ` [PULL 15/45] hw/core: Add documentation and license comments to reset.h Peter Maydell
2024-02-27 13:32 ` [PULL 16/45] hw/core: Add ResetContainer which holds objects implementing Resettable Peter Maydell
2024-02-27 13:32 ` [PULL 17/45] hw/core/reset: Add qemu_{register, unregister}_resettable() Peter Maydell
2024-02-27 13:32 ` [PULL 18/45] hw/core/reset: Implement qemu_register_reset via qemu_register_resettable Peter Maydell
2024-02-27 13:32 ` [PULL 19/45] hw/core/machine: Use qemu_register_resettable for sysbus reset Peter Maydell
2024-02-27 13:32 ` [PULL 20/45] docs/devel/reset: Update to discuss system reset Peter Maydell
2024-02-27 13:32 ` [PULL 21/45] hw/arm/bcm2836: Split out common part of BCM283X classes Peter Maydell
2024-02-27 13:32 ` [PULL 22/45] hw/arm/bcm2853_peripherals: Split out common part of peripherals Peter Maydell
2024-02-27 13:32 ` [PULL 23/45] hw/arm/raspi: Split out raspi machine common part Peter Maydell
2024-02-27 13:32 ` [PULL 24/45] hw/arm: Introduce BCM2838 SoC Peter Maydell
2024-02-27 13:32 ` [PULL 25/45] hw/arm/bcm2838: Add GIC-400 to " Peter Maydell
2024-02-27 13:32 ` [PULL 26/45] hw/gpio: Add BCM2838 GPIO stub Peter Maydell
2024-02-27 13:32 ` [PULL 27/45] hw/gpio: Implement BCM2838 GPIO functionality Peter Maydell
2024-02-27 13:32 ` [PULL 28/45] hw/gpio: Connect SD controller to BCM2838 GPIO Peter Maydell
2024-02-27 13:32 ` [PULL 29/45] hw/arm: Add GPIO and SD to BCM2838 periph Peter Maydell
2024-02-27 13:32 ` [PULL 30/45] hw/arm: Introduce Raspberry PI 4 machine Peter Maydell
2024-02-27 13:33 ` [PULL 31/45] hw/arm/raspi4b: Temporarily disable unimplemented rpi4b devices Peter Maydell
2024-02-27 13:33 ` [PULL 32/45] hw/arm: Add memory region for BCM2837 RPiVid ASB Peter Maydell
2024-02-27 13:33 ` [PULL 33/45] hw/arm/bcm2838_peripherals: Add clock_isp stub Peter Maydell
2024-02-27 13:33 ` [PULL 34/45] tests/avocado/boot_linux_console.py: Add Rpi4b boot tests Peter Maydell
2024-02-27 13:33 ` [PULL 35/45] tests/qtest: Add bcm2838 mailbox test stub Peter Maydell
2024-02-27 13:33 ` [PULL 36/45] tests/qtest/bcm2828-mailbox: Add mailbox test constants Peter Maydell
2024-02-27 13:33 ` [PULL 37/45] tests/qtest/bcm2828-mailbox: Add mailbox tests tags. Part 1 Peter Maydell
2024-02-27 13:33 ` [PULL 38/45] tests/qtest/bcm2828-mailbox: Add mailbox tests tags. Part 2 Peter Maydell
2024-02-27 13:33 ` [PULL 39/45] tests/qtest/bcm2828-mailbox: Add mailbox tests tags. Part 3 Peter Maydell
2024-02-27 13:33 ` [PULL 40/45] tests/qtest/bcm2828-mailbox: Add mailbox property tests. Part 1 Peter Maydell
2024-02-27 13:33 ` [PULL 41/45] tests/qtest/bcm2828-mailbox: Add mailbox property tests. Part 2 Peter Maydell
2024-02-27 13:33 ` [PULL 42/45] tests/qtest/bcm2828-mailbox: Add mailbox property tests. Part 3 Peter Maydell
2024-02-27 13:33 ` Peter Maydell [this message]
2024-02-27 13:33 ` [PULL 44/45] tests/qtest/bcm2828-mailbox: Append added properties to mailbox test Peter Maydell
2024-02-27 13:33 ` [PULL 45/45] docs/system/arm: Add RPi4B to raspi.rst Peter Maydell

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20240227133314.1721857-44-peter.maydell@linaro.org \
    --to=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.