Difference between revisions of "Unit BCM2835"

From Ultibo.org
Jump to: navigation, search
(Created page with "Return to Unit Reference === Description === ---- ''To be documented'' === Constants === ---- ''To be documented'' === Type definitions === ---- ''To...")
 
 
(63 intermediate revisions by the same user not shown)
Line 5: Line 5:
 
----
 
----
  
''To be documented''
+
'''Ultibo Definitions specific to the Broadcom 2835 System on Chip unit'''
 +
 
 +
Some of the information in this file is documented in the Broadcom BCM2835-ARM-Peripherals document, some can only be found in the Linux source.
  
 
=== Constants ===
 
=== Constants ===
 
----
 
----
  
''To be documented''
+
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 specific constants''' <code> BCM2835_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>BCM2835_CPU_COUNT = 1;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 ARM physical to VC IO mapping''' <code> BCM2835_VCIO_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|See: BCM2835-ARM-Peripherals.pdf
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_VCIO_ALIAS = $7E000000;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 ARM physical to VC bus mapping''' <code> BCM2835_VCBUS_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|See: BCM2835-ARM-Peripherals.pdf
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_VCBUS_0_ALIAS = $00000000;</code>
 +
| 0 Alias - L1 and L2 cached
 +
|-
 +
| <code>BCM2835_VCBUS_4_ALIAS = $40000000;</code>
 +
| 4 Alias - L2 cache coherent (non allocating) Suitable for RPi Model A/B/A+/B+ if disable_l2cache=0 in config.txt (Default)
 +
|-
 +
| <code>BCM2835_VCBUS_8_ALIAS = $80000000;</code>
 +
| 8 Alias - L2 cached (only)
 +
|-
 +
| <code>BCM2835_VCBUS_C_ALIAS = $C0000000;</code>
 +
| C Alias - Direct uncached Suitable for RPi Model A/B/A+/B+ only if disable_l2cache=1 in config.txt
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 peripherals''' <code> BCM2835_PERIPHERALS_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|See: BCM2835-ARM-Peripherals.pdf
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_PERIPHERALS_BASE = $20000000;</code>
 +
| Mapped to VC address 7E000000
 +
|-
 +
| <code>BCM2835_PERIPHERALS_SIZE = SIZE_16M;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 interrupt controller 0''' <code> BCM2835_IC0_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>BCM2835_IC0_REGS_BASE = BCM2835_PERIPHERALS_BASE + $2000;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 system timer''' <code> BCM2835_SYSTEM_TIMER_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|See Section 12
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_SYSTEM_TIMER_REGS_BASE = BCM2835_PERIPHERALS_BASE + $3000;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 message based parallel host interface''' <code> BCM2835_MPHI_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>BCM2835_MPHI_REGS_BASE = BCM2835_PERIPHERALS_BASE + $6000;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 DMA controller''' <code> BCM2835_DMA* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|See Section 4
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
|colspan="2"|''Channels 0 to 14''
 +
|-
 +
| <code>BCM2835_DMA0_REGS_BASE = BCM2835_PERIPHERALS_BASE + $7000;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>BCM2835_DMA1_REGS_BASE = BCM2835_PERIPHERALS_BASE + $7100;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_DMA2_REGS_BASE = BCM2835_PERIPHERALS_BASE + $7200;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_DMA3_REGS_BASE = BCM2835_PERIPHERALS_BASE + $7300;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_DMA4_REGS_BASE = BCM2835_PERIPHERALS_BASE + $7400;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_DMA5_REGS_BASE = BCM2835_PERIPHERALS_BASE + $7500;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_DMA6_REGS_BASE = BCM2835_PERIPHERALS_BASE + $7600;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_DMA7_REGS_BASE = BCM2835_PERIPHERALS_BASE + $7700;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_DMA8_REGS_BASE = BCM2835_PERIPHERALS_BASE + $7800;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_DMA9_REGS_BASE = BCM2835_PERIPHERALS_BASE + $7900;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_DMA10_REGS_BASE = BCM2835_PERIPHERALS_BASE + $7A00;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_DMA11_REGS_BASE = BCM2835_PERIPHERALS_BASE + $7B00;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_DMA12_REGS_BASE = BCM2835_PERIPHERALS_BASE + $7C00;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_DMA13_REGS_BASE = BCM2835_PERIPHERALS_BASE + $7D00;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_DMA14_REGS_BASE = BCM2835_PERIPHERALS_BASE + $7E00;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_DMA_INT_STATUS_BASE = BCM2835_PERIPHERALS_BASE + $7FE0;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_DMA_ENABLE_BASE = BCM2835_PERIPHERALS_BASE + $7FF0;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 ARM interrupt controller''' <code> BCM2835_INTERRUPT_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|See Section 7
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_INTERRUPT_REGS_BASE = BCM2835_PERIPHERALS_BASE + $B200;</code>
 +
| Note: Broadcom states 0xB000 but the offsets begin at 0x200 so 0xB200 will be correct
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 ARM timer''' <code> BCM2835_TIMER_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|See Section 14
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_TIMER_REGS_BASE = BCM2835_PERIPHERALS_BASE + $B400;</code>
 +
| Note: Broadcom states 0xB000 but the offsets begin at 0x400 so 0xB400 will be correct
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 ARM doorbell''' <code> BCM2835_DOORBELL_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>BCM2835_DOORBELL_REGS_BASE = BCM2835_PERIPHERALS_BASE + $B840;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 ARM mailbox 0''' <code> BCM2835_MAILBOX0_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>BCM2835_MAILBOX0_REGS_BASE = BCM2835_PERIPHERALS_BASE + $B880;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 ARM mailbox 1''' <code> BCM2835_MAILBOX1_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>BCM2835_MAILBOX1_REGS_BASE = BCM2835_PERIPHERALS_BASE + $B8A0;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 power management, reset controller and watchdog''' <code> BCM2835_PM_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>BCM2835_PM_REGS_BASE = BCM2835_PERIPHERALS_BASE + $100000;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 clock management''' <code> BCM2835_CM_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>BCM2835_CM_REGS_BASE = BCM2835_PERIPHERALS_BASE + $101000;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 PCM clock''' <code> BCM2835_PCM_CLOCK_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>BCM2835_PCM_CLOCK_BASE = BCM2835_PERIPHERALS_BASE + $101098;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 random number generator''' <code> BCM2835_RNG_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>BCM2835_RNG_REGS_BASE = BCM2835_PERIPHERALS_BASE + $104000;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 GPIO''' <code> BCM2835_GPIO_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|See Section 6
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_GPIO_REGS_BASE = BCM2835_PERIPHERALS_BASE + $200000;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 UART0 (PL011)''' <code> BCM2835_PL011_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|See Section 13
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_PL011_REGS_BASE = BCM2835_PERIPHERALS_BASE + $201000;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 MMCI0''' <code> BCM2835_MMCI0_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>BCM2835_MMCI0_REGS_BASE = BCM2835_PERIPHERALS_BASE + $202000;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>BCM2835_SDHOST_REGS_BASE = BCM2835_MMCI0_REGS_BASE;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 PCM/I2S audio''' <code> BCM2835_PCM_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|See Section 8
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_PCM_REGS_BASE = BCM2835_PERIPHERALS_BASE + $203000;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 SPI0''' <code> BCM2835_SPI0_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|See Section 10
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_SPI0_REGS_BASE = BCM2835_PERIPHERALS_BASE + $204000;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 BSC0 (I2C)''' <code> BCM2835_BSC0_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|See Section 3
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_BSC0_REGS_BASE = BCM2835_PERIPHERALS_BASE + $205000;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 pixel valve 0''' <code> BCM2835_PIXELVALVE0_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>BCM2835_PIXELVALVE0_REGS_BASE = BCM2835_PERIPHERALS_BASE + $206000;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 pixel valve 1''' <code> BCM2835_PIXELVALVE1_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>BCM2835_PIXELVALVE1_REGS_BASE = BCM2835_PERIPHERALS_BASE + $207000;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 DPI (Display Parallel Interface)''' <code> BCM2835_DPI_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>BCM2835_DPI_REGS_BASE = BCM2835_PERIPHERALS_BASE + $208000;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 DSI0 (Display Serial Interface)''' <code> BCM2835_DSI0_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>BCM2835_DSI0_REGS_BASE = BCM2835_PERIPHERALS_BASE + $209000;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 PWM''' <code> BCM2835_PWM_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|See Section 9
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_PWM_REGS_BASE = BCM2835_PERIPHERALS_BASE + $20C000;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 I2C/SPI slave''' <code> BCM2835_I2CSPI_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|See Section 11
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_I2CSPI_REGS_BASE = BCM2835_PERIPHERALS_BASE + $214000;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 AUX''' <code> BCM2835_AUX_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|See Section 2
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_AUX_REGS_BASE = BCM2835_PERIPHERALS_BASE + $215000;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 UART1''' <code> BCM2835_UART1_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|See Section 2
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_UART1_REGS_BASE = BCM2835_PERIPHERALS_BASE + $215040;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 SPI1''' <code> BCM2835_SPI1_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|See Section 2
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_SPI1_REGS_BASE = BCM2835_PERIPHERALS_BASE + $215080;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 SPI2''' <code> BCM2835_SPI2_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|See Section 2
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_SPI2_REGS_BASE = BCM2835_PERIPHERALS_BASE + $2150C0;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 SD host controller''' <code> BCM2835_SDHCI_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|See Section 5
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_SDHCI_REGS_BASE = BCM2835_PERIPHERALS_BASE + $300000;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 HVS''' <code> BCM2835_HVS_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>BCM2835_HVS_REGS_BASE = BCM2835_PERIPHERALS_BASE + $400000;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 SMI''' <code> BCM2835_SMI_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>BCM2835_SMI_REGS_BASE = BCM2835_PERIPHERALS_BASE + $600000;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 DSI1 (Display Serial Interface)''' <code> BCM2835_DSI1_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>BCM2835_DSI1_REGS_BASE = BCM2835_PERIPHERALS_BASE + $700000;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 BSC1 (I2C)''' <code> BCM2835_BSC1_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|See Section 3
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_BSC1_REGS_BASE = BCM2835_PERIPHERALS_BASE + $804000;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 BSC2 (I2C)''' <code> BCM2835_BSC2_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|See Section 3
 +
|-
 +
|colspan="2"|Note: BSC2 master is used dedicated with the HDMI interface and should not be used
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_BSC2_REGS_BASE = BCM2835_PERIPHERALS_BASE + $805000;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 VEC''' <code> BCM2835_VEC_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>BCM2835_VEC_REGS_BASE = BCM2835_PERIPHERALS_BASE + $806000;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 pixel valve 2''' <code> BCM2835_PIXELVALVE2_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>BCM2835_PIXELVALVE2_REGS_BASE = BCM2835_PERIPHERALS_BASE + $807000;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 HDMI''' <code> BCM2835_HDMI_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>BCM2835_HDMI_REGS_BASE = BCM2835_PERIPHERALS_BASE + $902000;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 USB''' <code> BCM2835_USB_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|See Section 15
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_USB_REGS_BASE = BCM2835_PERIPHERALS_BASE + $980000;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 V3D''' <code> BCM2835_V3D_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>BCM2835_V3D_REGS_BASE = BCM2835_PERIPHERALS_BASE + $C00000;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 DMA controller''' <code> BCM2835_DMA15_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|Channel 15 (See Section 4)
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_DMA15_REGS_BASE = BCM2835_PERIPHERALS_BASE + $E05000;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 IRQ peripheral''' <code> BCM2835_IRQ_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|IRQs 0-63 are those shared between the GPU and CPU, IRQs 64+ are CPU-specific
 +
|-
 +
|colspan="2"|IRQs 0 to 31 appear in the IRQ_pending_1 register
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
|colspan="2"|''System Timer''
 +
|-
 +
| <code>BCM2835_IRQ_SYSTEM_TIMER_0 = 0;</code>
 +
| Already used by the VideoCore GPU (Do not use)
 +
|-
 +
| <code>BCM2835_IRQ_SYSTEM_TIMER_1 = 1;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_IRQ_SYSTEM_TIMER_2 = 2;</code>
 +
| Already used by the VideoCore GPU (Do not use)
 +
|-
 +
| <code>BCM2835_IRQ_SYSTEM_TIMER_3 = 3;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|''Codec''
 +
|-
 +
| <code>BCM2835_IRQ_CODEC0  = 4;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_IRQ_CODEC1 = 5;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_IRQ_CODEC2 = 6;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|''JPEG''
 +
|-
 +
| <code>BCM2835_IRQ_JPEG = 7;</code>
 +
| Also available as IRQ 74 in the IRQ_basic_pending register
 +
|-
 +
|colspan="2"|''ISP''
 +
|-
 +
| <code>BCM2835_IRQ_ISP = 8;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|''USB (Synopsys DesignWare Hi-Speed USB 2.0 On-The-Go Controller)''
 +
|-
 +
| <code>BCM2835_IRQ_USB = 9;</code>
 +
| Also available as IRQ 75 in the IRQ_basic_pending register
 +
|-
 +
|colspan="2"|''3D''
 +
|-
 +
| <code>BCM2835_IRQ_3D = 10;</code>
 +
| Also available as IRQ 76 in the IRQ_basic_pending register
 +
|-
 +
|colspan="2"|''Transposer''
 +
|-
 +
| <code>BCM2835_IRQ_TRANSPOSER = 11;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|''Multicore Sync''
 +
|-
 +
| <code>BCM2835_IRQ_MULTICORESYNC0 = 12;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_IRQ_MULTICORESYNC1 = 13;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_IRQ_MULTICORESYNC2 = 14;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_IRQ_MULTICORESYNC3 = 15;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|''DMA''
 +
|-
 +
| <code>BCM2835_IRQ_DMA0 = 16;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_IRQ_DMA1 = 17;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_IRQ_DMA2 = 18;</code>
 +
| Also available as IRQ 77 in the IRQ_basic_pending register
 +
|-
 +
| <code>BCM2835_IRQ_DMA3 = 19;</code>
 +
| Also available as IRQ 78 in the IRQ_basic_pending register
 +
|-
 +
| <code>BCM2835_IRQ_DMA4 = 20;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_IRQ_DMA5 = 21;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_IRQ_DMA6 = 22;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_IRQ_DMA7 = 23;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_IRQ_DMA8 = 24;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_IRQ_DMA9 = 25;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_IRQ_DMA10 = 26;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_IRQ_DMA11_14 = 27;</code>
 +
| BCM2835_IRQ_DMA11 This IRQ is actually shared between DMA channels 11, 12, 13 and 14
 +
|-
 +
| <code>BCM2835_IRQ_DMA_ALL = 28;</code>
 +
| BCM2835_IRQ_DMA12 This IRQ is triggered by any DMA channel (all channels interrupt to allow DMA FIQ)
 +
|-
 +
|colspan="2"|''AUX (UART1, SPI1 and SPI2)''
 +
|-
 +
| <code>BCM2835_IRQ_AUX = 29;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|''ARM''
 +
|-
 +
| <code>BCM2835_IRQ_ARM = 30;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|''GPUDMA''
 +
|-
 +
| <code>BCM2835_IRQ_GPUDMA = 31;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|''IRQs 32 to 63 appear in the IRQ_pending_2 register''
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
|colspan="2"|''Hostport''
 +
|-
 +
| <code>BCM2835_IRQ_HOSTPORT = 32;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|''Videoscaler''
 +
|-
 +
| <code>BCM2835_IRQ_VIDEOSCALER = 33;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|''CCP2TX''
 +
|-
 +
| <code>BCM2835_IRQ_CCP2TX = 34;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|''SDC''
 +
|-
 +
| <code>BCM2835_IRQ_SDC = 35;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|''DSI0''
 +
|-
 +
| <code>BCM2835_IRQ_DSI0 = 36;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|''AVE''
 +
|-
 +
| <code>BCM2835_IRQ_AVE = 37;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|''CAM''
 +
|-
 +
| <code>BCM2835_IRQ_CAM0 = 38;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_IRQ_CAM1 = 39;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|''HDMI''
 +
|-
 +
| <code>BCM2835_IRQ_HDMI0 = 40;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_IRQ_HDMI1 = 41;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|''Pixelvalve
 +
|-
 +
| <code>BCM2835_IRQ_PIXELVALVE1 = 42;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|''I2C/SPI Slave''
 +
|-
 +
| <code>BCM2835_IRQ_I2CSPI = 43;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|''DSI1''
 +
|-
 +
| <code>BCM2835_IRQ_DSI1 = 44;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|''PWA''
 +
|-
 +
| <code>BCM2835_IRQ_PWA0 = 45;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_IRQ_PWA1 = 46;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|''CPR''
 +
|-
 +
| <code>BCM2835_IRQ_CPR = 47;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|''SMI''
 +
|-
 +
| <code>BCM2835_IRQ_SMI = 48;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|''GPIO''
 +
|-
 +
| <code>BCM2835_IRQ_GPIO_0 = 49;</code>
 +
| Bank0
 +
|-
 +
| <code>BCM2835_IRQ_GPIO_1 = 50;</code>
 +
| Bank1
 +
|-
 +
| <code>BCM2835_IRQ_GPIO_2 = 51;</code>
 +
| Bank2 (Non existent in BCM2835)
 +
|-
 +
| <code>BCM2835_IRQ_GPIO_ALL = 52;</code>
 +
| BCM2835_IRQ_GPIO_3 Any Bank (all banks interrupt to allow GPIO FIQ)
 +
|-
 +
|colspan="2"|''I2C''
 +
|-
 +
| <code>BCM2835_IRQ_I2C = 53;</code>
 +
| Also available as IRQ 79 in the IRQ_basic_pending register
 +
|-
 +
|colspan="2"|''SPI''
 +
|-
 +
| <code>BCM2835_IRQ_SPI = 54;</code>
 +
| Also available as IRQ 80 in the IRQ_basic_pending register
 +
|-
 +
|colspan="2"|''I2S PCM sound''
 +
|-
 +
| <code>BCM2835_IRQ_I2SPCM = 55;</code>
 +
| Also available as IRQ 81 in the IRQ_basic_pending register
 +
|-
 +
|colspan="2"|''SDHOST''
 +
|-
 +
| <code>BCM2835_IRQ_SDHOST = 56;</code>
 +
| Also available as IRQ 82 in the IRQ_basic_pending register
 +
|-
 +
|colspan="2"|''PL011 UART''
 +
|-
 +
| <code>BCM2835_IRQ_PL011 = 57;</code>
 +
| Also available as IRQ 83 in the IRQ_basic_pending register
 +
|-
 +
|colspan="2"|''Slimbus''
 +
|-
 +
| <code>BCM2835_IRQ_SLIMBUS = 58;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|''VEC''
 +
|-
 +
| <code>BCM2835_IRQ_VEC = 59;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|''CPG''
 +
|-
 +
| <code>BCM2835_IRQ_CPG = 60;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|''RNG''
 +
|-
 +
| <code>BCM2835_IRQ_RNG = 61;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|''SD card host controller (EMMC)''
 +
|-
 +
| <code>BCM2835_IRQ_SDHCI = 62;</code>
 +
| Also available as IRQ 84 in the IRQ_basic_pending register
 +
|-
 +
|colspan="2"|''AVSPMON''
 +
|-
 +
| <code>BCM2835_IRQ_AVSPMON = 63;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|''IRQs 64 to 84 appear in the IRQ_basic_pending register''
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
|colspan="2"|''ARM Timer''
 +
|-
 +
| <code>BCM2835_IRQ_ARM_TIMER = 64;</code>
 +
| ARM IRQ 0
 +
|-
 +
|colspan="2"|''ARM Mailbox''
 +
|-
 +
| <code>BCM2835_IRQ_ARM_MAILBOX = 65;</code>
 +
| ARM IRQ 1
 +
|-
 +
|colspan="2"|''ARM Doorbell''
 +
|-
 +
| <code>BCM2835_IRQ_ARM_DOORBELL0 = 66;</code>
 +
| ARM IRQ 2
 +
|-
 +
| <code>BCM2835_IRQ_ARM_DOORBELL1 = 67;</code>
 +
| ARM IRQ 3
 +
|-
 +
|colspan="2"|''ARM GPU Halted''
 +
|-
 +
| <code>BCM2835_IRQ_ARM_GPU0HALTED = 68;</code>
 +
| ARM IRQ 4
 +
|-
 +
| <code>BCM2835_IRQ_ARM_GPU1HALTED = 69;</code>
 +
| ARM IRQ 5
 +
|-
 +
|colspan="2"|''ARM Illegal Access''
 +
|-
 +
| <code>BCM2835_IRQ_ARM_ILLEGALTYPE0 = 70;</code>
 +
| ARM IRQ 6
 +
|-
 +
| <code>BCM2835_IRQ_ARM_ILLEGALTYPE1 = 71;</code>
 +
| ARM IRQ 7
 +
|-
 +
|colspan="2"|''ARM Pending''
 +
|-
 +
| <code>BCM2835_IRQ_ARM_PENDING0 = 72;</code>
 +
| ARM IRQ 8
 +
|-
 +
| <code>BCM2835_IRQ_ARM_PENDING1 = 73;</code>
 +
| ARM IRQ 9
 +
|-
 +
|colspan="2"|''ARM JPEG''
 +
|-
 +
| <code>BCM2835_IRQ_ARM_JPEG = 74;</code>
 +
| ARM IRQ 10
 +
|-
 +
|colspan="2"|''ARM USB''
 +
|-
 +
| <code>BCM2835_IRQ_ARM_USB = 75;</code>
 +
| ARM IRQ 11
 +
|-
 +
|colspan="2"|''ARM 3D''
 +
|-
 +
| <code>BCM2835_IRQ_ARM_3D = 76;</code>
 +
| ARM IRQ 12
 +
|-
 +
|colspan="2"|''ARM DMA''
 +
|-
 +
| <code>BCM2835_IRQ_ARM_DMA2 = 77;</code>
 +
| ARM IRQ 13
 +
|-
 +
| <code>BCM2835_IRQ_ARM_DMA3 = 78;</code>
 +
| ARM IRQ 14
 +
|-
 +
|colspan="2"|''ARM I2C''
 +
|-
 +
| <code>BCM2835_IRQ_ARM_I2C = 79;</code>
 +
| ARM IRQ 15
 +
|-
 +
|colspan="2"|''ARM SPI''
 +
|-
 +
| <code>BCM2835_IRQ_ARM_SPI = 80;</code>
 +
| ARM IRQ 16
 +
|-
 +
|colspan="2"|''ARM I2SPCM''
 +
|-
 +
| <code>BCM2835_IRQ_ARM_I2SPCM = 81;</code>
 +
| ARM IRQ 17
 +
|-
 +
|colspan="2"|''ARM SDHOST''
 +
|-
 +
| <code>BCM2835_IRQ_ARM_SDHOST = 82;</code>
 +
| ARM IRQ 18
 +
|-
 +
|colspan="2"|''ARM PL011 UART''
 +
|-
 +
| <code>BCM2835_IRQ_ARM_PL011 = 83;</code>
 +
| ARM IRQ 19
 +
|-
 +
|colspan="2"|''ARM SDHCI''
 +
|-
 +
| <code>BCM2835_IRQ_ARM_SDHCI = 84;</code>
 +
| ARM IRQ 20
 +
|-
 +
|colspan="2"|''IRQs 85 to 95 (ARM IRQs 21 to 31) are not assigned''
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
|colspan="2"|''Number of IRQs shared between the GPU and ARM (These correspond to the IRQs that show up in the IRQ_pending_1 and IRQ_pending_2 registers)''
 +
|-
 +
| <code>BCM2835_GPU_IRQ_COUNT = 64;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|''Number of ARM specific IRQs (These correspond to IRQs that show up in the first 8 bits of IRQ_basic_pending)''
 +
|-
 +
| <code>BCM2835_ARM_IRQ_COUNT = 32;</code>
 +
| Previously 8
 +
|-
 +
|colspan="2"|''Total number of IRQs available''
 +
|-
 +
| <code>BCM2835_IRQ_COUNT = BCM2835_GPU_IRQ_COUNT + BCM2835_ARM_IRQ_COUNT;</code>
 +
| 72
 +
|-
 +
|colspan="2"|''Total number of FIQs available''
 +
|-
 +
| <code>BCM2835_FIQ_COUNT = 1;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 system timer frequency''' <code> BCM2835_SYSTEM_TIMER_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>BCM2835_SYSTEM_TIMER_FREQUENCY = 1000000;</code>
 +
| Default clock frequency of the BCM2835 System Timer (1MHz)
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
|colspan="2"|''System Timer Control/Status register bits (See Section 12)''
 +
|-
 +
| <code>BCM2835_SYSTEM_TIMER_CS_0 = (1 shl 0);</code>
 +
| Already used by the VideoCore GPU (Do not use)
 +
|-
 +
| <code>BCM2835_SYSTEM_TIMER_CS_1 = (1 shl 1);</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_SYSTEM_TIMER_CS_2 = (1 shl 2);</code>
 +
| Already used by the VideoCore GPU (Do not use)
 +
|-
 +
| <code>BCM2835_SYSTEM_TIMER_CS_3 = (1 shl 3);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 DMA control and status''' <code> BCM2835_DMA_CS_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|See Section 4
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_DMA_CS_ACTIVE = (1 shl 0);</code>
 +
| Activate the DMA (This bit enables the DMA. The DMA will start if this bit is set and the CB_ADDR is non zero. The DMA transfer can be paused and resumed by clearing, then setting it again)
 +
|-
 +
| <code>BCM2835_DMA_CS_END = (1 shl 1);</code>
 +
| DMA End Flag (Set when the transfer described by the current control block is complete. Write 1 to clear)
 +
|-
 +
| <code>BCM2835_DMA_CS_INT = (1 shl 2);</code>
 +
| Interrupt Status (This is set when the transfer for the CB ends and INTEN is set to 1. Write 1 to clear)
 +
|-
 +
| <code>BCM2835_DMA_CS_DREQ = (1 shl 3);</code>
 +
| DREQ State (Indicates the state of the selected DREQ (Data Request) signal, ie. the DREQ selected by the PERMAP field of the transfer info)
 +
|-
 +
| <code>BCM2835_DMA_CS_PAUSED = (1 shl 4);</code>
 +
| DMA Paused State (Indicates if the DMA is currently paused and not transferring data)
 +
|-
 +
| <code>BCM2835_DMA_CS_DREQ_PAUSED = (1 shl 5);</code>
 +
| DMA Paused by DREQ State (Indicates if the DMA is currently paused and not transferring data due to the DREQ being inactive)
 +
|-
 +
| <code>BCM2835_DMA_CS_WAITING_FOR_OUTSTANDING_WRITES = (1 shl 6);</code>
 +
| DMA is Waiting for the Last Write to be Received (Indicates if the DMA is currently waiting for any outstanding writes to be received, and is not transferring data)
 +
|-
 +
|colspan="2"|''Bit 7 Reserved - Write as 0, read as don't care''
 +
|-
 +
| <code>BCM2835_DMA_CS_ERROR  = (1 shl 8);</code>
 +
| DMA Error (Indicates if the DMA has detected an error)
 +
|-
 +
|colspan="2"|''Bits 9:15 Reserved - Write as 0, read as don't care''
 +
|-
 +
| <code>BCM2835_DMA_CS_PRIORITY = ($F shl 16);</code>
 +
| AXI Priority Level (Sets the priority of normal AXI bus transactions. Zero is the lowest priority)
 +
|-
 +
| <code>BCM2835_DMA_CS_PANIC_PRIORITY  = ($F shl 20);</code>
 +
| AXI Panic Priority Level (Sets the priority of panicking AXI bus transactions)
 +
|-
 +
|colspan="2"|''Bits 24:27 Reserved - Write as 0, read as don't care''
 +
|-
 +
| <code>BCM2835_DMA_CS_WAIT_FOR_OUTSTANDING_WRITES = (1 shl 28);</code>
 +
| Wait for outstanding writes (When set to 1, the DMA will keep a tally of the AXI writes going out and the write responses coming in)
 +
|-
 +
| <code>BCM2835_DMA_CS_DISDEBUG = (1 shl 29);</code>
 +
| Disable debug pause signal (When set to 1, the DMA will not stop when the debug pause signal is asserted)
 +
|-
 +
| <code>BCM2835_DMA_CS_ABORT = (1 shl 30);</code>
 +
| Abort DMA (Writing a 1 to this bit will abort the current DMA CB. The DMA will load the next CB and attempt to continue. The bit cannot be read, and will self clear)
 +
|-
 +
| <code>BCM2835_DMA_CS_RESET = (1 shl 31);</code>
 +
| DMA Channel Reset (Writing a 1 to this bit will reset the DMA. The bit cannot be read, and will self clear)
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_DMA_CS_PRIORITY_SHIFT = 16;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_DMA_CS_PANIC_PRIORITY_SHIFT = 20;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_DMA_CS_PRIORITY_DEFAULT = 0;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_DMA_CS_PRIORITY_MAX = 15;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 DMA transfer information''' <code> BCM2835_DMA_TI_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|See Section 4
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_DMA_TI_INTEN = (1 shl 0);</code>
 +
| Interrupt Enable (1 = Generate an interrupt when the transfer described by the current Control Block completes)
 +
|-
 +
| <code>BCM2835_DMA_TI_2DMODE = (1 shl 1);</code>
 +
| 2D Mode (1 = 2D mode interpret the TXFR_LEN register as YLENGTH number of transfers each of XLENGTH, and add the strides to the address after each transfer)
 +
|-
 +
|colspan="2"|''Bit 2 Reserved - Write as 0, read as don't care''
 +
|-
 +
| <code>BCM2835_DMA_TI_WAIT_RESP = (1 shl 3);</code>
 +
| Wait for a Write Response (When set this makes the DMA wait until it receives the AXI write response for each write. This ensures that multiple writes cannot get stacked in the AXI bus pipeline)
 +
|-
 +
| <code>BCM2835_DMA_TI_DEST_INC = (1 shl 4);</code>
 +
| Destination Address Increment (1 = Destination address increments after each write The address will increment by 4, if DEST_WIDTH=0 else by 32)
 +
|-
 +
| <code>BCM2835_DMA_TI_DEST_WIDTH = (1 shl 5);</code>
 +
| Destination Transfer Width (1 = Use 128-bit destination write width. 0 = Use 32-bit destination write width)
 +
|-
 +
| <code>BCM2835_DMA_TI_DEST_DREQ = (1 shl 6);</code>
 +
| Control Destination Writes with DREQ (1 = The DREQ selected by PERMAP will gate the destination writes)
 +
|-
 +
| <code>BCM2835_DMA_TI_DEST_IGNORE = (1 shl 7);</code>
 +
| Ignore Writes (1 = Do not perform destination writes. 0 = Write data to destination)
 +
|-
 +
| <code>BCM2835_DMA_TI_SRC_INC = (1 shl 8);</code>
 +
| Source Address Increment (1 = Source address increments after each read. The address will increment by 4, if S_WIDTH=0 else by 32)
 +
|-
 +
| <code>BCM2835_DMA_TI_SRC_WIDTH = (1 shl 9);</code>
 +
| Source Transfer Width (1 = Use 128-bit source read width. 0 = Use 32-bit source read width)
 +
|-
 +
| <code>BCM2835_DMA_TI_SRC_DREQ = (1 shl 10);</code>
 +
| Control Source Reads with DREQ (1 = The DREQ selected by PERMAP will gate the source reads)
 +
|-
 +
| <code>BCM2835_DMA_TI_SRC_IGNORE = (1 shl 11);</code>
 +
| Ignore Reads (1 = Do not perform source reads. In addition, destination writes will zero all the write strobes. This is used for fast cache fill operations)
 +
|-
 +
| <code>BCM2835_DMA_TI_BURST_LENGTH = ($F shl 12);</code>
 +
| Burst Transfer Length (Indicates the burst length of the DMA transfers)
 +
|-
 +
| <code>BCM2835_DMA_TI_PERMAP = ($1F shl 16);</code>
 +
| Peripheral Mapping (Indicates the peripheral number (1-31) whose ready signal shall be used to control the rate of the transfers)
 +
|-
 +
| <code>BCM2835_DMA_TI_WAITS = ($3E shl 21);</code>
 +
| Add Wait Cycles (This slows down the DMA throughput by setting the number of dummy cycles burnt after each DMA read or write operation is completed)
 +
|-
 +
| <code>BCM2835_DMA_TI_NO_WIDE_BURSTS = (1 shl 26);</code>
 +
| Don't Do wide writes as a 2 beat burst (This prevents the DMA from issuing wide writes as 2 beat AXI bursts. This is an inefficient access mode, so the default is to use the bursts)
 +
|-
 +
|colspan="2"|''Bits 27:31 Reserved - Write as 0, read as don't care''
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
|colspan="2"|Note: BCM2835_DMA_TI_2DMODE, BCM2835_DMA_TI_DEST_IGNORE, BCM2835_DMA_TI_SRC_IGNORE and BCM2835_DMA_TI_NO_WIDE_BURSTS not available on DMA Lite channels
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_DMA_TI_PERMAP_SHIFT = 16;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_DMA_TI_BURST_LENGTH_SHIFT = 12;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_DMA_TI_BURST_LENGTH_DEFAULT = 0;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_DMA_TI_BURST_LENGTH_MAX = 15;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 DMA transfer length''' <code> BCM2835_DMA_TXFR_LEN_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|See Section 4
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_DMA_TXFR_LEN_XLENGTH = ($FFFF shl 0);</code>
 +
| Transfer Length in bytes
 +
|-
 +
| <code>BCM2835_DMA_TXFR_LEN_YLENGTH = ($3FFF shl 16);</code>
 +
