1 //***************************************************************************** 2 // 3 // am_reg_base_addresses.h 4 //! @file am_reg_base_addresses.h 5 //! 6 //! @brief Register defines for all module base addresses 7 // 8 //***************************************************************************** 9 10 //***************************************************************************** 11 // 12 // Copyright (c) 2023, Ambiq Micro, Inc. 13 // All rights reserved. 14 // 15 // Redistribution and use in source and binary forms, with or without 16 // modification, are permitted provided that the following conditions are met: 17 // 18 // 1. Redistributions of source code must retain the above copyright notice, 19 // this list of conditions and the following disclaimer. 20 // 21 // 2. Redistributions in binary form must reproduce the above copyright 22 // notice, this list of conditions and the following disclaimer in the 23 // documentation and/or other materials provided with the distribution. 24 // 25 // 3. Neither the name of the copyright holder nor the names of its 26 // contributors may be used to endorse or promote products derived from this 27 // software without specific prior written permission. 28 // 29 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 30 // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 31 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 32 // ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE 33 // LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 34 // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 35 // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 36 // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 37 // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 38 // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 39 // POSSIBILITY OF SUCH DAMAGE. 40 // 41 // This is part of revision release_sdk_4_4_0-3c5977e664 of the AmbiqSuite Development Package. 42 // 43 //***************************************************************************** 44 #ifndef AM_REG_BASE_ADDRESSES_H 45 #define AM_REG_BASE_ADDRESSES_H 46 47 #include "stdint.h" 48 49 // 50 // ARM standard register space (needed for macros) 51 // 52 #define REG_ITM_BASEADDR (0x00000000UL) 53 #define REG_JEDEC_BASEADDR (0x00000000UL) 54 #define REG_NVIC_BASEADDR (0x00000000UL) 55 #define REG_SYSCTRL_BASEADDR (0x00000000UL) 56 #define REG_SYSTICK_BASEADDR (0x00000000UL) 57 #define REG_TPIU_BASEADDR (0x00000000UL) 58 59 // 60 // Peripheral register space 61 // 62 #define REG_ADC_BASEADDR (0x40038000UL) 63 #define REG_APBDMA_BASEADDR (0x51000000UL) 64 #define REG_AUDADC_BASEADDR (0x40210000UL) 65 #define REG_CLKGEN_BASEADDR (0x40004000UL) 66 #define REG_CPU_BASEADDR (0x48000000UL) 67 #define REG_DC_BASEADDR (0x400A0000UL) 68 #define REG_DSI_BASEADDR (0x400A8000UL) 69 #define REG_DSP_BASEADDR (0x40100000UL) 70 #define REG_DSPI2S_BASEADDR (0x50428000UL) 71 #define REG_DSPTIMER_BASEADDR (0x40087000UL) 72 #define REG_FPIO_BASEADDR (0x40010800UL) 73 #define REG_GPIO_BASEADDR (0x40010000UL) 74 #define REG_GPU_BASEADDR (0x40090000UL) 75 #define REG_IOM_BASEADDR (0x40050000UL) 76 #define REG_IOSLAVE_BASEADDR (0x40034000UL) 77 #define REG_MCUCTRL_BASEADDR (0x40020000UL) 78 #define REG_MRAM_BASEADDR (0x40014000UL) 79 #define REG_MSPI_BASEADDR (0x40060000UL) 80 #define REG_PDM_BASEADDR (0x50401000UL) 81 #define REG_PWRCTRL_BASEADDR (0x40021000UL) 82 #define REG_RSTGEN_BASEADDR (0x40000000UL) 83 #define REG_RTC_BASEADDR (0x40004800UL) 84 #define REG_SECURITY_BASEADDR (0x40030000UL) 85 #define REG_STIMER_BASEADDR (0x40008800UL) 86 #define REG_TIMER_BASEADDR (0x40008000UL) 87 #define REG_UART_BASEADDR (0x4001C000UL) 88 #define REG_VCOMP_BASEADDR (0x4000C000UL) 89 #define REG_WDT_BASEADDR (0x40024000UL) 90 91 // **************************************************************************** 92 // RAM Memory Map: 93 // TCM: 384KB 0x10000000 - 0x1005FFFF 94 // Shared System SRAM (SSRAM): 1024KB 0x10060000 - 0x1015FFFF 95 // Extended RAM: 384KB 0x10160000 - 0x101BFFFF 96 // Shared System SRAM (SSRAM): 1024KB 0x101C0000 - 0x102BFFFF 97 // **************************************************************************** 98 // 99 // TCM address space 100 // 101 #define SRAM_BASEADDR (0x10000000UL) 102 #define TCM_BASEADDR SRAM_BASEADDR 103 #define TCM_MAX_SIZE (384UL * 1024UL) 104 105 // 106 // The two non-contiguous SSRAM spaces are referred to as SSRAM0 and SSRAM1. 107 // SSRAM0 address space. 108 // 109 #define SSRAM0_BASEADDR (SRAM_BASEADDR + TCM_MAX_SIZE) 110 #define SSRAM0_MAX_SIZE (1024UL * 1024UL) 111 112 // 113 // Extended RAM address space. 114 // DSP0 layout is exactly as Apollo4b. DSP1RAMs were replaced in Apollo4p with SSRAM1. 115 // 116 #define EXTRAM_BASEADDR (SSRAM0_BASEADDR + SSRAM0_MAX_SIZE) 117 #define DSP0IRAM_BASEADDR EXTRAM_BASEADDR 118 #define DSP0IRAM_MAX_SIZE (128UL * 1024UL) 119 #define DSP0DRAM_BASEADDR (DSP0IRAM_BASEADDR + DSP0IRAM_MAX_SIZE) 120 #define DSP0DRAM_MAX_SIZE (256UL * 1024UL) 121 #define EXTRAM_MAX_SIZE (DSP0IRAM_MAX_SIZE + DSP0DRAM_MAX_SIZE) 122 123 // 124 // SSRAM1 address space 125 // 126 #define SSRAM1_BASEADDR (EXTRAM_BASEADDR + EXTRAM_MAX_SIZE) 127 #define SSRAM1_MAX_SIZE (1024UL * 1024UL) 128 129 // 130 // RAM sizes. 131 // NONTCM_MAX_SIZE is the total of contiguous RAM after TCM (mix of SSRAM and Extended) 132 // SSRAM_MAX_SIZE is the total of Shared System RAM, but is not necessarily contiguous. 133 // RAM_TOTAL_SIZE is the grand total of all contiguous RAM. 134 // 135 #define SSRAM_MAX_SIZE (SSRAM0_MAX_SIZE + SSRAM1_MAX_SIZE) 136 #define NONTCM_MAX_SIZE (EXTRAM_MAX_SIZE + SSRAM_MAX_SIZE) 137 #define RAM_TOTAL_SIZE (TCM_MAX_SIZE + NONTCM_MAX_SIZE) 138 139 // **************************************************************************** 140 // MRAM Address Space 141 // **************************************************************************** 142 #define MRAM_BASEADDR (0x00000000UL) 143 #define MRAM_MAX_SIZE (2048UL * 1024UL) 144 145 // 146 // MSPI Aperature address ranges 147 // 148 #define MSPI0_APERTURE_START_ADDR (0x14000000UL) 149 #define MSPI0_APERTURE_END_ADDR (0x18000000UL) 150 #define MSPI1_APERTURE_START_ADDR (0x18000000UL) 151 #define MSPI1_APERTURE_END_ADDR (0x1C000000UL) 152 #define MSPI2_APERTURE_START_ADDR (0x1C000000UL) 153 #define MSPI2_APERTURE_END_ADDR (0x20000000UL) 154 155 156 #endif // AM_REG_BASE_ADDRESSES_H 157 158