blob: 5e21627c9ba263ecf5169b011933a0a03cec6673 [file] [log] [blame]
Bryan Wu1394f032007-05-06 14:50:22 -07001/*
Mike Frysingerfa48f842009-06-17 11:25:06 -04002 * Common Blackfin memory map
Bryan Wu1394f032007-05-06 14:50:22 -07003 *
Mike Frysingerfa48f842009-06-17 11:25:06 -04004 * Copyright 2004-2009 Analog Devices Inc.
5 * Licensed under the GPL-2 or later.
Bryan Wu1394f032007-05-06 14:50:22 -07006 */
7
Mike Frysingerfa48f842009-06-17 11:25:06 -04008#ifndef __BFIN_MEM_MAP_H__
9#define __BFIN_MEM_MAP_H__
Bryan Wu1394f032007-05-06 14:50:22 -070010
Bryan Wu639f6572008-08-27 10:51:02 +080011#include <mach/mem_map.h>
Bryan Wu1394f032007-05-06 14:50:22 -070012
Mike Frysingerfa48f842009-06-17 11:25:06 -040013/* Every Blackfin so far has MMRs like this */
14#ifndef COREMMR_BASE
15# define COREMMR_BASE 0xFFE00000
16#endif
17#ifndef SYSMMR_BASE
18# define SYSMMR_BASE 0xFFC00000
19#endif
Graf Yangdbc895f2009-01-07 23:14:39 +080020
Mike Frysingerfa48f842009-06-17 11:25:06 -040021/* Every Blackfin so far has on-chip Scratch Pad SRAM like this */
22#ifndef L1_SCRATCH_START
23# define L1_SCRATCH_START 0xFFB00000
24# define L1_SCRATCH_LENGTH 0x1000
25#endif
Graf Yangdbc895f2009-01-07 23:14:39 +080026
Mike Frysingerfa48f842009-06-17 11:25:06 -040027/* Most parts lack on-chip L2 SRAM */
28#ifndef L2_START
29# define L2_START 0
30# define L2_LENGTH 0
31#endif
Graf Yangdbc895f2009-01-07 23:14:39 +080032
Mike Frysingerfa48f842009-06-17 11:25:06 -040033/* Most parts lack on-chip L1 ROM */
34#ifndef L1_ROM_START
35# define L1_ROM_START 0
36# define L1_ROM_LENGTH 0
37#endif
Graf Yangdbc895f2009-01-07 23:14:39 +080038
Mike Frysingerfa48f842009-06-17 11:25:06 -040039/* Allow wonky SMP ports to override this */
40#ifndef GET_PDA_SAFE
41# define GET_PDA_SAFE(preg) \
42 preg.l = _cpu_pda; \
43 preg.h = _cpu_pda;
44# define GET_PDA(preg, dreg) GET_PDA_SAFE(preg)
45
46# ifndef __ASSEMBLY__
47
48static inline unsigned long get_l1_scratch_start_cpu(int cpu)
Graf Yangdbc895f2009-01-07 23:14:39 +080049{
50 return L1_SCRATCH_START;
51}
Mike Frysingerfa48f842009-06-17 11:25:06 -040052static inline unsigned long get_l1_code_start_cpu(int cpu)
Graf Yangdbc895f2009-01-07 23:14:39 +080053{
54 return L1_CODE_START;
55}
Mike Frysingerfa48f842009-06-17 11:25:06 -040056static inline unsigned long get_l1_data_a_start_cpu(int cpu)
Graf Yangdbc895f2009-01-07 23:14:39 +080057{
58 return L1_DATA_A_START;
59}
Mike Frysingerfa48f842009-06-17 11:25:06 -040060static inline unsigned long get_l1_data_b_start_cpu(int cpu)
Graf Yangdbc895f2009-01-07 23:14:39 +080061{
62 return L1_DATA_B_START;
63}
Mike Frysingerfa48f842009-06-17 11:25:06 -040064static inline unsigned long get_l1_scratch_start(void)
Graf Yangdbc895f2009-01-07 23:14:39 +080065{
66 return get_l1_scratch_start_cpu(0);
67}
Mike Frysingerfa48f842009-06-17 11:25:06 -040068static inline unsigned long get_l1_code_start(void)
Graf Yangdbc895f2009-01-07 23:14:39 +080069{
70 return get_l1_code_start_cpu(0);
71}
Mike Frysingerfa48f842009-06-17 11:25:06 -040072static inline unsigned long get_l1_data_a_start(void)
Graf Yangdbc895f2009-01-07 23:14:39 +080073{
74 return get_l1_data_a_start_cpu(0);
75}
Mike Frysingerfa48f842009-06-17 11:25:06 -040076static inline unsigned long get_l1_data_b_start(void)
Graf Yangdbc895f2009-01-07 23:14:39 +080077{
78 return get_l1_data_b_start_cpu(0);
79}
80
Mike Frysingerfa48f842009-06-17 11:25:06 -040081# endif /* __ASSEMBLY__ */
82#endif /* !GET_PDA_SAFE */
Graf Yangdbc895f2009-01-07 23:14:39 +080083
Mike Frysingerfa48f842009-06-17 11:25:06 -040084#endif