1 /**
2  * Copyright (c) 2021 Raspberry Pi (Trading) Ltd.
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  */
6 #ifndef _ADDRESSMAP_H_
7 #define _ADDRESSMAP_H_
8 
9 #include "hardware/platform_defs.h"
10 
11 // Register address offsets for atomic RMW aliases
12 #define REG_ALIAS_RW_BITS  (0x0u << 12u)
13 #define REG_ALIAS_XOR_BITS (0x1u << 12u)
14 #define REG_ALIAS_SET_BITS (0x2u << 12u)
15 #define REG_ALIAS_CLR_BITS (0x3u << 12u)
16 
17 #define ROM_BASE _u(0x00000000)
18 #define XIP_BASE _u(0x10000000)
19 #define XIP_MAIN_BASE _u(0x10000000)
20 #define XIP_NOALLOC_BASE _u(0x11000000)
21 #define XIP_NOCACHE_BASE _u(0x12000000)
22 #define XIP_NOCACHE_NOALLOC_BASE _u(0x13000000)
23 #define XIP_CTRL_BASE _u(0x14000000)
24 #define XIP_SRAM_BASE _u(0x15000000)
25 #define XIP_SRAM_END _u(0x15004000)
26 #define XIP_SSI_BASE _u(0x18000000)
27 #define SRAM_BASE _u(0x20000000)
28 #define SRAM_STRIPED_BASE _u(0x20000000)
29 #define SRAM_STRIPED_END _u(0x20040000)
30 #define SRAM4_BASE _u(0x20040000)
31 #define SRAM5_BASE _u(0x20041000)
32 #define SRAM_END _u(0x20042000)
33 #define SRAM0_BASE _u(0x21000000)
34 #define SRAM1_BASE _u(0x21010000)
35 #define SRAM2_BASE _u(0x21020000)
36 #define SRAM3_BASE _u(0x21030000)
37 #define SYSINFO_BASE _u(0x40000000)
38 #define SYSCFG_BASE _u(0x40004000)
39 #define CLOCKS_BASE _u(0x40008000)
40 #define RESETS_BASE _u(0x4000c000)
41 #define PSM_BASE _u(0x40010000)
42 #define IO_BANK0_BASE _u(0x40014000)
43 #define IO_QSPI_BASE _u(0x40018000)
44 #define PADS_BANK0_BASE _u(0x4001c000)
45 #define PADS_QSPI_BASE _u(0x40020000)
46 #define XOSC_BASE _u(0x40024000)
47 #define PLL_SYS_BASE _u(0x40028000)
48 #define PLL_USB_BASE _u(0x4002c000)
49 #define BUSCTRL_BASE _u(0x40030000)
50 #define UART0_BASE _u(0x40034000)
51 #define UART1_BASE _u(0x40038000)
52 #define SPI0_BASE _u(0x4003c000)
53 #define SPI1_BASE _u(0x40040000)
54 #define I2C0_BASE _u(0x40044000)
55 #define I2C1_BASE _u(0x40048000)
56 #define ADC_BASE _u(0x4004c000)
57 #define PWM_BASE _u(0x40050000)
58 #define TIMER_BASE _u(0x40054000)
59 #define WATCHDOG_BASE _u(0x40058000)
60 #define RTC_BASE _u(0x4005c000)
61 #define ROSC_BASE _u(0x40060000)
62 #define VREG_AND_CHIP_RESET_BASE _u(0x40064000)
63 #define TBMAN_BASE _u(0x4006c000)
64 #define DMA_BASE _u(0x50000000)
65 #define USBCTRL_DPRAM_BASE _u(0x50100000)
66 #define USBCTRL_BASE _u(0x50100000)
67 #define USBCTRL_REGS_BASE _u(0x50110000)
68 #define PIO0_BASE _u(0x50200000)
69 #define PIO1_BASE _u(0x50300000)
70 #define XIP_AUX_BASE _u(0x50400000)
71 #define SIO_BASE _u(0xd0000000)
72 #define PPB_BASE _u(0xe0000000)
73 
74 #endif // _ADDRESSMAP_H_
75