| When in 2D mode, This is the Y transfer length, indicating how many xlength transfers are performed. When in normal linear mode this becomes the top bits of the XLENGTH
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
|colspan="2"|Note: BCM2835_DMA_TXFR_LEN_YLENGTH not available on DMA Lite channels
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 DMA 2D stride''' <code> BCM2835_DMA_STRIDE_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|See Section 4
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_DMA_STRIDE_S_STRIDE = ($FFFF shl 0);</code>
 +
| Destination Stride (2D Mode) (Signed (2 s complement) byte increment to apply to the destination address at the end of each row in 2D mode)
 +
|-
 +
| <code>BCM2835_DMA_STRIDE_D_STRIDE = ($FFFF shl 16);</code>
 +
| Source Stride (2D Mode) (Signed (2 s complement) byte increment to apply to the source address at the end of each row in 2D mode)
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
|colspan="2"|Note: BCM2835_DMA_STRIDE_S_STRIDE and BCM2835_DMA_STRIDE_D_STRIDE not available on DMA Lite channels
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 DMA debug''' <code> BCM2835_DMA_DEBUG_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|See Section 4
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_DMA_DEBUG_READ_LAST_NOT_SET_ERROR = (1 shl 0);</code>
 +
| Read Last Not Set Error
 +
|-
 +
| <code>BCM2835_DMA_DEBUG_FIFO_ERROR = (1 shl 1);</code>
 +
| Fifo Error
 +
|-
 +
| <code>BCM2835_DMA_DEBUG_READ_ERROR = (1 shl 2);</code>
 +
| Slave Read Response Error
 +
|-
 +
|colspan="2"|''Bit 3 Reserved - Write as 0, read as don't care''
 +
|-
 +
| <code>BCM2835_DMA_DEBUG_OUTSTANDING_WRITES = ($F shl 4);</code>
 +
| DMA Outstanding Writes Counter
 +
|-
 +
| <code>BCM2835_DMA_DEBUG_DMA_ID = ($FF shl 8);</code>
 +
| DMA Id
 +
|-
 +
| <code>BCM2835_DMA_DEBUG_DMA_STATE = ($1FF shl 16);</code>
 +
| DMA State Machine State
 +
|-
 +
| <code>BCM2835_DMA_DEBUG_VERSION = (7 shl 25);</code>
 +
| DMA Version
 +
|-
 +
| <code>BCM2835_DMA_DEBUG_LITE = (1 shl 28);</code>
 +
| DMA Lite
 +
|-
 +
|colspan="2"|''Bits 29:31 Reserved - Write as 0, read as don't care''
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 DMA engine interrupt status''' <code> BCM2835_DMA_INT_STATUS_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|See Section 4
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_DMA_INT_STATUS_0 = (1 shl 0);</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>BCM2835_DMA_INT_STATUS_1 = (1 shl 1);</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_DMA_INT_STATUS_2 = (1 shl 2);</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_DMA_INT_STATUS_3 = (1 shl 3);</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_DMA_INT_STATUS_4 = (1 shl 4);</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_DMA_INT_STATUS_5 = (1 shl 5);</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_DMA_INT_STATUS_6 = (1 shl 6);</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_DMA_INT_STATUS_7 = (1 shl 7);</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_DMA_INT_STATUS_8 = (1 shl 8);</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_DMA_INT_STATUS_9 = (1 shl 9);</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_DMA_INT_STATUS_10 = (1 shl 10);</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_DMA_INT_STATUS_11 = (1 shl 11);</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_DMA_INT_STATUS_12 = (1 shl 12);</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_DMA_INT_STATUS_13 = (1 shl 13);</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_DMA_INT_STATUS_14 = (1 shl 14);</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_DMA_INT_STATUS_15 = (1 shl 15);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 DMA engine enable''' <code> BCM2835_DMA_ENABLE_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|See Section 4
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_DMA_ENABLE_0 = (1 shl 0);</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>BCM2835_DMA_ENABLE_1 = (1 shl 1);</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_DMA_ENABLE_2 = (1 shl 2);</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_DMA_ENABLE_3 = (1 shl 3);</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_DMA_ENABLE_4 = (1 shl 4);</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_DMA_ENABLE_5 = (1 shl 5);</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_DMA_ENABLE_6 = (1 shl 6);</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_DMA_ENABLE_7 = (1 shl 7);</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_DMA_ENABLE_8 = (1 shl 8);</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_DMA_ENABLE_9 = (1 shl 9);</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_DMA_ENABLE_10 = (1 shl 10);</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_DMA_ENABLE_11 = (1 shl 11);</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_DMA_ENABLE_12 = (1 shl 12);</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_DMA_ENABLE_13 = (1 shl 13);</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_DMA_ENABLE_14 = (1 shl 14);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 DMA engine DREQ peripheral''' <code> BCM2835_DMA_DREQ_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|See Section 4
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_DMA_DREQ_NONE = 0;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_DMA_DREQ_DSI0 = 1;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_DMA_DREQ_PCMTX = 2;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_DMA_DREQ_PCMRX = 3;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_DMA_DREQ_SMI = 4;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_DMA_DREQ_PWM = 5;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_DMA_DREQ_SPITX = 6;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_DMA_DREQ_SPIRX = 7;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_DMA_DREQ_BSCSPITX = 8;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_DMA_DREQ_BSCSPIRX = 9;</code>
 +
| BSC/SPI Slave
 +
|-
 +
| <code>BCM2835_DMA_DREQ_RESERVED1 = 10;</code>
 +
| BSC/SPI Slave
 +
|-
 +
| <code>BCM2835_DMA_DREQ_EMMC = 11;</code>
 +
| SDHCI
 +
|-
 +
| <code>BCM2835_DMA_DREQ_UARTTX = 12;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_DMA_DREQ_SDHOST = 13;</code>
 +
| SDHOST
 +
|-
 +
| <code>BCM2835_DMA_DREQ_UARTRX = 14;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_DMA_DREQ_DSI1 = 15;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_DMA_DREQ_SLIMBUS_MCTX = 16;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_DMA_DREQ_HDMI = 17;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_DMA_DREQ_SLIMBUS_MCRX = 18;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_DMA_DREQ_SLIMBUS_DC0 = 19;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_DMA_DREQ_SLIMBUS_DC1 = 20;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_DMA_DREQ_SLIMBUS_DC2 = 21;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_DMA_DREQ_SLIMBUS_DC3 = 22;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_DMA_DREQ_SLIMBUS_DC4 = 23;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_DMA_DREQ_SCALER_FIFO0 = 24;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_DMA_DREQ_SCALER_FIFO1 = 25;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_DMA_DREQ_SCALER_FIFO2 = 26;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_DMA_DREQ_SLIMBUS_DC5 = 27;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_DMA_DREQ_SLIMBUS_DC6 = 28;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_DMA_DREQ_SLIMBUS_DC7 = 29;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_DMA_DREQ_SLIMBUS_DC8 = 30;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_DMA_DREQ_SLIMBUS_DC9 = 31;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 BSC (I2C0/1/2) control''' <code> BCM2835_BSC_C_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|See Section 3.2
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_BSC_C_I2CEN = (1 shl 15);</code>
 +
| I2C Enable (0 = BSC controller is disabled/1 = BSC controller is enabled)
 +
|-
 +
| <code>BCM2835_BSC_C_INTR = (1 shl 10);</code>
 +
