From: Esteban Bosse <estebanbosse@gmail.com>
To: "Philippe Mathieu-Daudé" <f4bug@amsat.org>,
"Peter Maydell" <peter.maydell@linaro.org>,
"Andrew Baumann" <Andrew.Baumann@microsoft.com>,
qemu-devel@nongnu.org, "Pekka Enberg" <penberg@iki.fi>,
"Zoltán Baldaszti" <bztemail@gmail.com>
Cc: qemu-arm@nongnu.org,
"Clement Deschamps" <clement.deschamps@antfield.fr>,
"Marc-André Lureau" <marcandre.lureau@redhat.com>,
"Paolo Bonzini" <pbonzini@redhat.com>,
"Philippe Mathieu-Daudé" <philmd@redhat.com>,
"Luc Michel" <luc.michel@greensocs.com>
Subject: Re: [PATCH 10/14] hw/arm/raspi: Define various blocks base addresses
Date: Sun, 29 Sep 2019 17:27:13 +0200 [thread overview]
Message-ID: <40ddb83824dc19adea584fa8597884e5bdec0d11.camel@gmail.com> (raw)
In-Reply-To: <ba3fb4d4-0726-28ae-608b-95354107c2e6@amsat.org>
El vie, 06-09-2019 a las 12:07 +0200, Philippe Mathieu-Daudé escribió:
> On 9/4/19 7:13 PM, Philippe Mathieu-Daudé wrote:
> > The Raspberry firmware is closed-source. While running it, it
> > accesses various I/O registers. Logging these accesses as UNIMP
> > (unimplemented) help to understand what the firmware is doing
> > (ideally we want it able to boot a Linux kernel).
> >
> > Document various blocks we might use later.
> >
> > Adresses and names based on:
> > https://github.com/hermanhermitage/videocoreiv/wiki/MMIO-Register-map
> >
> > Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> > ---
> > include/hw/arm/raspi_platform.h | 49 +++++++++++++++++++++++++++
> > ------
> > 1 file changed, 40 insertions(+), 9 deletions(-)
> >
> > diff --git a/include/hw/arm/raspi_platform.h
> > b/include/hw/arm/raspi_platform.h
> > index 069edab526..c6f4985522 100644
> > --- a/include/hw/arm/raspi_platform.h
> > +++ b/include/hw/arm/raspi_platform.h
> > @@ -25,42 +25,73 @@
> > #ifndef HW_ARM_RASPI_PLATFORM_H
> > #define HW_ARM_RASPI_PLATFORM_H
> >
> > -#define MCORE_OFFSET 0x0000 /* Fake frame buffer
> > device
> > - * (the multicore sync
> > block) */
> > -#define IC0_OFFSET 0x2000
> > +#define MSYNC_OFFSET 0x0000 /* Multicore Sync Block
> > */
> > +#define CCPT_OFFSET 0x1000 /* Compact Camera Port 2
> > TX */
> > +#define INTE_OFFSET 0x2000 /* VC Interrupt
> > controller */
> > #define ST_OFFSET 0x3000 /* System Timer */
> > +#define TXP_OFFSET 0x4000
> > +#define JPEG_OFFSET 0x5000
> > #define MPHI_OFFSET 0x6000 /* Message-based Parallel
> > Host Intf. */
> > #define DMA_OFFSET 0x7000 /* DMA controller,
> > channels 0-14 */
> > -#define ARM_OFFSET 0xB000 /* BCM2708 ARM control
> > block */
> > +#define ARBA_OFFSET 0x9000
> > +#define BRDG_OFFSET 0xa000
> > +#define ARM_OFFSET 0xB000 /* ARM control block */
> > #define ARMCTRL_OFFSET (ARM_OFFSET + 0x000)
> > #define ARMCTRL_IC_OFFSET (ARM_OFFSET + 0x200) /* Interrupt
> > controller */
> > -#define ARMCTRL_TIMER0_1_OFFSET (ARM_OFFSET + 0x400) /* Timer 0
> > and 1 */
> > +#define ARMCTRL_TIMER0_1_OFFSET (ARM_OFFSET + 0x400) /* Timer 0
> > and 1 (SP804) */
> > #define ARMCTRL_0_SBM_OFFSET (ARM_OFFSET + 0x800) /* User 0
> > (ARM) Semaphores
> > * Doorbells
> > & Mailboxes */
> > #define PM_OFFSET 0x100000 /* Power Management,
> > Reset controller
> > * and Watchdog registers
> > */
> > #define CPRMAN_OFFSET 0x101000 /* Clock Management */
> > +#define A2W_OFFSET 0x102000
> > #define AVS_OFFSET 0x103000 /* Audio Video Standard
> > */
> > #define RNG_OFFSET 0x104000
> > #define GPIO_OFFSET 0x200000
> > -#define UART0_OFFSET 0x201000
> > -#define MMCI0_OFFSET 0x202000
> > -#define I2S_OFFSET 0x203000
> > -#define SPI0_OFFSET 0x204000
> > +#define UART0_OFFSET 0x201000 /* PL011 */
> > +#define MMCI0_OFFSET 0x202000 /* Legacy MMC */
> > +#define I2S_OFFSET 0x203000 /* PCM */
> > +#define SPI0_OFFSET 0x204000 /* SPI master */
> > #define BSC0_OFFSET 0x205000 /* BSC0 I2C/TWI */
> > +#define PIXV0_OFFSET 0x206000
> > +#define PIXV1_OFFSET 0x207000
> > +#define DPI_OFFSET 0x208000
> > +#define DSI0_OFFSET 0x209000 /* Display Serial
> > Interface */
> > +#define PWM_OFFSET 0x20c000
> > +#define PERM_OFFSET 0x20d000
> > +#define TEC_OFFSET 0x20e000
> > #define OTP_OFFSET 0x20f000
> > +#define SLIM_OFFSET 0x100000 /* SLIMbus */
> > +#define CPG_OFFSET 0x110000
> > #define AVSP_OFFSET 0x130000
>
> These should be:
>
> #define SLIM_OFFSET 0x210000 /* SLIMbus */
> #define CPG_OFFSET 0x211000
> #define AVSP_OFFSET 0x213000
>
> > #define BSC_SL_OFFSET 0x214000 /* SPI slave */
Looking in
https://github.com/hermanhermitage/videocoreiv/wiki/MMIO-Register-map I
found that 0x214000 is the "bootrom" register, why the difference?
> > +#define THERMAL_OFFSET 0x212000
> > #define AUX_OFFSET 0x215000 /* AUX: UART1/SPI1/SPI2
> > */
> > #define EMMC1_OFFSET 0x300000
> > +#define EMMC2_OFFSET 0x340000
> > +#define HVS_OFFSET 0x400000
In github describe 7E400000 as ddrv register, ddrv is the same as HVS?
> > #define SMI_OFFSET 0x600000
> > +#define DSI1_OFFSET 0x700000
> > +#define UCAM_OFFSET 0x800000
> > +#define CMI_OFFSET 0x802000
> > #define BSC1_OFFSET 0x804000 /* BSC1 I2C/TWI */
> > #define BSC2_OFFSET 0x805000 /* BSC2 I2C/TWI */
> > +#define VECA_OFFSET 0x806000
> > +#define PIXV2_OFFSET 0x807000
> > +#define HDMI_OFFSET 0x808000
> > +#define HDCP_OFFSET 0x809000
> > +#define ARBR0_OFFSET 0x80a000
> > #define DBUS_OFFSET 0x900000
> > #define AVE0_OFFSET 0x910000
> > #define USB_OTG_OFFSET 0x980000 /* DTC_OTG USB controller
> > */
> > +#define V3D_OFFSET 0xc00000
> > #define SDRAMC_OFFSET 0xe00000
> > +#define L2CC_OFFSET 0xe01000 /* Level 2 Cache
> > controller */
> > +#define L1CC_OFFSET 0xe02000 /* Level 1 Cache
> > controller */
> > +#define ARBR1_OFFSET 0xe04000
> > #define DMA15_OFFSET 0xE05000 /* DMA controller,
> > channel 15 */
> > +#define DCRC_OFFSET 0xe07000
> > +#define AXIP_OFFSET 0xe08000
> >
> > /* GPU interrupts */
> > #define INTERRUPT_TIMER0 0
> >
next prev parent reply other threads:[~2019-09-29 15:28 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-09-04 17:13 [Qemu-devel] [RFC PATCH 00/14] hw/arm: Add the Raspberry Pi 4B Philippe Mathieu-Daudé
2019-09-04 17:13 ` [Qemu-devel] [PATCH 01/14] hw/arm/raspi: Use the IEC binary prefix definitions Philippe Mathieu-Daudé
2019-09-27 19:46 ` Esteban Bosse
2019-09-29 6:57 ` Esteban Bosse
2019-09-04 17:13 ` [Qemu-devel] [PATCH 02/14] hw/misc/bcm2835_property: Add FIXME comment for uninitialized memory Philippe Mathieu-Daudé
2019-09-04 17:13 ` [Qemu-devel] [RFC PATCH 03/14] hw/misc/bcm2835_property: Handle the 'domain state' property Philippe Mathieu-Daudé
2019-09-27 20:51 ` Esteban Bosse
2019-09-29 7:01 ` Esteban Bosse
2019-10-08 9:32 ` Philippe Mathieu-Daudé
2019-10-24 9:15 ` Esteban Bosse
2019-09-04 17:13 ` [Qemu-devel] [PATCH 04/14] hw/arm/bcm2835_peripherals: Improve logging Philippe Mathieu-Daudé
2019-09-27 21:25 ` Esteban Bosse
2019-09-04 17:13 ` [Qemu-devel] [PATCH 05/14] hw/arm/bcm2835_peripherals: Name various address spaces Philippe Mathieu-Daudé
2019-09-29 7:08 ` Esteban Bosse
2019-09-04 17:13 ` [Qemu-devel] [PATCH 06/14] hw/arm/bcm2835: Rename some definitions Philippe Mathieu-Daudé
2019-09-29 14:27 ` Esteban Bosse
2019-09-04 17:13 ` [Qemu-devel] [PATCH 07/14] hw/arm/bcm2835: Add various unimplemented peripherals Philippe Mathieu-Daudé
2019-09-29 14:35 ` Esteban Bosse
2019-09-04 17:13 ` [Qemu-devel] [PATCH 08/14] hw/arm/bcm2836: Make the SoC code modular Philippe Mathieu-Daudé
2019-09-29 14:39 ` Esteban Bosse
2019-09-04 17:13 ` [Qemu-devel] [PATCH 09/14] hw/arm/raspi: Make the board " Philippe Mathieu-Daudé
2019-09-04 17:13 ` [Qemu-devel] [PATCH 10/14] hw/arm/raspi: Define various blocks base addresses Philippe Mathieu-Daudé
2019-09-06 10:07 ` Philippe Mathieu-Daudé
2019-09-29 15:27 ` Esteban Bosse [this message]
2019-10-08 9:16 ` Philippe Mathieu-Daudé
2019-09-04 17:13 ` [Qemu-devel] [PATCH 11/14] hw/arm/bcm2835_peripherals: Map various BCM2838 blocks Philippe Mathieu-Daudé
2019-09-29 15:44 ` Esteban Bosse
2019-09-04 17:13 ` [Qemu-devel] [RFC PATCH 12/14] hw/arm/bcm2836: Add the BCM2838 which uses a GICv2 Philippe Mathieu-Daudé
2019-09-05 8:41 ` Luc Michel
2019-09-09 17:10 ` [Qemu-devel] [Qemu-arm] " Philippe Mathieu-Daudé
2019-09-04 17:13 ` [Qemu-devel] [RFC PATCH 13/14] hw/arm/bcm2838: Map the PCIe memory space Philippe Mathieu-Daudé
2019-09-04 17:13 ` [Qemu-devel] [RFC PATCH 14/14] hw/arm/raspi: Add the Raspberry Pi 4B board Philippe Mathieu-Daudé
2019-09-29 15:53 ` Esteban Bosse
2019-10-08 9:04 ` Philippe Mathieu-Daudé
2019-10-24 9:07 ` Peter Maydell
2019-10-24 12:26 ` Esteban Bosse
2019-10-24 9:01 ` Esteban Bosse
2019-09-21 13:25 ` [Qemu-arm] [RFC PATCH 00/14] hw/arm: Add the Raspberry Pi 4B Stewart Hildebrand
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=40ddb83824dc19adea584fa8597884e5bdec0d11.camel@gmail.com \
--to=estebanbosse@gmail.com \
--cc=Andrew.Baumann@microsoft.com \
--cc=bztemail@gmail.com \
--cc=clement.deschamps@antfield.fr \
--cc=f4bug@amsat.org \
--cc=luc.michel@greensocs.com \
--cc=marcandre.lureau@redhat.com \
--cc=pbonzini@redhat.com \
--cc=penberg@iki.fi \
--cc=peter.maydell@linaro.org \
--cc=philmd@redhat.com \
--cc=qemu-arm@nongnu.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.