Embedded Xinu Operating System
An ongoing research project and educational operating system.
 All Data Structures Files Functions Variables Typedefs Enumerations Macros Groups Pages
Macros | Enumerations | Functions
bcm2837.h File Reference
#include <stddef.h>

Go to the source code of this file.

Macros

#define PERIPHERALS_BASE   0x3F000000
 
#define SYSTEM_TIMER_REGS_BASE   (PERIPHERALS_BASE + 0x3000)
 
#define INTERRUPT_REGS_BASE   (PERIPHERALS_BASE + 0xB200)
 
#define MAILBOX_REGS_BASE   (PERIPHERALS_BASE + 0xB880)
 
#define PM_REGS_BASE   (PERIPHERALS_BASE + 0x100000)
 
#define PL011_REGS_BASE   (PERIPHERALS_BASE + 0x201000)
 
#define GPIO_REGS_BASE   (PERIPHERALS_BASE + 0x200000)
 
#define SDHCI_REGS_BASE   (PERIPHERALS_BASE + 0x300000)
 
#define DWC_REGS_BASE   (PERIPHERALS_BASE + 0x980000)
 
#define IRQ_SYSTEM_TIMER_0   0
 
#define IRQ_SYSTEM_TIMER_1   1
 
#define IRQ_SYSTEM_TIMER_2   2
 
#define IRQ_SYSTEM_TIMER_3   3
 
#define IRQ_TIMER   IRQ_SYSTEM_TIMER_3
 
#define IRQ_USB   9
 
#define IRQ_PCM   55
 
#define IRQ_PL011   57
 
#define IRQ_SD   62
 
#define board_setpower   bcm2837_setpower
 
#define pre_peripheral_read_mb   dmb
 
#define post_peripheral_read_mb   dmb
 
#define pre_peripheral_write_mb   dmb
 
#define post_peripheral_write_mb   dmb
 
#define pre_peripheral_access_mb   dmb
 
#define post_peripheral_access_mb   dmb
 

Enumerations

enum  board_power_feature { POWER_SD = 0, POWER_UART_0 = 1, POWER_UART_1 = 2, POWER_USB = 3 }
 

Functions

int bcm2837_setpower (enum board_power_feature feature, bool on)
 
void bcm2837_power_init (void)
 
void dmb (void)
 

Detailed Description

Definitions specific to the BCM2837 SoC used in the Raspberry Pi 3.

Note that although some of the numbers defined in this file are documented in Broadcom's "BCM2837 ARM Peripherals" document, unfortunately some could only be found in the Linux source (arch/arm/mach-bcm2708/include/mach/platform.h).