| INTR Interrupt on RX (0 = Don't generate interrupts on RXR condition/1 = Generate interrupt while RXR = 1)
 +
|-
 +
| <code>BCM2835_BSC_C_INTT = (1 shl 9);</code>
 +
| INTT Interrupt on TX (0 = Don't generate interrupts on TXW condition/1 = Generate interrupt while TXW = 1)
 +
|-
 +
| <code>BCM2835_BSC_C_INTD = (1 shl 8);</code>
 +
| INTD Interrupt on DONE (0 = Don't generate interrupts on DONE condition/1 = Generate interrupt while DONE = 1)
 +
|-
 +
| <code>BCM2835_BSC_C_ST = (1 shl 7);</code>
 +
| ST Start Transfer (0 = No action/1 = Start a new transfer. One shot operation. Read back as 0)
 +
|-
 +
| <code>BCM2835_BSC_C_CLEAR = (1 shl 5);</code>
 +
| CLEAR FIFO Clear (00 = No action/x1 = Clear FIFO. One shot operation/1x = Clear FIFO. One shot operation)
 +
|-
 +
| <code>BCM2835_BSC_C_READ = (1 shl 0);</code>
 +
| READ Read Transfer (0 = Write Packet Transfer/1 = Read Packet Transfer)
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 BSC (I2C0/1/2) status''' <code> BCM2835_BSC_S_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|See Section 3.2
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_BSC_S_CLKT = (1 shl 9);</code>
 +
| CLKT Clock Stretch Timeout (0 = No errors detected. 1 = Slave has held the SCL signal low (clock stretching) for longer and that specified in the I2CCLKT register Cleared by writing 1 to the field)
 +
|-
 +
| <code>BCM2835_BSC_S_ERR = (1 shl 8);</code>
 +
| ERR ACK Error (0 = No errors detected. 1 = Slave has not acknowledged its address. Cleared by writing 1 to the field)
 +
|-
 +
| <code>BCM2835_BSC_S_RXF = (1 shl 7); </code>
 +
| RXF - FIFO Full (0 = FIFO is not full. 1 = FIFO is full. If a read is underway, no further serial data will be received until data is read from FIFO)
 +
|-
 +
| <code>BCM2835_BSC_S_TXE = (1 shl 6);</code>
 +
| TXE - FIFO Empty (0 = FIFO is not empty. 1 = FIFO is empty. If a write is underway, no further serial data can be transmitted until data is written to the FIFO)
 +
|-
 +
| <code>BCM2835_BSC_S_RXD = (1 shl 5);</code>
 +
| RXD - FIFO contains Data (0 = FIFO is empty. 1 = FIFO contains at least 1 byte. Cleared by reading sufficient data from FIFO)
 +
|-
 +
| <code>BCM2835_BSC_S_TXD = (1 shl 4);</code>
 +
| TXD - FIFO can accept Data (0 = FIFO is full. The FIFO cannot accept more data. 1 = FIFO has space for at least 1 byte)
 +
|-
 +
| <code>BCM2835_BSC_S_RXR = (1 shl 3);</code>
 +
| RXR - FIFO needs Reading (full) (0 = FIFO is less than full and a read is underway. 1 = FIFO is or more full and a read is underway. Cleared by reading sufficient data from the FIFO)
 +
|-
 +
| <code>BCM2835_BSC_S_TXW = (1 shl 2);</code>
 +
| TXW - FIFO needs Writing (full) (0 = FIFO is at least full and a write is underway (or sufficient data to send). 1 = FIFO is less then full and a write is underway. Cleared by writing sufficient data to the FIFO)
 +
|-
 +
| <code>BCM2835_BSC_S_DONE = (1 shl 1);</code>
 +
| DONE Transfer Done (0 = Transfer not completed. 1 = Transfer complete. Cleared by writing 1 to the field)
 +
|-
 +
| <code>BCM2835_BSC_S_TA = (1 shl 0);</code>
 +
| TA Transfer Active (0 = Transfer not active. 1 = Transfer active)
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 BSC (I2C0/1/2) data length''' <code> BCM2835_BSC_DLEN_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|See Section 3.2
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_BSC_DLEN_MASK = $FFFF;</code>
 +
| Data Length. (Writing to DLEN specifies the number of bytes to be transmitted/received. Reading from DLEN when TA = 1 or DONE = 1, returns the number of bytes still to be transmitted or received)
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 BSC (I2C0/1/2) slave address''' <code> BCM2835_BSC_A_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|See Section 3.2
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_BSC_A_MASK = $7F;</code>
 +
| Slave Address
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 BSC (I2C0/1/2) data FIFO''' <code> BCM2835_BSC_FIFO_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|See Section 3.2
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_BSC_FIFO_MASK = $FF;</code>
 +
| Writes to the register write transmit data to the FIFO. Reads from register reads received data from the FIFO
 +
|-
 +
| <code>BCM2835_BSC_FIFO_SIZE = 16;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 BSC (I2C0/1/2) clock divider''' <code> BCM2835_BSC_CDIV_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|See Section 3.2
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_BSC_CDIV_MASK = $FFFF;</code>
 +
| Clock Divider (SCL = core clock/CDIV) (CDIV is always rounded down to an even number)
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 BSC (I2C0/1/2) data delay''' <code> BCM2835_BSC_DEL_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|See Section 3.2
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_BSC_DEL_FEDL_MASK = ($FFFF shl 16);</code>
 +
| FEDL Falling Edge Delay (Number of core clock cycles to wait after the falling edge of SCL before outputting next bit of data)
 +
|-
 +
| <code>BCM2835_BSC_DEL_REDL_MASK = ($FFFF shl 0);</code>
 +
| REDL Rising Edge Delay (Number of core clock cycles to wait after the rising edge of SCL before reading the next bit of data)
 +
|-
 +
| <code>BCM2835_BSC_DEL_FEDL_SHIFT = 16;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_BSC_DEL_REDL_SHIFT = 0;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 BSC (I2C0/1/2) clock stretch timeout''' <code> BCM2835_BSC_CLKT_TOUT_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|See Section 3.2
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_BSC_CLKT_TOUT_MASK = $FFFF;</code>
 +
| TOUT Clock Stretch Timeout Value (Number of SCL clock cycles to wait after the rising edge of SCL before deciding that the slave is not responding)
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 SPI0''' <code> BCM2835_SPI0_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|See Section 10.5
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_SPI0_CS_LEN_LONG = (1 shl 25);</code>
 +
| Enable Long data word in Lossi mode if DMA_LEN is set (0 = writing to the FIFO will write a single byte/1 = writing to the FIFO will write a 32 bit word)
 +
|-
 +
| <code>BCM2835_SPI0_CS_DMA_LEN = (1 shl 24);</code>
 +
| Enable DMA mode in Lossi mode
 +
|-
 +
| <code>BCM2835_SPI0_CS_CSPOL2 = (1 shl 23);</code>
 +
| Chip Select 2 Polarity (0 = Chip select is active low/1 = Chip select is active high)
 +
|-
 +
| <code>BCM2835_SPI0_CS_CSPOL1 = (1 shl 22);</code>
 +
| Chip Select 1 Polarity (0 = Chip select is active low/1 = Chip select is active high)
 +
|-
 +
| <code>BCM2835_SPI0_CS_CSPOL0 = (1 shl 21);</code>
 +
| Chip Select 0 Polarity (0 = Chip select is active low/1 = Chip select is active high)
 +
|-
 +
| <code>BCM2835_SPI0_CS_RXF = (1 shl 20);</code>
 +
| RXF - RX FIFO Full (0 = RXFIFO is not full/1 = RX FIFO is full. No further serial data will be sent/received until data is read from FIFO)
 +
|-
 +
| <code>BCM2835_SPI0_CS_RXR = (1 shl 19);</code>
 +
| RXR RX FIFO needs Reading (full) (0 = RX FIFO is less than full (or not active TA = 0)/1 = RX FIFO is or more full. Cleared by reading sufficient data from the RX FIFO or setting TA to 0)
 +
|-
 +
| <code>BCM2835_SPI0_CS_TXD = (1 shl 18);</code>
 +
| TXD TX FIFO can accept Data (0 = TX FIFO is full and so cannot accept more data/1 = TX FIFO has space for at least 1 byte)
 +
|-
 +
| <code>BCM2835_SPI0_CS_RXD = (1 shl 17);</code>
 +
| RXD RX FIFO contains Data (0 = RX FIFO is empty/1 = RX FIFO contains at least 1 byte)
 +
|-
 +
| <code>BCM2835_SPI0_CS_DONE = (1 shl 16);</code>
 +
| DONE Transfer Done (0 = Transfer is in progress (or not active TA = 0 /1 = Transfer is complete. Cleared by writing more data to the TX FIFO or setting TA to 0)
 +
|-
 +
| <code>BCM2835_SPI0_CS_TE_EN = (1 shl 15);</code>
 +
| Unused
 +
|-
 +
| <code>BCM2835_SPI0_CS_LMONO = (1 shl 14);</code>
 +
| Unused
 +
|-
 +
| <code>BCM2835_SPI0_CS_LEN = (1 shl 13);</code>
 +
| LEN LoSSI enable (0 = The serial interface will behave as an SPI master/1 = The serial interface will behave as a LoSSI master)
 +
|-
 +
| <code>BCM2835_SPI0_CS_REN = (1 shl 12);</code>
 +
| REN Read Enable. If this bit is set, the SPI peripheral will be able to send data to this device (0 = We intend to write to the SPI peripheral/1 = We intend to read from the SPI peripheral)
 +
|-
 +
| <code>BCM2835_SPI0_CS_ADCS = (1 shl 11);</code>
 +
| ADCS Automatically Deassert Chip Select (0 = Don't automatically deassert chip select at the end of a DMA transfer chip select is manually controlled by software/1 = Automatically deassert chip select at the end of a DMA transfer as determined by SPIDLEN)
 +
|-
 +
| <code>BCM2835_SPI0_CS_INTR = (1 shl 10);</code>
 +
| INTR Interrupt on RXR (0 = Don't generate interrupts on RX FIFO condition/1 = Generate interrupt while RXR = 1)
 +
|-
 +
| <code>BCM2835_SPI0_CS_INTD = (1 shl 9);</code>
 +
| INTD Interrupt on Done (0 = Don't generate interrupt on transfer complete/1 = Generate interrupt when DONE = 1)
 +
|-
 +
| <code>BCM2835_SPI0_CS_DMAEN = (1 shl 8);</code>
 +
| DMAEN DMA Enable (0 = No DMA requests will be issued/1 = Enable DMA operation. Peripheral generates data requests. These will be taken in four-byte words until the SPIDLEN has been reached
 +
|-
 +
| <code>BCM2835_SPI0_CS_TA = (1 shl 7);</code>
 +
| Transfer Active (0 = Transfer not active/1 = Transfer active)
 +
|-
 +
| <code>BCM2835_SPI0_CS_CSPOL = (1 shl 6);</code>
 +
| Chip Select Polarity (0 = Chip select lines are active low/1 = Chip select lines are active high
 +
|-
 +
| <code>BCM2835_SPI0_CS_CLEAR_RX = (1 shl 5);</code>
 +
| CLEAR FIFO Clear (00 = No action/x1 = Clear TX FIFO. One shot operation/1x = Clear RX FIFO. One shot operation)
 +
|-
 +
| <code>BCM2835_SPI0_CS_CLEAR_TX = (1 shl 4);</code>
 +
| As above
 +
|-
 +
| <code>BCM2835_SPI0_CS_CPOL = (1 shl 3);</code>
 +
| Clock Polarity (0 = Rest state of clock = low/1 = Rest state of clock = high)
 +
|-
 +
| <code>BCM2835_SPI0_CS_CPHA = (1 shl 2);</code>
 +
| Clock Phase (0 = First SCLK transition at middle of data bit/1 = First SCLK transition at beginning of data bit)
 +
|-
 +
| <code>BCM2835_SPI0_CS_CS_0 = (0 shl 0);</code>
 +
| Chip Select (00 = Chip select 0/01 = Chip select 1/10 = Chip select 2/11 = Reserved
 +
|-
 +
| <code>BCM2835_SPI0_CS_CS_1 = (1 shl 0);</code>
 +
| As above
 +
|-
 +
| <code>BCM2835_SPI0_CS_CS_2 = (2 shl 0);</code>
 +
| As above
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_SPI0_CS_CS_MASK = (3 shl 0);</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_SPI0_FIFO_DMA_DATA = $FFFFFFFF;</code>
 +
| DMA Mode (DMAEN set) If TA is clear, the first 32-bit write to this register will control SPIDLEN and SPICS. Subsequent reads and writes will be taken as four-byte data words to be read/written to the FIFOs
 +
|-
 +
| <code>BCM2835_SPI0_FIFO_IRQ_DATA = $000000FF;</code>
 +
| Poll/Interrupt Mode (DMAEN clear, TA set) Writes to the register write bytes to TX FIFO. Reads from register read bytes from the RX FIFO
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_SPI0_CLK_CDIV = $0000FFFF;</code>
 +
| Clock Divider (SCLK = Core Clock/CDIV) If CDIV is set to 0, the divisor is 65536. The divisor must be a multiple of 2. Odd numbers rounded down. The maximum SPI clock rate is of the APB clock
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_SPI0_DLEN_LEN = $0000FFFF;</code>
 +
| Data Length. The number of bytes to transfer. This field is only valid for DMA mode (DMAEN set) and controls how many bytes to transmit (and therefore receive)
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_SPI0_LTOH_TOH = $0000000F;</code>
 +
| This sets the Output Hold delay in APB clocks (A value of 0 causes a 1 clock delay)
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_SPI0_DC_RPANIC = ($FF shl 24);</code>
 +
| DMA Read Panic Threshold (Generate the Panic signal to the RX DMA engine whenever the RX FIFO level is greater than this amount)
 +
|-
 +
| <code>BCM2835_SPI0_DC_RDREQ = ($FF shl 16);</code>
 +
| DMA Read Request Threshold (Generate A DREQ to the RX DMA engine whenever the RX FIFO level is greater than this amount) (RX DREQ is also generated if thetransfer has finished but the RXFIFO isn't empty)
 +
|-
 +
| <code>BCM2835_SPI0_DC_TPANIC = ($FF shl 8);</code>
 +
| DMA Write Panic Threshold (Generate the Panic signal to the TX DMA engine whenever the TX FIFO level is less than or equal to this amount)
 +
|-
 +
| <code>BCM2835_SPI0_DC_TDREQ = ($FF shl 0);</code>
 +
| DMA Write Request Threshold (Generate a DREQ signal to the TX DMA engine whenever the TX FIFO level is less than or equal to this amount)
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''I2C/SPI slave DR (Data) register''' <code> BCM2835_I2CSPI_DR_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|See Section 11.2
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_I2CSPI_DR_RXFLEVEL_MASK  = ($1F shl 27);</code>
 +
| RX FIFO Level
 +
|-
 +
| <code>BCM2835_I2CSPI_DR_RXFLEVEL_SHIFT = 27;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_I2CSPI_DR_TXFLEVEL_MASK  = ($1F shl 22);</code>
 +
| TX FIFO Level
 +
|-
 +
| <code>BCM2835_I2CSPI_DR_TXFLEVEL_SHIFT = 22;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_I2CSPI_DR_RXBUSY = (1 shl 21);</code>
 +
| Receive Busy
 +
|-
 +
| <code>BCM2835_I2CSPI_DR_TXFE = (1 shl 20);</code>
 +
| TX FIFO Empty
 +
|-
 +
| <code>BCM2835_I2CSPI_DR_RXFF = (1 shl 19);</code>
 +
| RX FIFO Full
 +
|-
 +
| <code>BCM2835_I2CSPI_DR_TXFF = (1 shl 18);</code>
 +
| TX FIFO Full
 +
|-
 +
| <code>BCM2835_I2CSPI_DR_RXFE = (1 shl 17);</code>
 +
| RX FIFO Empty
 +
|-
 +
| <code>BCM2835_I2CSPI_DR_TXBUSY = (1 shl 16);</code>
 +
| Transmit Busy
 +
|-
 +
| <code>BCM2835_I2CSPI_DR_UE = (1 shl 9);</code>
 +
| TX Underrun Error
 +
|-
 +
| <code>BCM2835_I2CSPI_DR_OE = (1 shl 8);</code>
 +
| RX Overrun Error
 +
|-
 +
| <code>BCM2835_I2CSPI_DR_DATA_MASK = ($FF shl 0);</code>
 +
| Received/Transferred data
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''I2C/SPI slave RSR (Status) register''' <code> BCM2835_I2CSPI_RSR_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|See Section 11.2
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_I2CSPI_RSR_UE = (1 shl 1);</code>
 +
| TX Underrun Error
 +
|-
 +
| <code>BCM2835_I2CSPI_RSR_OE = (1 shl 0);</code>
 +
| RX Overrun Error
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''I2C/SPI slave SLV (Slave) register''' <code> BCM2835_I2CSPI_SLV_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|See Section 11.2
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_I2CSPI_SLV_ADDR_MASK = ($7F shl 0);</code>
 +
| I2C Slave Address
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''I2C/SPI slave CR (Control) register''' <code> BCM2835_I2CSPI_CR_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|See Section 11.2
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_I2CSPI_CR_INV_TXF = (1 shl 13);</code>
 +
| Inverse TX status flags
 +
|-
 +
| <code>BCM2835_I2CSPI_CR_TESTFIFO = (1 shl 11);</code>
 +
| TEST FIFO
 +
|-
 +
| <code>BCM2835_I2CSPI_CR_INV_RXF = (1 shl 10);</code>
 +
| Inverse RX status flags
 +
|-
 +
| <code>BCM2835_I2CSPI_CR_RXE = (1 shl 9);</code>
 +
| Receive Enable
 +
|-
 +
| <code>BCM2835_I2CSPI_CR_TXE = (1 shl 8);</code>
 +
| Transmit Enable
 +
|-
 +
| <code>BCM2835_I2CSPI_CR_BRK = (1 shl 7);</code>
 +
| Break current operation
 +
|-
 +
| <code>BCM2835_I2CSPI_CR_CPOL = (1 shl 4);</code>
 +
| Clock Polarity
 +
|-
 +
| <code>BCM2835_I2CSPI_CR_CPHA = (1 shl 3);</code>
 +
| Clock Phase
 +
|-
 +
| <code>BCM2835_I2CSPI_CR_I2C = (1 shl 2);</code>
 +
| I2C Enable
 +
|-
 +
| <code>BCM2835_I2CSPI_CR_SPI = (1 shl 1);</code>
 +
| SPI Enable
 +
|-
 +
| <code>BCM2835_I2CSPI_CR_EN = (1 shl 0);</code>
 +
| Enable Device
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''I2C/SPI slave FR (Flags) register''' <code> BCM2835_I2CSPI_FR_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|See Section 11.2
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_I2CSPI_RXFLEVEL_MASK = ($1F shl 11);</code>
 +
| RX FIFO Level
 +
|-
 +
| <code>BCM2835_I2CSPI_RXFLEVEL_SHIFT = 11;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_I2CSPI_TXFLEVEL_MASK = ($1F shl 6);</code>
 +
| TX FIFO Level
 +
|-
 +
| <code>BCM2835_I2CSPI_TXFLEVEL_SHIFT = 6;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_I2CSPI_FR_RXBUSY = (1 shl 5);</code>
 +
| Receive Busy
 +
|-
 +
| <code>BCM2835_I2CSPI_FR_TXFE = (1 shl 4);</code>
 +
| TX FIFO Empty
 +
|-
 +
| <code>BCM2835_I2CSPI_FR_RXFF = (1 shl 3);</code>
 +
| RX FIFO Full
 +
|-
 +
| <code>BCM2835_I2CSPI_FR_TXFF = (1 shl 2);</code>
 +
| TX FIFO Full
 +
|-
 +
| <code>BCM2835_I2CSPI_FR_RXFE = (1 shl 1);</code>
 +
| RX FIFO Empty
 +
|-
 +
| <code>BCM2835_I2CSPI_FR_TXBUSY = (1 shl 0);</code>
 +
| Transmit Busy
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''I2C/SPI slave IFLS (Interrupt FIFO Level Select) register''' <code> BCM2835_I2CSPI_IFLS_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|See Section 11.2
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_I2CSPI_IFLS_RXIFLSEL_MASK = (7 shl 3);</code>
 +
| RX Interrupt FIFO Level Select
 +
|-
 +
| <code>BCM2835_I2CSPI_IFLS_RXIFLSEL_SHIFT = 3;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_I2CSPI_IFLS_RXIFLSEL1_8 = (0 shl 3);</code>
 +
| 000 RX FIFO gets 1/8 full
 +
|-
 +
| <code>BCM2835_I2CSPI_IFLS_RXIFLSEL1_4 = (1 shl 3);</code>
 +
| 001 RX FIFO gets 1/4 full
 +
|-
 +
| <code>BCM2835_I2CSPI_IFLS_RXIFLSEL1_2 = (2 shl 3);</code>
 +
| 010 RX FIFO gets 1/2 full
 +
|-
 +
| <code>BCM2835_I2CSPI_IFLS_RXIFLSEL3_4 = (3 shl 3);</code>
 +
| 011 RX FIFO gets 3/4 full
 +
|-
 +
| <code>BCM2835_I2CSPI_IFLS_RXIFLSEL7_8 = (4 shl 3);</code>
 +
| 100 RX FIFO gets 7/8 full
 +
|-
 +
| <code>BCM2835_I2CSPI_IFLS_TXIFLSEL_MASK = (7 shl 0);</code>
 +
| TX Interrupt FIFO Level Select
 +
|-
 +
| <code>BCM2835_I2CSPI_IFLS_TXIFLSEL_SHIFT = 0;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_I2CSPI_IFLS_TXIFLSEL1_8 = (0 shl 0);</code>
 +
| 000 TX FIFO gets 1/8 full
 +
|-
 +
| <code>BCM2835_I2CSPI_IFLS_TXIFLSEL1_4 = (1 shl 0);</code>
 +
| 001 TX FIFO gets 1/4 full
 +
|-
 +
| <code>BCM2835_I2CSPI_IFLS_TXIFLSEL1_2 = (2 shl 0);</code>
 +
| 010 TX FIFO gets 1/2 full
 +
|-
 +
| <code>BCM2835_I2CSPI_IFLS_TXIFLSEL3_4 = (3 shl 0);</code>
 +
| 011 TX FIFO gets 3/4 full
 +
|-
 +
| <code>BCM2835_I2CSPI_IFLS_TXIFLSEL7_8 = (4 shl 0);</code>
 +
| 100 TX FIFO gets 7/8 full
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''I2C/SPI slave IMSC (Interrupt Mask Set Clear) register''' <code> BCM2835_I2CSPI_IMSC_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|See Section 11.2
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_I2CSPI_IMSC_OEIM = (1 shl 3);</code>
 +
| Overrun error interrupt mask
 +
|-
 +
| <code>BCM2835_I2CSPI_IMSC_BEIM = (1 shl 2);</code>
 +
| Break error interrupt mask
 +
|-
 +
| <code>BCM2835_I2CSPI_IMSC_TXIM = (1 shl 1);</code>
 +
| Transmit interrupt mask
 +
|-
 +
| <code>BCM2835_I2CSPI_IMSC_RXIM = (1 shl 0);</code>
 +
| Receive interrupt mask
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''I2C/SPI slave RIS (Raw Interrupt Status) register''' <code> BCM2835_I2CSPI_RIS_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|See Section 11.2
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_I2CSPI_RIS_OERIS = (1 shl 3);</code>
 +
| Overrun error interrupt status
 +
|-
 +
| <code>BCM2835_I2CSPI_RIS_BERIS = (1 shl 2);</code>
 +
| Break error interrupt status
 +
|-
 +
| <code>BCM2835_I2CSPI_RIS_TXRIS = (1 shl 1);</code>
 +
| Transmit interrupt status
 +
|-
 +
| <code>BCM2835_I2CSPI_RIS_RXRIS = (1 shl 0);</code>
 +
| Receive interrupt status
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''I2C/SPI slave MIS (Masked Interrupt Status) register''' <code> BCM2835_I2CSPI_MIS_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|See Section 11.2
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_I2CSPI_MIS_OEMIS = (1 shl 3);</code>
 +
| Overrun error masked interrupt status
 +
|-
 +
| <code>BCM2835_I2CSPI_MIS_BEMIS = (1 shl 2);</code>
 +
| Break error masked interrupt status
 +
|-
 +
| <code>BCM2835_I2CSPI_MIS_TXMIS = (1 shl 1);</code>
 +
| Transmit masked interrupt status
 +
|-
 +
| <code>BCM2835_I2CSPI_MIS_RXMIS = (1 shl 0);</code>
 +
| Receive masked interrupt status
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''I2C/SPI slave ICR (Interrupt Clear Register) register''' <code> BCM2835_I2CSPI_ICR_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|See Section 11.2
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_I2CSPI_ICR_OEIC = (1 shl 3);</code>
 +
| Overrun error interrupt clear
 +
|-
 +
| <code>BCM2835_I2CSPI_ICR_BEIC = (1 shl 2);</code>
 +
| Break error interrupt clear
 +
|-
 +
| <code>BCM2835_I2CSPI_ICR_TXIC = (1 shl 1);</code>
 +
| Transmit interrupt clear
 +
|-
 +
| <code>BCM2835_I2CSPI_ICR_RXIC = (1 shl 0);</code>
 +
| Receive interrupt clear
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 PWM control''' <code> BCM2835_PWM_CTL_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|See Section 9.6
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_PWM_CTL_MSEN2 = (1 shl 15);</code>
 +
| Channel 2 M/S Enable (0: PWM algorithm is used/1: M/S transmission is used)
 +
|-
 +
|colspan="2"|''Bit 14 Reserved - Write as 0, read as don't care''
 +
|-
 +
| <code>BCM2835_PWM_CTL_USEF2 = (1 shl 13);</code>
 +
| Channel 2 Use Fifo (0: Data register is transmitted/1: Fifo is used for transmission)
 +
|-
 +
| <code>BCM2835_PWM_CTL_POLA2 = (1 shl 12);</code>
 +
| Channel 2 Polarity (0 : 0=low 1=high/1: 1=low 0=high)
 +
|-
 +
| <code>BCM2835_PWM_CTL_SBIT2 = (1 shl 11);</code>
 +
| Channel 2 Silence Bit (Defines the state of the output when no transmission takes place)
 +
|-
 +
| <code>BCM2835_PWM_CTL_RPTL2 = (1 shl 10);</code>
 +
| Channel 2 Repeat Last Data (0: Transmission interrupts when FIFO is empty/1: Last data in FIFO is transmitted repetedly until FIFO is not empty)
 +
|-
 +
| <code>BCM2835_PWM_CTL_MODE2 = (1 shl 9);</code>
 +
| Channel 2 Mode (0: PWM mode/1: Serialiser mode)
 +
|-
 +
| <code>BCM2835_PWM_CTL_PWEN2 = (1 shl 8);</code>
 +
| Channel 2 Enable (0: Channel is disabled/1: Channel is enabled)
 +
|-
 +
| <code>BCM2835_PWM_CTL_MSEN1 = (1 shl 7);</code>
 +
| Channel 1 M/S Enable (0: PWM algorithm is used/1: M/S transmission is used)
 +
|-
 +
| <code>BCM2835_PWM_CTL_CLRF1 = (1 shl 6);</code>
 +
| Clear Fifo (1: Clears FIFO/0: Has no effect) (This is a single shot operation. This bit always reads 0)
 +
|-
 +
| <code>BCM2835_PWM_CTL_USEF1 = (1 shl 5);</code>
 +
| Channel 1 Use Fifo (0: Data register is transmitted/1: Fifo is used for transmission)
 +
|-
 +
| <code>BCM2835_PWM_CTL_POLA1 = (1 shl 4);</code>
 +
| Channel 1 Polarity (0 : 0=low 1=high/1: 1=low 0=high)
 +
|-
 +
| <code>BCM2835_PWM_CTL_SBIT1 = (1 shl 3);</code>
 +
| Channel 1 Silence Bit (Defines the state of the output when no transmission takes place)
 +
|-
 +
| <code>BCM2835_PWM_CTL_RPTL1 = (1 shl 2);</code>
 +
| Channel 1 Repeat Last Data (0: Transmission interrupts when FIFO is empty/1: Last data in FIFO is transmitted repetedly until FIFO is not empty)
 +
|-
 +
| <code>BCM2835_PWM_CTL_MODE1 = (1 shl 1);</code>
 +
| Channel 1 Mode (0: PWM mode/1: Serialiser mode)
 +
|-
 +
| <code>BCM2835_PWM_CTL_PWEN1 = (1 shl 0);</code>
 +
| Channel 1 Enable (0: Channel is disabled/1: Channel is enabled)
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 PWM status''' <code> BCM2835_PWM_STA_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|See Section 9.6
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_PWM_STA_STA4 = (1 shl 12);</code>
 +
| Channel 4 State
 +
|-
 +
| <code>BCM2835_PWM_STA_STA3 = (1 shl 11);</code>
 +
| Channel 3 State
 +
|-
 +
| <code>BCM2835_PWM_STA_STA2 = (1 shl 10);</code>
 +
| Channel 2 State
 +
|-
 +
| <code>BCM2835_PWM_STA_STA1 = (1 shl 9);</code>
 +
| Channel 1 State
 +
|-
 +
| <code>BCM2835_PWM_STA_BERR = (1 shl 8);</code>
 +
| Bus Error Flag
 +
|-
 +
| <code>BCM2835_PWM_STA_GAPO4 = (1 shl 7);</code>
 +
| Channel 4 Gap Occurred Flag
 +
|-
 +
| <code>BCM2835_PWM_STA_GAPO3 = (1 shl 6);</code>
 +
| Channel 3 Gap Occurred Flag
 +
|-
 +
| <code>BCM2835_PWM_STA_GAPO2 = (1 shl 5);</code>
 +
| Channel 2 Gap Occurred Flag
 +
|-
 +
| <code>BCM2835_PWM_STA_GAPO1 = (1 shl 4);</code>
 +
| Channel 1 Gap Occurred Flag
 +
|-
 +
| <code>BCM2835_PWM_STA_RERR1 = (1 shl 3);</code>
 +
| Fifo Read Error Flag
 +
|-
 +
| <code>BCM2835_PWM_STA_WERR1 = (1 shl 2);</code>
 +
| Fifo Write Error Flag
 +
|-
 +
| <code>BCM2835_PWM_STA_EMPT1 = (1 shl 1);</code>
 +
| Fifo Empty Flag
 +
|-
 +
| <code>BCM2835_PWM_STA_FULL1 = (1 shl 0);</code>
 +
| Fifo Full Flag
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 PWM DMA configuration''' <code> CM2835_PWM_DMAC_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|See Section 9.6
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_PWM_DMAC_ENAB = (1 shl 31);</code>
 +
| DMA Enable (0: DMA disabled/1: DMA enabled)
 +
|-
 +
| <code>BCM2835_PWM_DMAC_PANIC = ($FF shl 8);</code>
 +
| DMA Threshold for PANIC signal (Default: 0x7)
 +
|-
 +
| <code>BCM2835_PWM_DMAC_DREQ = ($FF shl 0);</code>
 +
| DMA Threshold for DREQ signal (Default: 0x7)
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 PWM''' <code> BCM2835_PWM_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>BCM2835_PWM_CTL = $00000000;</code>
 +
| PWM Control
 +
|-
 +
| <code>BCM2835_PWM_STA = $00000004;</code>
 +
| PWM Status
 +
|-
 +
| <code>BCM2835_PWM_DMAC = $00000008;</code>
 +
| PWM DMA Configuration
 +
|-
 +
| <code>BCM2835_PWM_RNG1 = $00000010;</code>
 +
| PWM Channel 1 Range
 +
|-
 +
| <code>BCM2835_PWM_DAT1 = $00000014;</code>
 +
| PWM Channel 1 Data
 +
|-
 +
| <code>BCM2835_PWM_FIF1 = $00000018;</code>
 +
| PWM FIFO Input
 +
|-
 +
| <code>BCM2835_PWM_RNG2 = $00000020;</code>
 +
| PWM Channel 2 Range
 +
|-
 +
| <code>BCM2835_PWM_DAT2 = $00000024;</code>
 +
| PWM Channel 2 Data
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 PL011 UART data''' <code> BCM2835_PL011_DR_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|See Section 13.4
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_PL011_DR_OE = (1 shl 11);</code>
 +
| Overrun error
 +
|-
 +
| <code>BCM2835_PL011_DR_BE = (1 shl 10);</code>
 +
| Break error
 +
|-
 +
| <code>BCM2835_PL011_DR_PE = (1 shl 9);</code>
 +
| Parity error
 +
|-
 +
| <code>BCM2835_PL011_DR_FE = (1 shl 8);</code>
 +
| Framing error
 +
|-
 +
| <code>BCM2835_PL011_DR_DATA = ($FF shl 0);</code>
 +
| Receive/Transmit data
 +
|-
 +
| <code>BCM2835_PL011_DR_ERROR = BCM2835_PL011_DR_OE or BCM2835_PL011_DR_BE or BCM2835_PL011_DR_PE or BCM2835_PL011_DR_FE;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 PL011 UART receive status/error clear''' <code> BCM2835_PL011_RSRECR_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|See Section 13.4
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_PL011_RSRECR_OE = (1 shl 3);</code>
 +
| Overrun error
 +
|-
 +
| <code>BCM2835_PL011_RSRECR_BE = (1 shl 2);</code>
 +
| Break error
 +
|-
 +
| <code>BCM2835_PL011_RSRECR_PE = (1 shl 1);</code>
 +
| Parity error
 +
|-
 +
| <code>BCM2835_PL011_RSRECR_FE = (1 shl 0);</code>
 +
| Framing error
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 PL011 UART flag''' <code> BCM2835_PL011_FR_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|See Section13.4
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_PL011_FR_RI = (1 shl 8);</code>
 +
| Unsupported, write zero, read as don't care
 +
|-
 +
| <code>BCM2835_PL011_FR_TXFE = (1 shl 7);</code>
 +
| Transmit FIFO empty
 +
|-
 +
| <code>BCM2835_PL011_FR_RXFF = (1 shl 6);</code>
 +
| Receive FIFO full
 +
|-
 +
| <code>BCM2835_PL011_FR_TXFF = (1 shl 5);</code>
 +
| Transmit FIFO full
 +
|-
 +
| <code>BCM2835_PL011_FR_RXFE = (1 shl 4);</code>
 +
| Receive FIFO empty
 +
|-
 +
| <code>BCM2835_PL011_FR_BUSY = (1 shl 3);</code>
 +
| UART busy
 +
|-
 +
| <code>BCM2835_PL011_FR_DCD = (1 shl 2);</code>
 +
| Unsupported, write zero, read as don't care
 +
|-
 +
| <code>BCM2835_PL011_FR_DSR = (1 shl 1);</code>
 +
| Unsupported, write zero, read as don't care
 +
|-
 +
| <code>BCM2835_PL011_FR_CTS = (1 shl 0);</code>
 +
| Clear to send (This bit is the complement of the UART clear to send, nUARTCTS, modem status input. That is, the bit is 1 when nUARTCTS is LOW)
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 PL011 UART IrDA'''</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|See Section 13.4
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
|colspan="2"|''This register is disabled, writing to it has no effect and reading returns 0''
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 PL011 UART integer baud rate divisor''' <code> BCM2835_PL011_IBRD_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|See Section 13.4
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_PL011_IBRD_MASK = ($FFFF shl 0);</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 PL011 UART fractional baud rate divisor''' <code> BCM2835_PL011_FBRD_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|See Section 13.4
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_PL011_FBRD_MASK = ($3F shl 0);</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 PL011 UART line control''' <code> BCM2835_PL011_LCRH_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|See Section 13.4
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_PL011_LCRH_SPS = (1 shl 7);</code>
 +
| Stick parity select
 +
|-
 +
| <code>BCM2835_PL011_LCRH_WLEN = (3 shl 5);</code>
 +
| Word length
 +
|-
 +
| <code>BCM2835_PL011_LCRH_WLEN8 = (3 shl 5);</code>
 +
| 8 bits
 +
|-
 +
| <code>BCM2835_PL011_LCRH_WLEN7 = (2 shl 5);</code>
 +
| 7 bits
 +
|-
 +
| <code>BCM2835_PL011_LCRH_WLEN6 = (1 shl 5);</code>
 +
| 6 bits
 +
|-
 +
| <code>BCM2835_PL011_LCRH_WLEN5 = (0 shl 5);</code>
 +
| 5 bits
 +
|-
 +
| <code>BCM2835_PL011_LCRH_FEN = (1 shl 4);</code>
 +
| Enable FIFOs
 +
|-
 +
| <code>BCM2835_PL011_LCRH_STP2 = (1 shl 3);</code>
 +
| Two stop bits select
 +
|-
 +
| <code>BCM2835_PL011_LCRH_EPS = (1 shl 2);</code>
 +
| Even parity select (0 = odd parity/1 = even parity)
 +
|-
 +
| <code>BCM2835_PL011_LCRH_PEN = (1 shl 1);</code>
 +
| Parity enable
 +
|-
 +
| <code>BCM2835_PL011_LCRH_BRK = (1 shl 0);</code>
 +
| Send break
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 PL011 UART control''' <code> BCM2835_PL011_CR_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|See Section 13.4
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_PL011_CR_CTSEN = (1 shl 15);</code>
 +
| CTS hardware flow control enable (If this bit is set to 1 data is only transmitted when the nUARTCTS signal is asserted)
 +
|-
 +
| <code>BCM2835_PL011_CR_RTSEN = (1 shl 14);</code>
 +
| RTS hardware flow control enable (If this bit is set to 1 data is only requested when there is space in the receive FIFO for it to be received)
 +
|-
 +
| <code>BCM2835_PL011_CR_OUT2 = (1 shl 13);</code>
 +
| Unsupported, write zero, read as don't care
 +
|-
 +
| <code>BCM2835_PL011_CR_OUT1 = (1 shl 12);</code>
 +
| Unsupported, write zero, read as don't care
 +
|-
 +
| <code>BCM2835_PL011_CR_RTS = (1 shl 11);</code>
 +
| Request to send (This bit is the complement of the UART request to send, nUARTRTS, modem status output. That is, when the bit is programmed to a 1 then nUARTRTS is LOW)
 +
|-
 +
| <code>BCM2835_PL011_CR_DTR = (1 shl 10);</code>
 +
| Unsupported, write zero, read as don't care
 +
|-
 +
| <code>BCM2835_PL011_CR_RXE = (1 shl 9);</code>
 +
| Receive enable
 +
|-
 +
| <code>BCM2835_PL011_CR_TXE = (1 shl 8);</code>
 +
| Transmit enable
 +
|-
 +
| <code>BCM2835_PL011_CR_LBE = (1 shl 7);</code>
 +
| Loopback enable
 +
|-
 +
|colspan="2"|''Bits 6:3 Reserved - Write as 0, read as don't care''
 +
|-
 +
| <code>BCM2835_PL011_CR_SIRLP = (1 shl 2);</code>
 +
| Unsupported, write zero, read as don't care
 +
|-
 +
| <code>BCM2835_PL011_CR_SIREN = (1 shl 1);</code>
 +
| Unsupported, write zero, read as don't care
 +
|-
 +
| <code>BCM2835_PL011_CR_UARTEN = (1 shl 0);</code>
 +
| UART enable
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 PL011 UART interrupt FIFO level select''' <code> BCM2835_PL011_IFLS_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|See Section 13.4
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_PL011_IFLS_RXIFPSEL = (7 shl 9);</code>
 +
| Unsupported, write zero, read as don't care
 +
|-
 +
| <code>BCM2835_PL011_IFLS_TXIFPSEL = (7 shl 6);</code>
 +
| Unsupported, write zero, read as don't care
 +
|-
 +
| <code>BCM2835_PL011_IFLS_RXIFLSEL = (7 shl 3);</code>
 +
| Receive interrupt FIFO level select
 +
|-
 +
| <code>BCM2835_PL011_IFLS_RXIFLSEL1_8 = (0 shl 3);</code>
 +
| b000 = Receive FIFO becomes >= 1/8 full
 +
|-
 +
| <code>BCM2835_PL011_IFLS_RXIFLSEL1_4 = (1 shl 3);</code>
 +
| b001 = Receive FIFO becomes >= 1/4 full
 +
|-
 +
| <code>BCM2835_PL011_IFLS_RXIFLSEL1_2 = (2 shl 3);</code>
 +
| b010 = Receive FIFO becomes >= 1/2 full
 +
|-
 +
| <code>BCM2835_PL011_IFLS_RXIFLSEL3_4 = (3 shl 3);</code>
 +
| b011 = Receive FIFO becomes >= 3/4 full
 +
|-
 +
| <code>BCM2835_PL011_IFLS_RXIFLSEL7_8 = (4 shl 3);</code>
 +
| b100 = Receive FIFO becomes >= 7/8 full
 +
|-
 +
| <code>BCM2835_PL011_IFLS_TXIFLSEL = (7 shl 0);</code>
 +
| Transmit interrupt FIFO level select
 +
|-
 +
| <code>BCM2835_PL011_IFLS_TXIFLSEL1_8 = (0 shl 0);</code>
 +
| b000 = Transmit FIFO becomes <= 1/8 full
 +
|-
 +
| <code>BCM2835_PL011_IFLS_TXIFLSEL1_4 = (1 shl 0);</code>
 +
| b001 = Transmit FIFO becomes <= 1/4 full
 +
|-
 +
| <code>BCM2835_PL011_IFLS_TXIFLSEL1_2 = (2 shl 0);</code>
 +
| b010 = Transmit FIFO becomes <= 1/2 full
 +
|-
 +
| <code>BCM2835_PL011_IFLS_TXIFLSEL3_4 = (3 shl 0);</code>
 +
| b011 = Transmit FIFO becomes <= 3/4 full
 +
|-
 +
| <code>BCM2835_PL011_IFLS_TXIFLSEL7_8 = (4 shl 0);</code>
 +
| b100 = Transmit FIFO becomes <= 7/8 full
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 PL011 UART interrupt mask set/clear''' <code> BCM2835_PL011_IMSC_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|See Section 13.4
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_PL011_IMSC_OEIM = (1 shl 10);</code>
 +
| Overrun error interrupt mask
 +
|-
 +
| <code>BCM2835_PL011_IMSC_BEIM = (1 shl 9);</code>
 +
| Break error interrupt mask
 +
|-
 +
| <code>BCM2835_PL011_IMSC_PEIM = (1 shl 8);</code>
 +
| Parity error interrupt mask
 +
|-
 +
| <code>BCM2835_PL011_IMSC_FEIM = (1 shl 7);</code>
 +
| Framing error interrupt mask
 +
|-
 +
| <code>BCM2835_PL011_IMSC_RTIM = (1 shl 6);</code>
 +
| Receive timeout interrupt mask
 +
|-
 +
| <code>BCM2835_PL011_IMSC_TXIM = (1 shl 5);</code>
 +
|  Transmit interrupt mask
 +
|-
 +
| <code>BCM2835_PL011_IMSC_RXIM = (1 shl 4);</code>
 +
| Receive interrupt mask
 +
|-
 +
| <code>BCM2835_PL011_IMSC_DSRMIM = (1 shl 3);</code>
 +
| Unsupported, write zero, read as don't care
 +
|-
 +
| <code>BCM2835_PL011_IMSC_DCDMIM = (1 shl 2);</code>
 +
| Unsupported, write zero, read as don't care
 +
|-
 +
| <code>BCM2835_PL011_IMSC_CTSMIM = (1 shl 1);</code>
 +
| nUARTCTS modem interrupt mask
 +
|-
 +
| <code>BCM2835_PL011_IMSC_RIMIM = (1 shl 0);</code>
 +
| Unsupported, write zero, read as don't care
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 PL011 UART raw interrupt status''' <code> BCM2835_PL011_RIS_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|See Section 13.4
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_PL011_RIS_OERIS = (1 shl 10);</code>
 +
| Overrun error interrupt status
 +
|-
 +
| <code>BCM2835_PL011_RIS_BERIS = (1 shl 9);</code>
 +
| Break error interrupt status
 +
|-
 +
| <code>BCM2835_PL011_RIS_PERIS = (1 shl 8);</code>
 +
| Parity error interrupt status
 +
|-
 +
| <code>BCM2835_PL011_RIS_FERIS = (1 shl 7);</code>
 +
| Framing error interrupt status
 +
|-
 +
| <code>BCM2835_PL011_RIS_RTRIS = (1 shl 6);</code>
 +
| Receive timeout interrupt status
 +
|-
 +
| <code>BCM2835_PL011_RIS_TXRIS = (1 shl 5);</code>
 +
| Transmit interrupt status
 +
|-
 +
| <code>BCM2835_PL011_RIS_RXRIS = (1 shl 4);</code>
 +
| Receive interrupt status
 +
|-
 +
| <code>BCM2835_PL011_RIS_DSRMRIS = (1 shl 3);</code>
 +
| Unsupported, write zero, read as don't care
 +
|-
 +
| <code>BCM2835_PL011_RIS_DCDMRIS = (1 shl 2);</code>
 +
| Unsupported, write zero, read as don't care
 +
|-
 +
| <code>BCM2835_PL011_RIS_CTSMRIS = (1 shl 1);</code>
 +
| nUARTCTS modem interrupt status
 +
|-
 +
| <code>BCM2835_PL011_RIS_RIMRIS = (1 shl 0);</code>
 +
| Unsupported, write zero, read as don't care
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 PL011 UART masked interrupt status''' <code> BCM2835_PL011_MIS_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|See Section 13.4
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_PL011_MIS_OEMIS = (1 shl 10);</code>
 +
| Overrun error masked interrupt status
 +
|-
 +
| <code>BCM2835_PL011_MIS_BEMIS = (1 shl 9);</code>
 +
| Break error masked interrupt status
 +
|-
 +
| <code>BCM2835_PL011_MIS_PEMIS = (1 shl 8);</code>
 +
| Parity error masked interrupt status
 +
|-
 +
| <code>BCM2835_PL011_MIS_FEMIS = (1 shl 7);</code>
 +
| Framing error masked interrupt status
 +
|-
 +
| <code>BCM2835_PL011_MIS_RTMIS = (1 shl 6);</code>
 +
| Receive timeout masked interrupt status
 +
|-
 +
| <code>BCM2835_PL011_MIS_TXMIS = (1 shl 5);</code>
 +
| Transmit masked interrupt status
 +
|-
 +
| <code>BCM2835_PL011_MIS_RXMIS = (1 shl 4);</code>
 +
| Receive masked interrupt status
 +
|-
 +
| <code>BCM2835_PL011_MIS_DSRMMIS = (1 shl 3);</code>
 +
| Unsupported, write zero, read as don't care
 +
|-
 +
| <code>BCM2835_PL011_MIS_DCDMMIS = (1 shl 2);</code>
 +
| Unsupported, write zero, read as don't care
 +
|-
 +
| <code>BCM2835_PL011_MIS_CTSMMIS = (1 shl 1);</code>
 +
| nUARTCTS modem masked interrupt status
 +
|-
 +
| <code>BCM2835_PL011_MIS_RIMMIS = (1 shl 0);</code>
 +
| Unsupported, write zero, read as don't care
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 PL011 UART interrupt clear''' <code> BCM2835_PL011_ICR_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|See Section 13.4
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_PL011_ICR_OEIC = (1 shl 10);</code>
 +
| Overrun error interrupt clear
 +
|-
 +
| <code>BCM2835_PL011_ICR_BEIC = (1 shl 9);</code>
 +
| Break error interrupt clear
 +
|-
 +
| <code>BCM2835_PL011_ICR_PEIC = (1 shl 8);</code>
 +
| Parity error interrupt clear
 +
|-
 +
| <code>BCM2835_PL011_ICR_FEIC = (1 shl 7);</code>
 +
| Framing error interrupt clear
 +
|-
 +
| <code>BCM2835_PL011_ICR_RTIC = (1 shl 6);</code>
 +
| Receive timeout interrupt clear
 +
|-
 +
| <code>BCM2835_PL011_ICR_TXIC = (1 shl 5);</code>
 +
| Transmit interrupt clear
 +
|-
 +
| <code>BCM2835_PL011_ICR_RXIC = (1 shl 4);</code>
 +
| Receive interrupt clear
 +
|-
 +
| <code>BCM2835_PL011_ICR_DSRMIC = (1 shl 3);</code>
 +
| Unsupported, write zero, read as don't care
 +
|-
 +
| <code>BCM2835_PL011_ICR_DCDMIC = (1 shl 2);</code>
 +
| Unsupported, write zero, read as don't care
 +
|-
 +
| <code>BCM2835_PL011_ICR_CTSMIC = (1 shl 1);</code>
 +
| nUARTCTS modem interrupt clear
 +
|-
 +
| <code>BCM2835_PL011_ICR_RIMIC = (1 shl 0);</code>
 +
| Unsupported, write zero, read as don't care
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 PL011 UART DMA control'''</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|See Section 13.4
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
|colspan="2"|''This register is disabled, writing to it has no effect and reading returns 0''
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 ARM interrupt controller registers''' <code> BCM2835_ARM_INTERRUPT_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|See Section 7.5
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_ARM_INTERRUPT_BASIC_PENDING = $00000000;</code>
 +
| IRQ basic pending
 +
|-
 +
| <code>BCM2835_ARM_INTERRUPT_IRQ_PENDING1 = $00000004;</code>
 +
| IRQ pending 1
 +
|-
 +
| <code>BCM2835_ARM_INTERRUPT_IRQ_PENDING2 = $00000008;</code>
 +
| IRQ pending 2
 +
|-
 +
| <code>BCM2835_ARM_INTERRUPT_FIQ_CONTROL = $0000000C;</code>
 +
| FIQ control
 +
|-
 +
| <code>BCM2835_ARM_INTERRUPT_IRQ_ENABLE1 = $00000010;</code>
 +
| Enable IRQs 1
 +
|-
 +
| <code>BCM2835_ARM_INTERRUPT_IRQ_ENABLE2 = $00000014;</code>
 +
| Enable IRQs 2
 +
|-
 +
| <code>BCM2835_ARM_INTERRUPT_BASIC_ENABLE = $00000018;</code>
 +
| Enable Basic IRQs
 +
|-
 +
| <code>BCM2835_ARM_INTERRUPT_IRQ_DISABLE1 = $0000001C;</code>
 +
| Disable IRQs 1
 +
|-
 +
| <code>BCM2835_ARM_INTERRUPT_IRQ_DISABLE2 = $00000020;</code>
 +
| Disable IRQs 2
 +
|-
 +
| <code>BCM2835_ARM_INTERRUPT_BASIC_DISABLE = $00000024;</code>
 +
| Disable Basic IRQs
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 ARM interrupt controller register bits''' <code> BCM2835_ARM_INTERRUPT_FIQ_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|See Section 7.5
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_ARM_INTERRUPT_FIQ_ENABLE = (1 shl 7);</code>
 +
| FIQ enable (Set this bit to 1 to enable FIQ generation. If set to 0 bits 6:0 are don't care)
 +
|-
 +
| <code>BCM2835_ARM_INTERRUPT_FIQ_SOURCE = ($7F shl 0);</code>
 +
| Select FIQ Source (0..127)
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 ARM timer''' <code> BCM2835_ARM_TIMER_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|See Section 14.2
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_ARM_TIMER_CONTROL_COUNTER_PRESCALE = ($FF shl 16);</code>
 +
| Free running counter pre-scaler (Freq is sys_clk/(prescale+1))
 +
|-
 +
| <code>BCM2835_ARM_TIMER_CONTROL_COUNTER_ENABLED = (1 shl 9);</code>
 +
| 0 : Free running counter Disabled/1 : Free running counter Enabled
 +
|-
 +
| <code>BCM2835_ARM_TIMER_CONTROL_DEBUG_HALT = (1 shl 8);</code>
 +
| 0 : Timers keeps running if ARM is in debug halted mode/1 : Timers halted if ARM is in debug halted mode
 +
|-
 +
| <code>BCM2835_ARM_TIMER_CONTROL_TIMER_ENABLED = (1 shl 7);</code>
 +
| 0 : Timer disabled/1 : Timer enabled
 +
|-
 +
| <code>BCM2835_ARM_TIMER_CONTROL_INT_ENABLED = (1 shl 5);</code>
 +
| 0 : Timer interrupt disabled/1 : Timer interrupt enabled
 +
|-
 +
| <code>BCM2835_ARM_TIMER_CONTROL_PRESCALE = (3 shl 2);</code>
 +
| Pre-scale bits: 00 : pre-scale is clock/1 (No pre-scale)/01 : pre-scale is clock/16/10 : pre-scale is clock/256/11 : pre-scale is clock/1
 +
|-
 +
| <code>BCM2835_ARM_TIMER_CONTROL_32BIT = (1 shl 1);</code>
 +
| 0 : 16-bit counters/1 : 32-bit counter
 +
|-
 +
| <code>BCM2835_ARM_TIMER_CONTROL_ONESHOT = (1 shl 0);</code>
 +
| 0 = wrapping mode (default)/1 = one-shot mode (Not supported by BCM2835)
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_ARM_TIMER_RAW_IRQ_PENDING = (1 shl 0);</code>
 +
| 0 : The interrupt pending bits is clear/1 : The interrupt pending bit is set
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_ARM_TIMER_MASKED_IRQ_PENDING = (1 shl 0);</code>
 +
| 0 : Interrupt line not asserted/1 :Interrupt line is asserted, (the interrupt pending and the interrupt enable bit are set)
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_ARM_TIMER_PREDIVIDER_MASK = ($3FF shl 0);</code>
 +
| Pre-divider value (timer_clock = apb_clock/(pre_divider+1))
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 power management, reset controller and watchdog''' <code> BCM2835_PM_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>BCM2835_PM_PASSWORD = $5A000000;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_PM_RSTC_WRCFG_CLR = $FFFFFFCF;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_PM_RSTC_WRCFG_SET = $00000030;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_PM_RSTC_WRCFG_FULL_RESET = $00000020;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_PM_RSTC_RESET = $00000102;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_PM_RSTS_HADPOR_SET = $00001000;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_PM_RSTS_HADSRH_SET = $00000400;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_PM_RSTS_HADSRF_SET = $00000200;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_PM_RSTS_HADSRQ_SET = $00000100;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_PM_RSTS_HADWRH_SET = $00000040;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_PM_RSTS_HADWRF_SET = $00000020;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_PM_RSTS_HADWRQ_SET = $00000010;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_PM_RSTS_HADDRH_SET = $00000004;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_PM_RSTS_HADDRF_SET = $00000002;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_PM_RSTS_HADDRQ_SET = $00000001;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_PM_RSTS_RASPBERRYPI_HALT = $00000555;</code>
 +
| Special value to tell the Raspberry Pi firmware not to reboot, sets Boot Partition to 63 (0x3f).
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_PM_WDOG_RESET = $00000000;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_PM_WDOG_TIME_MASK = $000FFFFF;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_PM_WDOG_TICKS_PER_SECOND = (1 shl 16);</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_PM_WDOG_TICKS_PER_MILLISECOND = (BCM2835_PM_WDOG_TICKS_PER_SECOND div 1000);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 random number generator''' <code> BCM2835_RANDOM_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>BCM2835_RANDOM_DISABLE = $00000000;</code>
 +
| Disable Random Number Generator
 +
|-
 +
| <code>BCM2835_RANDOM_ENABLE = $00000001;</code>
 +
| Enable Random Number Generator
 +
|-
 +
| <code>BCM2835_RANDOM_DOUBLE_SPEED = $00000002;</code>
 +
| Double Speed Mode (Less Random)
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 clock management''' <code> BCM2835_CM_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|See Section 6
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_CM_PASSWORD = $5A000000;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 clock manager control''' <code> BCM2835_CM_CTL_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|See Section 6.3
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_CM_CTL_MASH_0 = (0 shl 9);</code>
 +
| MASH control - 0 = integer division
 +
|-
 +
| <code>BCM2835_CM_CTL_MASH_1 = (1 shl 9);</code>
 +
| MASH control - 1 = 1-stage MASH (equivalent to non-MASH dividers)
 +
|-
 +
| <code>BCM2835_CM_CTL_MASH_2 = (2 shl 9);</code>
 +
| MASH control - 2 = 2-stage MASH
 +
|-
 +
| <code>BCM2835_CM_CTL_MASH_3 = (3 shl 9);</code>
 +
| MASH control - 3 = 3-stage MASH (To avoid lock-ups and glitches do not change this control while BUSY=1 and do not change this control at the same time as asserting ENAB)
 +
|-
 +
| <code>BCM2835_CM_CTL_FLIP = (1 shl 8);</code>
 +
| MASH control - Invert the clock generator output (To avoid output glitches do not switch this control while BUSY=1)
 +
|-
 +
| <code>BCM2835_CM_CTL_BUSY = (1 shl 7);</code>
 +
| Clock generator is running (To avoid glitches and lock-ups, clock sources and setups must not be changed while this flag is set)
 +
|-
 +
| <code>BCM2835_CM_CTL_GATE = (1 shl 6);</code>
 +
| Unused
 +
|-
 +
| <code>BCM2835_CM_CTL_KILL = (1 shl 5);</code>
 +
| Kill the clock generator (0 = no action/1 = stop and reset the clock generator) (This is intended for test/debug only)
 +
|-
 +
| <code>BCM2835_CM_CTL_ENAB = (1 shl 4);</code>
 +
| Enable the clock generator
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_CM_CTL_SRC_GND = (0 shl 0);</code>
 +
| Clock source - 0 Hz GND
 +
|-
 +
| <code>BCM2835_CM_CTL_SRC_OSC = (1 shl 0);</code>
 +
| Clock source - 19.2 MHz Oscillator
 +
|-
 +
| <code>BCM2835_CM_CTL_SRC_TESTDEBUG0 = (2 shl 0);</code>
 +
| Clock source - 0 Hz Testdebug0
 +
|-
 +
| <code>BCM2835_CM_CTL_SRC_TESTDEBUG1 = (3 shl 0);</code>
 +
| Clock source - 0 Hz Testdebug1
 +
|-
 +
| <code>BCM2835_CM_CTL_SRC_PLLA = (4 shl 0);</code>
 +
| Clock source - 0 Hz PLLA per
 +
|-
 +
| <code>BCM2835_CM_CTL_SRC_PLLC = (5 shl 0);</code>
 +
| Clock source - 1000 MHz PLLC per (changes with overclock settings)
 +
|-
 +
| <code>BCM2835_CM_CTL_SRC_PLLD = (6 shl 0);</code>
 +
| Clock source - 500 MHz PLLD per
 +
|-
 +
| <code>BCM2835_CM_CTL_SRC_HDMI = (7 shl 0);</code>
 +
| Clock source - 216 MHz HDMI auxiliary
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 clock manager divisor''' <code> BCM2835_CM_DIV_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|See Section 6.3
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_CM_DIV_INT_MASK = $00FFF000;</code>
 +
| Integer part of divisor (This value has a minimum limit determined by the MASH setting) (To avoid lock-ups and glitches do not change this control while BUSY=1)
 +
|-
 +
| <code>BCM2835_CM_DIV_FRAC_MASK = $00000FFF;</code>
 +
| Fractional part of divisor (To avoid lock-ups and glitches do not change this control while BUSY=1)
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 clock manager''' <code> BCM2835_CM_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>BCM2835_CM_GNRICCTL = $00000000;</code>
 +
| Generic Clock Control
 +
|-
 +
| <code>BCM2835_CM_GNRICDIV = $00000004;</code>
 +
| Generic Clock Divisor
 +
|-
 +
| <code>BCM2835_CM_VPUCTL = $00000008;</code>
 +
| VPU Clock Control
 +
|-
 +
| <code>BCM2835_CM_VPUDIV = $0000000C;</code>
 +
| VPU Clock Divisor
 +
|-
 +
| <code>BCM2835_CM_SYSCTL = $00000010;</code>
 +
| System Clock Control
 +
|-
 +
| <code>BCM2835_CM_SYSDIV = $00000014;</code>
 +
| System Clock Divisor
 +
|-
 +
| <code>BCM2835_CM_PERIACTL = $00000018;</code>
 +
| PERIA Clock Control
 +
|-
 +
| <code>BCM2835_CM_PERIADIV = $0000001C;</code>
 +
| PERIA Clock Divisor
 +
|-
 +
| <code>BCM2835_CM_PERIICTL = $00000020;</code>
 +
| PERII Clock Control
 +
|-
 +
| <code>BCM2835_CM_PERIIDIV = $00000024;</code>
 +
| PERII Clock Divisor
 +
|-
 +
| <code>BCM2835_CM_H264CTL = $00000028;</code>
 +
| H264 Clock Control
 +
|-
 +
| <code>BCM2835_CM_H264DIV = $0000002C;</code>
 +
| H264 Clock Divisor
 +
|-
 +
| <code>BCM2835_CM_ISPCTL = $00000030;</code>
 +
| ISP Clock Control
 +
|-
 +
| <code>BCM2835_CM_ISPDIV = $00000034;</code>
 +
| ISP Clock Divisor
 +
|-
 +
| <code>BCM2835_CM_V3DCTL = $00000038;</code>
 +
| V3D Clock Control
 +
|-
 +
| <code>BCM2835_CM_V3DDIV = $0000003C;</code>
 +
| V3D Clock Divisor
 +
|-
 +
| <code>BCM2835_CM_CAM0CTL = $00000040;</code>
 +
| Camera 0 Clock Control
 +
|-
 +
| <code>BCM2835_CM_CAM0DIV = $00000044;</code>
 +
| Camera 0 Clock Divisor
 +
|-
 +
| <code>BCM2835_CM_CAM1CTL = $00000048;</code>
 +
| Camera 1 Clock Control
 +
|-
 +
| <code>BCM2835_CM_CAM1DIV = $0000004C;</code>
 +
| Camera 1 Clock Divisor
 +
|-
 +
| <code>BCM2835_CM_CCP2CTL = $00000050;</code>
 +
| CCP2 Clock Control
 +
|-
 +
| <code>BCM2835_CM_CCP2DIV = $00000054;</code>
 +
| CCP2 Clock Divisor
 +
|-
 +
| <code>BCM2835_CM_DSI0ECTL = $00000058;</code>
 +
| DSI0E Clock Control
 +
|-
 +
| <code>BCM2835_CM_DSI0EDIV = $0000005C;</code>
 +
| DSI0E Clock Divisor
 +
|-
 +
| <code>BCM2835_CM_DSI0PCTL = $00000060;</code>
 +
| DSI0P Clock Control
 +
|-
 +
| <code>BCM2835_CM_DSI0PDIV = $00000064;</code>
 +
| DSI0P Clock Divisor
 +
|-
 +
| <code>BCM2835_CM_DPICTL = $00000068;</code>
 +
| DPI Clock Control
 +
|-
 +
| <code>BCM2835_CM_DPIDIV = $0000006C;</code>
 +
| DPI Clock Control
 +
|-
 +
| <code>BCM2835_CM_GP0CTL = $00000070;</code>
 +
| General Purpose 0 Clock Control
 +
|-
 +
| <code>BCM2835_CM_GP0DIV = $00000074;</code>
 +
| General Purpose 0 Clock Divisor
 +
|-
 +
| <code>BCM2835_CM_GP1CTL = $00000078;</code>
 +
| General Purpose 1 Clock Control
 +
|-
 +
| <code>BCM2835_CM_GP1DIV = $0000007C;</code>
 +
| General Purpose 1 Clock Divisor
 +
|-
 +
| <code>BCM2835_CM_GP2CTL = $00000080;</code>
 +
| General Purpose 2 Clock Control
 +
|-
 +
| <code>BCM2835_CM_GP2DIV = $00000084;</code>
 +
| General Purpose 2 Clock Divisor
 +
|-
 +
| <code>BCM2835_CM_HSMCTL = $00000088;</code>
 +
| HSM Clock Control
 +
|-
 +
| <code>BCM2835_CM_HSMDIV = $0000008C;</code>
 +
| HSM Clock Divisor
 +
|-
 +
| <code>BCM2835_CM_OTPCTL = $00000090;</code>
 +
| OTP Clock Control
 +
|-
 +
| <code>BCM2835_CM_OTPDIV = $00000094;</code>
 +
| OTP Clock Divisor
 +
|-
 +
| <code>BCM2835_CM_PCMCTL = $00000098;</code>
 +
| PCM/I2S Clock Control
 +
|-
 +
| <code>BCM2835_CM_PCMDIV = $0000009C;</code>
 +
| PCM/I2S Clock Divisor
 +
|-
 +
| <code>BCM2835_CM_PWMCTL = $000000A0;</code>
 +
| PWM Clock Control
 +
|-
 +
| <code>BCM2835_CM_PWMDIV = $000000A4;</code>
 +
| PWM Clock Divisor
 +
|-
 +
| <code>BCM2835_CM_SLIMCTL = $000000A8;</code>
 +
| SLIM Clock Control
 +
|-
 +
| <code>BCM2835_CM_SLIMDIV = $000000AC;</code>
 +
| SLIM Clock Divisor
 +
|-
 +
| <code>BCM2835_CM_SMICTL = $000000B0;</code>
 +
| SMI Clock Control
 +
|-
 +
| <code>BCM2835_CM_SMIDIV = $000000B4;</code>
 +
| SMI Clock Divisor
 +
|-
 +
| <code>BCM2835_CM_TCNTCTL = $000000C0;</code>
 +
| TCNT Clock Control
 +
|-
 +
| <code>BCM2835_CM_TCNTDIV = $000000C4;</code>
 +
| TCNT Clock Divisor
 +
|-
 +
| <code>BCM2835_CM_TECCTL = $000000C8;</code>
 +
| TEC Clock Control
 +
|-
 +
| <code>BCM2835_CM_TECDIV = $000000CC;</code>
 +
| TEC Clock Divisor
 +
|-
 +
| <code>BCM2835_CM_TD0CTL = $000000D0;</code>
 +
| TD0 Clock Control
 +
|-
 +
| <code>BCM2835_CM_TD0DIV = $000000D4;</code>
 +
| TD0 Clock Divisor
 +
|-
 +
| <code>BCM2835_CM_TD1CTL = $000000D8;</code>
 +
| TD1 Clock Control
 +
|-
 +
| <code>BCM2835_CM_TD1DIV = $000000DC;</code>
 +
| TD1 Clock Divisor
 +
|-
 +
| <code>BCM2835_CM_TSENSCTL = $000000E0;</code>
 +
| TSENS Clock Control
 +
|-
 +
| <code>BCM2835_CM_TSENSDIV = $000000E4;</code>
 +
| TSENS Clock Divisor
 +
|-
 +
| <code>BCM2835_CM_TIMERCTL = $000000E8;</code>
 +
| Timer Clock Control
 +
|-
 +
| <code>BCM2835_CM_TIMERDIV = $000000EC;</code>
 +
| Timer Clock Divisor
 +
|-
 +
| <code>BCM2835_CM_UARTCTL = $000000F0;</code>
 +
| UART Clock Control
 +
|-
 +
| <code>BCM2835_CM_UARTDIV = $000000F4;</code>
 +
| UART Clock Divisor
 +
|-
 +
| <code>BCM2835_CM_VECCTL = $000000F8;</code>
 +
| VEC Clock Control
 +
|-
 +
| <code>BCM2835_CM_VECDIV = $000000FC;</code>
 +
| VEC Clock Divisor
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_CM_OSCCOUNT = $00000100;</code>
 +
| Oscillator Count
 +
|-
 +
| <code>BCM2835_CM_PLLA = $00000104;</code>
 +
| PLLA
 +
|-
 +
| <code>BCM2835_CM_PLLC = $00000108;</code>
 +
| PLLC
 +
|-
 +
| <code>BCM2835_CM_PLLD = $0000010C;</code>
 +
| PLLD
 +
|-
 +
| <code>BCM2835_CM_PLLH = $00000110;</code>
 +
| PLLH
 +
|-
 +
| <code>BCM2835_CM_LOCK = $00000114;</code>
 +
| Lock
 +
|-
 +
| <code>BCM2835_CM_EVENT = $00000118;</code>
 +
| Event
 +
|-
 +
| <code>BCM2835_CM_INTEN = $00000118;</code>
 +
| INTEN
 +
|-
 +
| <code>BCM2835_CM_DSI0HSCK = $00000120;</code>
 +
| DSI0HSCK
 +
|-
 +
| <code>BCM2835_CM_CKSM = $00000124;</code>
 +
| CKSM
 +
|-
 +
| <code>BCM2835_CM_OSCFREQI = $00000128;</code>
 +
| Oscillator Frequency Integer
 +
|-
 +
| <code>BCM2835_CM_OSCFREQF = $0000012C;</code>
 +
| Oscillator Frequency Fraction
 +
|-
 +
| <code>BCM2835_CM_PLLTCTL = $00000130;</code>
 +
| PLLT Control
 +
|-
 +
| <code>BCM2835_CM_PLLTCNT0 = $00000134;</code>
 +
| PLLT0 Count
 +
|-
 +
| <code>BCM2835_CM_PLLTCNT1 = $00000138;</code>
 +
| PLLT1 Count
 +
|-
 +
| <code>BCM2835_CM_PLLTCNT2 = $0000013C;</code>
 +
| PLLT2 Count
 +
|-
 +
| <code>BCM2835_CM_PLLTCNT3 = $00000140;</code>
 +
| PLLT3 Count
 +
|-
 +
| <code>BCM2835_CM_TDCLKEN = $00000144;</code>
 +
| TD Clock Enable
 +
|-
 +
| <code>BCM2835_CM_BURSTCTL = $00000148;</code>
 +
| Burst Control
 +
|-
 +
| <code>BCM2835_CM_BURSTCNT = $0000014C;</code>
 +
| Burst Count
 +
|-
 +
| <code>BCM2835_CM_DSI1ECTL = $00000158;</code>
 +
| DSI1E Clock Control
 +
|-
 +
| <code>BCM2835_CM_DSI1EDIV = $0000015C;</code>
 +
| DSI1E Clock Divisor
 +
|-
 +
| <code>BCM2835_CM_DSI1PCTL = $00000160;</code>
 +
| DSI1P Clock Control
 +
|-
 +
| <code>BCM2835_CM_DSI1PDIV = $00000164;</code>
 +
| DSI1P Clock Divisor
 +
|-
 +
| <code>BCM2835_CM_DFTCTL = $00000168;</code>
 +
| DFT Clock Control
 +
|-
 +
| <code>BCM2835_CM_DFTDIV = $0000016C;</code>
 +
| DFT Clock Divisor
 +
|-
 +
| <code>BCM2835_CM_PLLB = $00000170;</code>
 +
| PLLB
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_CM_PULSECTL = $00000190;</code>
 +
| Pulse Clock Control
 +
|-
 +
| <code>BCM2835_CM_PULSEDIV = $00000194;</code>
 +
| Pulse Clock Divisor
 +
|-
 +
| <code>BCM2835_CM_SDCCTL = $000001A8;</code>
 +
| SDC Clock Control
 +
|-
 +
| <code>BCM2835_CM_SDCDIV = $000001AC;</code>
 +
| SDC Clock Divisor
 +
|-
 +
| <code>BCM2835_CM_ARMCTL = $000001B0;</code>
 +
| ARM Clock Control
 +
|-
 +
| <code>BCM2835_CM_ARMDIV = $000001B4;</code>
 +
| ARM Clock Divisor
 +
|-
 +
| <code>BCM2835_CM_AVEOCTL = $000001B8;</code>
 +
| AVEO Clock Control
 +
|-
 +
| <code>BCM2835_CM_AVEODIV = $000001BC;</code>
 +
| AVEO Clock Divisor
 +
|-
 +
| <code>BCM2835_CM_EMMCCTL = $000001C0;</code>
 +
| EMMC Clock Control
 +
|-
 +
| <code>BCM2835_CM_EMMCDIV = $000001C4;</code>
 +
| EMMC Clock Divisor
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 mailbox''' <code> BCM2835_MAILBOX_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>BCM2835_MAILBOX_0 = 0;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>BCM2835_MAILBOX_1 = 1;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 mailbox 0 channel''' <code> BCM2835_MAILBOX0_CHANNEL_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|See https://github.com/raspberrypi/firmware/wiki/Mailboxes
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_MAILBOX0_CHANNEL_POWER_MGMT = 0;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>BCM2835_MAILBOX0_CHANNEL_FRAMEBUFFER = 1;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_MAILBOX0_CHANNEL_UART = 2;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_MAILBOX0_CHANNEL_VCHIQ = 3;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_MAILBOX0_CHANNEL_LEDS = 4;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_MAILBOX0_CHANNEL_BUTTONS = 5;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_MAILBOX0_CHANNEL_TOUCHSCREEN = 6;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_MAILBOX0_CHANNEL_UNKNOWN = 7;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_MAILBOX0_CHANNEL_PROPERTYTAGS_ARMVC = 8;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_MAILBOX0_CHANNEL_PROPERTYTAGS_VCARM = 9;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 mailbox 1 channel''' <code> BCM2835_MAILBOX_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|See https://github.com/raspberrypi/firmware/wiki/Mailboxes
 +
|-
 +
|colspan="2"|Currently unknown
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
|colspan="2"|''The BCM2835 mailboxes pass 28-bit messages (The low 4 bits of the 32-bit value are used to specify the channel)''
 +
|-
 +
| <code>BCM2835_MAILBOX_CHANNEL_MASK = $0000000F;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>BCM2835_MAILBOX_DATA_MASK = $FFFFFFF0;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 mailbox status flag''' <code> BCM2835_MAILBOX_STATUS_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>BCM2835_MAILBOX_STATUS_FULL = $80000000;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>BCM2835_MAILBOX_STATUS_EMPTY = $40000000;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 mailbox configuration flag''' <code> BCM2835_MAILBOX_CONFIG_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>BCM2835_MAILBOX_CONFIG_IRQENABLE = $00000001;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 mailbox property tag''' <code> BCM2835_MBOX_TAG_GET_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|See https://github.com/raspberrypi/firmware/wiki/Mailbox-property-interface or \include\soc\bcm2835\raspberrypi-firmware.h
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
|colspan="2"|''VideoCore''
 +
|-
 +
| <code>BCM2835_MBOX_TAG_GET_FIRMWARE_REV = $00000001;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|colspan="2"|''Hardware''
 +
|-
 +
| <code>BCM2835_MBOX_TAG_GET_BOARD_MODEL = $00010001;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_TAG_GET_BOARD_REV = $00010002;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_TAG_GET_MAC_ADDRESS = $00010003;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_TAG_GET_BOARD_SERIAL = $00010004;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_TAG_GET_ARM_MEMORY = $00010005;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_TAG_GET_VC_MEMORY = $00010006;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_TAG_GET_CLOCKS = $00010007;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|''Shared Resource Management''
 +
|-
 +
| <code>BCM2835_MBOX_TAG_GET_POWER_STATE = $00020001;</code>
 +
| Response indicates current state
 +
|-
 +
| <code>BCM2835_MBOX_TAG_GET_TIMING = $00020002;</code>
 +
| Response indicates wait time required after turning a device on before power is stable
 +
|-
 +
| <code>BCM2835_MBOX_TAG_SET_POWER_STATE = $00028001;</code>
 +
| Response indicates new state, with/without waiting for the power to become stable
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_TAG_GET_CLOCK_STATE = $00030001;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_TAG_SET_CLOCK_STATE = $00038001;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_TAG_GET_CLOCK_RATE = $00030002;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_TAG_SET_CLOCK_RATE = $00038002;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_TAG_GET_CLOCK_MAX_RATE = $00030004;</code>
 +
| Return the maximum supported clock rate for the given clock. Clocks should not be set higher than this.
 +
|-
 +
| <code>BCM2835_MBOX_TAG_GET_CLOCK_MIN_RATE = $00030007;</code>
 +
| Return the minimum supported clock rate for the given clock. This may be used when idle.
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_TAG_GET_TURBO = $00030009;</code>
 +
| Get the turbo state for index Id. Id should be 0. Level will be zero for non-turbo and one for turbo.
 +
|-
 +
| <code>BCM2835_MBOX_TAG_SET_TURBO = $00038009;</code>
 +
| Set the turbo state for index Id. Id should be zero. Level will be zero for non-turbo and one for turbo. This will cause GPU clocks to be set to maximum when enabled and minimum when disabled.
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_TAG_GET_STC = $0003000b;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|''Voltage''
 +
|-
 +
| <code>BCM2835_MBOX_TAG_GET_VOLTAGE = $00030003;</code>
 +
| The voltage value may be clamped to the supported range. A value of 0x80000000 means the Id was not valid.
 +
|-
 +
| <code>BCM2835_MBOX_TAG_SET_VOLTAGE = $00038003;</code>
 +
| The voltage value may be clamped to the supported range. A value of 0x80000000 means the Id was not valid.
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_TAG_GET_MAX_VOLTAGE = $00030005;</code>
 +
| Return the maximum supported voltage rate for the given Id. Voltages should not be set higher than this.
 +
|-
 +
| <code>BCM2835_MBOX_TAG_GET_MIN_VOLTAGE = $00030008;</code>
 +
| Return the minimum supported voltage rate for the given Id. This may be used when idle.
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_TAG_GET_TEMP = $00030006;</code>
 +
| Return the temperature of the SoC in thousandths of a degree C. Id should be zero.
 +
|-
 +
| <code>BCM2835_MBOX_TAG_GET_MAX_TEMP = $0003000a;</code>
 +
| Return the maximum safe temperature of the SoC in thousandths of a degree C. Id should be zero. Overclock may be disabled above this temperature.
 +
|-
 +
|colspan="2"|''GPU''
 +
|-
 +
| <code>BCM2835_MBOX_TAG_ALLOCATE_MEMORY = $0003000c;</code>
 +
| Allocates contiguous memory on the GPU. Size and alignment are in bytes.
 +
|-
 +
| <code>BCM2835_MBOX_TAG_LOCK_MEMORY = $0003000d;</code>
 +
| Lock buffer in place, and return a bus address. Must be done before memory can be accessed.
 +
|-
 +
| <code>BCM2835_MBOX_TAG_UNLOCK_MEMORY = $0003000e;</code>
 +
| Unlock buffer. It retains contents, but may move. Needs to be locked before next use. status=0 is success.
 +
|-
 +
| <code>BCM2835_MBOX_TAG_RELEASE_MEMORY = $0003000f;</code>
 +
| Free the memory buffer. status=0 is success
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_TAG_EXECUTE_CODE = $00030010;</code>
 +
| Calls the function at given (bus) address and with arguments given. E.g. r0 = fn(r0, r1, r2, r3, r4, r5); It blocks until call completes
 +
|-
 +
| <code>BCM2835_MBOX_TAG_EXECUTE_QPU = $00030011;</code>
 +
| Execute an assembled block of code using one or more Quad Processing Units (QPUs)
 +
|-
 +
| <code>BCM2835_MBOX_TAG_ENABLE_QPU = $00030012;</code>
 +
| Enable the Quad Processing Units (QPUs)
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_TAG_GET_DISPMANX_HANDLE = $00030014;</code>
 +
| Gets the mem_handle associated with a created dispmanx resource. This can be locked and the memory directly written from the arm to avoid having to copy the image data to GPU.
 +
|-
 +
| <code>BCM2835_MBOX_TAG_GET_EDID_BLOCK = $00030020;</code>
 +
| This reads the specified EDID block from attached HDMI/DVI device. There will always be at least one block of 128 bytes, but there may be additional blocks. You should keep requesting blocks (starting from 0) until the status returned is non-zero.
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_TAG_GET_CUSTOMER_OTP = $00030021;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_TAG_SET_CUSTOMER_OTP = $00038021;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_TAG_GET_DOMAIN_STATE = $00030030;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_TAG_SET_DOMAIN_STATE = $00038030;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_TAG_GET_GPIO_STATE = $00030041;</code>
 +
| Get the current state of a GPIO expander pin (Not applicable on BCM2835)
 +
|-
 +
| <code>BCM2835_MBOX_TAG_SET_GPIO_STATE = $00038041;</code>
 +
| Set the current state of a GPIO expander pin (Not applicable on BCM2835)
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_TAG_SET_SDHOST_CLOCK = $00038042;</code>
 +
| Tell the firmware the SD Host clock setting so it will be adjusted for changes in core frequency
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_TAG_GET_GPIO_CONFIG = $00030043;</code>
 +
| Get the current configuration of a GPIO expander pin (Not applicable on BCM2835)
 +
|-
 +
| <code>BCM2835_MBOX_TAG_SET_GPIO_CONFIG = $00038043;</code>
 +
| Set the current configuration of a GPIO expander pin (Not applicable on BCM2835)
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_TAG_GET_THROTTLED = $00030046;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_TAG_GET_PERIPH_REG = $00030045;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_TAG_SET_PERIPH_REG = $00038045;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_TAG_GET_POE_HAT_VAL = $00030049;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_TAG_SET_POE_HAT_VAL = $00038049;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_TAG_NOTIFY_REBOOT = $00030048;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_TAG_NOTIFY_XHCI_RESET = $00030058;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_TAG_GET_BOOT_MODE = $0003005b;</code>
 +
| Get the boot mode that was used by the firmware to load the kernel (1 = SD, 4 = MSD etc)
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_TAG_GET_REBOOT_FLAGS = $00030064;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_TAG_SET_REBOOT_FLAGS = $00038064;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_TAG_NOTIFY_DISPLAY_DONE = $00030066;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|''Frame Buffer''
 +
|-
 +
| <code>BCM2835_MBOX_TAG_ALLOCATE_BUFFER = $00040001;</code>
 +
| If the requested alignment is unsupported then the current base and size (which may be 0 if not allocated) is returned and no change occurs
 +
|-
 +
| <code>BCM2835_MBOX_TAG_RELEASE_BUFFER = $00048001;</code>
 +
| Releases and disables the frame buffer
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_TAG_SET_BLANK_SCREEN = $00040002;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_TAG_TEST_BLANK_SCREEN = $00044002;</code>
 +
| Previously BCM2835_MBOX_TAG_TST_BLANK_SCREEN
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_TAG_GET_PHYSICAL_W_H = $00040003;</code>
 +
| Note that the "physical (display)" size is the size of the allocated buffer in memory, not the resolution of the video signal sent to the display device.
 +
|-
 +
| <code>BCM2835_MBOX_TAG_TEST_PHYSICAL_W_H = $00044003;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_TAG_SET_PHYSICAL_W_H = $00048003;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_TAG_GET_VIRTUAL_W_H = $00040004;</code>
 +
| Note that the "virtual (buffer)" size is the portion of buffer that is sent to the display device, not the resolution the buffer itself. This may be smaller than the allocated buffer size in order to implement panning.
 +
|-
 +
| <code>BCM2835_MBOX_TAG_TEST_VIRTUAL_W_H = $00044004;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_TAG_SET_VIRTUAL_W_H = $00048004;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_TAG_GET_DEPTH = $00040005;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_TAG_TEST_DEPTH = $00044005;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_TAG_SET_DEPTH = $00048005;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_TAG_GET_PIXEL_ORDER = $00040006;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_TAG_TEST_PIXEL_ORDER = $00044006;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_TAG_SET_PIXEL_ORDER = $00048006;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_TAG_GET_ALPHA_MODE = $00040007;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_TAG_TEST_ALPHA_MODE = $00044007;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_TAG_SET_ALPHA_MODE = $00048007;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_TAG_GET_PITCH = $00040008;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_TAG_TEST_PITCH = $00044008;</code>
 +
| Previously BCM2835_MBOX_TAG_TST_PITCH
 +
|-
 +
| <code>BCM2835_MBOX_TAG_SET_PITCH = $00048008;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_TAG_GET_VIRTUAL_OFFSET = $00040009;</code>
 +
| Offset of physical display window within virtual buffer
 +
|-
 +
| <code>BCM2835_MBOX_TAG_TEST_VIRTUAL_OFFSET = $00044009;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_TAG_SET_VIRTUAL_OFFSET = $00048009;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_TAG_GET_OVERSCAN = $0004000a;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_TAG_TEST_OVERSCAN = $0004400a;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_TAG_SET_OVERSCAN = $0004800a;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_TAG_GET_PALETTE = $0004000b;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_TAG_TEST_PALETTE = $0004400b;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_TAG_SET_PALETTE = $0004800b;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_TAG_GET_LAYER = $0004000c;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_TAG_TEST_LAYER = $0004400c;</code>
 +
| Previously BCM2835_MBOX_TAG_TST_LAYER
 +
|-
 +
| <code>BCM2835_MBOX_TAG_SET_LAYER = $0004800c;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_TAG_GET_TRANSFORM = $0004000d;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_TAG_TEST_TRANSFORM = $0004400d;</code>
 +
| Previously BCM2835_MBOX_TAG_TST_TRANSFORM
 +
|-
 +
| <code>BCM2835_MBOX_TAG_SET_TRANSFORM = $0004800d;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_TAG_TEST_VSYNC = $0004400e;</code>
 +
| Previously BCM2835_MBOX_TAG_TST_VSYNC
 +
|-
 +
| <code>BCM2835_MBOX_TAG_SET_VSYNC = $0004800e;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_TAG_SET_BACKLIGHT = $0004800f;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_TAG_GET_TOUCHBUF = $0004000f;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_TAG_SET_TOUCHBUF = $0004801f;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_TAG_GET_GPIOVIRTBUF = $00040010;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_TAG_SET_GPIOVIRTBUF = $00048020;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_TAG_GET_DISPLAY_ID = $00040016;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_TAG_SET_DISPLAY_NUM = $00048013;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_TAG_GET_NUM_DISPLAYS = $00040013;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_TAG_GET_DISPLAY_SETTINGS = $00040014;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_TAG_SET_PLANE = $00048015;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_TAG_GET_DISPLAY_TIMING = $00040017;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_TAG_SET_TIMING = $00048017;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_TAG_GET_DISPLAY_CFG = $00040018;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_TAG_SET_DISPLAY_POWER = $00048019;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_TAG_SET_CURSOR_INFO  = $00008010;</code>
 +
| 00008011 These were reversed in the documentation, see Linux \include\soc\bcm2835\raspberrypi-firmware.h
 +
|-
 +
| <code>BCM2835_MBOX_TAG_SET_CURSOR_STATE = $00008011;</code>
 +
| 00008010
 +
|-
 +
|colspan="2"|''VCHIQ''
 +
|-
 +
| <code>BCM2835_MBOX_TAG_VCHIQ_INIT = $00048010;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|''Config''
 +
|-
 +
| <code>BCM2835_MBOX_TAG_GET_COMMAND_LINE = $00050001;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|''Shared Resource Management''
 +
|-
 +
| <code>BCM2835_MBOX_TAG_GET_DMA_CHANNELS = $00060001;</code>
 +
| Caller assumes that the VC has enabled all the usable DMA channels
 +
|-
 +
|colspan="2"|''End''
 +
|-
 +
| <code>BCM2835_MBOX_TAG_END = $00000000;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 mailbox board revision value''' <code> BCM2835_BOARD_REV_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|See: http://elinux.org/RPi_HardwareHistory
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_BOARD_REV_B_I2C0_2 = $00000002;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_BOARD_REV_B_I2C0_3 = $00000003;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_BOARD_REV_B_I2C1_4 = $00000004;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_BOARD_REV_B_I2C1_5 = $00000005;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_BOARD_REV_B_I2C1_6 = $00000006;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_BOARD_REV_A_7 = $00000007;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_BOARD_REV_A_8 = $00000008;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_BOARD_REV_A_9 = $00000009;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_BOARD_REV_B_REV2_d = $0000000D;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_BOARD_REV_B_REV2_e = $0000000E;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_BOARD_REV_B_REV2_f = $0000000F;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_BOARD_REV_B_PLUS = $00000010;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_BOARD_REV_CM = $00000011;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_BOARD_REV_A_PLUS = $00000012;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_BOARD_REV_B_PLUS_2 = $00000013;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_BOARD_REV_CM_2 = $00000014;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_BOARD_REV_A_PLUS_2 = $00000015;</code>
 +
| 512MB version of the A+
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_BOARD_REV_APLUS_1 = $00900021;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_BOARD_REV_ZERO_1 = $00900092;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_BOARD_REV_ZERO_2 = $00900093;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_BOARD_REV_ZERO_3 = $00920093;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_BOARD_REV_ZERO_W_1 = $009000C1;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_BOARD_REV_MASK = $00FFFFFF;</code>
 +
| Mask off the warranty bit
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 mailbox board revision''' <code> BCM2835_BOARD_REVISION_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|See: https://www.raspberrypi.org/documentation/hardware/raspberrypi/revision-codes/README.md
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_BOARD_REVISION_PCB_MASK = ($F shl 0);</code>
 +
| PCB Revision Number
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_BOARD_REVISION_MODEL_MASK = ($FF shl 4);</code>
 +
| Model Number
 +
|-
 +
| <code>BCM2835_BOARD_REVISION_MODEL_A = (0 shl 4);</code>
 +
| Model A
 +
|-
 +
| <code>BCM2835_BOARD_REVISION_MODEL_B = (1 shl 4);</code>
 +
| Model B
 +
|-
 +
| <code>BCM2835_BOARD_REVISION_MODEL_APLUS = (2 shl 4);</code>
 +
| Model A+
 +
|-
 +
| <code>BCM2835_BOARD_REVISION_MODEL_BPLUS = (3 shl 4);</code>
 +
| Model B+
 +
|-
 +
| <code>BCM2835_BOARD_REVISION_MODEL_2B = (4 shl 4);</code>
 +
| Model 2B (Cannot occur on BCM2835)
 +
|-
 +
| <code>BCM2835_BOARD_REVISION_MODEL_ALPHA = (5 shl 4);</code>
 +
| Unknown
 +
|-
 +
| <code>BCM2835_BOARD_REVISION_MODEL_COMPUTE = (6 shl 4);</code>
 +
| Compute Module
 +
|-
 +
| <code>BCM2835_BOARD_REVISION_MODEL_UNKNOWN = (7 shl 4);</code>
 +
| Unknown
 +
|-
 +
| <code>BCM2835_BOARD_REVISION_MODEL_3B = (8 shl 4);</code>
 +
| Model 3B (Cannot occur on BCM2835)
 +
|-
 +
| <code>BCM2835_BOARD_REVISION_MODEL_ZERO = (9 shl 4);</code>
 +
| Model Zero
 +
|-
 +
| <code>BCM2835_BOARD_REVISION_MODEL_COMPUTE3 = (10 shl 4);</code>
 +
| Compute Module 3 (Cannot occur on BCM2835)
 +
|-
 +
| <code>BCM2835_BOARD_REVISION_MODEL_UNKNOWN_2 = (11 shl 4);</code>
 +
| Unknown
 +
|-
 +
| <code>BCM2835_BOARD_REVISION_MODEL_ZERO_W = (12 shl 4);</code>
 +
| Model Zero W
 +
|-
 +
| <code>BCM2835_BOARD_REVISION_MODEL_3BPLUS = (13 shl 4);</code>
 +
| Model 3B+ (Cannot occur on BCM2835)
 +
|-
 +
| <code>BCM2835_BOARD_REVISION_MODEL_3APLUS = (14 shl 4);</code>
 +
| Model 3A+ (Cannot occur on BCM2835)
 +
|-
 +
| <code>BCM2835_BOARD_REVISION_MODEL_COMPUTE3PLUS = (16 shl 4);</code>
 +
| Compute Module 3+ (Cannot occur on BCM2835)
 +
|-
 +
| <code>BCM2835_BOARD_REVISION_MODEL_4B = (17 shl 4);</code>
 +
| Model 4B (Cannot occur on BCM2835)
 +
|-
 +
| <code>BCM2835_BOARD_REVISION_MODEL_ZERO2_W = (18 shl 4);</code>
 +
| Model Zero 2 W (Cannot occur on BCM2835)
 +
|-
 +
| <code>BCM2835_BOARD_REVISION_MODEL_400 = (19 shl 4);</code>
 +
| Pi 400 (Cannot occur on BCM2835)
 +
|-
 +
| <code>BCM2835_BOARD_REVISION_MODEL_CM4 = (20 shl 4);</code>
 +
| Compute Module 4 (Cannot occur on BCM2835)
 +
|-
 +
| <code>BCM2835_BOARD_REVISION_MODEL_CM4S = (21 shl 4);</code>
 +
| Compute Module 4S (Cannot occur on BCM2835)
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_BOARD_REVISION_PROCESSOR_MASK = ($F shl 12);</code>
 +
| Processor Type
 +
|-
 +
| <code>BCM2835_BOARD_REVISION_PROCESSOR_BCM2835 = (0 shl 12);</code>
 +
| BCM2835
 +
|-
 +
| <code>BCM2835_BOARD_REVISION_PROCESSOR_BCM2836 = (1 shl 12);</code>
 +
| BCM2836 (Cannot occur on BCM2835)
 +
|-
 +
| <code>BCM2835_BOARD_REVISION_PROCESSOR_BCM2837 = (2 shl 12);</code>
 +
| BCM2837 (Cannot occur on BCM2835)
 +
|-
 +
| <code>BCM2835_BOARD_REVISION_PROCESSOR_BCM2838 = (3 shl 12);</code>
 +
| BCM2838 (Cannot occur on BCM2835)
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_BOARD_REVISION_MANUFACTURER_MASK = ($F shl 16);</code>
 +
| Manufacturer
 +
|-
 +
| <code>BCM2835_BOARD_REVISION_MANUFACTURER_SONY = (0 shl 16);</code>
 +
| Sony
 +
|-
 +
| <code>BCM2835_BOARD_REVISION_MANUFACTURER_EGOMAN = (1 shl 16);</code>
 +
| Egoman
 +
|-
 +
| <code>BCM2835_BOARD_REVISION_MANUFACTURER_EMBEST = (2 shl 16);</code>
 +
| Embest
 +
|-
 +
| <code>BCM2835_BOARD_REVISION_MANUFACTURER_SONY_JAPAN = (3 shl 16);</code>
 +
| Sony (Japan)
 +
|-
 +
| <code>BCM2835_BOARD_REVISION_MANUFACTURER_EMBEST2 = (4 shl 16);</code>
 +
| Embest
 +
|-
 +
| <code>BCM2835_BOARD_REVISION_MANUFACTURER_STADIUM = (5 shl 16);</code>
 +
| Stadium
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_BOARD_REVISION_MEMORY_MASK = ($7 shl 20);</code>
 +
| Memory Size
 +
|-
 +
| <code>BCM2835_BOARD_REVISION_MEMORY_256M = (0 shl 20);</code>
 +
| 256M
 +
|-
 +
| <code>BCM2835_BOARD_REVISION_MEMORY_512M = (1 shl 20);</code>
 +
| 512M
 +
|-
 +
| <code>BCM2835_BOARD_REVISION_MEMORY_1024M = (2 shl 20);</code>
 +
| 1024M
 +
|-
 +
| <code>BCM2835_BOARD_REVISION_MEMORY_2048M = (3 shl 20);</code>
 +
| 2048M
 +
|-
 +
| <code>BCM2835_BOARD_REVISION_MEMORY_4096M = (4 shl 20);</code>
 +
| 4096M
 +
|-
 +
| <code>BCM2835_BOARD_REVISION_MEMORY_8192M = (5 shl 20);</code>
 +
| 8192M
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_BOARD_REVISION_ENCODED_FLAG = (1 shl 23);</code>
 +
| Encoded Flag, if set then revision uses this encoding
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_BOARD_REVISION_MASK = $00FFFFFF;</code>
 +
| Mask off the warranty bits
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 mailbox power state device''' <code> BCM2835_MBOX_POWER_DEVID_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>BCM2835_MBOX_POWER_DEVID_SDHCI = 0;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_POWER_DEVID_UART0 = 1;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_POWER_DEVID_UART1 = 2;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_POWER_DEVID_USB_HCD = 3;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_POWER_DEVID_I2C0 = 4;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_POWER_DEVID_I2C1 = 5;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_POWER_DEVID_I2C2 = 6;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_POWER_DEVID_SPI = 7;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_POWER_DEVID_CCP2TX = 8;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_POWER_DEVID_UNKNOWN = $FFFFFFFF;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 mailbox power state request''' <code> BCM2835_MBOX_SET_POWER_STATE_REQ_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>BCM2835_MBOX_SET_POWER_STATE_REQ_OFF = (0 shl 0);</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_SET_POWER_STATE_REQ_ON = (1 shl 0);</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_SET_POWER_STATE_REQ_WAIT = (1 shl 1);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 mailbox power state response''' <code> BCM2835_MBOX_POWER_STATE_RESP_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>BCM2835_MBOX_POWER_STATE_RESP_OFF = (0 shl 0);</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_POWER_STATE_RESP_ON = (1 shl 0);</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_POWER_STATE_RESP_NODEV = (1 shl 1);</code>
 +
| Device doesn't exist
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 mailbox clock state/rate Id''' <code> BCM2835_MBOX_CLOCK_ID_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>BCM2835_MBOX_CLOCK_ID_RESERVED = 0;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_CLOCK_ID_EMMC = 1;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_CLOCK_ID_UART = 2;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_CLOCK_ID_ARM = 3;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_CLOCK_ID_CORE = 4;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_CLOCK_ID_V3D = 5;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_CLOCK_ID_H264 = 6;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_CLOCK_ID_ISP = 7;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_CLOCK_ID_SDRAM = 8;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_CLOCK_ID_PIXEL = 9;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_CLOCK_ID_PWM = 10;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_CLOCK_ID_UNKNOWN = $FFFFFFFF;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 mailbox clock state request''' <code> BCM2835_MBOX_SET_CLOCK_STATE_REQ_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>BCM2835_MBOX_SET_CLOCK_STATE_REQ_OFF = (0 shl 0);</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_SET_CLOCK_STATE_REQ_ON = (1 shl 0);</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_SET_CLOCK_STATE_REQ_NOCLOCK = (1 shl 1);</code>
 +
| Clock doesn't exist
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 mailbox clock state response''' <code> BCM2835_MBOX_CLOCK_STATE_RESP_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>BCM2835_MBOX_CLOCK_STATE_RESP_OFF = (0 shl 0);</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_CLOCK_STATE_RESP_ON = (1 shl 0);</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_CLOCK_STATE_RESP_NOCLOCK = (1 shl 1);</code>
 +
| Clock doesn't exist
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 mailbox clock rate turbo''' <code> BCM2835_MBOX_CLOCK_RATE_REQ_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>BCM2835_MBOX_CLOCK_RATE_REQ_SKIP_TURBO  = (1 shl 0);</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 mailbox voltage Id''' <code> BCM2835_MBOX_VOLTAGE_ID_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>BCM2835_MBOX_VOLTAGE_ID_RESERVED = $00000000;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_VOLTAGE_ID_CORE = $00000001;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_VOLTAGE_ID_SDRAM_C = $00000002;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_VOLTAGE_ID_SDRAM_P = $00000003;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_VOLTAGE_ID_SDRAM_I = $00000004;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br /> 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 mailbox voltage''' <code> BCM2835_MBOX_VOLTAGE_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>BCM2835_MBOX_VOLTAGE_INVALID = $80000000;</code>
 +
| A value of 0x80000000 means the Id was not valid
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 mailbox temperature Id''' <code> BCM2835_MBOX_TEMP_ID_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>BCM2835_MBOX_TEMP_ID_SOC = 0;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 mailbox display Id''' <code> BCM2835_MBOX_DISPLAY_ID_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|Note: These are compatible with the DISPMANX_ID_* values)
 +
|-
 +
| <code>BCM2835_MBOX_DISPLAY_ID_MAIN_LCD = 0;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_DISPLAY_ID_AUX_LCD = 1;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_DISPLAY_ID_HDMI0 = 2;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_DISPLAY_ID_SDTV = 3;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_DISPLAY_ID_FORCE_LCD = 4;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_DISPLAY_ID_FORCE_TV = 5;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_DISPLAY_ID_FORCE_OTHER = 6;</code>
 +
| Non-default display
 +
|-
 +
| <code>BCM2835_MBOX_DISPLAY_ID_HDMI1 = 7;</code>
 +
| Not applicable on BCM2835
 +
|-
 +
| <code>BCM2835_MBOX_DISPLAY_ID_FORCE_TV2 = 8;</code>
 +
| Not applicable on BCM2835
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 mailbox memory flag''' <code> BCM2835_MBOX_MEM_FLAG_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>BCM2835_MBOX_MEM_FLAG_DISCARDABLE = (1 shl 0);</code>
 +
| Can be resized to 0 at any time. Use for cached data.
 +
|-
 +
| <code>BCM2835_MBOX_MEM_FLAG_NORMAL = (0 shl 2);</code>
 +
| Normal allocating alias. Don't use from ARM.
 +
|-
 +
| <code>BCM2835_MBOX_MEM_FLAG_DIRECT = (1 shl 2);</code>
 +
| 0xC alias uncached
 +
|-
 +
| <code>BCM2835_MBOX_MEM_FLAG_COHERENT = (2 shl 2);</code>
 +
| 0x8 alias. Non-allocating in L2 but coherent.
 +
|-
 +
| <code>BCM2835_MBOX_MEM_FLAG_L1_NONALLOCATING = (BCM2835_MBOX_MEM_FLAG_DIRECT or BCM2835_MBOX_MEM_FLAG_COHERENT);</code>
 +
| Allocating in L2
 +
|-
 +
| <code>BCM2835_MBOX_MEM_FLAG_ZERO = (1 shl 4);</code>
 +
| Initialise buffer to all zeros
 +
|-
 +
| <code>BCM2835_MBOX_MEM_FLAG_NO_INIT = (1 shl 5);</code>
 +
| Don't initialise (default is initialise to all ones)
 +
|-
 +
| <code>BCM2835_MBOX_MEM_FLAG_HINT_PERMALOCK = (1 shl 6);</code>
 +
| Likely to be locked for long periods of time
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 mailbox blank screen''' <code> BCM2835_MBOX_BLANK_SCREEN_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>BCM2835_MBOX_BLANK_SCREEN_REQ_ON = (1 shl 0);</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 mailbox pixel order''' <code> BCM2835_MBOX_PIXEL_ORDER_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>BCM2835_MBOX_PIXEL_ORDER_BGR = 0;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_PIXEL_ORDER_RGB = 1;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 mailbox alpha mode''' <code> BCM2835_MBOX_ALPHA_MODE_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>BCM2835_MBOX_ALPHA_MODE_0_OPAQUE = 0;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_ALPHA_MODE_0_TRANSPARENT = 1;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_ALPHA_MODE_IGNORED = 2;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 mailbox palette''' <code> BCM2835_MBOX_PALETTE_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>BCM2835_MBOX_PALETTE_INVALID = $00000001;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 mailbox cursor state''' <code> BCM2835_MBOX_CURSOR_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>BCM2835_MBOX_CURSOR_INVISIBLE = 0;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_CURSOR_VISIBLE = 1;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 mailbox cursor state flag''' <code> BCM2835_MBOX_CURSOR_STATE_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>BCM2835_MBOX_CURSOR_STATE_DISPLAY_COORDS = (0 shl 0);</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_CURSOR_STATE_FRAMEBUFFER_COORDS = (1 shl 0);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 mailbox cursor''' <code> BCM2835_MBOX_CURSOR_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>BCM2835_MBOX_CURSOR_INVALID = $00000001;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 mailbox request''' <code> BCM2835_MBOX_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>BCM2835_MBOX_REQUEST_CODE = $00000000;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_RESPONSE_CODE_SUCCESS = $80000000;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_RESPONSE_CODE_ERROR = $80000001;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 mailbox tag request''' <code> BCM2835_MBOX_TAG_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>BCM2835_MBOX_TAG_REQUEST_CODE = $00000000;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>BCM2835_MBOX_TAG_RESPONSE_CODE = $80000000;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 GPIO''' <code> BCM2835_GPIO_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>BCM2835_GPIO_PIN_COUNT = 54;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>BCM2835_GPIO_BANK_COUNT = 2;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BCM2835_GPIO_SIGNATURE = $6770696F;</code>
 +
| The ASCII value 'GPIO' returned when reading from a write only register
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''BCM2835 function select register''' <code> BCM2835_GP* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>BCM2835_GPFSEL0 = $00000000;</code>
 +
| GPIO Function Select 0
 +
|-
 +
| <code>BCM2835_GPFSEL1 = $00000004;</code>
 +
| GPIO Function Select 1
 +
|-
 +
| <code>BCM2835_GPFSEL2 = $00000008;</code>
 +
| GPIO Function Select 2
 +
|-
 +
| <code>BCM2835_GPFSEL3 = $0000000C;</code>
 +
| GPIO Function Select 3
 +
|-
 +
| <code>BCM2835_GPFSEL4 = $00000010;</code>
 +
| GPIO Function Select 4
 +
|-
 +
| <code>BCM2835_GPFSEL5 = $00000014;</code>
 +
| GPIO Function Select 5
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
|colspan="2"|''Pin Output Set Registers''
 +
|-
 +
| <code>BCM2835_GPSET0 = $0000001C;</code>
 +
| GPIO Pin Output Set 0
 +
|-
 +
| <code>BCM2835_GPSET1 = $00000020;</code>
 +
| GPIO Pin Output Set 1
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
|colspan="2"|''Pin Output Clear Registers''
 +
|-
 +
| <code>BCM2835_GPCLR0 = $00000028;</code>
 +
| GPIO Pin Output Clear 0
 +
|-
 +
| <code>BCM2835_GPCLR1 = $0000002C;</code>
 +
| GPIO Pin Output Clear 1
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
|colspan="2"|''Pin Level Registers''
 +
|-
 +
| <code>BCM2835_GPLEV0 = $00000034;</code>
 +
| GPIO Pin Level 0
 +
|-
 +
| <code>BCM2835_GPLEV1 = $00000038;</code>
 +
| GPIO Pin Level 1
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
|colspan="2"|''Pin Event Detect Status Registers''
 +
|-
 +
| <code>BCM2835_GPEDS0 = $00000040;</code>
 +
| GPIO Pin Event Detect Status 0
 +
|-
 +
| <code>BCM2835_GPEDS1 = $00000044;</code>
 +
| GPIO Pin Event Detect Status 1
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
|colspan="2"|''Pin Rising Edge Detect Enable Registers''
 +
|-
 +
| <code>BCM2835_GPREN0 = $0000004c;</code>
 +
| GPIO Pin Rising Edge Detect Enable 0
 +
|-
 +
| <code>BCM2835_GPREN1 = $00000050;</code>
 +
| GPIO Pin Rising Edge Detect Enable 1
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
|colspan="2"|''Pin Falling Edge Detect Enable Registers''
 +
|-
 +
| <code>BCM2835_GPFEN0 = $00000058;</code>
 +
| GPIO Pin Falling Edge Detect Enable 0
 +
|-
 +
| <code>BCM2835_GPFEN1 = $0000005c;</code>
 +
| GPIO Pin Falling Edge Detect Enable 1
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
|colspan="2"|''Pin High Detect Enable Registers''
 +
|-
 +
| <code>BCM2835_GPHEN0 = $00000064;</code>
 +
| GPIO Pin High Detect Enable 0
 +
|-
 +
| <code>BCM2835_GPHEN1 = $00000068;</code>
 +
| GPIO Pin High Detect Enable 1
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
|colspan="2"|''Pin Low Detect Enable Registers''
 +
|-
 +
| <code>BCM2835_GPLEN0 = $00000070;</code>
 +
| GPIO Pin Low Detect Enable 0
 +
|-
 +
| <code>BCM2835_GPLEN1 = $00000074;</code>
 +
| GPIO Pin Low Detect Enable 1
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
|colspan="2"|''Pin Async. Rising Edge Detect Registers''
 +
|-
 +
| <code>BCM2835_GPAREN0 = $0000007c;</code>
 +
| GPIO Pin Async. Rising Edge Detect 0
 +
|-
 +
| <code>BCM2835_GPAREN1 = $00000080;</code>
 +
| GPIO Pin Async. Rising Edge Detect 1
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
|colspan="2"|''Pin Async. Falling Edge Detect Registers''
 +
|-
 +
| <code>BCM2835_GPAFEN0 = $00000088;</code>
 +
| GPIO Pin Async. Falling Edge Detect 0
 +
|-
 +
| <code>BCM2835_GPAFEN1 = $0000008c;</code>
 +
| GPIO Pin Async. Falling Edge Detect 1
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
|colspan="2"|''Pin Pull-up/down Enable Registers''
 +
|-
 +
| <code>BCM2835_GPPUD = $00000094;</code>
 +
| GPIO Pin Pull-up/down Enable
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
|colspan="2"|''Pin Pull-up/down Enable Clock Registers''
 +
|-
 +
| <code>BCM2835_GPPUDCLK0 = $00000098;</code>
 +
| GPIO Pin Pull-up/down Enable Clock 0
 +
|-
 +
| <code>BCM2835_GPPUDCLK1 = $0000009C;</code>
 +
| GPIO Pin Pull-up/down Enable Clock 1
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
|colspan="2"|''Function Select Mask''
 +
|-
 +
| <code>BCM2835_GPFSEL_MASK = 7;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
|colspan="2"|''Function Select Values''
 +
|-
 +
| <code>BCM2835_GPFSEL_IN = 0;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_GPFSEL_OUT = 1;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_GPFSEL_ALT0 = 4;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_GPFSEL_ALT1 = 5;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_GPFSEL_ALT2 = 6;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_GPFSEL_ALT3 = 7;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_GPFSEL_ALT4 = 3;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_GPFSEL_ALT5 = 2;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
|colspan="2"|''Pin Output Set Mask''
 +
|-
 +
| <code>BCM2835_GPSET_MASK = 1;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
|colspan="2"|''Pin Output Clear Mask''
 +
|-
 +
| <code>BCM2835_GPCLR_MASK = 1;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
|colspan="2"|''Pin Level Mask''
 +
|-
 +
| <code>BCM2835_GPLEV_MASK = 1;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
|colspan="2"|''Pin Event Detect Status Mask''
 +
|-
 +
| <code>BCM2835_GPEDS_MASK = 1;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
|colspan="2"|''Pin Rising Edge Detect Enable Mask''
 +
|-
 +
| <code>BCM2835_GPREN_MASK = 1;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
|colspan="2"|''Pin Falling Edge Detect Enable Mask''
 +
|-
 +
| <code>BCM2835_GPFEN_MASK = 1;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
|colspan="2"|''Pin High Detect Enable Mask''
 +
|-
 +
| <code>BCM2835_GPHEN_MASK = 1;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
|colspan="2"|''Pin Low Detect Enable Mask''
 +
|-
 +
| <code>BCM2835_GPLEN_MASK = 1;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
|colspan="2"|''Pin Async. Rising Edge Detect Mask''
 +
|-
 +
| <code>BCM2835_GPAREN_MASK = 1;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
|colspan="2"|''Pin Async. Falling Edge Detect Mask''
 +
|-
 +
| <code>BCM2835_GPAFEN_MASK = 1;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
|colspan="2"|''Pull-up/down Enable Mask''
 +
|-
 +
| <code>BCM2835_GPPUD_MASK = 3;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
|colspan="2"|''Pull-up/down Enable Values''
 +
|-
 +
| <code>BCM2835_GPPUD_NONE = 0;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_GPPUD_DOWN = 1;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BCM2835_GPPUD_UP = 2;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
|colspan="2"|''Pin Pull-up/down Enable Clock Mask''
 +
|-
 +
| <code>BCM2835_GPPUDCLK_MASK = 1;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
  
 
=== Type definitions ===
 
=== Type definitions ===
 
----
 
----
  
''To be documented''
+
 
 +
'''BCM2835 interrupt controller registers'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835InterruptRegisters = ^TBCM2835InterruptRegisters;</code>
 +
 
 +
<code>TBCM2835InterruptRegisters = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|Note: Layout of the BCM2835 Interrupt Controller registers (See 7.5)
 +
|-
 +
| <code>IRQ_basic_pending:LongWord;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>IRQ_pending_1:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>IRQ_pending_2:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>FIQ_control:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Enable_IRQs_1:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Enable_IRQs_2:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Enable_Basic_IRQs:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Disable_IRQs_1:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Disable_IRQs_2:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Disable_Basic_IRQs:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 
 +
'''BCM2835 system timer registers'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835SystemTimerRegisters = ^TBCM2835SystemTimerRegisters;</code>
 +
 
 +
<code>TBCM2835SystemTimerRegisters = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|Note: Layout of the BCM2835 System Timer registers (See 12.1)
 +
|-
 +
| <code>CS:LongWord;</code>
 +
| System Timer Control/Status
 +
|-
 +
| <code>CLO:LongWord;</code>
 +
| System Timer Counter Lower 32 bits
 +
|-
 +
| <code>CHI:LongWord;</code>
 +
| System Timer Counter Higher 32 bits
 +
|-
 +
| <code>C0:LongWord;</code>
 +
| System Timer Compare 0. Already used by the VideoCore GPU (Do not use)
 +
|-
 +
| <code>C1:LongWord;</code>
 +
| System Timer Compare 1
 +
|-
 +
| <code>C2:LongWord;</code>
 +
| System Timer Compare 2. Already used by the VideoCore GPU (Do not use)
 +
|-
 +
| <code>C3:LongWord;</code>
 +
| System Timer Compare 3
 +
|-
 +
|}
 +
</div></div> 
 +
 +
'''BCM2835 DMA channel registers'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835DMARegisters = ^TBCM2835DMARegisters;</code>
 +
 
 +
<code>TBCM2835DMARegisters = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|Note: Layout of the BCM2835 DMA Channel registers (See 4.2.1.2)
 +
|-
 +
| <code>CS:LongWord;</code>
 +
| DMA Channel Control and Status
 +
|-
 +
| <code>CONBLK_AD:LongWord;</code>
 +
| DMA Channel Control Block Address
 +
|-
 +
| <code>TI:LongWord;</code>
 +
| DMA Channel CB Word 0 (Transfer Information)
 +
|-
 +
| <code>SOURCE_AD:LongWord;</code>
 +
| DMA Channel CB Word 1 (Source Address)
 +
|-
 +
| <code>DEST_AD:LongWord;</code>
 +
| DMA Channel CB Word 2 (Destination Address)
 +
|-
 +
| <code>TXFR_LEN:LongWord;</code>
 +
| DMA Channel CB Word 3 (Transfer Length)
 +
|-
 +
| <code>STRIDE:LongWord;</code>
 +
| DMA Channel CB Word 4 (2D Stride)
 +
|-
 +
| <code>NEXTCONBK:LongWord;</code>
 +
| DMA Channel CB Word 5 (Next CB Address)
 +
|-
 +
| <code>DEBUG:LongWord;</code>
 +
| DMA Channel Debug
 +
|-
 +
|}
 +
</div></div>
 +
 +
'''BCM2835 DMA control block structure'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835DMAControlBlock = ^TBCM2835DMAControlBlock;</code>
 +
 
 +
<code>TBCM2835DMAControlBlock = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|Note: Layout of BCM2835 DMA Control Block structure (See 4.2.1.1) Must be 32byte (256bit) aligned
 +
|-
 +
| <code>TransferInformation:LongWord;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>SourceAddress:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DestinationAddress:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>TransferLength:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>ModeStride:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>NextControlBlockAddress:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Reserved1:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Reserved2:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 +
'''BCM2835 BSC (I2C) registers''' 
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835BSCRegisters = ^TBCM2835BSCRegisters;</code>
 +
 
 +
<code>TBCM2835BSCRegisters = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|Note: Layout of the BCM2835 BSC (I2C) registers (See 3.2)
 +
|-
 +
| <code>C:LongWord;</code>
 +
| Control
 +
|-
 +
| <code>S:LongWord;</code>
 +
| Status
 +
|-
 +
| <code>DLEN:LongWord;</code>
 +
| Data Length
 +
|-
 +
| <code>A:LongWord;</code>
 +
| Slave Address
 +
|-
 +
| <code>FIFO:LongWord;</code>
 +
| Data FIFO
 +
|-
 +
| <code>CDIV:LongWord;</code>
 +
| Clock Divider
 +
|-
 +
| <code>DEL:LongWord;</code>
 +
| Data Delay
 +
|-
 +
| <code>CLKT:LongWord;</code>
 +
| Clock Stretch Timeout
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''BCM2835 SPI0 registers'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835SPI0Registers = ^TBCM2835SPI0Registers;</code>
 +
 
 +
<code>TBCM2835SPI0Registers = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|Note: Layout of the BCM2835 SPI0 registers (See 10.5)
 +
|-
 +
| <code>CS:LongWord;</code>
 +
| SPI Master Control and Status
 +
|-
 +
| <code>FIFO:LongWord;</code>
 +
| SPI Master TX and RX FIFOs
 +
|-
 +
| <code>CLK:LongWord;</code>
 +
| SPI Master Clock Divider
 +
|-
 +
| <code>DLEN:LongWord;</code>
 +
| SPI Master Data Length
 +
|-
 +
| <code>LTOH:LongWord;</code>
 +
| SPI LOSSI mode TOH
 +
|-
 +
| <code>DC:LongWord;</code>
 +
| SPI DMA DREQ Controls
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''BCM2835 I2C/SPI slave registers'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835I2CSPIRegisters = ^TBCM2835I2CSPIRegisters;</code>
 +
 
 +
<code>TBCM2835I2CSPIRegisters = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|Note: Layout of the BCM2835 I2C/SPI Slave registers (See 11.2)
 +
|-
 +
| <code>DR:LongWord;</code>
 +
| Data Register
 +
|-
 +
| <code>RSR:LongWord;</code>
 +
| Operation status register and error clear register
 +
|-
 +
| <code>SLV:LongWord;</code>
 +
| I2C SPI Address Register holds the I2C slave address value
 +
|-
 +
| <code>CR:LongWord;</code>
 +
| Control register is used to configure the I2C or SPI operation
 +
|-
 +
| <code>FR:LongWord;</code>
 +
| Flag register
 +
|-
 +
| <code>IFLS:LongWord;</code>
 +
| Interrupt fifo level select register
 +
|-
 +
| <code>IMSC:LongWord;</code>
 +
| Interrupt Mask Set Clear Register
 +
|-
 +
| <code>RIS:LongWord;</code>
 +
| Raw Interrupt Status Register
 +
|-
 +
| <code>MIS:LongWord;</code>
 +
| Masked Interrupt Status Register
 +
|-
 +
| <code>ICR:LongWord;</code>
 +
| Interrupt Clear Register
 +
|-
 +
| <code>DMACR:LongWord;</code>
 +
| DMA Control Register
 +
|-
 +
| <code>TDR:LongWord;</code>
 +
| FIFO Test Data Register
 +
|-
 +
| <code>GPUSTAT:LongWord;</code>
 +
| GPU Status Register
 +
|-
 +
| <code>HCTRL:LongWord;</code>
 +
| Host Control Register
 +
|-
 +
| <code>DEBUG1:LongWord;</code>
 +
| I2C Debug Register
 +
|-
 +
| <code>DEBUG2:LongWord;</code>
 +
| SPI Debug Register
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''BCM2835 AUX (UART1, SPI1 and SPI2) registers'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835AUXRegisters = ^TBCM2835AUXRegisters;</code>
 +
 
 +
<code>TBCM2835AUXRegisters = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|Note: Layout of the BCM2835 AUX (UART1, SPI1 and SPI2) registers (See 2.1)
 +
|-
 +
| <code>AUX_IRQ:LongWord;</code>
 +
| Auxiliary Interrupt status
 +
|-
 +
| <code>AUX_ENABLE:LongWord;</code>
 +
| Auxiliary enables
 +
|-
 +
| <code>Reserved01:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Reserved02:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Reserved03:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Reserved04:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Reserved05:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Reserved06:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Reserved07:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Reserved08:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Reserved09:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Reserved0A:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Reserved0B:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Reserved0C:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Reserved0D:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Reserved0E:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>AUX_MU_IO:LongWord;</code>
 +
| Mini Uart I/O Data
 +
|-
 +
| <code>AUX_MU_IER:LongWord;</code>
 +
| Mini Uart Interrupt Enable
 +
|-
 +
| <code>AUX_MU_IIR:LongWord;</code>
 +
| Mini Uart Interrupt Identify
 +
|-
 +
| <code>AUX_MU_LCR:LongWord;</code>
 +
| Mini Uart Line Control
 +
|-
 +
| <code>AUX_MU_MCR:LongWord;</code>
 +
| Mini Uart Modem Control
 +
|-
 +
| <code>AUX_MU_LSR:LongWord;</code>
 +
| Mini Uart Line Status
 +
|-
 +
| <code>AUX_MU_MSR:LongWord;</code>
 +
| Mini Uart Modem Status
 +
|-
 +
| <code>AUX_MU_SCRATCH:LongWord;</code>
 +
| Mini Uart Scratch
 +
|-
 +
| <code>AUX_MU_CNTL:LongWord;</code>
 +
| Mini Uart Extra Control
 +
|-
 +
| <code>AUX_MU_STAT:LongWord;</code>
 +
| Mini Uart Extra Status
 +
|-
 +
| <code>AUX_MU_BAUD:LongWord;</code>
 +
| Mini Uart Baudrate
 +
|-
 +
| <code>Reserved11:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Reserved12:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Reserved13:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Reserved14:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Reserved15:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>AUX_SPI1_CNTL0:LongWord;</code>
 +
| SPI 1 Control register 0
 +
|-
 +
| <code>AUX_SPI1_CNTL1:LongWord;</code>
 +
| SPI 1 Control register 1
 +
|-
 +
| <code>AUX_SPI1_STAT:LongWord;</code>
 +
| SPI 1 Status
 +
|-
 +
| <code>Reserved21:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>AUX_SPI1_IO:LongWord;</code>
 +
| SPI 1 Data
 +
|-
 +
| <code>AUX_SPI1_PEEK:LongWord;</code>
 +
| SPI 1 Peek
 +
|-
 +
| <code>Reserved31:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Reserved32:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Reserved33:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Reserved34:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Reserved35:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Reserved36:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Reserved37:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Reserved38:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Reserved39:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Reserved3A:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>AUX_SPI2_CNTL0:LongWord;</code>
 +
| SPI 2 Control register 0
 +
|-
 +
| <code>AUX_SPI2_CNTL1:LongWord;</code>
 +
| SPI 2 Control register 1
 +
|-
 +
| <code>AUX_SPI2_STAT:LongWord;</code>
 +
| SPI 2 Status
 +
|-
 +
| <code>Reserved40:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>AUX_SPI2_IO:LongWord;</code>
 +
| SPI 2 Data
 +
|-
 +
| <code>AUX_SPI2_PEEK:LongWord;</code>
 +
| SPI 2 Peek
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''BCM2835 PCM/I2S registers'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835PCMRegisters = ^TBCM2835PCMRegisters;</code>
 +
 
 +
<code>TBCM2835PCMRegisters = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|Note: Layout of the BCM2835 PCM/I2S registers (See 8.8)
 +
|-
 +
| <code>CS_A:LongWord;</code>
 +
| PCM Control and Status
 +
|-
 +
| <code>FIFO_A:LongWord;</code>
 +
| PCM FIFO Data
 +
|-
 +
| <code>MODE_A:LongWord;</code>
 +
| PCM Mode
 +
|-
 +
| <code>RXC_A:LongWord;</code>
 +
| PCM Receive Configuration
 +
|-
 +
| <code>TXC_A:LongWord;</code>
 +
| PCM Transmit Configuration
 +
|-
 +
| <code>DREQ_A:LongWord;</code>
 +
| PCM DMA Request Level
 +
|-
 +
| <code>INTEN_A:LongWord;</code>
 +
| PCM Interrupt Enables
 +
|-
 +
| <code>INTSTC_A:LongWord;</code>
 +
| PCM Interrupt Status & Clear
 +
|-
 +
| <code>GRAY:LongWord;</code>
 +
| PCM Gray Mode Control
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''BCM2835 pulse width modulator (PWM) registers'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835PWMRegisters = ^TBCM2835PWMRegisters;</code>
 +
 
 +
<code>TBCM2835PWMRegisters = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|Layout of the BCM2835 Pulse Width Modulator (PWM) registers (See 9.6)
 +
|-
 +
| <code>CTL:LongWord;</code>
 +
| PWM Control
 +
|-
 +
| <code>STA:LongWord;</code>
 +
| PWM Status
 +
|-
 +
| <code>DMAC:LongWord;</code>
 +
| PWM DMA Configuration
 +
|-
 +
| <code>Reserved1:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>RNG1:LongWord;</code>
 +
| PWM Channel 1 Range
 +
|-
 +
| <code>DAT1:LongWord;</code>
 +
| PWM Channel 1 Data
 +
|-
 +
| <code>FIF1:LongWord;</code>
 +
| PWM FIFO Input
 +
|-
 +
| <code>Reserved2:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>RNG2:LongWord;</code>
 +
| PWM Channel 2 Range
 +
|-
 +
| <code>DAT2:LongWord;</code>
 +
| PWM Channel 2 Data
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''BCM2835 PL011 UART registers'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835PL011Registers = ^TBCM2835PL011Registers;</code>
 +
 
 +
<code>TBCM2835PL011Registers = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|Note: Layout of the BCM2835 PL011 UART registers (See 13.4)
 +
|-
 +
| <code>DR:LongWord;</code>
 +
| Data Register
 +
|-
 +
| <code>RSRECR:LongWord;</code>
 +
| Receive Status Register/Error Clear Register
 +
|-
 +
| <code>Reserved01:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Reserved02:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Reserved03:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Reserved04:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>FR:LongWord;</code>
 +
| Flag register
 +
|-
 +
| <code>Reserved05:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>ILPR:LongWord;</code>
 +
| Not in use
 +
|-
 +
| <code>IBRD:LongWord;</code>
 +
| Integer Baud rate divisor
 +
|-
 +
| <code>FBRD:LongWord;</code>
 +
| Fractional Baud rate divisor
 +
|-
 +
| <code>LCRH:LongWord;</code>
 +
| Line Control register
 +
|-
 +
| <code>CR:LongWord;</code>
 +
| Control register
 +
|-
 +
| <code>IFLS:LongWord;</code>
 +
| Interrupt FIFO Level Select Register
 +
|-
 +
| <code>IMSC:LongWord;</code>
 +
| Interrupt Mask Set Clear Register
 +
|-
 +
| <code>RIS:LongWord;</code>
 +
| Raw Interrupt Status Register
 +
|-
 +
| <code>MIS:LongWord;</code>
 +
| Masked Interrupt Status Register
 +
|-
 +
| <code>ICR:LongWord;</code>
 +
| Interrupt Clear Register
 +
|-
 +
| <code>DMACR:LongWord;</code>
 +
| DMA Control Register
 +
|-
 +
| <code>Reserved11:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Reserved12:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Reserved13:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Reserved14:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Reserved15:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Reserved16:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Reserved17:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Reserved18:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Reserved19:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Reserved1A:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Reserved1B:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Reserved1C:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Reserved1D:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>ITCR:LongWord;</code>
 +
| Test Control Register
 +
|-
 +
| <code>ITIP:LongWord;</code>
 +
| Integration Test Input Register
 +
|-
 +
| <code>ITOP:LongWord;</code>
 +
| Integration Test Output Register
 +
|-
 +
| <code>TDR:LongWord;</code>
 +
| Test Data Register
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''BCM2835 ARM timer registers'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835ARMTimerRegisters = ^TBCM2835ARMTimerRegisters;</code>
 +
 
 +
<code>TBCM2835ARMTimerRegisters = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|Note: Layout of the BCM2835 ARM Timer registers (See 14.2)
 +
|-
 +
| <code>Load:LongWord;</code>
 +
| Timer Load register
 +
|-
 +
| <code>Value:LongWord;</code>
 +
| Timer Value register
 +
|-
 +
| <code>Control:LongWord;</code>
 +
| Timer control register
 +
|-
 +
| <code>IRQClear:LongWord;</code>
 +
| Timer IRQ clear register
 +
|-
 +
| <code>RawIRQ:LongWord;</code>
 +
| Timer Raw IRQ register
 +
|-
 +
| <code>MaskedIRQ:LongWord;</code>
 +
| Timer Masked IRQ register
 +
|-
 +
| <code>Reload:LongWord;</code>
 +
| Timer Reload register
 +
|-
 +
| <code>Predivider:LongWord;</code>
 +
| The timer pre-divider register
 +
|-
 +
| <code>Counter:LongWord;</code>
 +
| Free running counter
 +
|-
 +
|}
 +
</div></div> 
 +
 +
'''BCM2835 power management watchdog registers'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835PMWatchdogRegisters = ^TBCM2835PMWatchdogRegisters;</code>
 +
 
 +
<code>TBCM2835PMWatchdogRegisters = record </code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|Note: Layout of the BCM2835 Power Management Watchdog registers
 +
|-
 +
| <code>Reserved1:LongWord;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>Reserved2:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Reserved3:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Reserved4:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Reserved5:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Reserved6:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Reserved7:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>RSTC:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>RSTS:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>WDOG:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''BCM2835 random number generator registers'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835RNGRegisters = ^TBCM2835RNGRegisters;</code>
 +
 
 +
<code>TBCM2835RNGRegisters = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|Note: Layout of the BCM2835 Random Number Generator registers
 +
|-
 +
| <code>Control:LongWord;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>Status:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Data:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>FFThreshold:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''BCM2835 GPIO registers'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835GPIORegisters = ^TBCM2835GPIORegisters;</code>
 +
 
 +
<code>TBCM2835GPIORegisters = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|Note: Layout of the BCM2835 GPIO registers (See 6.1)
 +
|-
 +
| <code>GPFSEL0:LongWord;</code>
 +
| GPIO Function Select 0
 +
|-
 +
| <code>GPFSEL1:LongWord;</code>
 +
| GPIO Function Select 1
 +
|-
 +
| <code>GPFSEL2:LongWord;</code>
 +
| GPIO Function Select 2
 +
|-
 +
| <code>GPFSEL3:LongWord;</code>
 +
| GPIO Function Select 3
 +
|-
 +
| <code>GPFSEL4:LongWord;</code>
 +
| GPIO Function Select 4
 +
|-
 +
| <code>GPFSEL5:LongWord;</code>
 +
| GPIO Function Select 5
 +
|-
 +
| <code>Reserved1:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPSET0:LongWord;</code>
 +
| GPIO Pin Output Set 0
 +
|-
 +
| <code>GPSET1:LongWord;</code>
 +
| GPIO Pin Output Set 1
 +
|-
 +
| <code>Reserved2:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPCLR0:LongWord;</code>
 +
| GPIO Pin Output Clear 0
 +
|-
 +
| <code>GPCLR1:LongWord;</code>
 +
| GPIO Pin Output Clear 1
 +
|-
 +
| <code>Reserved3:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPLEV0:LongWord;</code>
 +
| GPIO Pin Level 0
 +
|-
 +
| <code>GPLEV1:LongWord;</code>
 +
| GPIO Pin Level 1
 +
|-
 +
| <code>Reserved4:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPEDS0:LongWord;</code>
 +
| GPIO Pin Event Detect Status 0
 +
|-
 +
| <code>GPEDS1:LongWord;</code>
 +
| GPIO Pin Event Detect Status 1
 +
|-
 +
| <code>Reserved5:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPREN0:LongWord;</code>
 +
| GPIO Pin Rising Edge Detect Enable 0
 +
|-
 +
| <code>GPREN1:LongWord;</code>
 +
| GPIO Pin Rising Edge Detect Enable 1
 +
|-
 +
| <code>Reserved6:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPFEN0:LongWord;</code>
 +
| GPIO Pin Falling Edge Detect Enable 0
 +
|-
 +
| <code>GPFEN1:LongWord;</code>
 +
| GPIO Pin Falling Edge Detect Enable 1
 +
|-
 +
| <code>Reserved7:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPHEN0:LongWord;</code>
 +
| GPIO Pin High Detect Enable 0
 +
|-
 +
| <code>GPHEN1:LongWord;</code>
 +
| GPIO Pin High Detect Enable 1
 +
|-
 +
| <code>Reserved8:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPLEN0:LongWord;</code>
 +
| GPIO Pin Low Detect Enable 0
 +
|-
 +
| <code>GPLEN1:LongWord;</code>
 +
| GPIO Pin Low Detect Enable 1
 +
|-
 +
| <code>Reserved9:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPAREN0:LongWord;</code>
 +
| GPIO Pin Async. Rising Edge Detect 0
 +
|-
 +
| <code>GPAREN1:LongWord;</code>
 +
| GPIO Pin Async. Rising Edge Detect 1
 +
|-
 +
| <code>Reserved10:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPAFEN0:LongWord;</code>
 +
| GPIO Pin Async. Falling Edge Detect 0
 +
|-
 +
| <code>GPAFEN1:LongWord;</code>
 +
| GPIO Pin Async. Falling Edge Detect 1
 +
|-
 +
| <code>Reserved11:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPPUD:LongWord;</code>
 +
| GPIO Pin Pull-up/down Enable
 +
|-
 +
| <code>GPPUDCLK0:LongWord;</code>
 +
| GPIO Pin Pull-up/down Enable Clock 0
 +
|-
 +
| <code>GPPUDCLK1:LongWord;</code>
 +
| GPIO Pin Pull-up/down Enable Clock 1
 +
|-
 +
| <code>Reserved12:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Test:LongWord;</code>
 +
| Test
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''BCM2835 mailbox0 registers'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835Mailbox0Registers = ^TBCM2835Mailbox0Registers;</code>
 +
 
 +
<code>TBCM2835Mailbox0Registers = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|Note: Layout of the BCM2835 Mailbox0 registers (See https://github.com/raspberrypi/firmware/wiki/Mailboxes)
 +
|-
 +
| <code>Read:LongWord;</code>
 +
| Offset 0x00 (The read register for mailbox 0)
 +
|-
 +
| <code>Reserved1:LongWord;</code>
 +
| Offset 0x04
 +
|-
 +
| <code>Reserved2:LongWord;</code>
 +
| Offset 0x08
 +
|-
 +
| <code>Reserved3:LongWord;</code>
 +
| Offset 0x0C
 +
|-
 +
| <code>Peek:LongWord;</code>
 +
| Offset 0x10 (Read from the mailbox without removing data from it)
 +
|-
 +
| <code>Sender:LongWord;</code>
 +
| Offset 0x14 (Sender Id (bottom 2 bits only))
 +
|-
 +
| <code>Status:LongWord;</code>
 +
| Offset 0x18 (The status register for mailbox 0)
 +
|-
 +
| <code>Config:LongWord;</code>
 +
| Offset 0x1C (The configuration register for mailbox 0)
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''BCM2835 mailbox1 registers'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835Mailbox1Registers = ^TBCM2835Mailbox1Registers;</code>
 +
 
 +
<code>TBCM2835Mailbox1Registers = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|Note: Layout of the BCM2835 Mailbox1 registers (See https://github.com/raspberrypi/firmware/wiki/Mailboxes)
 +
|-
 +
| <code>Write:LongWord;</code>
 +
| Offset 0x00 (The write register for mailbox 0) (Also the read register for mailbox 1)
 +
|-
 +
| <code>Reserved1:LongWord;</code>
 +
| Offset 0x04
 +
|-
 +
| <code>Reserved2:LongWord;</code>
 +
| Offset 0x08
 +
|-
 +
| <code>Reserved3:LongWord;</code>
 +
| Offset 0x0C
 +
|-
 +
| <code>Reserved4:LongWord;</code>
 +
| Offset 0x10
 +
|-
 +
| <code>Reserved5:LongWord;</code>
 +
| Offset 0x14
 +
|-
 +
| <code>Status:LongWord;</code>
 +
| Offset 0x18 (The status register for mailbox 1)
 +
|-
 +
| <code>Config:LongWord;</code>
 +
| Offset 0x1C (The configuration register for mailbox 1)
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''BCM2835 mailbox framebuffer request'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxFramebuffer = ^TBCM2835MailboxFramebuffer;</code>
 +
 
 +
<code>TBCM2835MailboxFramebuffer = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|Note: Layout of the BCM2835 Mailbox Framebuffer request (This structure must be 16 byte aligned when passed to the GPU)
 +
|-
 +
| <code>PhysicalWidth:LongWord;</code>
 +
| Requested width of Physical Framebuffer
 +
|-
 +
| <code>PhysicalHeight:LongWord;</code>
 +
| Requested height of Physical Framebuffer
 +
|-
 +
| <code>VirtualWidth:LongWord;</code>
 +
| Requested width of Virtual Display
 +
|-
 +
| <code>VirtualHeight:LongWord;</code>
 +
| Requested height of Virtual Display
 +
|-
 +
| <code>Pitch:LongWord;</code>
 +
| Zero on request, Number of Bytes per Row in response
 +
|-
 +
| <code>Depth:LongWord;</code>
 +
| Requested Colour Depth in Bits per Pixel
 +
|-
 +
| <code>OffsetX:LongWord;</code>
 +
| Requested X offset of Virtual Framebuffer
 +
|-
 +
| <code>OffsetY:LongWord;</code>
 +
| Requested Y offset of Virtual Framebuffer
 +
|-
 +
| <code>Address:LongWord;</code>
 +
| Framebuffer address (Zero on request, Failure if zero in response)
 +
|-
 +
| <code>Size:LongWord;</code>
 +
| Framebuffer size (Zero on request, Size in bytes in response)
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''BCM2835 mailbox header property tags'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxHeader = ^TBCM2835MailboxHeader;</code>
 +
 
 +
<code>TBCM2835MailboxHeader = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|Note: Layout of the BCM2835 Mailbox Property tags (These structures must be 16 byte aligned when passed to the GPU)
 +
|-
 +
|colspan="2"|''Header''
 +
|-
 +
| <code>Size:LongWord;</code>
 +
| Total buffer size in bytes (including the header values, the end tag and padding)
 +
|-
 +
| <code>Code:LongWord;</code>
 +
| Request/response code
 +
|-
 +
|}
 +
</div></div> 
 +
 +
'''BCM2835 mailbox footer property tags''' 
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxFooter = ^TBCM2835MailboxFooter;</code>
 +
 
 +
<code>TBCM2835MailboxFooter = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|Note: Layout of the BCM2835 Mailbox Property tags (These structures must be 16 byte aligned when passed to the GPU)
 +
|-
 +
|colspan="2"|''Footer''
 +
|-
 +
| <code>Tag:LongWord;</code>
 +
| BCM2835_MBOX_TAG_END
 +
|-
 +
|}
 +
</div></div> 
 +
 +
'''BCM2835 mailbox tag headers''' 
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagHeader = ^TBCM2835MailboxTagHeader;</code>
 +
 
 +
<code>TBCM2835MailboxTagHeader = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|''Tag Header''
 +
|-
 +
| <code>Tag:LongWord;</code>
 +
| Tag identifier
 +
|-
 +
| <code>Size:LongWord;</code>
 +
| Value buffer size in bytes
 +
|-
 +
| <code>Length:LongWord;</code>
 +
| 1 bit (MSB) request/response indicator (0=request, 1=response), 31 bits (LSB) value length in bytes
 +
|-
 +
|}
 +
</div></div> 
 +
 +
'''BCM2835 mailbox tag no request'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagNoRequest = ^TBCM2835MailboxTagNoRequest;</code>
 +
 
 +
<code>TBCM2835MailboxTagNoRequest = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|''Tag No Request''
 +
|-
 +
| &nbsp;
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 +
'''BCM2835 mailbox tag no response'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagNoResponse = ^TBCM2835MailboxTagNoResponse;</code>
 +
 
 +
<code>TBCM2835MailboxTagNoResponse = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|''Tag No Response''
 +
|-
 +
| &nbsp;
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''BCM2835 mailbox tag firmware revision response'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagFirmwareRevisionResponse = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|''Get Firmware Revision''
 +
|-
 +
| <code>Revision:LongWord;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 +
'''BCM2835 mailbox tag get firmware revision''' 
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagGetFirmwareRevision = ^TBCM2835MailboxTagGetFirmwareRevision;</code>
 +
 
 +
<code>TBCM2835MailboxTagGetFirmwareRevision = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagNoRequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagFirmwareRevisionResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 +
'''BCM2835 mailbox tag board model response'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagBoardModelResponse = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|''Get Board Model''
 +
|-
 +
| <code>Model:LongWord;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 
 +
'''BCM2835 mailbox tag get board model''' 
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagGetBoardModel = ^TBCM2835MailboxTagGetBoardModel;</code>
 +
 
 +
<code>TBCM2835MailboxTagGetBoardModel = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagNoRequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagBoardModelResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''BCM2835 mailbox tag board revision response''' 
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagBoardRevisionResponse = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|''Get Board Revision''
 +
|-
 +
| <code>Revision:LongWord;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 +
'''BCM2835 mailbox tag get board revision''' 
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagGetBoardRevision = ^TBCM2835MailboxTagGetBoardRevision;</code>
 +
 
 +
<code>TBCM2835MailboxTagGetBoardRevision = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagNoRequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagBoardRevisionResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 
 +
'''BCM2835 mailbox tag MAC address response''' 
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagMACAddressResponse = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|''Get MAC Address''
 +
|-
 +
| <code>MAC:array[0..5] of Byte;</code>
 +
| MAC address in network byte order
 +
|-
 +
| <code>Padding:Word;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 +
'''BCM2835 mailbox tag get MAC address'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagGetMACAddress = ^TBCM2835MailboxTagGetMACAddress;</code>
 +
 
 +
<code>TBCM2835MailboxTagGetMACAddress = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagNoRequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagMACAddressResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 
 +
'''BCM2835 mailbox tag board serial response'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagBoardSerialResponse = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|''Get Board Serial''
 +
|-
 +
| <code>Serial:Int64;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''BCM2835 mailbox tag get board serial''' 
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagGetBoardSerial = ^TBCM2835MailboxTagGetBoardSerial;</code>
 +
 
 +
<code>TBCM2835MailboxTagGetBoardSerial = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagNoRequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagBoardSerialResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 
 +
'''BCM2835 mailbox tag ARM memory response''' 
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagARMMemoryResponse = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|''Get ARM Memory''
 +
|-
 +
| <code>Address:LongWord;</code>
 +
| Base address in bytes
 +
|-
 +
| <code>Size:LongWord;</code>
 +
| Size in bytes
 +
|-
 +
|}
 +
</div></div> 
 +
 +
'''BCM2835 mailbox tag get ARM memory'''   
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagGetARMMemory = ^TBCM2835MailboxTagGetARMMemory;</code>
 +
 
 +
<code>TBCM2835MailboxTagGetARMMemory = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagNoRequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagARMMemoryResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 
 +
'''BCM2835 mailbox tag VC memory response''' 
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagVCMemoryResponse = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|''Get VC Memory''
 +
|-
 +
| <code>Address:LongWord;</code>
 +
| Base address in bytes
 +
|-
 +
| <code>Size:LongWord;</code>
 +
| Size in bytes
 +
|-
 +
|}
 +
</div></div> 
 +
 +
'''BCM2835 mailbox tag get VC memory'''   
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagGetVCMemory = ^TBCM2835MailboxTagGetVCMemory;</code>
 +
 
 +
<code>TBCM2835MailboxTagGetVCMemory = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagNoRequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagVCMemoryResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 +
'''BCM2835 mailbox tag clock response'''   
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagClockResponse = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|''Get Clocks''
 +
|-
 +
| <code>ParentId:LongWord;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>ClockId:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 +
'''BCM2835 mailbox tag clocks response'''   
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagClocksResponse = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Clocks:array[0..255] of TBCM2835MailboxTagClockResponse;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 +
'''BCM2835 mailbox tag get clocks''' 
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagGetClocks = ^TBCM2835MailboxTagGetClocks;</code>
 +
 
 +
<code>TBCM2835MailboxTagGetClocks = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagNoRequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagClocksResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 +
'''BCM2835 mailbox tag get power state request''' 
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagGetPowerStateRequest = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|''Get Power State''
 +
|-
 +
| <code>DeviceId:LongWord;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 +
'''BCM2835 mailbox tag power state response''' 
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagPowerStateResponse = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>DeviceId:LongWord; </code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>State:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''BCM2835 mailbox tag get power state''' 
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagGetPowerState = ^TBCM2835MailboxTagGetPowerState;</code>
 +
 
 +
<code>TBCM2835MailboxTagGetPowerState = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagGetPowerStateRequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagPowerStateResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''BCM2835 mailbox tag timing request''' 
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagTimingRequest = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|''Get Timing''
 +
|-
 +
| <code>DeviceId:LongWord; </code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 +
'''BCM2835 mailbox tag timing response''' 
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagTimingResponse = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>DeviceId:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Wait:LongWord;</code>
 +
| Enable wait time in microseconds
 +
|-
 +
|}
 +
</div></div>
 +
 +
'''BCM2835 mailbox tag get timing''' 
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagGetTiming = ^TBCM2835MailboxTagGetTiming;</code>
 +
 
 +
<code>TBCM2835MailboxTagGetTiming = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagTimingRequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagTimingResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 +
'''BCM2835 mailbox tag set power state request''' 
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagSetPowerStateRequest = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|''Set Power State''
 +
|-
 +
| <code>DeviceId:LongWord;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>State:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 
 +
'''BCM2835 mailbox tag set power state''' 
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagSetPowerState = ^TBCM2835MailboxTagSetPowerState;</code>
 +
 
 +
<code>TBCM2835MailboxTagSetPowerState = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagSetPowerStateRequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagPowerStateResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 +
'''BCM2835 mailbox tag get clock state request''' 
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagGetClockStateRequest = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|''Get Clock State''
 +
|-
 +
| <code>ClockId:LongWord; </code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 +
'''BCM2835 mailbox tag clock state response''' 
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagClockStateResponse = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>ClockId:LongWord;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>State:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 +
'''BCM2835 mailbox tag get clock state''' 
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagGetClockState = ^TBCM2835MailboxTagGetClockState;</code>
 +
 
 +
<code>TBCM2835MailboxTagGetClockState = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagGetClockStateRequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagClockStateResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 +
'''BCM2835 mailbox tag set clock state request'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagSetClockStateRequest = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|''Set Clock State''
 +
|-
 +
| <code>ClockId:LongWord;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>State:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 +
'''BCM2835 mailbox tag set clock state''' 
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagSetClockState = ^TBCM2835MailboxTagSetClockState;</code>
 +
 
 +
<code>TBCM2835MailboxTagSetClockState = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagSetClockStateRequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagClockStateResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 +
'''BCM2835 mailbox tag get clock rate request'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagGetClockRateRequest = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|''Get Clock Rate''
 +
|-
 +
| <code>ClockId:LongWord;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''BCM2835 mailbox tag clock rate response'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagClockRateResponse = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>ClockId:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Rate:LongWord;</code>
 +
| In Hz
 +
|-
 +
|}
 +
</div></div> 
 +
 
 +
'''BCM2835 mailbox tag get clock rate'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagGetClockRate = ^TBCM2835MailboxTagGetClockRate;</code>
 +
 
 +
<code>TBCM2835MailboxTagGetClockRate = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagGetClockRateRequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagClockRateResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 +
'''BCM2835 mailbox tag set clock rate request'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagSetClockRateRequest = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|''Set Clock Rate''
 +
|-
 +
| <code>ClockId:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Rate:LongWord;</code>
 +
| In Hz
 +
|-
 +
| <code>SkipTurbo:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 +
'''BCM2835 mailbox tag set clock rate''' 
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagSetClockRate = ^TBCM2835MailboxTagSetClockRate;</code>
 +
 
 +
<code>TBCM2835MailboxTagSetClockRate = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagSetClockRateRequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagClockRateResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 +
'''BCM2835 mailbox tag get clock max rate request'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagGetClockMaxRateRequest = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|''Get Clock Max Rate''
 +
|-
 +
| <code>ClockId:LongWord;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 
 +
'''BCM2835 mailbox tag get clock max rate response'''
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagGetClockMaxRateResponse = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>ClockId:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Rate:LongWord;</code>
 +
| In Hz
 +
|-
 +
|}
 +
</div></div>
 +
 +
'''BCM2835 mailbox tag get clock max rate''' 
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagGetClockMaxRate = ^TBCM2835MailboxTagGetClockMaxRate;</code>
 +
 
 +
<code>TBCM2835MailboxTagGetClockMaxRate = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagGetClockMaxRateRequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagGetClockMaxRateResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''BCM2835 mailbox tag get clock min rate''' 
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagGetClockMinRate = ^TBCM2835MailboxTagGetClockMinRate;</code>
 +
 
 +
<code>TBCM2835MailboxTagGetClockMinRate = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|''Get Clock Min Rate''
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagGetClockMaxRateRequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagGetClockMaxRateResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''BCM2835 mailbox tag get turbo request'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagGetTurboRequest = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|''Get Turbo''
 +
|-
 +
| <code>Id:LongWord;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 
 +
'''BCM2835 mailbox tag turbo response'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagTurboResponse = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Id:LongWord;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>Level:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 +
'''BCM2835 mailbox tag get turbo'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagGetTurbo = ^TBCM2835MailboxTagGetTurbo;</code>
 +
 
 +
<code>TBCM2835MailboxTagGetTurbo = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagGetTurboRequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagTurboResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 +
'''BCM2835 mailbox tag set turbo request'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagSetTurboRequest = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|''Set Turbo''
 +
|-
 +
| <code>Id:LongWord;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>Level:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 +
'''BCM2835 mailbox tag set turbo'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagSetTurbo = ^TBCM2835MailboxTagSetTurbo;</code>
 +
 
 +
<code>TBCM2835MailboxTagSetTurbo = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagSetTurboRequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagTurboResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 
 +
'''BCM2835 mailbox tag get voltage request''' 
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagGetVoltageRequest = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|''Get Voltage''
 +
|-
 +
| <code>VoltageId:LongWord;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''BCM2835 mailbox tag voltage response''' 
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagVoltageResponse = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>VoltageId:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Value:LongWord;</code>
 +
| Offset from 1.2V in units of 0.025V
 +
|-
 +
|}
 +
</div></div> 
 +
 
 +
'''BCM2835 mailbox tag get voltage''' 
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagGetVoltage = ^TBCM2835MailboxTagGetVoltage;</code>
 +
 
 +
<code>TBCM2835MailboxTagGetVoltage = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagGetVoltageRequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagVoltageResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 +
'''BCM2835 mailbox tag set voltage request''' 
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagSetVoltageRequest = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|''Set Voltage''
 +
|-
 +
| <code>VoltageId:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Value:LongWord;</code>
 +
| Offset from 1.2V in units of 0.025V
 +
|-
 +
|}
 +
</div></div> 
 +
 +
'''BCM2835 mailbox tag set voltage'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagSetVoltage = ^TBCM2835MailboxTagSetVoltage;</code>
 +
 
 +
<code>TBCM2835MailboxTagSetVoltage = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagSetVoltageRequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagVoltageResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 +
'''BCM2835 mailbox tag get max voltage'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagGetMaxVoltage = ^TBCM2835MailboxTagGetMaxVoltage;</code>
 +
 
 +
<code>TBCM2835MailboxTagGetMaxVoltage = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|''Get Max Voltage''
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagGetVoltageRequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagVoltageResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 +
'''BCM2835 mailbox tag get min voltage'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagGetMinVoltage = ^TBCM2835MailboxTagGetMinVoltage;</code>
 +
 
 +
<code>TBCM2835MailboxTagGetMinVoltage = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|''Get Min Voltage''
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagGetVoltageRequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagVoltageResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 +
'''BCM2835 mailbox tag temperature request'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagTemperatureRequest = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|''Get Temperature''
 +
|-
 +
| <code>TemperatureId:LongWord;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 
 +
'''BCM2835 mailbox tag temperature response'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagTemperatureResponse = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>TemperatureId:LongWord;</code>
 +
| Should be zero
 +
|-
 +
| <code>Temperature:LongWord;</code>
 +
| Return the temperature of the SoC in thousandths of a degree C
 +
|-
 +
|}
 +
</div></div> 
 +
 
 +
'''BCM2835 mailbox tag get temperature'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagGetTemperature = ^TBCM2835MailboxTagGetTemperature;</code>
 +
 
 +
<code>TBCM2835MailboxTagGetTemperature = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagTemperatureRequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagTemperatureResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 
 +
'''BCM2835 mailbox tag get max temperature''' 
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagGetMaxTemperature = ^TBCM2835MailboxTagGetMaxTemperature;</code>
 +
 
 +
<code>TBCM2835MailboxTagGetMaxTemperature = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|''Get Max Temp''
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagTemperatureRequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagTemperatureResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 
 +
'''BCM2835 mailbox tag allocate memory request'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagAllocateMemoryRequest = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|''Allocate Memory''
 +
|-
 +
| <code>Size:LongWord;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>Alignment:LongWord</code>
 +
| &nbsp;
 +
|-
 +
| <code>Flags:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 +
'''BCM2835 mailbox tag allocate memory response'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagAllocateMemoryResponse = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Handle:THandle;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 +
'''BCM2835 mailbox tag allocate memory'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagAllocateMemory = ^TBCM2835MailboxTagAllocateMemory;</code>
 +
 
 +
<code>TBCM2835MailboxTagAllocateMemory = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagAllocateMemoryRequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagAllocateMemoryResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 
 +
'''BCM2835 mailbox tag lock memory request'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagLockMemoryRequest = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|''Lock Memory''
 +
|-
 +
| <code>Handle:THandle;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 
 +
'''BCM2835 mailbox tag lock memory response'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagLockMemoryResponse = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Address:LongWord;</code>
 +
| Bus Address
 +
|-
 +
|}
 +
</div></div>
 +
 +
'''BCM2835 mailbox tag lock memory''' 
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagLockMemory = ^TBCM2835MailboxTagLockMemory;</code>
 +
 
 +
<code>TBCM2835MailboxTagLockMemory = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagLockMemoryRequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagLockMemoryResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 +
'''BCM2835 mailbox tag unlock memory response'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagUnlockMemoryResponse = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|''Unlock Memory''
 +
|-
 +
| <code>Status:LongWord;</code>
 +
| 0 is Success
 +
|-
 +
|}
 +
</div></div> 
 +
 +
'''BCM2835 mailbox tag unlock memory''' 
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagUnlockMemory = ^TBCM2835MailboxTagUnlockMemory;</code>
 +
 
 +
<code>TBCM2835MailboxTagUnlockMemory = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagLockMemoryRequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagUnlockMemoryResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 
 +
'''BCM2835 mailbox tag release memory'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagReleaseMemory = ^TBCM2835MailboxTagReleaseMemory;</code>
 +
 
 +
<code>TBCM2835MailboxTagReleaseMemory = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|''Release Memory''
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagLockMemoryRequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagUnlockMemoryResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 +
'''BCM2835 mailbox tag execute code request'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagExecuteCodeRequest = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|''Execute Code''
 +
|-
 +
| <code>Address:Pointer;</code>
 +
| Bus Address
 +
|-
 +
| <code>R0:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>R1:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>R2:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>R3:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>R4:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>R5:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 +
'''BCM2835 mailbox tag execute code response''' 
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagExecuteCodeResponse = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>R0:LongWord;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 +
'''BCM2835 mailbox tag execute code''' 
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagExecuteCode = ^TBCM2835MailboxTagExecuteCode;</code>
 +
 
 +
<code>TBCM2835MailboxTagExecuteCode = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagExecuteCodeRequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagExecuteCodeResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''BCM2835 mailbox tag execute QPU request'''
 +
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagExecuteQPURequest = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>NumQPUs:LongWord;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>Control:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>NoFlush:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Timeout:LongWord;</code>
 +
| Milliseconds
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''BCM2835 mailbox tag execute QPU response'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagExecuteQPUResponse = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Status:LongWord;</code>
 +
| 0 is Success / 0x80000000 is Timeout
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''BCM2835 mailbox tag execute QPU'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagExecuteQPU = ^TBCM2835MailboxTagExecuteQPU;</code>
 +
 
 +
<code>TBCM2835MailboxTagExecuteQPU = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagExecuteQPURequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagExecuteQPUResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''BCM2835 mailbox tag enable QPU request'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagEnableQPURequest = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Enable:LongWord;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''BCM2835 mailbox tag enable QPU response'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagEnableQPUResponse = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Status:LongWord;</code>
 +
| 0 is Success
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''BCM2835 mailbox tag enable QPU'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagEnableQPU = ^TBCM2835MailboxTagEnableQPU;</code>
 +
 
 +
<code>TBCM2835MailboxTagEnableQPU = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagEnableQPURequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagEnableQPUResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 +
'''BCM2835 mailbox tag get dispmanx handle request'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagGetDispmanxHandleRequest = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|''Get Dispmanx Handle''
 +
|-
 +
| <code>Resource:THandle;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 +
'''BCM2835 mailbox tag get dispmanx handle response''' 
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagGetDispmanxHandleResponse = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Status:LongWord;</code>
 +
| 0 is Success
 +
|-
 +
| <code>Memory:THandle;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 +
'''BCM2835 mailbox tag get dispmanx handle'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagGetDispmanxHandle = ^TBCM2835MailboxTagGetDispmanxHandle;</code>
 +
 
 +
<code>TBCM2835MailboxTagGetDispmanxHandle = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagGetDispmanxHandleRequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagGetDispmanxHandleResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''BCM2835 mailbox tag get EDID block request'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagGetEDIDBlockRequest = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|''Get EDID Block''
 +
|-
 +
| <code>Block:LongWord;</code>
 +
| Starting from 0
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''BCM2835 mailbox tag get EDID block response''' 
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagGetEDIDBlockResponse = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Block:LongWord;</code>
 +
| Starting from 0
 +
|-
 +
| <code>Status:LongWord;</code>
 +
| 0 is Success
 +
|-
 +
| <code>EDID:array[0..127] of Byte;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 +
'''BCM2835 mailbox tag get EDID block'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagGetEDIDBlock = ^TBCM2835MailboxTagGetEDIDBlock;</code>
 +
 
 +
<code>TBCM2835MailboxTagGetEDIDBlock = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagGetEDIDBlockRequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagGetEDIDBlockResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''BCM2835 mailbox tag GPIO state request'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagGPIOStateRequest = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>GPIO:LongWord;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>State:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''BCM2835 mailbox tag GPIO state response'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagGPIOStateResponse = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>GPIO:LongWord;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>State:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''BCM2835 mailbox tag get GPIO state'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagGetGPIOState = ^TBCM2835MailboxTagGetGPIOState;</code>
 +
 
 +
<code>TBCM2835MailboxTagGetGPIOState = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagGPIOStateRequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagGPIOStateResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''BCM2835 mailbox tag set GPIO state'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagSetGPIOState = ^TBCM2835MailboxTagSetGPIOState;</code>
 +
 
 +
<code>TBCM2835MailboxTagSetGPIOState = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagGPIOStateRequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagGPIOStateResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''BCM2835 mailbox tag get GPIO config request'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagGetGPIOConfigRequest = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>GPIO:LongWord;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>Direction:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Polarity:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Terminator:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code> PullUp:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''BCM2835 mailbox tag get GPIO config response'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagGetGPIOConfigResponse = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>GPIO:LongWord;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>Direction:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Polarity:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Terminator:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>PullUp:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''BCM2835 mailbox tag get GPIO config'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagGetGPIOConfig = ^TBCM2835MailboxTagGetGPIOConfig;</code>
 +
 
 +
<code>TBCM2835MailboxTagGetGPIOConfig = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagGetGPIOConfigRequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagGetGPIOConfigResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''BCM2835 mailbox tag set GPIO config request'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagSetGPIOConfigRequest = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>GPIO:LongWord;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>Direction:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Polarity:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Terminator:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>PullUp:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>State:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''BCM2835 mailbox tag set GPIO config response'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagSetGPIOConfigResponse = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>GPIO:LongWord;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>Direction:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Polarity:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Terminator:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>PullUp:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>State:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''BCM2835 mailbox tag set GPIO config'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagSetGPIOConfig = ^TBCM2835MailboxTagSetGPIOConfig;</code>
 +
 
 +
<code>TBCM2835MailboxTagSetGPIOConfig = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagSetGPIOConfigRequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagSetGPIOConfigResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''BCM2835 mailbox tag get throttled request'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagGetThrottledRequest = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|''Get Throttled''
 +
|-
 +
| <code>Value:LongWord;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''BCM2835 mailbox tag get throttled response'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagGetThrottledResponse = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Value:LongWord;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''BCM2835 mailbox tag get throttled'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagGetThrottled = ^TBCM2835MailboxTagGetThrottled;</code>
 +
 
 +
<code>TBCM2835MailboxTagGetThrottled = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagGetThrottledRequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagGetThrottledResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''BCM2835 mailbox tag get boot mode response'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagGetBootModeResponse = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>BootMode:LongWord;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>SignedBoot:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''BCM2835 mailbox tag get boot mode'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagGetBootMode = ^TBCM2835MailboxTagGetBootMode;</code>
 +
 
 +
<code>TBCM2835MailboxTagGetBootMode = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagNoRequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagGetBootModeResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''BCM2835 mailbox tag allocate buffer request'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagAllocateBufferRequest = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|''Allocate Buffer''
 +
|-
 +
| <code>Alignment:LongWord;</code>
 +
| Bytes
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''BCM2835 mailbox tag allocate buffer response''' 
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagAllocateBufferResponse = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Address:LongWord; {Base Address in Bytes}</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>Size:LongWord;</code>
 +
| Size in Bytes
 +
|-
 +
|}
 +
</div></div> 
 +
 +
'''BCM2835 mailbox tag allocate buffer'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagAllocateBuffer = ^TBCM2835MailboxTagAllocateBuffer;</code>
 +
 
 +
<code>TBCM2835MailboxTagAllocateBuffer = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagAllocateBufferRequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagAllocateBufferResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 +
'''BCM2835 mailbox tag release buffer'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagReleaseBuffer = ^TBCM2835MailboxTagReleaseBuffer;</code>
 +
 
 +
<code>TBCM2835MailboxTagReleaseBuffer = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|''Release Buffer''
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagNoRequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagNoResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''BCM2835 mailbox tag blank screen request'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagBlankScreenRequest = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|''Blank Screen''
 +
|-
 +
| <code>State:LongWord;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''BCM2835 mailbox tag blank screen response'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagBlankScreenResponse = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>State:LongWord;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 
 +
'''BCM2835 mailbox tag blank screen'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagBlankScreen = ^TBCM2835MailboxTagBlankScreen;</code>
 +
 
 +
<code>TBCM2835MailboxTagBlankScreen = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagBlankScreenRequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagBlankScreenResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 
 +
'''BCM2835 mailbox tag physical request'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagPhysicalRequest = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|''Get Physical''
 +
|-
 +
| <code>Width:LongWord;</code>
 +
| Pixels
 +
|-
 +
| <code>Height:Longword;</code>
 +
| Pixels
 +
|-
 +
|}
 +
</div></div> 
 +
 +
'''BCM2835 mailbox tag physical response'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagPhysicalResponse = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Width:LongWord;</code>
 +
| Pixels
 +
|-
 +
| <code>Height:Longword;</code>
 +
| Pixels
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''BCM2835 mailbox tag get physical'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagGetPhysical = ^TBCM2835MailboxTagGetPhysical;</code>
 +
 
 +
<code>TBCM2835MailboxTagGetPhysical = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagNoRequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagPhysicalResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 
 +
'''BCM2835 mailbox tag test physical'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagTestPhysical = ^TBCM2835MailboxTagTestPhysical;</code>
 +
 
 +
<code>TBCM2835MailboxTagTestPhysical = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|''Test Physical''
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagPhysicalRequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagPhysicalResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 
 +
'''BCM2835 mailbox tag set physical'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagSetPhysical = ^TBCM2835MailboxTagSetPhysical;</code>
 +
 
 +
<code>TBCM2835MailboxTagSetPhysical = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|''Set Physical''
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagPhysicalRequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagPhysicalResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''BCM2835 mailbox tag virtual request''' 
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagVirtualRequest = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|''Get Virtual''
 +
|-
 +
| <code>Width:LongWord;</code>
 +
| Pixels
 +
|-
 +
| <code>Height:Longword;</code>
 +
| Pixels
 +
|-
 +
|}
 +
</div></div> 
 +
 +
'''BCM2835 mailbox tag virtual response'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagVirtualResponse = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code> Width:LongWord;</code>
 +
| Pixels
 +
|-
 +
| <code>Height:Longword;</code>
 +
| Pixels
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''BCM2835 mailbox tag get virtual'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagGetVirtual = ^TBCM2835MailboxTagGetVirtual;</code>
 +
 
 +
<code>TBCM2835MailboxTagGetVirtual = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagNoRequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagVirtualResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 
 +
'''BCM2835 mailbox tag test virtual'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagTestVirtual = ^TBCM2835MailboxTagTestVirtual;</code>
 +
 
 +
<code>TBCM2835MailboxTagTestVirtual = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|''Test Virtual''
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagVirtualRequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagVirtualResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 +
'''BCM2835 mailbox tag set virtual'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagSetVirtual = ^TBCM2835MailboxTagSetVirtual;</code>
 +
 
 +
<code>TBCM2835MailboxTagSetVirtual = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|''Set Virtual''
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagVirtualRequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagVirtualResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 
 +
'''BCM2835 mailbox tag depth request''' 
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagDepthRequest = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|''Get Depth''
 +
|-
 +
| <code>Depth:LongWord;</code>
 +
| Bits per pixel
 +
|-
 +
|}
 +
</div></div> 
 +
 
 +
'''BCM2835 mailbox tag depth response'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagDepthResponse = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Depth:LongWord;</code>
 +
| Bits per pixel
 +
|-
 +
|}
 +
</div></div> 
 +
 +
'''BCM2835 mailbox tag get depth'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagGetDepth = ^TBCM2835MailboxTagGetDepth;</code>
 +
 
 +
<code>TBCM2835MailboxTagGetDepth = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagNoRequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagDepthResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 +
'''BCM2835 mailbox tag test depth'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagTestDepth = ^TBCM2835MailboxTagTestDepth;</code>
 +
 
 +
<code>TBCM2835MailboxTagTestDepth = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|''Test Depth''
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagDepthRequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagDepthResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 
 +
'''BCM2835 mailbox tag set depth''' 
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagSetDepth = ^TBCM2835MailboxTagSetDepth;</code>
 +
 
 +
<code>TBCM2835MailboxTagSetDepth = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|''Set Depth''
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagDepthRequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagDepthResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 
 +
'''BCM2835 mailbox tag pixel order request''' 
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagPixelOrderRequest = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|''Get Pixel Order''
 +
|-
 +
| <code>Order:LongWord;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 +
'''BCM2835 mailbox tag pixel order response''' 
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagPixelOrderResponse = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Order:LongWord;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 
 +
'''BCM2835 mailbox tag get pixel order'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagGetPixelOrder = ^TBCM2835MailboxTagGetPixelOrder;</code>
 +
 
 +
<code>TBCM2835MailboxTagGetPixelOrder = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagNoRequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagPixelOrderResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 
 +
'''BCM2835 mailbox tag test pixel order'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagTestPixelOrder = ^TBCM2835MailboxTagTestPixelOrder;</code>
 +
 
 +
<code>TBCM2835MailboxTagTestPixelOrder = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|''Test Pixel Order''
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagPixelOrderRequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagPixelOrderResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 
 +
'''BCM2835 mailbox tag set pixel order''' 
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagSetPixelOrder = ^TBCM2835MailboxTagSetPixelOrder;</code>
 +
 
 +
<code>TBCM2835MailboxTagSetPixelOrder = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|''Set Pixel Order''
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagPixelOrderRequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagPixelOrderResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 +
'''BCM2835 mailbox tag alpha mode request'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagAlphaModeRequest = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|''Get Alpha Mode''
 +
|-
 +
| <code>Mode:LongWord;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''BCM2835 mailbox tag alpha mode response'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagAlphaModeResponse = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Mode:LongWord;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 
 +
'''BCM2835 mailbox tag get alpha mode'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagGetAlphaMode = ^TBCM2835MailboxTagGetAlphaMode;</code>
 +
 
 +
<code>TBCM2835MailboxTagGetAlphaMode = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagNoRequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagAlphaModeResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''BCM2835 mailbox tag test alpha mode'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagTestAlphaMode = ^TBCM2835MailboxTagTestAlphaMode;</code>
 +
 
 +
<code>TBCM2835MailboxTagTestAlphaMode = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|''Test Alpha Mode''
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagAlphaModeRequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagAlphaModeResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 
 +
'''BCM2835 mailbox tag set alpha mode'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagSetAlphaMode = ^TBCM2835MailboxTagSetAlphaMode;</code>
 +
 
 +
<code>TBCM2835MailboxTagSetAlphaMode = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|''Set Alpha Mode''
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagAlphaModeRequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagAlphaModeResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 
 +
'''BCM2835 mailbox tag pitch response'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagPitchResponse = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|''Get Pitch''
 +
|-
 +
| <code>Pitch:LongWord;</code>
 +
| Bytes per line
 +
|-
 +
|}
 +
</div></div> 
 +
 
 +
'''BCM2835 mailbox tag get pitch'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagGetPitch = ^TBCM2835MailboxTagGetPitch;</code>
 +
 
 +
<code>TBCM2835MailboxTagGetPitch = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagNoRequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagPitchResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 +
'''BCM2835 mailbox tag virtual offset request'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagVirtualOffsetRequest = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|''Get Virtual Offset''
 +
|-
 +
| <code>X:LongWord;</code>
 +
| Pixels
 +
|-
 +
| <code>Y:LongWord;</code>
 +
| Pixels
 +
|-
 +
|}
 +
</div></div> 
 +
 +
'''BCM2835 mailbox tag virtual offset response'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagVirtualOffsetResponse = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>X:LongWord;</code>
 +
| Pixels
 +
|-
 +
| <code>Y:LongWord;</code>
 +
| Pixels
 +
|-
 +
|}
 +
</div></div> 
 +
 +
'''BCM2835 mailbox tag get virtual offset'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagGetVirtualOffset = ^TBCM2835MailboxTagGetVirtualOffset;</code>
 +
 
 +
<code>TBCM2835MailboxTagGetVirtualOffset = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagNoRequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagVirtualOffsetResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 
 +
'''BCM2835 mailbox tag test virtual offset'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagTestVirtualOffset = ^TBCM2835MailboxTagTestVirtualOffset;</code>
 +
 
 +
<code>TBCM2835MailboxTagTestVirtualOffset = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|''Test Virtual Offset''
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagVirtualOffsetRequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagVirtualOffsetResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 
 +
'''BCM2835 mailbox tag set virtual offset'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagSetVirtualOffset = ^TBCM2835MailboxTagSetVirtualOffset;</code>
 +
 
 +
<code>TBCM2835MailboxTagSetVirtualOffset = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|''Set Virtual Offset''
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagVirtualOffsetRequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagVirtualOffsetResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 
 +
'''BCM2835 mailbox tag oversan request'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagOverscanRequest = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|''Get Overscan''
 +
|-
 +
| <code>Top:LongWord;</code>
 +
| Pixels
 +
|-
 +
| <code>Bottom:LongWord;</code>
 +
| Pixels
 +
|-
 +
| <code>Left:LongWord;</code>
 +
| Pixels
 +
|-
 +
| <code>Right:LongWord;</code>
 +
| Pixels
 +
|-
 +
|}
 +
</div></div> 
 +
 +
'''BCM2835 mailbox tag overscan response'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagOverscanResponse = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Top:LongWord;</code>
 +
| Pixels
 +
|-
 +
| <code>Bottom:LongWord;</code>
 +
| Pixels
 +
|-
 +
| <code>Left:LongWord;</code>
 +
| Pixels
 +
|-
 +
| <code>Right:LongWord;</code>
 +
| Pixels
 +
|-
 +
|}
 +
</div></div>
 +
 +
'''BCM2835 mailbox tag get overscan'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagGetOverscan = ^TBCM2835MailboxTagGetOverscan;</code>
 +
 
 +
<code>TBCM2835MailboxTagGetOverscan = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagNoRequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagOverscanResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 
 +
'''BCM2835 mailbox tag test overscan'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagTestOverscan = ^TBCM2835MailboxTagTestOverscan;</code>
 +
 
 +
<code>TBCM2835MailboxTagTestOverscan = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|''Test Overscan''
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagOverscanRequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagOverscanResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 
 +
'''BCM2835 mailbox tag set overscan'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagSetOverscan = ^TBCM2835MailboxTagSetOverscan;</code>
 +
 
 +
<code>TBCM2835MailboxTagSetOverscan = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|''Set Overscan''
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagOverscanRequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagOverscanResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 +
'''BCM2835 mailbox tag get palette response'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagGetPaletteResponse = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|''Get Palette''
 +
|-
 +
| <code>Values:array[0..255] of LongWord;</code>
 +
| RGBA Palette Values
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''BCM2835 mailbox tag get palette'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagGetPalette = ^TBCM2835MailboxTagGetPalette;</code>
 +
 
 +
<code>TBCM2835MailboxTagGetPalette = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagNoRequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagGetPaletteResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''BCM2835 mailbox tag palette request'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagPaletteRequest = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|''Test Palette''
 +
|-
 +
| <code>Offset:LongWord;</code>
 +
| First palette index to set (0-255)
 +
|-
 +
| <code>Length:LongWord;</code>
 +
| Number of palette entries to set (1-256)
 +
|-
 +
| <code>Values:array[0..255] of LongWord;</code>
 +
| RGBA Palette Values
 +
|-
 +
|}
 +
</div></div> 
 +
 +
'''BCM2835 mailbox tag palette response''' 
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagPaletteResponse = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Status:LongWord;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''BCM2835 mailbox tag test palette'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagTestPalette = ^TBCM2835MailboxTagTestPalette;</code>
 +
 
 +
<code>TBCM2835MailboxTagTestPalette = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagPaletteRequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagPaletteResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''BCM2835 mailbox tag set palette'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagSetPalette = ^TBCM2835MailboxTagSetPalette;</code>
 +
 
 +
<code>TBCM2835MailboxTagSetPalette = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|''Set Palette''
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagPaletteRequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagPaletteResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''BCM2835 mailbox tag layer request'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagLayerRequest = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|''Get Layer''
 +
|-
 +
| <code>Layer:LongInt;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''BCM2835 mailbox tag layer response'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagLayerResponse = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Layer:LongInt;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''BCM2835 mailbox tag get layer'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagGetLayer = ^TBCM2835MailboxTagGetLayer;</code>
 +
 
 +
<code>TBCM2835MailboxTagGetLayer = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagNoRequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagLayerResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''BCM2835 mailbox tag test layer'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagTestLayer = ^TBCM2835MailboxTagTestLayer;</code>
 +
 
 +
<code>TBCM2835MailboxTagTestLayer = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|''Test layer''
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagLayerRequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagLayerResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''BCM2835 mailbox tag set layer'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagSetLayer = ^TBCM2835MailboxTagSetLayer;</code>
 +
 
 +
<code>TBCM2835MailboxTagSetLayer = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|''Set layer''
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagLayerRequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagLayerResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 +
'''BCM2835 mailbox tag get touch response''' 
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagGetTouchResponse = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|''Get Touch Buffer''
 +
|-
 +
| <code>Address:LongWord;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 
 +
'''BCM2835 mailbox tag get touch'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagGetTouch = ^TBCM2835MailboxTagGetTouch;</code>
 +
 
 +
