<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
p.gmail-m-5390530937805190384msolistparagraph, li.gmail-m-5390530937805190384msolistparagraph, div.gmail-m-5390530937805190384msolistparagraph
        {mso-style-name:gmail-m_-5390530937805190384msolistparagraph;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:510414704;
        mso-list-template-ids:-1;}
@list l0:level1
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level2
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:1.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level3
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:1.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level4
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:2.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level5
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:2.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level6
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:3.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level7
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:3.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level8
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:4.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level9
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:4.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
--></style></head><body lang=EN-US link=blue vlink="#954F72" style='word-wrap:break-word'><div class=WordSection1><p class=MsoNormal>Hi Noor,</p><p class=MsoNormal>The plan works for me. Focus on Aarch64 and we can try to merge/consolidate headers after that.</p><p class=MsoNormal>I don’t mind looking at GitHub branches to review work in progress. Is that OK with everyone else?</p><p class=MsoNormal>Thanks,</p><p class=MsoNormal>Alan</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><div style='mso-element:para-border-div;border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal style='border:none;padding:0in'><b>From: </b><a href="mailto:nooraman5718@gmail.com">Noor Aman</a><br><b>Sent: </b>Friday, July 22, 2022 11:10 AM<br><b>To: </b><a href="mailto:alan.cudmore@gmail.com">Alan Cudmore</a><br><b>Cc: </b><a href="mailto:joel@rtems.org">joel@rtems.org</a>; <a href="mailto:devel@rtems.org">rtems-devel@rtems.org</a>; <a href="mailto:heshamelmatary@gmail.com">Hesham Moustafa</a>; <a href="mailto:WKMoore@gmail.com">William Moore</a><br><b>Subject: </b>Re: [PATCH] Arm/raspberrypi.h: Added relevant headers for the bcm2711</p></div><p class=MsoNormal><o:p> </o:p></p><div><div><p class=MsoNormal>Hey Alan, Sorry for the late reply. </p></div><div><p class=MsoNormal>So here's my plan. I initially thought of editing the raspberrypi.h and making it compatible for every RPi bsp. But I think I'll just be working on Aarch64 only. So I'll define everything related to bcm2711, not bcm283x. And After I complete with RPi4 bsp, we can work on how to merge both the headers. </p></div><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in'><div><p class=MsoNormal>Following up with some additional thoughts:</p></div></blockquote><div><p class=MsoNormal>I have already forked rtems github repo on my profile. <a href="https://github.com/0xNoor/rtems">https://github.com/0xNoor/rtems</a> .Here's the link. I've added 2 additional branches named as noor-dev and noor-master. noor-master server as the backup branch just in case i break anything in my noor-dev branch. I keep on updating the branches with RTEMS:master branch.</p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>So every time I have a question, I just need to point to the part of the repo? I think that would be ok to do. So do I need to do this for getting a review too? </p></div><div><p class=MsoNormal>And Thanks for rt-thread link. It solves my issue for mailbox and others too :)</p></div><div><p class=MsoNormal><o:p> </o:p></p></div></div><p class=MsoNormal><o:p> </o:p></p><div><div><p class=MsoNormal>On Fri, 22 Jul 2022 at 18:24, Alan Cudmore <<a href="mailto:alan.cudmore@gmail.com">alan.cudmore@gmail.com</a>> wrote:</p></div><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in'><div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Hi Noor,</p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Following up with some additional thoughts:</p><ul type=disc><li class=gmail-m-5390530937805190384msolistparagraph style='mso-list:l0 level1 lfo1'>My approach for development for this BSP would be to focus on getting it working on a GitHub fork of the RTEMS repo. It could be messy while you are getting it working, but that is the fun part, in my opinion. If you need help or advice, you could send a message pointing us to parts of your repository.</li><li class=gmail-m-5390530937805190384msolistparagraph style='mso-list:l0 level1 lfo1'>Once you have it working, we can figure out the best way to integrate it. Again, in my opinion, once you have something working, moving code around and reformatting is the easy part!</li><li class=gmail-m-5390530937805190384msolistparagraph style='mso-list:l0 level1 lfo1'>Finally, you can submit the patches of the working BSP.</li></ul><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Does this sound like a reasonable to everyone? It may not make sense for the community to review patches that may end up changing as the BSP is developed.</p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>I am taking a similar approach.. I have been slowly working on a BSP for the Kendryte K210 RISC-V processor. I have it working now, but soon I need to get input for the best way to integrate it with the existing RISC-V BSPs.</p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Thanks for working on this!</p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Alan</p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p><div style='border:none;border-top:solid windowtext 1.0pt;padding:3.0pt 0in 0in 0in;border-color:currentcolor currentcolor'><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><b>From: </b><a href="mailto:alan.cudmore@gmail.com">Alan Cudmore</a><br><b>Sent: </b>Thursday, July 21, 2022 10:59 PM<br><b>To: </b><a href="mailto:joel@rtems.org">joel@rtems.org</a><br><b>Cc: </b><a href="mailto:nooraman5718@gmail.com">Noor Aman</a>; <a href="mailto:devel@rtems.org">rtems-devel@rtems.org</a>; <a href="mailto:heshamelmatary@gmail.com">Hesham Moustafa</a>; <a href="mailto:WKMoore@gmail.com">William Moore</a><br><b>Subject: </b>Re: [PATCH] Arm/raspberrypi.h: Added relevant headers for the bcm2711</p></div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Joel, I don't think we need to commit the file now.</p><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Some suggestions:</p><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>- Let's not put RPI2 or RPI3 defines or ifdefs in the file if it's only going to be for the Aarch64 RPI4 BSP</p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>- If it will be only used for the RPI4, it might be confusing to have the BCM2836 defines rather than using BCM2711</p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>- If we really can share most of the defines between the RPI2 and RPI4 bsps, is there any way we can have a common include in the bsps/shared directory? Something like bcm_soc.h that has common defines for all raspberry Pi models? That would require changes to the Raspberry Pi 1 and 2 BSPs but it would avoid duplication of code.</p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>I also wonder if we can end up taking advantage of shared drivers such as the pl011 serial driver.</p></div><div><div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Another source of info that may be helpful is the RT-Thread RTOS. They have RPI 2, 3, and 4 BSPs. The RPI4 has 32 and 64 bit versions. In addition the RTOS is Apache 2.0 licensed, so that may be easier to re-use (Please correct me if I'm wrong on the license usage!)</p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><a href="https://github.com/RT-Thread/rt-thread/tree/master/bsp/raspberry-pi/raspi4-64">https://github.com/RT-Thread/rt-thread/tree/master/bsp/raspberry-pi/raspi4-64</a></p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Thanks,</p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Alan</p></div></div></div></div></div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p><div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>On Thu, Jul 21, 2022 at 2:01 PM Joel Sherrill <<a href="mailto:joel@rtems.org">joel@rtems.org</a>> wrote:<o:p></o:p></p></div><blockquote style='border:none;border-left:solid windowtext 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt;border-color:currentcolor currentcolor currentcolor rgb(204,204,204)'><div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p></div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p><div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>On Thu, Jul 21, 2022 at 12:32 PM Noor Aman <<a href="mailto:nooraman5718@gmail.com">nooraman5718@gmail.com</a>> wrote:<o:p></o:p></p></div><blockquote style='border:none;border-left:solid windowtext 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt;border-color:currentcolor currentcolor currentcolor rgb(204,204,204)'><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>I dont think this would be visible to any other application until or unless user explicitly include this header 'raspberrypi.h' in their application. And as of now, this header is only placed in bsps/arm/raspberrypi/includes.</p></div></blockquote><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Sorry. My mistake. I was thinking it was in bsp.h. :(</p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p></div><blockquote style='border:none;border-left:solid windowtext 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt;border-color:currentcolor currentcolor currentcolor rgb(204,204,204)'><div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>For my project I'm thinking of using this header with my project with bcm2711 addresses included. For my project, this header will go under bsps/aarch64/raspberrypi/includes. So I don't think this will create any problem for other BSPs. </p></div></div></blockquote><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>This will be ok. A file has to explicitly include it.</p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>If you think it is ready to commit, I'm happy to do it if Alan or someone else also acks.</p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>--joel <o:p></o:p></p></div><blockquote style='border:none;border-left:solid windowtext 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt;border-color:currentcolor currentcolor currentcolor rgb(204,204,204)'><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p><div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>On Thu, Jul 21, 2022, 10:16 PM Joel Sherrill <<a href="mailto:joel@rtems.org">joel@rtems.org</a>> wrote:<o:p></o:p></p></div><blockquote style='border:none;border-left:solid windowtext 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt;border-color:currentcolor currentcolor currentcolor rgb(204,204,204)'><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>This looks generally ok but is all this visible to any application that includes bsp.h? </p><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>It might all need to be moved into a separate header to avoid contaminating everyone's namespace.</p></div></div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p><div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>On Thu, Jul 21, 2022, 10:56 AM Noor Aman <<a href="mailto:nooraman5718@gmail.com">nooraman5718@gmail.com</a>> wrote:<o:p></o:p></p></div><blockquote style='border:none;border-left:solid windowtext 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt;border-color:currentcolor currentcolor currentcolor rgb(204,204,204)'><div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>A brief gist of what i found compatible with the older code</p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>---COMPATIBLE HEADER---</p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>- BCM2835 timer</p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>- GPIO</p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>- AUX</p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>- GPU timer</p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>---DIDNT CHECK---</p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>- SPI</p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>- I2C</p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>---MINOR CHNAGE---</p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>- IRQ</p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>- FIQ</p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>---NOT SURE ABOUT---</p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>- Watchdog</p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>- Power management</p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>- Mailbox register</p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>I didnt get any info about power management or watchdog or mailboxes. (It isnt in the BCM2835 Documention too I think??)</p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>And to answer your question Alan about if the Aarch64 would require a DTB or not which you asked me quite earlier. I can say now, you dont, because every address is defined here already so no need for the DTB.</p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>diff --git a/bsps/aarch64/raspberrypi/include/bsp/raspberrypi.h b/bsps/aarch64/raspberrypi/include/bsp/raspberrypi.h</p></div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>index eeb48c42f1..a4ed2a01d1 100644<br>--- a/bsps/aarch64/raspberrypi/include/bsp/raspberrypi.h<br>+++ b/bsps/aarch64/raspberrypi/include/bsp/raspberrypi.h<br>@@ -52,15 +52,23 @@<br>  * @{<br>  */<br> <br>-#if (BSP_IS_RPI2 == 1)<br>-  #define RPI_PERIPHERAL_BASE    0x3F000000<br>+#if (RPI_BSP == RPI2)<br>+  #define RPI_PERIPHERAL_BASE    0X3F000000<br>   #define BASE_OFFSET            0X3F000000<br>+<br>+#elif (RPI_BSP == RPI4)<br>+  #define RPI_PERIPHERAL_BASE 0xFE000000<br>+  #define BASE_OFFSET 0xFE000000<br>+  #define RPI_PERIPHERAL_SIZE    0x01800000<br>+<br> #else<br>   #define RPI_PERIPHERAL_BASE    0x20000000<br>   #define BASE_OFFSET            0X5E000000<br>+  <br> #endif<br> <br>-#define RPI_PERIPHERAL_SIZE      0x01000000<br>+#ifndef RPI_PERIPHERAL_SIZE<br>+#define RPI_PERIPHERAL_SIZE     0x01000000<br> <br> /**<br>  * @name Bus to Physical address translation<br>@@ -543,6 +551,188 @@<br> #define BCM2836_IRQ_SOURCE_PMU            0x00000200<br> #define BCM2836_IRQ_SOURCE_LOCAL_TIMER    0x00000800<br> <br>+<br>+<br>+/**<br>+ * @name Raspberry Pi 4 ARM_LOCAL registers<br>+ *<br>+ * @{<br>+ */<br>+<br>+#define BCM2711_LOCAL_REGS_BASE   0x4C0000000<br>+<br>+#define BCM2711_LOCAL_ARM_CONTROL     (BCM2711_LOCAL_REGS_BASE + 0x00)<br>+#define BCM2711_LOCAL_CORE_IRQ_CONTROL (BCM2711_LOCAL_REGS_BASE + 0x0c)<br>+#define BCM2711_LOCAL_PMU_CONTROL_SET (BCM2711_LOCAL_REGS_BASE + 0x10)<br>+#define BCM2711_LOCAL_PMU_CONTROL_CLR (BCM2711_LOCAL_REGS_BASE + 0x14)<br>+#define BCM2711_LOCAL_PERI_IRQ_ROUTE0 (BCM2711_LOCAL_REGS_BASE + 0x24)<br>+#define BCM2711_LOCAL_AXI_QUIET_TIME (BCM2711_LOCAL_REGS_BASE + 0x30)<br>+#define BCM2711_LOCAL_LOCAL_TIMER_CONTROL (BCM2711_LOCAL_REGS_BASE + 0x34)<br>+#define BCM2711_LOCAL_LOCAL_TIMER_IRQ       (BCM2711_LOCAL_REGS_BASE + 0x38)<br>+<br>+#define BCM2711_LOCAL_TIMER_CNTRL0       (BCM2711_LOCAL_REGS_BASE + 0x40)<br>+#define BCM2711_LOCAL_TIMER_CNTRL1 (BCM2711_LOCAL_REGS_BASE + 0x44)<br>+#define BCM2711_LOCAL_TIMER_CNTRL2 (BCM2711_LOCAL_REGS_BASE + 0x48)<br>+#define BCM2711_LOCAL_TIMER_CNTRL3 (BCM2711_LOCAL_REGS_BASE + 0x4c)<br>+<br>+#define BCM2711_LOCAL_MAILBOX_CNTRL0 (BCM2711_LOCAL_REGS_BASE + 0x50)<br>+#define BCM2711_LOCAL_MAILBOX_CNTRL1 (BCM2711_LOCAL_REGS_BASE + 0x54)<br>+#define BCM2711_LOCAL_MAILBOX_CNTRL2 (BCM2711_LOCAL_REGS_BASE + 0x58)<br>+#define BCM2711_LOCAL_MAILBOX_CNTRL3 (BCM2711_LOCAL_REGS_BASE + 0x5c)<br>+<br>+#define BCM2711_LOCAL_IRQ_SOURCE0 (BCM2711_LOCAL_REGS_BASE + 0x60)<br>+#define BCM2711_LOCAL_IRQ_SOURCE1 (BCM2711_LOCAL_REGS_BASE + 0x64)<br>+#define BCM2711_LOCAL_IRQ_SOURCE2 (BCM2711_LOCAL_REGS_BASE + 0x68)<br>+#define BCM2711_LOCAL_IRQ_SOURCE3 (BCM2711_LOCAL_REGS_BASE + 0x6c)<br>+<br>+#define BCM2711_LOCAL_FIQ_SOURCE0 (BCM2711_LOCAL_REGS_BASE + 0x70)<br>+#define BCM2711_LOCAL_FIQ_SOURCE1 (BCM2711_LOCAL_REGS_BASE + 0x74)<br>+#define BCM2711_LOCAL_FIQ_SOURCE2 (BCM2711_LOCAL_REGS_BASE + 0x78)<br>+#define BCM2711_LOCAL_FIQ_SOURCE3 (BCM2711_LOCAL_REGS_BASE + 0x7c)<br>+<br>+<br>+/**<br>+ * @name Raspberry Pi 4 ARM_C FIQ and IRQ registers<br>+ *<br>+ * @{<br>+ */<br>+<br>+#define BCM2711_ARMC_REGS_BASE (RPI_PERIPHERAL_BASE + 0xB200)<br>+<br>+#define BCM2711_ARMC_IRQ0_PENDING0 (BCM2711_ARMC_REGS_BASE + 0x00) <br>+#define BCM2711_ARMC_IRQ0_PENDING1 (BCM2711_ARMC_REGS_BASE + 0x04) <br>+#define BCM2711_ARMC_IRQ0_PENDING2 (BCM2711_ARMC_REGS_BASE + 0x08) <br>+#define BCM2711_ARMC_IRQ0_SET_EN_0   (BCM2711_ARMC_REGS_BASE + 0x10) <br>+#define BCM2711_ARMC_IRQ0_SET_EN_1   (BCM2711_ARMC_REGS_BASE + 0x14) <br>+#define BCM2711_ARMC_IRQ0_SET_EN_2   (BCM2711_ARMC_REGS_BASE + 0x18) <br>+#define BCM2711_ARMC_IRQ0_CLR_EN_0 (BCM2711_ARMC_REGS_BASE + 0x20) <br>+#define BCM2711_ARMC_IRQ0_CLR_EN_1 (BCM2711_ARMC_REGS_BASE + 0x24) <br>+#define BCM2711_ARMC_IRQ0_CLR_EN_2 (BCM2711_ARMC_REGS_BASE + 0x28) <br>+<br>+#define BCM2711_ARMC_IRQ_STATUS0 (BCM2711_ARMC_REGS_BASE + 0x30) <br>+#define BCM2711_ARMC_IRQ_STATUS1 (BCM2711_ARMC_REGS_BASE + 0x34) <br>+#define BCM2711_ARMC_IRQ_STATUS2 (BCM2711_ARMC_REGS_BASE + 0x38)<br>+<br>+#define BCM2711_ARMC_IRQ1_PENDING0 (BCM2711_ARMC_REGS_BASE + 0x40) <br>+#define BCM2711_ARMC_IRQ1_PENDING1 (BCM2711_ARMC_REGS_BASE + 0x44) <br>+#define BCM2711_ARMC_IRQ1_PENDING2 (BCM2711_ARMC_REGS_BASE + 0x48) <br>+#define BCM2711_ARMC_IRQ1_SET_EN_0 (BCM2711_ARMC_REGS_BASE + 0x50) <br>+#define BCM2711_ARMC_IRQ1_SET_EN_1 (BCM2711_ARMC_REGS_BASE + 0x54) <br>+#define BCM2711_ARMC_IRQ1_SET_EN_2 (BCM2711_ARMC_REGS_BASE + 0x58) <br>+#define BCM2711_ARMC_IRQ1_CLR_EN_0 (BCM2711_ARMC_REGS_BASE + 0x60) <br>+#define BCM2711_ARMC_IRQ1_CLR_EN_1 (BCM2711_ARMC_REGS_BASE + 0x64) <br>+#define BCM2711_ARMC_IRQ1_CLR_EN_2 (BCM2711_ARMC_REGS_BASE + 0x68) <br>+<br>+#define BCM2711_ARMC_IRQ2_PENDING0 (BCM2711_ARMC_REGS_BASE + 0x80) <br>+#define BCM2711_ARMC_IRQ2_PENDING1 (BCM2711_ARMC_REGS_BASE + 0x84) <br>+#define BCM2711_ARMC_IRQ2_PENDING2 (BCM2711_ARMC_REGS_BASE + 0x88) <br>+#define BCM2711_ARMC_IRQ2_SET_EN_0 (BCM2711_ARMC_REGS_BASE + 0x90) <br>+#define BCM2711_ARMC_IRQ2_SET_EN_1 (BCM2711_ARMC_REGS_BASE + 0x94) <br>+#define BCM2711_ARMC_IRQ2_SET_EN_2 (BCM2711_ARMC_REGS_BASE + 0x98) <br>+#define BCM2711_ARMC_IRQ2_CLR_EN_0 (BCM2711_ARMC_REGS_BASE + 0xA0) <br>+#define BCM2711_ARMC_IRQ2_CLR_EN_1 (BCM2711_ARMC_REGS_BASE + 0xA4) <br>+#define BCM2711_ARMC_IRQ2_CLR_EN_2 (BCM2711_ARMC_REGS_BASE + 0xA8) <br>+<br>+#define BCM2711_ARMC_IRQ3_PENDING0 (BCM2711_ARMC_REGS_BASE + 0xC0) <br>+#define BCM2711_ARMC_IRQ3_PENDING1 (BCM2711_ARMC_REGS_BASE + 0xC4) <br>+#define BCM2711_ARMC_IRQ3_PENDING2 (BCM2711_ARMC_REGS_BASE + 0xC8) <br>+#define BCM2711_ARMC_IRQ3_SET_EN_0 (BCM2711_ARMC_REGS_BASE + 0xD0) <br>+#define BCM2711_ARMC_IRQ3_SET_EN_1 (BCM2711_ARMC_REGS_BASE + 0xD4) <br>+#define BCM2711_ARMC_IRQ3_SET_EN_2 (BCM2711_ARMC_REGS_BASE + 0xD8) <br>+#define BCM2711_ARMC_IRQ3_CLR_EN_0 (BCM2711_ARMC_REGS_BASE + 0xE0) <br>+#define BCM2711_ARMC_IRQ3_CLR_EN_1 (BCM2711_ARMC_REGS_BASE + 0xE4) <br>+#define BCM2711_ARMC_IRQ3_CLR_EN_2 (BCM2711_ARMC_REGS_BASE + 0xE8)<br>+<br>+<br>+<br>+#define BCM2711_ARMC_FIQ0_PENDING0 (BCM2711_ARMC_REGS_BASE + 0x100) <br>+#define BCM2711_ARMC_FIQ0_PENDING1 (BCM2711_ARMC_REGS_BASE + 0x104) <br>+#define BCM2711_ARMC_FIQ0_PENDING2 (BCM2711_ARMC_REGS_BASE + 0x108) <br>+#define BCM2711_ARMC_FIQ0_SET_EN_0   (BCM2711_ARMC_REGS_BASE + 0x110) <br>+#define BCM2711_ARMC_FIQ0_SET_EN_1   (BCM2711_ARMC_REGS_BASE + 0x114) <br>+#define BCM2711_ARMC_FIQ0_SET_EN_2   (BCM2711_ARMC_REGS_BASE + 0x118) <br>+#define BCM2711_ARMC_FIQ0_CLR_EN_0 (BCM2711_ARMC_REGS_BASE + 0x120) <br>+#define BCM2711_ARMC_FIQ0_CLR_EN_1 (BCM2711_ARMC_REGS_BASE + 0x124) <br>+#define BCM2711_ARMC_FIQ0_CLR_EN_2 (BCM2711_ARMC_REGS_BASE + 0x128)<br>+<br>+#define BCM2711_ARMC_FIQ1_PENDING0 (BCM2711_ARMC_REGS_BASE + 0x140) <br>+#define BCM2711_ARMC_FIQ1_PENDING1 (BCM2711_ARMC_REGS_BASE + 0x144) <br>+#define BCM2711_ARMC_FIQ1_PENDING2 (BCM2711_ARMC_REGS_BASE + 0x148) <br>+#define BCM2711_ARMC_FIQ1_SET_EN_0   (BCM2711_ARMC_REGS_BASE + 0x150) <br>+#define BCM2711_ARMC_FIQ1_SET_EN_1   (BCM2711_ARMC_REGS_BASE + 0x154) <br>+#define BCM2711_ARMC_FIQ1_SET_EN_2   (BCM2711_ARMC_REGS_BASE + 0x158) <br>+#define BCM2711_ARMC_FIQ1_CLR_EN_0 (BCM2711_ARMC_REGS_BASE + 0x160) <br>+#define BCM2711_ARMC_FIQ1_CLR_EN_1 (BCM2711_ARMC_REGS_BASE + 0x164) <br>+#define BCM2711_ARMC_FIQ1_CLR_EN_2 (BCM2711_ARMC_REGS_BASE + 0x168)<br>+<br>+#define BCM2711_ARMC_FIQ2_PENDING0 (BCM2711_ARMC_REGS_BASE + 0x180) <br>+#define BCM2711_ARMC_FIQ2_PENDING1 (BCM2711_ARMC_REGS_BASE + 0x184) <br>+#define BCM2711_ARMC_FIQ2_PENDING2 (BCM2711_ARMC_REGS_BASE + 0x188) <br>+#define BCM2711_ARMC_FIQ2_SET_EN_0   (BCM2711_ARMC_REGS_BASE + 0x190) <br>+#define BCM2711_ARMC_FIQ2_SET_EN_1   (BCM2711_ARMC_REGS_BASE + 0x194) <br>+#define BCM2711_ARMC_FIQ2_SET_EN_2   (BCM2711_ARMC_REGS_BASE + 0x198) <br>+#define BCM2711_ARMC_FIQ2_CLR_EN_0 (BCM2711_ARMC_REGS_BASE + 0x1A0) <br>+#define BCM2711_ARMC_FIQ2_CLR_EN_1 (BCM2711_ARMC_REGS_BASE + 0x1A4) <br>+#define BCM2711_ARMC_FIQ2_CLR_EN_2 (BCM2711_ARMC_REGS_BASE + 0x1A8)<br>+<br>+#define BCM2711_ARMC_FIQ3_PENDING0 (BCM2711_ARMC_REGS_BASE + 0x1C0) <br>+#define BCM2711_ARMC_FIQ3_PENDING1 (BCM2711_ARMC_REGS_BASE + 0x1C4) <br>+#define BCM2711_ARMC_FIQ3_PENDING2 (BCM2711_ARMC_REGS_BASE + 0x1C8) <br>+#define BCM2711_ARMC_FIQ3_SET_EN_0   (BCM2711_ARMC_REGS_BASE + 0x1D0) <br>+#define BCM2711_ARMC_FIQ3_SET_EN_1   (BCM2711_ARMC_REGS_BASE + 0x1D4) <br>+#define BCM2711_ARMC_FIQ3_SET_EN_2   (BCM2711_ARMC_REGS_BASE + 0x1D8) <br>+#define BCM2711_ARMC_FIQ3_CLR_EN_0 (BCM2711_ARMC_REGS_BASE + 0x1E0) <br>+#define BCM2711_ARMC_FIQ3_CLR_EN_1 (BCM2711_ARMC_REGS_BASE + 0x1E4) <br>+#define BCM2711_ARMC_FIQ3_CLR_EN_2 (BCM2711_ARMC_REGS_BASE + 0x1E8)<br>+<br>+#define BCM2711_ARMC_SWIRQ_SET   (BCM2711_ARMC_REGS_BASE + 0x1F0) <br>+#define BCM2711_ARMC_SWIRQ_CLEAR   (BCM2711_ARMC_REGS_BASE + 0x1F4) <br>+ <br>+<br>+/**<br>+ * @name Raspberry Pi 4 Mailbox registers<br>+ *<br>+ * @{<br>+ */<br>+<br>+<br>+<br>+#define BCM2711_MAILBOX_00_WRITE_SET_BASE   0x4C000080<br>+#define BCM2711_MAILBOX_01_WRITE_SET_BASE   0x4C000084<br>+#define BCM2711_MAILBOX_02_WRITE_SET_BASE   0x4C000088<br>+#define BCM2711_MAILBOX_03_WRITE_SET_BASE   0x4C00008C<br>+#define BCM2711_MAILBOX_04_WRITE_SET_BASE   0x4C000090<br>+#define BCM2711_MAILBOX_05_WRITE_SET_BASE   0x4C000094<br>+#define BCM2711_MAILBOX_06_WRITE_SET_BASE   0x4C000098<br>+#define BCM2711_MAILBOX_07_WRITE_SET_BASE   0x4C00009C<br>+#define BCM2711_MAILBOX_08_WRITE_SET_BASE   0x4C0000A0<br>+#define BCM2711_MAILBOX_09_WRITE_SET_BASE   0x4C0000A4<br>+#define BCM2711_MAILBOX_10_WRITE_SET_BASE   0x4C0000A8<br>+#define BCM2711_MAILBOX_11_WRITE_SET_BASE   0x4C0000AC<br>+#define BCM2711_MAILBOX_12_WRITE_SET_BASE   0x4C0000B0<br>+#define BCM2711_MAILBOX_13_WRITE_SET_BASE   0x4C0000B4<br>+#define BCM2711_MAILBOX_14_WRITE_SET_BASE   0x4C0000B8<br>+#define BCM2711_MAILBOX_15_WRITE_SET_BASE   0x4C0000BC<br>+<br>+#define BCM2711_MAILBOX_00_READ_CLEAR_BASE   0x4C0000C0<br>+#define BCM2711_MAILBOX_01_READ_CLEAR_BASE   0x4C0000C4<br>+#define BCM2711_MAILBOX_02_READ_CLEAR_BASE   0x4C0000C8<br>+#define BCM2711_MAILBOX_03_READ_CLEAR_BASE   0x4C0000CC<br>+#define BCM2711_MAILBOX_04_READ_CLEAR_BASE   0x4C0000D0<br>+#define BCM2711_MAILBOX_05_READ_CLEAR_BASE   0x4C0000D4<br>+#define BCM2711_MAILBOX_06_READ_CLEAR_BASE   0x4C0000D8<br>+#define BCM2711_MAILBOX_07_READ_CLEAR_BASE   0x4C0000DC<br>+#define BCM2711_MAILBOX_08_READ_CLEAR_BASE   0x4C0000E0<br>+#define BCM2711_MAILBOX_09_READ_CLEAR_BASE   0x4C0000E4<br>+#define BCM2711_MAILBOX_10_READ_CLEAR_BASE   0x4C0000E8<br>+#define BCM2711_MAILBOX_11_READ_CLEAR_BASE   0x4C0000EC<br>+#define BCM2711_MAILBOX_12_READ_CLEAR_BASE   0x4C0000F0<br>+#define BCM2711_MAILBOX_13_READ_CLEAR_BASE   0x4C0000F4<br>+#define BCM2711_MAILBOX_14_READ_CLEAR_BASE   0x4C0000F8<br>+#define BCM2711_MAILBOX_15_READ_CLEAR_BASE   0x4C0000FC<br>+<br>+<br>+<br> /** @} */<br> <br> #endif /* LIBBSP_ARM_RASPBERRYPI_RASPBERRYPI_H */</p></div></blockquote></div></blockquote></div></blockquote></div></div></blockquote></div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:19.2pt'>_______________________________________________<br>devel mailing list<br><a href="mailto:devel@rtems.org">devel@rtems.org</a><br><a href="http://lists.rtems.org/mailman/listinfo/devel">http://lists.rtems.org/mailman/listinfo/devel</a></p></div></div></blockquote></div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:4.8pt'> </p><p class=MsoNormal><o:p> </o:p></p></div></body></html>