Merge branch 's5p-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung
* 's5p-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung: ARM: S5PV310: Fix on Secondary CPU startup ARM: S5PV310: Bug fix on uclk1 and sclk_pwm ARM: S5PV310: Fix missed uart clocks ARM: S5PV310: Should be clk_sclk_apll not clk_mout_apll ARM: S5PV310: Fix on PLL setting for S5PV310 ARM: S5PV310: Add CMU block for S5PV310 Clock ARM: S5PV310: Fix on typo irqs.h of S5PV310 ARM: S5PV310: Fix on default ZRELADDR of ARCH_S5PV310 ARM: S5PV310: Fix on GPIO base addresses ARM: SAMSUNG: Fix on build warning regarding VMALLOC_END type ARM: S5P: VMALLOC_END should be unsigned long
This commit is contained in:
Коммит
45b5bed7bc
|
@ -1622,7 +1622,8 @@ config ZRELADDR
|
|||
default 0x40008000 if ARCH_STMP378X ||\
|
||||
ARCH_STMP37XX ||\
|
||||
ARCH_SH7372 ||\
|
||||
ARCH_SH7377
|
||||
ARCH_SH7377 ||\
|
||||
ARCH_S5PV310
|
||||
default 0x50008000 if ARCH_S3C64XX ||\
|
||||
ARCH_SH7367
|
||||
default 0x60008000 if ARCH_VEXPRESS
|
||||
|
|
|
@ -15,6 +15,6 @@
|
|||
#ifndef __ASM_ARCH_VMALLOC_H
|
||||
#define __ASM_ARCH_VMALLOC_H
|
||||
|
||||
#define VMALLOC_END (0xE0000000)
|
||||
#define VMALLOC_END 0xE0000000UL
|
||||
|
||||
#endif /* __ASM_ARCH_VMALLOC_H */
|
||||
|
|
|
@ -15,6 +15,6 @@
|
|||
#ifndef __ASM_ARCH_VMALLOC_H
|
||||
#define __ASM_ARCH_VMALLOC_H
|
||||
|
||||
#define VMALLOC_END (0xE0000000)
|
||||
#define VMALLOC_END 0xE0000000UL
|
||||
|
||||
#endif /* __ASM_ARCH_VMALLOC_H */
|
||||
|
|
|
@ -12,6 +12,6 @@
|
|||
#ifndef __ASM_ARCH_VMALLOC_H
|
||||
#define __ASM_ARCH_VMALLOC_H
|
||||
|
||||
#define VMALLOC_END (0xE0000000)
|
||||
#define VMALLOC_END 0xE0000000UL
|
||||
|
||||
#endif /* __ASM_ARCH_VMALLOC_H */
|
||||
|
|
|
@ -12,6 +12,6 @@
|
|||
#ifndef __ASM_ARCH_VMALLOC_H
|
||||
#define __ASM_ARCH_VMALLOC_H
|
||||
|
||||
#define VMALLOC_END (0xE0000000)
|
||||
#define VMALLOC_END 0xE0000000UL
|
||||
|
||||
#endif /* __ASM_ARCH_VMALLOC_H */
|
||||
|
|
|
@ -17,6 +17,6 @@
|
|||
#ifndef __ASM_ARCH_VMALLOC_H
|
||||
#define __ASM_ARCH_VMALLOC_H __FILE__
|
||||
|
||||
#define VMALLOC_END (0xE0000000)
|
||||
#define VMALLOC_END (0xE0000000UL)
|
||||
|
||||
#endif /* __ASM_ARCH_VMALLOC_H */
|
||||
|
|
|
@ -30,6 +30,16 @@ static struct clk clk_sclk_hdmi27m = {
|
|||
.rate = 27000000,
|
||||
};
|
||||
|
||||
static int s5pv310_clksrc_mask_peril0_ctrl(struct clk *clk, int enable)
|
||||
{
|
||||
return s5p_gatectrl(S5P_CLKSRC_MASK_PERIL0, clk, enable);
|
||||
}
|
||||
|
||||
static int s5pv310_clk_ip_peril_ctrl(struct clk *clk, int enable)
|
||||
{
|
||||
return s5p_gatectrl(S5P_CLKGATE_IP_PERIL, clk, enable);
|
||||
}
|
||||
|
||||
/* Core list of CMU_CPU side */
|
||||
|
||||
static struct clksrc_clk clk_mout_apll = {
|
||||
|
@ -39,6 +49,14 @@ static struct clksrc_clk clk_mout_apll = {
|
|||
},
|
||||
.sources = &clk_src_apll,
|
||||
.reg_src = { .reg = S5P_CLKSRC_CPU, .shift = 0, .size = 1 },
|
||||
};
|
||||
|
||||
static struct clksrc_clk clk_sclk_apll = {
|
||||
.clk = {
|
||||
.name = "sclk_apll",
|
||||
.id = -1,
|
||||
.parent = &clk_mout_apll.clk,
|
||||
},
|
||||
.reg_div = { .reg = S5P_CLKDIV_CPU, .shift = 24, .size = 3 },
|
||||
};
|
||||
|
||||
|
@ -61,7 +79,7 @@ static struct clksrc_clk clk_mout_mpll = {
|
|||
};
|
||||
|
||||
static struct clk *clkset_moutcore_list[] = {
|
||||
[0] = &clk_mout_apll.clk,
|
||||
[0] = &clk_sclk_apll.clk,
|
||||
[1] = &clk_mout_mpll.clk,
|
||||
};
|
||||
|
||||
|
@ -154,7 +172,7 @@ static struct clksrc_clk clk_pclk_dbg = {
|
|||
|
||||
static struct clk *clkset_corebus_list[] = {
|
||||
[0] = &clk_mout_mpll.clk,
|
||||
[1] = &clk_mout_apll.clk,
|
||||
[1] = &clk_sclk_apll.clk,
|
||||
};
|
||||
|
||||
static struct clksrc_sources clkset_mout_corebus = {
|
||||
|
@ -220,7 +238,7 @@ static struct clksrc_clk clk_pclk_acp = {
|
|||
|
||||
static struct clk *clkset_aclk_top_list[] = {
|
||||
[0] = &clk_mout_mpll.clk,
|
||||
[1] = &clk_mout_apll.clk,
|
||||
[1] = &clk_sclk_apll.clk,
|
||||
};
|
||||
|
||||
static struct clksrc_sources clkset_aclk_200 = {
|
||||
|
@ -321,11 +339,6 @@ static struct clksrc_clk clk_sclk_vpll = {
|
|||
.reg_src = { .reg = S5P_CLKSRC_TOP0, .shift = 8, .size = 1 },
|
||||
};
|
||||
|
||||
static int s5pv310_clk_ip_peril_ctrl(struct clk *clk, int enable)
|
||||
{
|
||||
return s5p_gatectrl(S5P_CLKGATE_IP_PERIL, clk, enable);
|
||||
}
|
||||
|
||||
static struct clk init_clocks_disable[] = {
|
||||
{
|
||||
.name = "timers",
|
||||
|
@ -337,7 +350,37 @@ static struct clk init_clocks_disable[] = {
|
|||
};
|
||||
|
||||
static struct clk init_clocks[] = {
|
||||
/* Nothing here yet */
|
||||
{
|
||||
.name = "uart",
|
||||
.id = 0,
|
||||
.enable = s5pv310_clk_ip_peril_ctrl,
|
||||
.ctrlbit = (1 << 0),
|
||||
}, {
|
||||
.name = "uart",
|
||||
.id = 1,
|
||||
.enable = s5pv310_clk_ip_peril_ctrl,
|
||||
.ctrlbit = (1 << 1),
|
||||
}, {
|
||||
.name = "uart",
|
||||
.id = 2,
|
||||
.enable = s5pv310_clk_ip_peril_ctrl,
|
||||
.ctrlbit = (1 << 2),
|
||||
}, {
|
||||
.name = "uart",
|
||||
.id = 3,
|
||||
.enable = s5pv310_clk_ip_peril_ctrl,
|
||||
.ctrlbit = (1 << 3),
|
||||
}, {
|
||||
.name = "uart",
|
||||
.id = 4,
|
||||
.enable = s5pv310_clk_ip_peril_ctrl,
|
||||
.ctrlbit = (1 << 4),
|
||||
}, {
|
||||
.name = "uart",
|
||||
.id = 5,
|
||||
.enable = s5pv310_clk_ip_peril_ctrl,
|
||||
.ctrlbit = (1 << 5),
|
||||
}
|
||||
};
|
||||
|
||||
static struct clk *clkset_group_list[] = {
|
||||
|
@ -359,8 +402,8 @@ static struct clksrc_clk clksrcs[] = {
|
|||
.clk = {
|
||||
.name = "uclk1",
|
||||
.id = 0,
|
||||
.enable = s5pv310_clksrc_mask_peril0_ctrl,
|
||||
.ctrlbit = (1 << 0),
|
||||
.enable = s5pv310_clk_ip_peril_ctrl,
|
||||
},
|
||||
.sources = &clkset_group,
|
||||
.reg_src = { .reg = S5P_CLKSRC_PERIL0, .shift = 0, .size = 4 },
|
||||
|
@ -369,8 +412,8 @@ static struct clksrc_clk clksrcs[] = {
|
|||
.clk = {
|
||||
.name = "uclk1",
|
||||
.id = 1,
|
||||
.enable = s5pv310_clk_ip_peril_ctrl,
|
||||
.ctrlbit = (1 << 1),
|
||||
.enable = s5pv310_clksrc_mask_peril0_ctrl,
|
||||
.ctrlbit = (1 << 4),
|
||||
},
|
||||
.sources = &clkset_group,
|
||||
.reg_src = { .reg = S5P_CLKSRC_PERIL0, .shift = 4, .size = 4 },
|
||||
|
@ -379,8 +422,8 @@ static struct clksrc_clk clksrcs[] = {
|
|||
.clk = {
|
||||
.name = "uclk1",
|
||||
.id = 2,
|
||||
.enable = s5pv310_clk_ip_peril_ctrl,
|
||||
.ctrlbit = (1 << 2),
|
||||
.enable = s5pv310_clksrc_mask_peril0_ctrl,
|
||||
.ctrlbit = (1 << 8),
|
||||
},
|
||||
.sources = &clkset_group,
|
||||
.reg_src = { .reg = S5P_CLKSRC_PERIL0, .shift = 8, .size = 4 },
|
||||
|
@ -389,8 +432,8 @@ static struct clksrc_clk clksrcs[] = {
|
|||
.clk = {
|
||||
.name = "uclk1",
|
||||
.id = 3,
|
||||
.enable = s5pv310_clk_ip_peril_ctrl,
|
||||
.ctrlbit = (1 << 3),
|
||||
.enable = s5pv310_clksrc_mask_peril0_ctrl,
|
||||
.ctrlbit = (1 << 12),
|
||||
},
|
||||
.sources = &clkset_group,
|
||||
.reg_src = { .reg = S5P_CLKSRC_PERIL0, .shift = 12, .size = 4 },
|
||||
|
@ -399,7 +442,7 @@ static struct clksrc_clk clksrcs[] = {
|
|||
.clk = {
|
||||
.name = "sclk_pwm",
|
||||
.id = -1,
|
||||
.enable = s5pv310_clk_ip_peril_ctrl,
|
||||
.enable = s5pv310_clksrc_mask_peril0_ctrl,
|
||||
.ctrlbit = (1 << 24),
|
||||
},
|
||||
.sources = &clkset_group,
|
||||
|
@ -411,6 +454,7 @@ static struct clksrc_clk clksrcs[] = {
|
|||
/* Clock initialization code */
|
||||
static struct clksrc_clk *sysclks[] = {
|
||||
&clk_mout_apll,
|
||||
&clk_sclk_apll,
|
||||
&clk_mout_epll,
|
||||
&clk_mout_mpll,
|
||||
&clk_moutcore,
|
||||
|
@ -470,11 +514,11 @@ void __init_or_cpufreq s5pv310_setup_clocks(void)
|
|||
apll = s5p_get_pll45xx(xtal, __raw_readl(S5P_APLL_CON0), pll_4508);
|
||||
mpll = s5p_get_pll45xx(xtal, __raw_readl(S5P_MPLL_CON0), pll_4508);
|
||||
epll = s5p_get_pll46xx(xtal, __raw_readl(S5P_EPLL_CON0),
|
||||
__raw_readl(S5P_EPLL_CON1), pll_4500);
|
||||
__raw_readl(S5P_EPLL_CON1), pll_4600);
|
||||
|
||||
vpllsrc = clk_get_rate(&clk_vpllsrc.clk);
|
||||
vpll = s5p_get_pll46xx(vpllsrc, __raw_readl(S5P_VPLL_CON0),
|
||||
__raw_readl(S5P_VPLL_CON1), pll_4502);
|
||||
__raw_readl(S5P_VPLL_CON1), pll_4650);
|
||||
|
||||
clk_fout_apll.rate = apll;
|
||||
clk_fout_mpll.rate = mpll;
|
||||
|
|
|
@ -45,6 +45,16 @@ static struct map_desc s5pv310_iodesc[] __initdata = {
|
|||
.pfn = __phys_to_pfn(S5PV310_PA_L2CC),
|
||||
.length = SZ_4K,
|
||||
.type = MT_DEVICE,
|
||||
}, {
|
||||
.virtual = (unsigned long)S5P_VA_SYSRAM,
|
||||
.pfn = __phys_to_pfn(S5PV310_PA_SYSRAM),
|
||||
.length = SZ_4K,
|
||||
.type = MT_DEVICE,
|
||||
}, {
|
||||
.virtual = (unsigned long)S5P_VA_CMU,
|
||||
.pfn = __phys_to_pfn(S5PV310_PA_CMU),
|
||||
.length = SZ_128K,
|
||||
.type = MT_DEVICE,
|
||||
},
|
||||
};
|
||||
|
||||
|
|
|
@ -15,12 +15,14 @@
|
|||
|
||||
#include <plat/irqs.h>
|
||||
|
||||
/* Private Peripheral Interrupt */
|
||||
/* PPI: Private Peripheral Interrupt */
|
||||
|
||||
#define IRQ_PPI(x) S5P_IRQ(x+16)
|
||||
|
||||
#define IRQ_LOCALTIMER IRQ_PPI(13)
|
||||
|
||||
/* Shared Peripheral Interrupt */
|
||||
/* SPI: Shared Peripheral Interrupt */
|
||||
|
||||
#define IRQ_SPI(x) S5P_IRQ(x+32)
|
||||
|
||||
#define IRQ_EINT0 IRQ_SPI(40)
|
||||
|
@ -36,7 +38,7 @@
|
|||
#define IRQ_PCIE IRQ_SPI(50)
|
||||
#define IRQ_SYSTEM_TIMER IRQ_SPI(51)
|
||||
#define IRQ_MFC IRQ_SPI(52)
|
||||
#define IRQ_WTD IRQ_SPI(53)
|
||||
#define IRQ_WDT IRQ_SPI(53)
|
||||
#define IRQ_AUDIO_SS IRQ_SPI(54)
|
||||
#define IRQ_AC97 IRQ_SPI(55)
|
||||
#define IRQ_SPDIF IRQ_SPI(56)
|
||||
|
@ -67,8 +69,9 @@
|
|||
#define IRQ_IIC COMBINER_IRQ(27, 0)
|
||||
|
||||
/* Set the default NR_IRQS */
|
||||
|
||||
#define NR_IRQS COMBINER_IRQ(MAX_COMBINER_NR, 0)
|
||||
|
||||
#define MAX_COMBINER_NR 39
|
||||
|
||||
#endif /* ASM_ARCH_IRQS_H */
|
||||
#endif /* __ASM_ARCH_IRQS_H */
|
||||
|
|
|
@ -23,12 +23,16 @@
|
|||
|
||||
#include <plat/map-s5p.h>
|
||||
|
||||
#define S5PV310_PA_SYSRAM (0x02025000)
|
||||
|
||||
#define S5PV310_PA_CHIPID (0x10000000)
|
||||
#define S5P_PA_CHIPID S5PV310_PA_CHIPID
|
||||
|
||||
#define S5PV310_PA_SYSCON (0x10020000)
|
||||
#define S5P_PA_SYSCON S5PV310_PA_SYSCON
|
||||
|
||||
#define S5PV310_PA_CMU (0x10030000)
|
||||
|
||||
#define S5PV310_PA_WATCHDOG (0x10060000)
|
||||
|
||||
#define S5PV310_PA_COMBINER (0x10448000)
|
||||
|
@ -39,8 +43,12 @@
|
|||
#define S5PV310_PA_GIC_DIST (0x10501000)
|
||||
#define S5PV310_PA_L2CC (0x10502000)
|
||||
|
||||
#define S5PV310_PA_GPIO (0x11000000)
|
||||
#define S5P_PA_GPIO S5PV310_PA_GPIO
|
||||
#define S5PV310_PA_GPIO1 (0x11400000)
|
||||
#define S5PV310_PA_GPIO2 (0x11000000)
|
||||
#define S5PV310_PA_GPIO3 (0x03860000)
|
||||
#define S5P_PA_GPIO S5PV310_PA_GPIO1
|
||||
|
||||
#define S5PV310_PA_HSMMC(x) (0x12510000 + ((x) * 0x10000))
|
||||
|
||||
#define S5PV310_PA_UART (0x13800000)
|
||||
|
||||
|
@ -63,6 +71,10 @@
|
|||
|
||||
/* compatibiltiy defines. */
|
||||
#define S3C_PA_UART S5PV310_PA_UART
|
||||
#define S3C_PA_HSMMC0 S5PV310_PA_HSMMC(0)
|
||||
#define S3C_PA_HSMMC1 S5PV310_PA_HSMMC(1)
|
||||
#define S3C_PA_HSMMC2 S5PV310_PA_HSMMC(2)
|
||||
#define S3C_PA_HSMMC3 S5PV310_PA_HSMMC(3)
|
||||
#define S3C_PA_IIC S5PV310_PA_IIC0
|
||||
#define S3C_PA_WDT S5PV310_PA_WATCHDOG
|
||||
|
||||
|
|
|
@ -15,48 +15,49 @@
|
|||
|
||||
#include <mach/map.h>
|
||||
|
||||
#define S5P_CLKREG(x) (S3C_VA_SYS + (x))
|
||||
#define S5P_CLKREG(x) (S5P_VA_CMU + (x))
|
||||
|
||||
#define S5P_INFORM0 S5P_CLKREG(0x800)
|
||||
|
||||
#define S5P_EPLL_CON0 S5P_CLKREG(0x1C110)
|
||||
#define S5P_EPLL_CON1 S5P_CLKREG(0x1C114)
|
||||
#define S5P_VPLL_CON0 S5P_CLKREG(0x1C120)
|
||||
#define S5P_VPLL_CON1 S5P_CLKREG(0x1C124)
|
||||
#define S5P_EPLL_CON0 S5P_CLKREG(0x0C110)
|
||||
#define S5P_EPLL_CON1 S5P_CLKREG(0x0C114)
|
||||
#define S5P_VPLL_CON0 S5P_CLKREG(0x0C120)
|
||||
#define S5P_VPLL_CON1 S5P_CLKREG(0x0C124)
|
||||
|
||||
#define S5P_CLKSRC_TOP0 S5P_CLKREG(0x1C210)
|
||||
#define S5P_CLKSRC_TOP1 S5P_CLKREG(0x1C214)
|
||||
#define S5P_CLKSRC_TOP0 S5P_CLKREG(0x0C210)
|
||||
#define S5P_CLKSRC_TOP1 S5P_CLKREG(0x0C214)
|
||||
|
||||
#define S5P_CLKSRC_PERIL0 S5P_CLKREG(0x1C250)
|
||||
#define S5P_CLKSRC_PERIL0 S5P_CLKREG(0x0C250)
|
||||
|
||||
#define S5P_CLKDIV_TOP S5P_CLKREG(0x1C510)
|
||||
#define S5P_CLKDIV_TOP S5P_CLKREG(0x0C510)
|
||||
|
||||
#define S5P_CLKDIV_PERIL0 S5P_CLKREG(0x1C550)
|
||||
#define S5P_CLKDIV_PERIL1 S5P_CLKREG(0x1C554)
|
||||
#define S5P_CLKDIV_PERIL2 S5P_CLKREG(0x1C558)
|
||||
#define S5P_CLKDIV_PERIL3 S5P_CLKREG(0x1C55C)
|
||||
#define S5P_CLKDIV_PERIL4 S5P_CLKREG(0x1C560)
|
||||
#define S5P_CLKDIV_PERIL5 S5P_CLKREG(0x1C564)
|
||||
#define S5P_CLKDIV_PERIL0 S5P_CLKREG(0x0C550)
|
||||
#define S5P_CLKDIV_PERIL1 S5P_CLKREG(0x0C554)
|
||||
#define S5P_CLKDIV_PERIL2 S5P_CLKREG(0x0C558)
|
||||
#define S5P_CLKDIV_PERIL3 S5P_CLKREG(0x0C55C)
|
||||
#define S5P_CLKDIV_PERIL4 S5P_CLKREG(0x0C560)
|
||||
#define S5P_CLKDIV_PERIL5 S5P_CLKREG(0x0C564)
|
||||
|
||||
#define S5P_CLKGATE_IP_PERIL S5P_CLKREG(0x1C950)
|
||||
#define S5P_CLKSRC_MASK_PERIL0 S5P_CLKREG(0x0C350)
|
||||
|
||||
#define S5P_CLKSRC_CORE S5P_CLKREG(0x20200)
|
||||
#define S5P_CLKGATE_IP_PERIL S5P_CLKREG(0x0C950)
|
||||
|
||||
#define S5P_CLKDIV_CORE0 S5P_CLKREG(0x20500)
|
||||
#define S5P_CLKSRC_CORE S5P_CLKREG(0x10200)
|
||||
#define S5P_CLKDIV_CORE0 S5P_CLKREG(0x10500)
|
||||
|
||||
#define S5P_APLL_LOCK S5P_CLKREG(0x24000)
|
||||
#define S5P_MPLL_LOCK S5P_CLKREG(0x24004)
|
||||
#define S5P_APLL_CON0 S5P_CLKREG(0x24100)
|
||||
#define S5P_APLL_CON1 S5P_CLKREG(0x24104)
|
||||
#define S5P_MPLL_CON0 S5P_CLKREG(0x24108)
|
||||
#define S5P_MPLL_CON1 S5P_CLKREG(0x2410C)
|
||||
#define S5P_APLL_LOCK S5P_CLKREG(0x14000)
|
||||
#define S5P_MPLL_LOCK S5P_CLKREG(0x14004)
|
||||
#define S5P_APLL_CON0 S5P_CLKREG(0x14100)
|
||||
#define S5P_APLL_CON1 S5P_CLKREG(0x14104)
|
||||
#define S5P_MPLL_CON0 S5P_CLKREG(0x14108)
|
||||
#define S5P_MPLL_CON1 S5P_CLKREG(0x1410C)
|
||||
|
||||
#define S5P_CLKSRC_CPU S5P_CLKREG(0x24200)
|
||||
#define S5P_CLKMUX_STATCPU S5P_CLKREG(0x24400)
|
||||
#define S5P_CLKSRC_CPU S5P_CLKREG(0x14200)
|
||||
#define S5P_CLKMUX_STATCPU S5P_CLKREG(0x14400)
|
||||
|
||||
#define S5P_CLKDIV_CPU S5P_CLKREG(0x24500)
|
||||
#define S5P_CLKDIV_STATCPU S5P_CLKREG(0x24600)
|
||||
#define S5P_CLKDIV_CPU S5P_CLKREG(0x14500)
|
||||
#define S5P_CLKDIV_STATCPU S5P_CLKREG(0x14600)
|
||||
|
||||
#define S5P_CLKGATE_SCLKCPU S5P_CLKREG(0x24800)
|
||||
#define S5P_CLKGATE_SCLKCPU S5P_CLKREG(0x14800)
|
||||
|
||||
#endif /* __ASM_ARCH_REGS_CLOCK_H */
|
||||
|
|
|
@ -17,6 +17,6 @@
|
|||
#ifndef __ASM_ARCH_VMALLOC_H
|
||||
#define __ASM_ARCH_VMALLOC_H __FILE__
|
||||
|
||||
#define VMALLOC_END (0xF0000000)
|
||||
#define VMALLOC_END (0xF0000000UL)
|
||||
|
||||
#endif /* __ASM_ARCH_VMALLOC_H */
|
||||
|
|
|
@ -187,6 +187,6 @@ void __init smp_prepare_cpus(unsigned int max_cpus)
|
|||
* until it receives a soft interrupt, and then the
|
||||
* secondary CPU branches to this address.
|
||||
*/
|
||||
__raw_writel(BSYM(virt_to_phys(s5pv310_secondary_startup)), S5P_INFORM0);
|
||||
__raw_writel(BSYM(virt_to_phys(s5pv310_secondary_startup)), S5P_VA_SYSRAM);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
#define S5P_VA_GPIO S3C_ADDR(0x00500000)
|
||||
#define S5P_VA_SYSTIMER S3C_ADDR(0x01200000)
|
||||
#define S5P_VA_SROMC S3C_ADDR(0x01100000)
|
||||
#define S5P_VA_SYSRAM S3C_ADDR(0x01180000)
|
||||
|
||||
#define S5P_VA_COMBINER_BASE S3C_ADDR(0x00600000)
|
||||
#define S5P_VA_COMBINER(x) (S5P_VA_COMBINER_BASE + ((x) >> 2) * 0x10)
|
||||
|
@ -29,6 +30,7 @@
|
|||
#define S5P_VA_GIC_DIST S5P_VA_COREPERI(0x1000)
|
||||
|
||||
#define S5P_VA_L2CC S3C_ADDR(0x00900000)
|
||||
#define S5P_VA_CMU S3C_ADDR(0x00920000)
|
||||
|
||||
#define S5P_VA_UART(x) (S3C_VA_UART + ((x) * S3C_UART_OFFSET))
|
||||
#define S5P_VA_UART0 S5P_VA_UART(0)
|
||||
|
|
Загрузка…
Ссылка в новой задаче