<code>TBCM2835MailboxTagGetTouch = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagNoRequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagGetTouchResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''BCM2835 mailbox tag set touch request'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagSetTouchRequest = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Address:LongWord; </code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''BCM2835 mailbox tag set touch response'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagSetTouchResponse = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Status:LongWord;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''BCM2835 mailbox tag set touch'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagSetTouch = ^TBCM2835MailboxTagSetTouch;</code>
 +
 
 +
<code>TBCM2835MailboxTagSetTouch = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagSetTouchRequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagSetTouchResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''BCM2835 mailbox tag get virtual GPIO response'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagGetVirtualGPIOResponse = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|''Get Virtual GPIO Buffer''
 +
|-
 +
| <code>Address:LongWord;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 +
'''BCM2835 mailbox tag get virtual GPIO'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagGetVirtualGPIO = ^TBCM2835MailboxTagGetVirtualGPIO;</code>
 +
 
 +
<code>TBCM2835MailboxTagGetVirtualGPIO = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagNoRequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagGetVirtualGPIOResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''BCM2835 mailbox tag set virtual GPIO request'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagSetVirtualGPIORequest = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| &nbsp;
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''BCM2835 mailbox tag set virtual GPIO response'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagSetVirtualGPIOResponse = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Status:LongWord;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''BCM2835 mailbox tag set virtual GPIO'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagSetVirtualGPIO = ^TBCM2835MailboxTagSetVirtualGPIO;</code>
 +
 
 +
<code>TBCM2835MailboxTagSetVirtualGPIO = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagSetVirtualGPIORequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagSetVirtualGPIOResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''BCM2835 mailbox tag test vsync'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagTestVsync = ^TBCM2835MailboxTagTestVsync;</code>
 +
 
 +
<code>TBCM2835MailboxTagTestVsync = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|''Test Vsync''
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagNoRequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagNoResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 
 +
'''BCM2835 mailbox tag set vsync'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagSetVsync = ^TBCM2835MailboxTagSetVsync;</code>
 +
 
 +
