Commit c7f19589 authored by Ben Dooks's avatar Ben Dooks Committed by Russell King

[ARM PATCH] 1792/1: S3C2410 - arch/arm/boot [ fix for 1789/1 ]

Patch from Ben Dooks

arch/arm/boot support for S3C2410

support for boot (and debug) messages via EmbeddedICE (CP14)
comms registers.

fixed typos from 1789/1
parent 8a0997a0
...@@ -55,6 +55,10 @@ params_phys-$(CONFIG_ARCH_ADIFCC) := 0xc0000100 ...@@ -55,6 +55,10 @@ params_phys-$(CONFIG_ARCH_ADIFCC) := 0xc0000100
params_phys-$(CONFIG_ARCH_OMAP) := 0x10000100 params_phys-$(CONFIG_ARCH_OMAP) := 0x10000100
initrd_phys-$(CONFIG_ARCH_OMAP) := 0x10800000 initrd_phys-$(CONFIG_ARCH_OMAP) := 0x10800000
zreladdr-$(CONFIG_ARCH_S3C2410) := 0x30008000
params_phys-$(CONFIG_ARCH_S3C2410) := 0x30000100
ZRELADDR := $(zreladdr-y) ZRELADDR := $(zreladdr-y)
ZTEXTADDR := $(ztextaddr-y) ZTEXTADDR := $(ztextaddr-y)
PARAMS_PHYS := $(params_phys-y) PARAMS_PHYS := $(params_phys-y)
......
...@@ -55,6 +55,10 @@ ifeq ($(CONFIG_CPU_XSCALE),y) ...@@ -55,6 +55,10 @@ ifeq ($(CONFIG_CPU_XSCALE),y)
OBJS += head-xscale.o OBJS += head-xscale.o
endif endif
ifeq ($(CONFIG_DEBUG_ICEDCC),y)
OBJS += ice-dcc.o
endif
SEDFLAGS = s/TEXT_START/$(ZTEXTADDR)/;s/LOAD_ADDR/$(ZRELADDR)/;s/BSS_START/$(ZBSSADDR)/ SEDFLAGS = s/TEXT_START/$(ZTEXTADDR)/;s/LOAD_ADDR/$(ZRELADDR)/;s/BSS_START/$(ZBSSADDR)/
targets := vmlinux vmlinux.lds piggy piggy.gz piggy.o \ targets := vmlinux vmlinux.lds piggy piggy.gz piggy.o \
......
...@@ -25,6 +25,12 @@ ...@@ -25,6 +25,12 @@
.macro writeb, rb .macro writeb, rb
str \rb, [r3, #0x160] str \rb, [r3, #0x160]
.endm .endm
#elif defined(CONFIG_DEBUG_ICEDCC)
.macro loadsp, rb
.endm
.macro writeb, rb
mcr p14, 0, \rb, c0, c1, 0
.endm
#elif defined(CONFIG_FOOTBRIDGE) #elif defined(CONFIG_FOOTBRIDGE)
.macro loadsp, rb .macro loadsp, rb
mov \rb, #0x7c000000 mov \rb, #0x7c000000
......
.text
.global icedcc_putc
icedcc_putc:
mov r2, #0x4000000
1:
subs r2, r2, #1
movlt pc, r14
mrc p14, 0, r1, c0, c0, 0
tst r1, #2
bne 1b
mcr p14, 0, r0, c1, c0, 0
mov pc, r14
...@@ -27,6 +27,22 @@ unsigned int __machine_arch_type; ...@@ -27,6 +27,22 @@ unsigned int __machine_arch_type;
#define puts printf #define puts printf
#endif #endif
#ifdef CONFIG_DEBUG_ICEDCC
#define puts icedcc_puts
#define putc icedcc_putc
extern void idedcc_putc(int ch);
static void
icedcc_puts(const char *ptr)
{
for (; *ptr != '\0'; ptr++) {
icedcc_putc(*ptr);
}
}
#endif
#define __ptr_t void * #define __ptr_t void *
/* /*
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment