summaryrefslogtreecommitdiff
path: root/nuttx/arch/arm/src/kinetis/kinetis_memorymap.h
blob: b8a81f1e4d0cc38a6793db427a920cbd96fcb28e (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
/************************************************************************************
 * arch/arm/src/kinetis/kinetis_memorymap.h
 *
 *   Copyright (C) 2010 Gregory Nutt. All rights reserved.
 *   Author: Gregory Nutt <spudmonkey@racsa.co.cr>
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in
 *    the documentation and/or other materials provided with the
 *    distribution.
 * 3. Neither the name NuttX nor the names of its contributors may be
 *    used to endorse or promote products derived from this software
 *    without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
 * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
 * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 * POSSIBILITY OF SUCH DAMAGE.
 *
 ************************************************************************************/

#ifndef __ARCH_ARM_SRC_KINETIS_KINETIS_MEMORYMAP_H
#define __ARCH_ARM_SRC_KINETIS_KINETIS_MEMORYMAP_H

/************************************************************************************
 * Included Files
 ************************************************************************************/

#include <nuttx/config.h>

#include "chip.h"

/************************************************************************************
 * Pre-processor Definitions
 ************************************************************************************/

/* Memory Map ***********************************************************************/

#define KINETIS_FLASH_BASE    0x00000000 /* -0x1fffffff: On-chip non-volatile memory */
#define KINETIS_SRAM_BASE     0x10000000 /* -0x10007fff: On-chip SRAM (devices <=32Kb) */
#define KINETIS_ROM_BASE      0x1fff0000 /* -0x1fffffff: 8Kb Boot ROM with flash services */
#define KINETIS_AHBSRAM_BASE  0x20000000 /* -0x3fffffff: On-chip AHB SRAM (devices >32Kb) */
#  define KINETIS_SRAM_BANK0  0x2007c000 /* -0x2007ffff: On-chip AHB SRAM Bank0 (devices >=32Kb) */
#  define KINETIS_SRAM_BANK1  0x20080000 /* -0x2008ffff: On-chip AHB SRAM Bank1 (devices 64Kb) */
#define KINETIS_GPIO_BASE     0x2009c000 /* -0x2009ffff: GPIO */
#define KINETIS_APB_BASE      0x40000000 /* -0x5fffffff: APB Peripherals */
#  define KINETIS_APB0_BASE   0x40000000 /* -0x4007ffff: APB0 Peripherals */
#  define KINETIS_APB1_BASE   0x40080000 /* -0x400fffff: APB1 Peripherals */
#  define KINETIS_AHB_BASE    0x50000000 /* -0x501fffff: DMA Controller, Ethernet, and USB */
#define KINETIS_CORTEXM3_BASE 0xe0000000 /* -0xe00fffff: (see cortexm3/nvic.h) */
#define KINETIS_SCS_BASE      0xe000e000
#define KINETIS_DEBUGMCU_BASE 0xe0042000

/* AHB SRAM Bank sizes **************************************************************/

#define KINETIS_BANK0_SIZE    (16*1024)  /* Size of AHB SRAM Bank0 (if present) */
#define KINETIS_BANK1_SIZE    (16*1024)  /* Size of AHB SRAM Bank1 (if present) */

/* APB0 Peripherals *****************************************************************/

#define KINETIS_WDT_BASE      0x40000000 /* -0x40003fff: Watchdog timer */
#define KINETIS_TMR0_BASE     0x40004000 /* -0x40007fff: Timer 0 */
#define KINETIS_TMR1_BASE     0x40008000 /* -0x4000bfff: Timer 1 */
#define KINETIS_UART0_BASE    0x4000c000 /* -0x4000ffff: UART 0 */
#define KINETIS_UART1_BASE    0x40010000 /* -0x40013fff: UART 1 */
                                       /* -0x40017fff: Reserved */
#define KINETIS_PWM1_BASE     0x40018000 /* -0x4001bfff: PWM 1 */
#define KINETIS_I2C0_BASE     0x4001c000 /* -0x4001ffff: I2C 0 */
#define KINETIS_SPI_BASE      0x40020000 /* -0x40023fff: SPI */
#define KINETIS_RTC_BASE      0x40024000 /* -0x40027fff: RTC + backup registers */
#define KINETIS_GPIOINT_BASE  0x40028000 /* -0x4002bfff: GPIO interrupts */
#define KINETIS_PINCONN_BASE  0x4002c000 /* -0x4002ffff: Pin connect block */
#define KINETIS_SSP1_BASE     0x40030000 /* -0x40033fff: SSP 1 */
#define KINETIS_ADC_BASE      0x40034000 /* -0x40037fff: ADC */
#define KINETIS_CANAFRAM_BASE 0x40038000 /* -0x4003bfff: CAN acceptance filter (AF) RAM */
#define KINETIS_CANAF_BASE    0x4003c000 /* -0x4003ffff: CAN acceptance filter (AF) registers */
#define KINETIS_CAN_BASE      0x40040000 /* -0x40043fff: CAN common registers */
#define KINETIS_CAN1_BASE     0x40044000 /* -0x40047fff: CAN controller l */
#define KINETIS_CAN2_BASE     0x40048000 /* -0x4004bfff: CAN controller 2 */
                                       /* -0x4005bfff: Reserved */
#define KINETIS_I2C1_BASE     0x4005c000 /* -0x4005ffff: I2C 1 */
                                       /* -0x4007ffff: Reserved */

/* APB1 Peripherals *****************************************************************/

                                       /* -0x40087fff: Reserved */
#define KINETIS_SSP0_BASE     0x40088000 /* -0x4008bfff: SSP 0 */
#define KINETIS_DAC_BASE      0x4008c000 /* -0x4008ffff: DAC */
#define KINETIS_TMR2_BASE     0x40090000 /* -0x40093fff: Timer 2 */
#define KINETIS_TMR3_BASE     0x40094000 /* -0x40097fff: Timer 3 */
#define KINETIS_UART2_BASE    0x40098000 /* -0x4009bfff: UART 2 */
#define KINETIS_UART3_BASE    0x4009c000 /* -0x4009ffff: UART 3 */
#define KINETIS_I2C2_BASE     0x400a0000 /* -0x400a3fff: I2C 2 */
                                       /* -0x400a7fff: Reserved */
#define KINETIS_I2S_BASE      0x400a8000 /* -0x400abfff: I2S */
                                       /* -0x400affff: Reserved */
#define KINETIS_RIT_BASE      0x400b0000 /* -0x400b3fff: Repetitive interrupt timer */
                                       /* -0x400b7fff: Reserved */
#define KINETIS_MCPWM_BASE    0x400b8000 /* -0x400bbfff: Motor control PWM */
#define KINETIS_QEI_BASE      0x400bc000 /* -0x400bffff: Quadrature encoder interface */
                                       /* -0x400fbfff: Reserved */
#define KINETIS_SYSCON_BASE   0x400fc000 /* -0x400fffff: System control */

/* AHB Peripherals ******************************************************************/

#define KINETIS_ETH_BASE      0x50000000 /* -0x50003fff: Ethernet controller */
#define KINETIS_GPDMA_BASE    0x50004000 /* -0x50007fff: GPDMA controller */
#define KINETIS_USB_BASE      0x5000c000 /* -0x5000cfff: USB controller */

/************************************************************************************
 * Public Types
 ************************************************************************************/

/************************************************************************************
 * Public Data
 ************************************************************************************/

/************************************************************************************
 * Public Functions
 ************************************************************************************/

#endif /* __ARCH_ARM_SRC_KINETIS_KINETIS_MEMORYMAP_H */