<code>TBCM2835MailboxTagSetVsync = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|''Set Vsync''
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagNoRequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagNoResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 
 +
'''BCM2835 mailbox tag set backlight request'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagSetBacklightRequest = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|''Set Backlight''
 +
|-
 +
| <code>Brightness:LongWord;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 +
'''BCM2835 mailbox tag set backlight response'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagSetBacklightResponse = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Brightness:LongWord;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 
 +
'''BCM2835 mailbox tag set backlight'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagSetBacklight = ^TBCM2835MailboxTagSetBacklight;</code>
 +
 
 +
<code>TBCM2835MailboxTagSetBacklight = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagSetBacklightRequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagSetBacklightResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 
 +
'''BCM2835 mailbox tag get display count request'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagGetDisplayCountRequest = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Dummy:LongWord;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''BCM2835 mailbox tag get display count response'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagGetDisplayCountResponse = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>DisplayCount:LongWord;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''BCM2835 mailbox tag get display count'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagGetDisplayCount = ^TBCM2835MailboxTagGetDisplayCount;</code>
 +
 
 +
<code>TBCM2835MailboxTagGetDisplayCount = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagGetDisplayCountRequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagGetDisplayCountResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''BCM2835 mailbox tag get display settings request'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagGetDisplaySettingsRequest = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>DisplayNumber:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Width:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Height:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Pitch:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Depth:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>VirtualWidth:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>VirtualHeight:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>VirtualOffsetX:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>VirtualOffsetY:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Address:LongWord;</code>
 +
| Framebuffer Bus Address
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''BCM2835 mailbox tag get display settings'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagGetDisplaySettings = ^TBCM2835MailboxTagGetDisplaySettings;</code>
 +
 
 +
<code>TBCM2835MailboxTagGetDisplaySettings = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagGetDisplaySettingsRequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagGetDisplaySettingsResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''BCM2835 mailbox tag set display number request'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagSetDisplayNumberRequest = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>DisplayNumber:LongWord;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''BCM2835 mailbox tag set display number response'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagSetDisplayNumberResponse = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Dummy:LongWord;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''BCM2835 mailbox tag set display number'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagSetDisplayNumber = ^TBCM2835MailboxTagSetDisplayNumber;</code>
 +
 
 +
<code>TBCM2835MailboxTagSetDisplayNumber = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagSetDisplayNumberRequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagSetDisplayNumberResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''BCM2835 mailbox tag set cursor info request'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagSetCursorInfoRequest = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|''Set Cursor Info''
 +
|-
 +
| <code>Width:LongWord;</code>
 +
| Pixels
 +
|-
 +
| <code>Height:LongWord;</code>
 +
| Pixels
 +
|-
 +
| <code>Reserved:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Pixels:Pointer;</code>
 +
| Format is 32bpp (ARGB) (Width and Height should be >= 16 and (Width * Height) <= 64)
 +
|-
 +
| <code>HotspotX:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>HotspotY:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 +
'''BCM2835 mailbox tag cursor response'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagCursorResponse = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Status:LongWord;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 +
'''BCM2835 mailbox tag set cursor info'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagSetCursorInfo = ^TBCM2835MailboxTagSetCursorInfo;</code>
 +
 
 +
<code>TBCM2835MailboxTagSetCursorInfo = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagSetCursorInfoRequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagCursorResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 
 +
'''BCM2835 mailbox tag set cursor state request'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagSetCursorStateRequest = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|''Set Cursor State''
 +
|-
 +
| <code>Enable:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>X:LongWord;</code>
 +
| Pixels
 +
|-
 +
| <code>Y:LongWord;</code>
 +
| Pixels
 +
|-
 +
| <code>Flags:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 +
'''BCM2835 mailbox tag set cursor state'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagSetCursorState = ^TBCM2835MailboxTagSetCursorState;</code>
 +
 
 +
<code>TBCM2835MailboxTagSetCursorState = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagSetCursorStateRequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagCursorResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''BCM2835 mailbox tag VCHIQ init request'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagVCHIQInitRequest = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Address:LongWord;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''BCM2835 mailbox tag VCHIQ init response'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagVCHIQInitResponse = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Status:LongWord;</code>
 +
| 0 is Success
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''BCM2835 mailbox tag VCHIQ init'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagVCHIQInit = ^TBCM2835MailboxTagVCHIQInit;</code>
 +
 
 +
<code>TBCM2835MailboxTagVCHIQInit = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagVCHIQInitRequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagVCHIQInitResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 +
'''BCM2835 mailbox tag command line response'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagCommandLineResponse = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|''Get Command Line''
 +
|-
 +
| <code>CommandLine:array[0..1023] of Char;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 
 +
'''BCM2835 mailbox tag get command line'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagGetCommandLine = ^TBCM2835MailboxTagGetCommandLine;</code>
 +
 
 +
<code>TBCM2835MailboxTagGetCommandLine = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagNoRequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagCommandLineResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 
 +
'''BCM2835 mailbox tag DMA channels response''' 
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TBCM2835MailboxTagDMAChannelsResponse = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|''Get DMA Channels''
 +
|-
 +
| <code>Channels:LongWord;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''BCM2835 mailbox tag get DMA channels'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagGetDMAChannels = ^TBCM2835MailboxTagGetDMAChannels;</code>
 +
 
 +
<code>TBCM2835MailboxTagGetDMAChannels = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Header:TBCM2835MailboxTagHeader;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>case Integer of</code>
 +
| &nbsp;
 +
|-
 +
| <code>0:(Request:TBCM2835MailboxTagNoRequest);</code>
 +
| &nbsp;
 +
|-
 +
| <code>1:(Response:TBCM2835MailboxTagDMAChannelsResponse);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''BCM2835 mailbox tag create buffer'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagCreateBuffer = ^TBCM2835MailboxTagCreateBuffer;</code>
 +
 
 +
<code>TBCM2835MailboxTagCreateBuffer = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|Note: A combination tag to allocate and configure a framebuffer in one request
 +
|-
 +
|colspan="2"|''Create Buffer''
 +
|-
 +
| <code>Physical:TBCM2835MailboxTagSetPhysical;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>Vertual:TBCM2835MailboxTagSetVirtual;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Depth:TBCM2835MailboxTagSetDepth;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Order:TBCM2835MailboxTagSetPixelOrder;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Mode:TBCM2835MailboxTagSetAlphaMode;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Offset:TBCM2835MailboxTagSetVirtualOffset;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Overscan:TBCM2835MailboxTagSetOverscan;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Allocate:TBCM2835MailboxTagAllocateBuffer;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Pitch:TBCM2835MailboxTagGetPitch;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 
 +
'''BCM2835 mailbox tag query buffer'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PBCM2835MailboxTagQueryBuffer = ^TBCM2835MailboxTagQueryBuffer;</code>
 +
 
 +
<code>TBCM2835MailboxTagQueryBuffer = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|Note: A combination tag to query all framebuffer properties in one request
 +
|-
 +
|colspan="2"|''Query Buffer''
 +
|-
 +
| <code>Physical:TBCM2835MailboxTagGetPhysical;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>Vertual:TBCM2835MailboxTagGetVirtual;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Depth:TBCM2835MailboxTagGetDepth;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Order:TBCM2835MailboxTagGetPixelOrder;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Mode:TBCM2835MailboxTagGetAlphaMode;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Offset:TBCM2835MailboxTagGetVirtualOffset;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Overscan:TBCM2835MailboxTagGetOverscan;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Pitch:TBCM2835MailboxTagGetPitch;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
<br />
  
 
=== Public variables ===
 
=== Public variables ===
 
----
 
----
  
''To be documented''
+
''None defined''
  
 
=== Function declarations ===
 
=== Function declarations ===
 
----
 
----
  
''To be documented''
+
''None defined''
  
  
 
Return to [[Unit_Reference|Unit Reference]]
 
Return to [[Unit_Reference|Unit Reference]]

Latest revision as of 00:52, 24 May 2023

Return to Unit Reference


Description


Ultibo Definitions specific to the Broadcom 2835 System on Chip unit

Some of the information in this file is documented in the Broadcom BCM2835-ARM-Peripherals document, some can only be found in the Linux source.

Constants



[Expand]
BCM2835 specific constants BCM2835_*


[Expand]
BCM2835 ARM physical to VC IO mapping BCM2835_VCIO_*


[Expand]
BCM2835 ARM physical to VC bus mapping BCM2835_VCBUS_*


[Expand]
BCM2835 peripherals BCM2835_PERIPHERALS_*


[Expand]
BCM2835 interrupt controller 0 BCM2835_IC0_*


[Expand]
BCM2835 system timer BCM2835_SYSTEM_TIMER_*


[Expand]
BCM2835 message based parallel host interface BCM2835_MPHI_*


[Expand]
BCM2835 DMA controller BCM2835_DMA*


[Expand]
BCM2835 ARM interrupt controller BCM2835_INTERRUPT_*


[Expand]
BCM2835 ARM timer BCM2835_TIMER_*


[Expand]
BCM2835 ARM doorbell BCM2835_DOORBELL_*


[Expand]
BCM2835 ARM mailbox 0 BCM2835_MAILBOX0_*


[Expand]
BCM2835 ARM mailbox 1 BCM2835_MAILBOX1_*


[Expand]
BCM2835 power management, reset controller and watchdog BCM2835_PM_*


[Expand]
BCM2835 clock management BCM2835_CM_*


[Expand]
BCM2835 PCM clock BCM2835_PCM_CLOCK_*


[Expand]
BCM2835 random number generator BCM2835_RNG_*


[Expand]
BCM2835 GPIO BCM2835_GPIO_*


[Expand]
BCM2835 UART0 (PL011) BCM2835_PL011_*


[Expand]
BCM2835 MMCI0 BCM2835_MMCI0_*


[Expand]
BCM2835 PCM/I2S audio BCM2835_PCM_*


[Expand]
BCM2835 SPI0 BCM2835_SPI0_*


[Expand]
BCM2835 BSC0 (I2C) BCM2835_BSC0_*


[Expand]
BCM2835 pixel valve 0 BCM2835_PIXELVALVE0_*


[Expand]
BCM2835 pixel valve 1 BCM2835_PIXELVALVE1_*


[Expand]
BCM2835 DPI (Display Parallel Interface) BCM2835_DPI_*


[Expand]
BCM2835 DSI0 (Display Serial Interface) BCM2835_DSI0_*


[Expand]
BCM2835 PWM BCM2835_PWM_*


[Expand]
BCM2835 I2C/SPI slave BCM2835_I2CSPI_*


[Expand]
BCM2835 AUX BCM2835_AUX_*


[Expand]
BCM2835 UART1 BCM2835_UART1_*


[Expand]
BCM2835 SPI1 BCM2835_SPI1_*


[Expand]
BCM2835 SPI2 BCM2835_SPI2_*


[Expand]
BCM2835 SD host controller BCM2835_SDHCI_*


[Expand]
BCM2835 HVS BCM2835_HVS_*


[Expand]
BCM2835 SMI BCM2835_SMI_*


[Expand]
BCM2835 DSI1 (Display Serial Interface) BCM2835_DSI1_*


[Expand]
BCM2835 BSC1 (I2C) BCM2835_BSC1_*


[Expand]
BCM2835 BSC2 (I2C) BCM2835_BSC2_*


[Expand]
BCM2835 VEC BCM2835_VEC_*


[Expand]
BCM2835 pixel valve 2 BCM2835_PIXELVALVE2_*


[Expand]
BCM2835 HDMI BCM2835_HDMI_*


[Expand]
BCM2835 USB BCM2835_USB_*


[Expand]
BCM2835 V3D BCM2835_V3D_*


[Expand]
BCM2835 DMA controller BCM2835_DMA15_*


[Expand]
BCM2835 IRQ peripheral BCM2835_IRQ_*


[Expand]
BCM2835 system timer frequency BCM2835_SYSTEM_TIMER_*


[Expand]
BCM2835 DMA control and status BCM2835_DMA_CS_*


[Expand]
BCM2835 DMA transfer information BCM2835_DMA_TI_*


[Expand]
BCM2835 DMA transfer length BCM2835_DMA_TXFR_LEN_*


[Expand]
BCM2835 DMA 2D stride BCM2835_DMA_STRIDE_*


[Expand]
BCM2835 DMA debug BCM2835_DMA_DEBUG_*


[Expand]
BCM2835 DMA engine interrupt status BCM2835_DMA_INT_STATUS_*


[Expand]
BCM2835 DMA engine enable BCM2835_DMA_ENABLE_*


[Expand]
BCM2835 DMA engine DREQ peripheral BCM2835_DMA_DREQ_*


[Expand]
BCM2835 BSC (I2C0/1/2) control BCM2835_BSC_C_*


[Expand]
BCM2835 BSC (I2C0/1/2) status BCM2835_BSC_S_*


[Expand]
BCM2835 BSC (I2C0/1/2) data length BCM2835_BSC_DLEN_*


[Expand]
BCM2835 BSC (I2C0/1/2) slave address BCM2835_BSC_A_*


[Expand]
BCM2835 BSC (I2C0/1/2) data FIFO BCM2835_BSC_FIFO_*


[Expand]
BCM2835 BSC (I2C0/1/2) clock divider BCM2835_BSC_CDIV_*


[Expand]
BCM2835 BSC (I2C0/1/2) data delay BCM2835_BSC_DEL_*


[Expand]
BCM2835 BSC (I2C0/1/2) clock stretch timeout BCM2835_BSC_CLKT_TOUT_*


[Expand]
BCM2835 SPI0 BCM2835_SPI0_*


[Expand]
I2C/SPI slave DR (Data) register BCM2835_I2CSPI_DR_*


[Expand]
I2C/SPI slave RSR (Status) register BCM2835_I2CSPI_RSR_*


[Expand]
I2C/SPI slave SLV (Slave) register BCM2835_I2CSPI_SLV_*


[Expand]
I2C/SPI slave CR (Control) register BCM2835_I2CSPI_CR_*


[Expand]
I2C/SPI slave FR (Flags) register BCM2835_I2CSPI_FR_*


[Expand]
I2C/SPI slave IFLS (Interrupt FIFO Level Select) register BCM2835_I2CSPI_IFLS_*


[Expand]
I2C/SPI slave IMSC (Interrupt Mask Set Clear) register BCM2835_I2CSPI_IMSC_*


[Expand]
I2C/SPI slave RIS (Raw Interrupt Status) register BCM2835_I2CSPI_RIS_*


[Expand]
I2C/SPI slave MIS (Masked Interrupt Status) register BCM2835_I2CSPI_MIS_*


[Expand]
I2C/SPI slave ICR (Interrupt Clear Register) register BCM2835_I2CSPI_ICR_*


[Expand]
BCM2835 PWM control BCM2835_PWM_CTL_*


[Expand]
BCM2835 PWM status BCM2835_PWM_STA_*


[Expand]
BCM2835 PWM DMA configuration CM2835_PWM_DMAC_*


[Expand]
BCM2835 PWM BCM2835_PWM_*


[Expand]
BCM2835 PL011 UART data BCM2835_PL011_DR_*


[Expand]
BCM2835 PL011 UART receive status/error clear BCM2835_PL011_RSRECR_*


[Expand]
BCM2835 PL011 UART flag BCM2835_PL011_FR_*


[Expand]
BCM2835 PL011 UART IrDA


[Expand]
BCM2835 PL011 UART integer baud rate divisor BCM2835_PL011_IBRD_*


[Expand]
BCM2835 PL011 UART fractional baud rate divisor BCM2835_PL011_FBRD_*


[Expand]
BCM2835 PL011 UART line control BCM2835_PL011_LCRH_*


[Expand]
BCM2835 PL011 UART control BCM2835_PL011_CR_*


[Expand]
BCM2835 PL011 UART interrupt FIFO level select BCM2835_PL011_IFLS_*


[Expand]
BCM2835 PL011 UART interrupt mask set/clear BCM2835_PL011_IMSC_*


[Expand]
BCM2835 PL011 UART raw interrupt status BCM2835_PL011_RIS_*


[Expand]
BCM2835 PL011 UART masked interrupt status BCM2835_PL011_MIS_*


[Expand]
BCM2835 PL011 UART interrupt clear BCM2835_PL011_ICR_*


[Expand]
BCM2835 PL011 UART DMA control


[Expand]
BCM2835 ARM interrupt controller registers BCM2835_ARM_INTERRUPT_*


[Expand]
BCM2835 ARM interrupt controller register bits BCM2835_ARM_INTERRUPT_FIQ_*


[Expand]
BCM2835 ARM timer BCM2835_ARM_TIMER_*


[Expand]
BCM2835 power management, reset controller and watchdog BCM2835_PM_*


[Expand]
BCM2835 random number generator BCM2835_RANDOM_*


[Expand]
BCM2835 clock management BCM2835_CM_*


[Expand]
BCM2835 clock manager control BCM2835_CM_CTL_*


[Expand]
BCM2835 clock manager divisor BCM2835_CM_DIV_*


[Expand]
BCM2835 clock manager BCM2835_CM_*


[Expand]
BCM2835 mailbox BCM2835_MAILBOX_*


[Expand]
BCM2835 mailbox 0 channel BCM2835_MAILBOX0_CHANNEL_*


[Expand]
BCM2835 mailbox 1 channel BCM2835_MAILBOX_*


[Expand]
BCM2835 mailbox status flag BCM2835_MAILBOX_STATUS_*


[Expand]
BCM2835 mailbox configuration flag BCM2835_MAILBOX_CONFIG_*


[Expand]
BCM2835 mailbox property tag BCM2835_MBOX_TAG_GET_*


[Expand]
BCM2835 mailbox board revision value BCM2835_BOARD_REV_*


[Expand]
BCM2835 mailbox board revision BCM2835_BOARD_REVISION_*


[Expand]
BCM2835 mailbox power state device BCM2835_MBOX_POWER_DEVID_*


[Expand]
BCM2835 mailbox power state request BCM2835_MBOX_SET_POWER_STATE_REQ_*


[Expand]
BCM2835 mailbox power state response BCM2835_MBOX_POWER_STATE_RESP_*


[Expand]
BCM2835 mailbox clock state/rate Id BCM2835_MBOX_CLOCK_ID_*


[Expand]
BCM2835 mailbox clock state request BCM2835_MBOX_SET_CLOCK_STATE_REQ_*


[Expand]
BCM2835 mailbox clock state response BCM2835_MBOX_CLOCK_STATE_RESP_*


[Expand]
BCM2835 mailbox clock rate turbo BCM2835_MBOX_CLOCK_RATE_REQ_*


[Expand]
BCM2835 mailbox voltage Id BCM2835_MBOX_VOLTAGE_ID_*


[Expand]
BCM2835 mailbox voltage BCM2835_MBOX_VOLTAGE_*


[Expand]
BCM2835 mailbox temperature Id BCM2835_MBOX_TEMP_ID_*


[Expand]
BCM2835 mailbox display Id BCM2835_MBOX_DISPLAY_ID_*


[Expand]
BCM2835 mailbox memory flag BCM2835_MBOX_MEM_FLAG_*


[Expand]
BCM2835 mailbox blank screen BCM2835_MBOX_BLANK_SCREEN_*


[Expand]
BCM2835 mailbox pixel order BCM2835_MBOX_PIXEL_ORDER_*


[Expand]
BCM2835 mailbox alpha mode BCM2835_MBOX_ALPHA_MODE_*


[Expand]
BCM2835 mailbox palette BCM2835_MBOX_PALETTE_*


[Expand]
BCM2835 mailbox cursor state BCM2835_MBOX_CURSOR_*


[Expand]
BCM2835 mailbox cursor state flag BCM2835_MBOX_CURSOR_STATE_*


[Expand]
BCM2835 mailbox cursor BCM2835_MBOX_CURSOR_*


[Expand]
BCM2835 mailbox request BCM2835_MBOX_*


[Expand]
BCM2835 mailbox tag request BCM2835_MBOX_TAG_*


[Expand]
BCM2835 GPIO BCM2835_GPIO_*


[Expand]
BCM2835 function select register BCM2835_GP*


Type definitions



BCM2835 interrupt controller registers

[Expand]

PBCM2835InterruptRegisters = ^TBCM2835InterruptRegisters;

TBCM2835InterruptRegisters = record

BCM2835 system timer registers

[Expand]

PBCM2835SystemTimerRegisters = ^TBCM2835SystemTimerRegisters;

TBCM2835SystemTimerRegisters = record

BCM2835 DMA channel registers

[Expand]

PBCM2835DMARegisters = ^TBCM2835DMARegisters;

TBCM2835DMARegisters = record

BCM2835 DMA control block structure

[Expand]

PBCM2835DMAControlBlock = ^TBCM2835DMAControlBlock;

TBCM2835DMAControlBlock = record

BCM2835 BSC (I2C) registers

[Expand]

PBCM2835BSCRegisters = ^TBCM2835BSCRegisters;

TBCM2835BSCRegisters = record

BCM2835 SPI0 registers

[Expand]

PBCM2835SPI0Registers = ^TBCM2835SPI0Registers;

TBCM2835SPI0Registers = record

BCM2835 I2C/SPI slave registers

[Expand]

PBCM2835I2CSPIRegisters = ^TBCM2835I2CSPIRegisters;

TBCM2835I2CSPIRegisters = record

BCM2835 AUX (UART1, SPI1 and SPI2) registers

[Expand]

PBCM2835AUXRegisters = ^TBCM2835AUXRegisters;

TBCM2835AUXRegisters = record

BCM2835 PCM/I2S registers

[Expand]

PBCM2835PCMRegisters = ^TBCM2835PCMRegisters;

TBCM2835PCMRegisters = record

BCM2835 pulse width modulator (PWM) registers

[Expand]

PBCM2835PWMRegisters = ^TBCM2835PWMRegisters;

TBCM2835PWMRegisters = record

BCM2835 PL011 UART registers

[Expand]

PBCM2835PL011Registers = ^TBCM2835PL011Registers;

TBCM2835PL011Registers = record

BCM2835 ARM timer registers

[Expand]

PBCM2835ARMTimerRegisters = ^TBCM2835ARMTimerRegisters;

TBCM2835ARMTimerRegisters = record

BCM2835 power management watchdog registers

[Expand]

PBCM2835PMWatchdogRegisters = ^TBCM2835PMWatchdogRegisters;

TBCM2835PMWatchdogRegisters = record

BCM2835 random number generator registers

[Expand]

PBCM2835RNGRegisters = ^TBCM2835RNGRegisters;

TBCM2835RNGRegisters = record

BCM2835 GPIO registers

[Expand]

PBCM2835GPIORegisters = ^TBCM2835GPIORegisters;

TBCM2835GPIORegisters = record

BCM2835 mailbox0 registers

[Expand]

PBCM2835Mailbox0Registers = ^TBCM2835Mailbox0Registers;

TBCM2835Mailbox0Registers = record

BCM2835 mailbox1 registers

[Expand]

PBCM2835Mailbox1Registers = ^TBCM2835Mailbox1Registers;

TBCM2835Mailbox1Registers = record

BCM2835 mailbox framebuffer request

[Expand]

PBCM2835MailboxFramebuffer = ^TBCM2835MailboxFramebuffer;

TBCM2835MailboxFramebuffer = record

BCM2835 mailbox header property tags

[Expand]

PBCM2835MailboxHeader = ^TBCM2835MailboxHeader;

TBCM2835MailboxHeader = record

BCM2835 mailbox footer property tags

[Expand]

PBCM2835MailboxFooter = ^TBCM2835MailboxFooter;

TBCM2835MailboxFooter = record

BCM2835 mailbox tag headers

[Expand]

PBCM2835MailboxTagHeader = ^TBCM2835MailboxTagHeader;

TBCM2835MailboxTagHeader = record

BCM2835 mailbox tag no request

[Expand]

PBCM2835MailboxTagNoRequest = ^TBCM2835MailboxTagNoRequest;

TBCM2835MailboxTagNoRequest = record

BCM2835 mailbox tag no response

[Expand]

PBCM2835MailboxTagNoResponse = ^TBCM2835MailboxTagNoResponse;

TBCM2835MailboxTagNoResponse = record

BCM2835 mailbox tag firmware revision response

[Expand]

TBCM2835MailboxTagFirmwareRevisionResponse = record

BCM2835 mailbox tag get firmware revision

[Expand]

PBCM2835MailboxTagGetFirmwareRevision = ^TBCM2835MailboxTagGetFirmwareRevision;

TBCM2835MailboxTagGetFirmwareRevision = record

BCM2835 mailbox tag board model response

[Expand]

TBCM2835MailboxTagBoardModelResponse = record

BCM2835 mailbox tag get board model

[Expand]

PBCM2835MailboxTagGetBoardModel = ^TBCM2835MailboxTagGetBoardModel;

TBCM2835MailboxTagGetBoardModel = record

BCM2835 mailbox tag board revision response

[Expand]

TBCM2835MailboxTagBoardRevisionResponse = record

BCM2835 mailbox tag get board revision

[Expand]

PBCM2835MailboxTagGetBoardRevision = ^TBCM2835MailboxTagGetBoardRevision;

TBCM2835MailboxTagGetBoardRevision = record

BCM2835 mailbox tag MAC address response

[Expand]

TBCM2835MailboxTagMACAddressResponse = record

BCM2835 mailbox tag get MAC address

[Expand]

PBCM2835MailboxTagGetMACAddress = ^TBCM2835MailboxTagGetMACAddress;

TBCM2835MailboxTagGetMACAddress = record

BCM2835 mailbox tag board serial response

[Expand]

TBCM2835MailboxTagBoardSerialResponse = record

BCM2835 mailbox tag get board serial

[Expand]

PBCM2835MailboxTagGetBoardSerial = ^TBCM2835MailboxTagGetBoardSerial;

TBCM2835MailboxTagGetBoardSerial = record

BCM2835 mailbox tag ARM memory response

[Expand]

TBCM2835MailboxTagARMMemoryResponse = record

BCM2835 mailbox tag get ARM memory

[Expand]

PBCM2835MailboxTagGetARMMemory = ^TBCM2835MailboxTagGetARMMemory;

TBCM2835MailboxTagGetARMMemory = record

BCM2835 mailbox tag VC memory response

[Expand]

TBCM2835MailboxTagVCMemoryResponse = record

BCM2835 mailbox tag get VC memory

[Expand]

PBCM2835MailboxTagGetVCMemory = ^TBCM2835MailboxTagGetVCMemory;

TBCM2835MailboxTagGetVCMemory = record

BCM2835 mailbox tag clock response

[Expand]

TBCM2835MailboxTagClockResponse = record

BCM2835 mailbox tag clocks response

[Expand]

TBCM2835MailboxTagClocksResponse = record

BCM2835 mailbox tag get clocks

[Expand]

PBCM2835MailboxTagGetClocks = ^TBCM2835MailboxTagGetClocks;

TBCM2835MailboxTagGetClocks = record

BCM2835 mailbox tag get power state request

[Expand]

TBCM2835MailboxTagGetPowerStateRequest = record

BCM2835 mailbox tag power state response

[Expand]

TBCM2835MailboxTagPowerStateResponse = record

BCM2835 mailbox tag get power state

[Expand]

PBCM2835MailboxTagGetPowerState = ^TBCM2835MailboxTagGetPowerState;

TBCM2835MailboxTagGetPowerState = record

BCM2835 mailbox tag timing request

[Expand]

TBCM2835MailboxTagTimingRequest = record

BCM2835 mailbox tag timing response

[Expand]

TBCM2835MailboxTagTimingResponse = record

BCM2835 mailbox tag get timing

[Expand]

PBCM2835MailboxTagGetTiming = ^TBCM2835MailboxTagGetTiming;

TBCM2835MailboxTagGetTiming = record

BCM2835 mailbox tag set power state request

[Expand]

TBCM2835MailboxTagSetPowerStateRequest = record

BCM2835 mailbox tag set power state

[Expand]

PBCM2835MailboxTagSetPowerState = ^TBCM2835MailboxTagSetPowerState;

TBCM2835MailboxTagSetPowerState = record

BCM2835 mailbox tag get clock state request

[Expand]

TBCM2835MailboxTagGetClockStateRequest = record

BCM2835 mailbox tag clock state response

[Expand]

TBCM2835MailboxTagClockStateResponse = record

BCM2835 mailbox tag get clock state

[Expand]

PBCM2835MailboxTagGetClockState = ^TBCM2835MailboxTagGetClockState;

TBCM2835MailboxTagGetClockState = record

BCM2835 mailbox tag set clock state request

[Expand]

TBCM2835MailboxTagSetClockStateRequest = record

BCM2835 mailbox tag set clock state

[Expand]

PBCM2835MailboxTagSetClockState = ^TBCM2835MailboxTagSetClockState;

TBCM2835MailboxTagSetClockState = record

BCM2835 mailbox tag get clock rate request

[Expand]

TBCM2835MailboxTagGetClockRateRequest = record

BCM2835 mailbox tag clock rate response

[Expand]

TBCM2835MailboxTagClockRateResponse = record

BCM2835 mailbox tag get clock rate

[Expand]

PBCM2835MailboxTagGetClockRate = ^TBCM2835MailboxTagGetClockRate;

TBCM2835MailboxTagGetClockRate = record

BCM2835 mailbox tag set clock rate request

[Expand]

TBCM2835MailboxTagSetClockRateRequest = record

BCM2835 mailbox tag set clock rate

[Expand]

PBCM2835MailboxTagSetClockRate = ^TBCM2835MailboxTagSetClockRate;

TBCM2835MailboxTagSetClockRate = record

BCM2835 mailbox tag get clock max rate request

[Expand]

TBCM2835MailboxTagGetClockMaxRateRequest = record

BCM2835 mailbox tag get clock max rate response

[Expand]

TBCM2835MailboxTagGetClockMaxRateResponse = record

BCM2835 mailbox tag get clock max rate

[Expand]

PBCM2835MailboxTagGetClockMaxRate = ^TBCM2835MailboxTagGetClockMaxRate;

TBCM2835MailboxTagGetClockMaxRate = record

BCM2835 mailbox tag get clock min rate

[Expand]

PBCM2835MailboxTagGetClockMinRate = ^TBCM2835MailboxTagGetClockMinRate;

TBCM2835MailboxTagGetClockMinRate = record

BCM2835 mailbox tag get turbo request

[Expand]

TBCM2835MailboxTagGetTurboRequest = record

BCM2835 mailbox tag turbo response

[Expand]

TBCM2835MailboxTagTurboResponse = record

BCM2835 mailbox tag get turbo

[Expand]

PBCM2835MailboxTagGetTurbo = ^TBCM2835MailboxTagGetTurbo;

TBCM2835MailboxTagGetTurbo = record

BCM2835 mailbox tag set turbo request

[Expand]

TBCM2835MailboxTagSetTurboRequest = record

BCM2835 mailbox tag set turbo

[Expand]

PBCM2835MailboxTagSetTurbo = ^TBCM2835MailboxTagSetTurbo;

TBCM2835MailboxTagSetTurbo = record

BCM2835 mailbox tag get voltage request

[Expand]

TBCM2835MailboxTagGetVoltageRequest = record

BCM2835 mailbox tag voltage response

[Expand]

TBCM2835MailboxTagVoltageResponse = record

BCM2835 mailbox tag get voltage

[Expand]

PBCM2835MailboxTagGetVoltage = ^TBCM2835MailboxTagGetVoltage;

TBCM2835MailboxTagGetVoltage = record

BCM2835 mailbox tag set voltage request

[Expand]

TBCM2835MailboxTagSetVoltageRequest = record

BCM2835 mailbox tag set voltage

[Expand]

PBCM2835MailboxTagSetVoltage = ^TBCM2835MailboxTagSetVoltage;

TBCM2835MailboxTagSetVoltage = record

BCM2835 mailbox tag get max voltage

[Expand]

PBCM2835MailboxTagGetMaxVoltage = ^TBCM2835MailboxTagGetMaxVoltage;

TBCM2835MailboxTagGetMaxVoltage = record

BCM2835 mailbox tag get min voltage

[Expand]

PBCM2835MailboxTagGetMinVoltage = ^TBCM2835MailboxTagGetMinVoltage;

TBCM2835MailboxTagGetMinVoltage = record

BCM2835 mailbox tag temperature request

[Expand]

TBCM2835MailboxTagTemperatureRequest = record

BCM2835 mailbox tag temperature response

[Expand]

TBCM2835MailboxTagTemperatureResponse = record

BCM2835 mailbox tag get temperature

[Expand]

PBCM2835MailboxTagGetTemperature = ^TBCM2835MailboxTagGetTemperature;

TBCM2835MailboxTagGetTemperature = record

BCM2835 mailbox tag get max temperature

[Expand]

PBCM2835MailboxTagGetMaxTemperature = ^TBCM2835MailboxTagGetMaxTemperature;

TBCM2835MailboxTagGetMaxTemperature = record

BCM2835 mailbox tag allocate memory request

[Expand]

TBCM2835MailboxTagAllocateMemoryRequest = record

BCM2835 mailbox tag allocate memory response

[Expand]

TBCM2835MailboxTagAllocateMemoryResponse = record

BCM2835 mailbox tag allocate memory

[Expand]

PBCM2835MailboxTagAllocateMemory = ^TBCM2835MailboxTagAllocateMemory;

TBCM2835MailboxTagAllocateMemory = record

BCM2835 mailbox tag lock memory request

[Expand]

TBCM2835MailboxTagLockMemoryRequest = record

BCM2835 mailbox tag lock memory response

[Expand]

TBCM2835MailboxTagLockMemoryResponse = record

BCM2835 mailbox tag lock memory

[Expand]

PBCM2835MailboxTagLockMemory = ^TBCM2835MailboxTagLockMemory;

TBCM2835MailboxTagLockMemory = record

BCM2835 mailbox tag unlock memory response

[Expand]

TBCM2835MailboxTagUnlockMemoryResponse = record

BCM2835 mailbox tag unlock memory

[Expand]

PBCM2835MailboxTagUnlockMemory = ^TBCM2835MailboxTagUnlockMemory;

TBCM2835MailboxTagUnlockMemory = record

BCM2835 mailbox tag release memory

[Expand]

PBCM2835MailboxTagReleaseMemory = ^TBCM2835MailboxTagReleaseMemory;

TBCM2835MailboxTagReleaseMemory = record

BCM2835 mailbox tag execute code request

[Expand]

TBCM2835MailboxTagExecuteCodeRequest = record

BCM2835 mailbox tag execute code response

[Expand]

TBCM2835MailboxTagExecuteCodeResponse = record

BCM2835 mailbox tag execute code

[Expand]

PBCM2835MailboxTagExecuteCode = ^TBCM2835MailboxTagExecuteCode;

TBCM2835MailboxTagExecuteCode = record

BCM2835 mailbox tag execute QPU request

[Expand]

TBCM2835MailboxTagExecuteQPURequest = record

BCM2835 mailbox tag execute QPU response

[Expand]

TBCM2835MailboxTagExecuteQPUResponse = record

BCM2835 mailbox tag execute QPU

[Expand]

PBCM2835MailboxTagExecuteQPU = ^TBCM2835MailboxTagExecuteQPU;

TBCM2835MailboxTagExecuteQPU = record

BCM2835 mailbox tag enable QPU request

[Expand]

TBCM2835MailboxTagEnableQPURequest = record

BCM2835 mailbox tag enable QPU response

[Expand]

TBCM2835MailboxTagEnableQPUResponse = record

BCM2835 mailbox tag enable QPU

[Expand]

PBCM2835MailboxTagEnableQPU = ^TBCM2835MailboxTagEnableQPU;

TBCM2835MailboxTagEnableQPU = record

BCM2835 mailbox tag get dispmanx handle request

[Expand]

TBCM2835MailboxTagGetDispmanxHandleRequest = record

BCM2835 mailbox tag get dispmanx handle response

[Expand]

TBCM2835MailboxTagGetDispmanxHandleResponse = record

BCM2835 mailbox tag get dispmanx handle

[Expand]

PBCM2835MailboxTagGetDispmanxHandle = ^TBCM2835MailboxTagGetDispmanxHandle;

TBCM2835MailboxTagGetDispmanxHandle = record

BCM2835 mailbox tag get EDID block request

[Expand]

TBCM2835MailboxTagGetEDIDBlockRequest = record

BCM2835 mailbox tag get EDID block response

[Expand]

TBCM2835MailboxTagGetEDIDBlockResponse = record

BCM2835 mailbox tag get EDID block

[Expand]

PBCM2835MailboxTagGetEDIDBlock = ^TBCM2835MailboxTagGetEDIDBlock;

TBCM2835MailboxTagGetEDIDBlock = record

BCM2835 mailbox tag GPIO state request

[Expand]

TBCM2835MailboxTagGPIOStateRequest = record

BCM2835 mailbox tag GPIO state response

[Expand]

TBCM2835MailboxTagGPIOStateResponse = record

BCM2835 mailbox tag get GPIO state

[Expand]

PBCM2835MailboxTagGetGPIOState = ^TBCM2835MailboxTagGetGPIOState;

TBCM2835MailboxTagGetGPIOState = record

BCM2835 mailbox tag set GPIO state

[Expand]

PBCM2835MailboxTagSetGPIOState = ^TBCM2835MailboxTagSetGPIOState;

TBCM2835MailboxTagSetGPIOState = record

BCM2835 mailbox tag get GPIO config request

[Expand]

TBCM2835MailboxTagGetGPIOConfigRequest = record

BCM2835 mailbox tag get GPIO config response

[Expand]

TBCM2835MailboxTagGetGPIOConfigResponse = record

BCM2835 mailbox tag get GPIO config

[Expand]

PBCM2835MailboxTagGetGPIOConfig = ^TBCM2835MailboxTagGetGPIOConfig;

TBCM2835MailboxTagGetGPIOConfig = record

BCM2835 mailbox tag set GPIO config request

[Expand]

TBCM2835MailboxTagSetGPIOConfigRequest = record

BCM2835 mailbox tag set GPIO config response

[Expand]

TBCM2835MailboxTagSetGPIOConfigResponse = record

BCM2835 mailbox tag set GPIO config

[Expand]

PBCM2835MailboxTagSetGPIOConfig = ^TBCM2835MailboxTagSetGPIOConfig;

TBCM2835MailboxTagSetGPIOConfig = record

BCM2835 mailbox tag get throttled request

[Expand]

TBCM2835MailboxTagGetThrottledRequest = record

BCM2835 mailbox tag get throttled response

[Expand]

TBCM2835MailboxTagGetThrottledResponse = record

BCM2835 mailbox tag get throttled

[Expand]

PBCM2835MailboxTagGetThrottled = ^TBCM2835MailboxTagGetThrottled;

TBCM2835MailboxTagGetThrottled = record

BCM2835 mailbox tag get boot mode response

[Expand]

TBCM2835MailboxTagGetBootModeResponse = record

BCM2835 mailbox tag get boot mode

[Expand]

PBCM2835MailboxTagGetBootMode = ^TBCM2835MailboxTagGetBootMode;

TBCM2835MailboxTagGetBootMode = record

BCM2835 mailbox tag allocate buffer request

[Expand]

TBCM2835MailboxTagAllocateBufferRequest = record

BCM2835 mailbox tag allocate buffer response

[Expand]

TBCM2835MailboxTagAllocateBufferResponse = record

BCM2835 mailbox tag allocate buffer

[Expand]

PBCM2835MailboxTagAllocateBuffer = ^TBCM2835MailboxTagAllocateBuffer;

TBCM2835MailboxTagAllocateBuffer = record

BCM2835 mailbox tag release buffer

[Expand]

PBCM2835MailboxTagReleaseBuffer = ^TBCM2835MailboxTagReleaseBuffer;

TBCM2835MailboxTagReleaseBuffer = record

BCM2835 mailbox tag blank screen request

[Expand]

TBCM2835MailboxTagBlankScreenRequest = record

BCM2835 mailbox tag blank screen response

[Expand]

TBCM2835MailboxTagBlankScreenResponse = record

BCM2835 mailbox tag blank screen

[Expand]

PBCM2835MailboxTagBlankScreen = ^TBCM2835MailboxTagBlankScreen;

TBCM2835MailboxTagBlankScreen = record

BCM2835 mailbox tag physical request

[Expand]

TBCM2835MailboxTagPhysicalRequest = record

BCM2835 mailbox tag physical response

[Expand]

TBCM2835MailboxTagPhysicalResponse = record

BCM2835 mailbox tag get physical

[Expand]

PBCM2835MailboxTagGetPhysical = ^TBCM2835MailboxTagGetPhysical;

TBCM2835MailboxTagGetPhysical = record

BCM2835 mailbox tag test physical

[Expand]

PBCM2835MailboxTagTestPhysical = ^TBCM2835MailboxTagTestPhysical;

TBCM2835MailboxTagTestPhysical = record

BCM2835 mailbox tag set physical

[Expand]

PBCM2835MailboxTagSetPhysical = ^TBCM2835MailboxTagSetPhysical;

TBCM2835MailboxTagSetPhysical = record

BCM2835 mailbox tag virtual request

[Expand]

TBCM2835MailboxTagVirtualRequest = record

BCM2835 mailbox tag virtual response

[Expand]

TBCM2835MailboxTagVirtualResponse = record

BCM2835 mailbox tag get virtual

[Expand]

PBCM2835MailboxTagGetVirtual = ^TBCM2835MailboxTagGetVirtual;

TBCM2835MailboxTagGetVirtual = record

BCM2835 mailbox tag test virtual

[Expand]

PBCM2835MailboxTagTestVirtual = ^TBCM2835MailboxTagTestVirtual;

TBCM2835MailboxTagTestVirtual = record

BCM2835 mailbox tag set virtual

[Expand]

PBCM2835MailboxTagSetVirtual = ^TBCM2835MailboxTagSetVirtual;

TBCM2835MailboxTagSetVirtual = record

BCM2835 mailbox tag depth request

[Expand]

TBCM2835MailboxTagDepthRequest = record

BCM2835 mailbox tag depth response

[Expand]

TBCM2835MailboxTagDepthResponse = record

BCM2835 mailbox tag get depth

[Expand]

PBCM2835MailboxTagGetDepth = ^TBCM2835MailboxTagGetDepth;

TBCM2835MailboxTagGetDepth = record

BCM2835 mailbox tag test depth

[Expand]

PBCM2835MailboxTagTestDepth = ^TBCM2835MailboxTagTestDepth;

TBCM2835MailboxTagTestDepth = record

BCM2835 mailbox tag set depth

[Expand]

PBCM2835MailboxTagSetDepth = ^TBCM2835MailboxTagSetDepth;

TBCM2835MailboxTagSetDepth = record

BCM2835 mailbox tag pixel order request

[Expand]

TBCM2835MailboxTagPixelOrderRequest = record

BCM2835 mailbox tag pixel order response

[Expand]

TBCM2835MailboxTagPixelOrderResponse = record

BCM2835 mailbox tag get pixel order

[Expand]

PBCM2835MailboxTagGetPixelOrder = ^TBCM2835MailboxTagGetPixelOrder;

TBCM2835MailboxTagGetPixelOrder = record

BCM2835 mailbox tag test pixel order

[Expand]

PBCM2835MailboxTagTestPixelOrder = ^TBCM2835MailboxTagTestPixelOrder;

TBCM2835MailboxTagTestPixelOrder = record

BCM2835 mailbox tag set pixel order

[Expand]

PBCM2835MailboxTagSetPixelOrder = ^TBCM2835MailboxTagSetPixelOrder;

TBCM2835MailboxTagSetPixelOrder = record

BCM2835 mailbox tag alpha mode request

[Expand]

TBCM2835MailboxTagAlphaModeRequest = record

BCM2835 mailbox tag alpha mode response

[Expand]

TBCM2835MailboxTagAlphaModeResponse = record

BCM2835 mailbox tag get alpha mode

[Expand]

PBCM2835MailboxTagGetAlphaMode = ^TBCM2835MailboxTagGetAlphaMode;

TBCM2835MailboxTagGetAlphaMode = record

BCM2835 mailbox tag test alpha mode

[Expand]

PBCM2835MailboxTagTestAlphaMode = ^TBCM2835MailboxTagTestAlphaMode;

TBCM2835MailboxTagTestAlphaMode = record

BCM2835 mailbox tag set alpha mode

[Expand]

PBCM2835MailboxTagSetAlphaMode = ^TBCM2835MailboxTagSetAlphaMode;

TBCM2835MailboxTagSetAlphaMode = record

BCM2835 mailbox tag pitch response

[Expand]

TBCM2835MailboxTagPitchResponse = record

BCM2835 mailbox tag get pitch

[Expand]

PBCM2835MailboxTagGetPitch = ^TBCM2835MailboxTagGetPitch;

TBCM2835MailboxTagGetPitch = record

BCM2835 mailbox tag virtual offset request

[Expand]

TBCM2835MailboxTagVirtualOffsetRequest = record

BCM2835 mailbox tag virtual offset response

[Expand]

TBCM2835MailboxTagVirtualOffsetResponse = record

BCM2835 mailbox tag get virtual offset

[Expand]

PBCM2835MailboxTagGetVirtualOffset = ^TBCM2835MailboxTagGetVirtualOffset;

TBCM2835MailboxTagGetVirtualOffset = record

BCM2835 mailbox tag test virtual offset

[Expand]

PBCM2835MailboxTagTestVirtualOffset = ^TBCM2835MailboxTagTestVirtualOffset;

TBCM2835MailboxTagTestVirtualOffset = record

BCM2835 mailbox tag set virtual offset

[Expand]

PBCM2835MailboxTagSetVirtualOffset = ^TBCM2835MailboxTagSetVirtualOffset;

TBCM2835MailboxTagSetVirtualOffset = record

BCM2835 mailbox tag oversan request

[Expand]

TBCM2835MailboxTagOverscanRequest = record

BCM2835 mailbox tag overscan response

[Expand]

TBCM2835MailboxTagOverscanResponse = record

BCM2835 mailbox tag get overscan

[Expand]

PBCM2835MailboxTagGetOverscan = ^TBCM2835MailboxTagGetOverscan;

TBCM2835MailboxTagGetOverscan = record

BCM2835 mailbox tag test overscan

[Expand]

PBCM2835MailboxTagTestOverscan = ^TBCM2835MailboxTagTestOverscan;

TBCM2835MailboxTagTestOverscan = record

BCM2835 mailbox tag set overscan

[Expand]

PBCM2835MailboxTagSetOverscan = ^TBCM2835MailboxTagSetOverscan;

TBCM2835MailboxTagSetOverscan = record

BCM2835 mailbox tag get palette response

[Expand]

TBCM2835MailboxTagGetPaletteResponse = record

BCM2835 mailbox tag get palette

[Expand]

PBCM2835MailboxTagGetPalette = ^TBCM2835MailboxTagGetPalette;

TBCM2835MailboxTagGetPalette = record

BCM2835 mailbox tag palette request

[Expand]

TBCM2835MailboxTagPaletteRequest = record

BCM2835 mailbox tag palette response

[Expand]

TBCM2835MailboxTagPaletteResponse = record

BCM2835 mailbox tag test palette

[Expand]

PBCM2835MailboxTagTestPalette = ^TBCM2835MailboxTagTestPalette;

TBCM2835MailboxTagTestPalette = record

BCM2835 mailbox tag set palette

[Expand]

PBCM2835MailboxTagSetPalette = ^TBCM2835MailboxTagSetPalette;

TBCM2835MailboxTagSetPalette = record

BCM2835 mailbox tag layer request

[Expand]

TBCM2835MailboxTagLayerRequest = record

BCM2835 mailbox tag layer response

[Expand]

TBCM2835MailboxTagLayerResponse = record

BCM2835 mailbox tag get layer

[Expand]

PBCM2835MailboxTagGetLayer = ^TBCM2835MailboxTagGetLayer;

TBCM2835MailboxTagGetLayer = record

BCM2835 mailbox tag test layer

[Expand]

PBCM2835MailboxTagTestLayer = ^TBCM2835MailboxTagTestLayer;

TBCM2835MailboxTagTestLayer = record

BCM2835 mailbox tag set layer

[Expand]

PBCM2835MailboxTagSetLayer = ^TBCM2835MailboxTagSetLayer;

TBCM2835MailboxTagSetLayer = record

BCM2835 mailbox tag get touch response

[Expand]

TBCM2835MailboxTagGetTouchResponse = record

BCM2835 mailbox tag get touch

[Expand]

PBCM2835MailboxTagGetTouch = ^TBCM2835MailboxTagGetTouch;

TBCM2835MailboxTagGetTouch = record

BCM2835 mailbox tag set touch request

[Expand]

TBCM2835MailboxTagSetTouchRequest = record

BCM2835 mailbox tag set touch response

[Expand]

TBCM2835MailboxTagSetTouchResponse = record

BCM2835 mailbox tag set touch

[Expand]

PBCM2835MailboxTagSetTouch = ^TBCM2835MailboxTagSetTouch;

TBCM2835MailboxTagSetTouch = record

BCM2835 mailbox tag get virtual GPIO response

[Expand]

TBCM2835MailboxTagGetVirtualGPIOResponse = record

BCM2835 mailbox tag get virtual GPIO

[Expand]

PBCM2835MailboxTagGetVirtualGPIO = ^TBCM2835MailboxTagGetVirtualGPIO;

TBCM2835MailboxTagGetVirtualGPIO = record

BCM2835 mailbox tag set virtual GPIO request

[Expand]

TBCM2835MailboxTagSetVirtualGPIORequest = record

BCM2835 mailbox tag set virtual GPIO response

[Expand]

TBCM2835MailboxTagSetVirtualGPIOResponse = record

BCM2835 mailbox tag set virtual GPIO

[Expand]

PBCM2835MailboxTagSetVirtualGPIO = ^TBCM2835MailboxTagSetVirtualGPIO;

TBCM2835MailboxTagSetVirtualGPIO = record

BCM2835 mailbox tag test vsync

[Expand]

PBCM2835MailboxTagTestVsync = ^TBCM2835MailboxTagTestVsync;

TBCM2835MailboxTagTestVsync = record

BCM2835 mailbox tag set vsync

[Expand]

PBCM2835MailboxTagSetVsync = ^TBCM2835MailboxTagSetVsync;

TBCM2835MailboxTagSetVsync = record

BCM2835 mailbox tag set backlight request

[Expand]

TBCM2835MailboxTagSetBacklightRequest = record

BCM2835 mailbox tag set backlight response

[Expand]

TBCM2835MailboxTagSetBacklightResponse = record

BCM2835 mailbox tag set backlight

[Expand]

PBCM2835MailboxTagSetBacklight = ^TBCM2835MailboxTagSetBacklight;

TBCM2835MailboxTagSetBacklight = record

BCM2835 mailbox tag get display count request

[Expand]

TBCM2835MailboxTagGetDisplayCountRequest = record

BCM2835 mailbox tag get display count response

[Expand]

TBCM2835MailboxTagGetDisplayCountResponse = record

BCM2835 mailbox tag get display count

[Expand]

PBCM2835MailboxTagGetDisplayCount = ^TBCM2835MailboxTagGetDisplayCount;

TBCM2835MailboxTagGetDisplayCount = record

BCM2835 mailbox tag get display settings request

[Expand]

TBCM2835MailboxTagGetDisplaySettingsRequest = record

BCM2835 mailbox tag get display settings

[Expand]

PBCM2835MailboxTagGetDisplaySettings = ^TBCM2835MailboxTagGetDisplaySettings;

TBCM2835MailboxTagGetDisplaySettings = record

BCM2835 mailbox tag set display number request

[Expand]

TBCM2835MailboxTagSetDisplayNumberRequest = record

BCM2835 mailbox tag set display number response

[Expand]

TBCM2835MailboxTagSetDisplayNumberResponse = record

BCM2835 mailbox tag set display number

[Expand]

PBCM2835MailboxTagSetDisplayNumber = ^TBCM2835MailboxTagSetDisplayNumber;

TBCM2835MailboxTagSetDisplayNumber = record

BCM2835 mailbox tag set cursor info request

[Expand]

TBCM2835MailboxTagSetCursorInfoRequest = record

BCM2835 mailbox tag cursor response

[Expand]

TBCM2835MailboxTagCursorResponse = record

BCM2835 mailbox tag set cursor info

[Expand]

PBCM2835MailboxTagSetCursorInfo = ^TBCM2835MailboxTagSetCursorInfo;

TBCM2835MailboxTagSetCursorInfo = record

BCM2835 mailbox tag set cursor state request

[Expand]

TBCM2835MailboxTagSetCursorStateRequest = record

BCM2835 mailbox tag set cursor state

[Expand]

PBCM2835MailboxTagSetCursorState = ^TBCM2835MailboxTagSetCursorState;

TBCM2835MailboxTagSetCursorState = record

BCM2835 mailbox tag VCHIQ init request

[Expand]

TBCM2835MailboxTagVCHIQInitRequest = record

BCM2835 mailbox tag VCHIQ init response

[Expand]

TBCM2835MailboxTagVCHIQInitResponse = record

BCM2835 mailbox tag VCHIQ init

[Expand]

PBCM2835MailboxTagVCHIQInit = ^TBCM2835MailboxTagVCHIQInit;

TBCM2835MailboxTagVCHIQInit = record

BCM2835 mailbox tag command line response

[Expand]

TBCM2835MailboxTagCommandLineResponse = record

BCM2835 mailbox tag get command line

[Expand]

PBCM2835MailboxTagGetCommandLine = ^TBCM2835MailboxTagGetCommandLine;

TBCM2835MailboxTagGetCommandLine = record

BCM2835 mailbox tag DMA channels response

[Expand]

TBCM2835MailboxTagDMAChannelsResponse = record

BCM2835 mailbox tag get DMA channels

[Expand]

PBCM2835MailboxTagGetDMAChannels = ^TBCM2835MailboxTagGetDMAChannels;

TBCM2835MailboxTagGetDMAChannels = record

BCM2835 mailbox tag create buffer

[Expand]

PBCM2835MailboxTagCreateBuffer = ^TBCM2835MailboxTagCreateBuffer;

TBCM2835MailboxTagCreateBuffer = record

BCM2835 mailbox tag query buffer

[Expand]

PBCM2835MailboxTagQueryBuffer = ^TBCM2835MailboxTagQueryBuffer;

TBCM2835MailboxTagQueryBuffer = record


Public variables


None defined

Function declarations


None defined


Return to Unit Reference