[PATCH 03/14] remove EARLY_INIT and EARLY_CONSOLE support
Sascha Hauer
s.hauer at pengutronix.de
Tue Sep 27 04:28:18 EDT 2011
Bitrotted over time and nearly unused, so remove it.
Signed-off-by: Sascha Hauer <s.hauer at pengutronix.de>
---
arch/arm/boards/karo-tx28/tx28-stk5.c | 1 -
arch/mips/lib/barebox.lds.S | 4 --
arch/ppc/Kconfig | 9 -----
arch/ppc/boards/pcm030/barebox.lds.S | 4 --
arch/ppc/boards/pcm030/pcm030.c | 13 +------
arch/ppc/include/asm/common.h | 2 +
arch/ppc/lib/board.c | 3 --
arch/ppc/mach-mpc5xxx/Kconfig | 3 --
arch/ppc/mach-mpc5xxx/cpu_init.c | 3 --
arch/ppc/mach-mpc5xxx/start.S | 15 --------
common/Kconfig | 17 ---------
common/console.c | 36 ++-----------------
common/startup.c | 28 ---------------
common/version.c | 5 +--
drivers/serial/serial_mpc5xxx.c | 25 -------------
include/linux/ctype.h | 3 +-
include/reloc.h | 62 ---------------------------------
lib/vsprintf.c | 1 -
18 files changed, 10 insertions(+), 224 deletions(-)
delete mode 100644 include/reloc.h
diff --git a/arch/arm/boards/karo-tx28/tx28-stk5.c b/arch/arm/boards/karo-tx28/tx28-stk5.c
index 645aa7b..b36d822 100644
--- a/arch/arm/boards/karo-tx28/tx28-stk5.c
+++ b/arch/arm/boards/karo-tx28/tx28-stk5.c
@@ -20,7 +20,6 @@
#include <mci.h>
#include <fec.h>
#include <sizes.h>
-#include <reloc.h>
#include <io.h>
#include <asm/sections.h>
#include <mach/imx-regs.h>
diff --git a/arch/mips/lib/barebox.lds.S b/arch/mips/lib/barebox.lds.S
index dd9eab7..ba4c0af 100644
--- a/arch/mips/lib/barebox.lds.S
+++ b/arch/mips/lib/barebox.lds.S
@@ -64,10 +64,6 @@ SECTIONS
__usymtab : { BAREBOX_SYMS }
__usymtab_end = .;
- __early_init_data_begin = .;
- .early_init_data : { *(.early_init_data) }
- __early_init_data_end = .;
-
. = ALIGN(4);
__bss_start = .;
.bss : { *(.bss*) }
diff --git a/arch/ppc/Kconfig b/arch/ppc/Kconfig
index cda14de..50ccaac 100644
--- a/arch/ppc/Kconfig
+++ b/arch/ppc/Kconfig
@@ -7,15 +7,6 @@ config ARCH_TEXT_BASE
default 0x00000000 if RELOCATABLE
default 0x01000000 if MACH_PHYCORE_MPC5200B_TINY
-config MPC5XXX_EARLY_CONSOLE
- bool
- depends on ARCH_MPC5200
- default y
-
-config HAS_EARLY_INIT
- bool
- default y
-
config PPC
bool
select HAVE_CONFIGURABLE_TEXT_BASE
diff --git a/arch/ppc/boards/pcm030/barebox.lds.S b/arch/ppc/boards/pcm030/barebox.lds.S
index 21bf4a7..4aacfc5 100644
--- a/arch/ppc/boards/pcm030/barebox.lds.S
+++ b/arch/ppc/boards/pcm030/barebox.lds.S
@@ -111,10 +111,6 @@ SECTIONS
__usymtab : { BAREBOX_SYMS }
__usymtab_end = .;
- __early_init_data_begin = .;
- .early_init_data : { *(.early_init_data) }
- __early_init_data_end = .;
-
__start___ex_table = .;
__ex_table : { *(__ex_table) }
__stop___ex_table = .;
diff --git a/arch/ppc/boards/pcm030/pcm030.c b/arch/ppc/boards/pcm030/pcm030.c
index d3b7094..f408c3d 100644
--- a/arch/ppc/boards/pcm030/pcm030.c
+++ b/arch/ppc/boards/pcm030/pcm030.c
@@ -35,7 +35,7 @@
#include <types.h>
#include <partition.h>
#include <memory.h>
-#include <reloc.h>
+#include <sizes.h>
static struct mpc5xxx_fec_platform_data fec_info = {
.xcv_type = MII100,
@@ -68,15 +68,6 @@ static int console_init(void)
console_initcall(console_init);
-void *get_early_console_base(const char *name)
-{
- if (!strcmp(name, RELOC("psc3")))
- return (void *)MPC5XXX_PSC3;
- if (!strcmp(name, RELOC("psc6")))
- return (void *)MPC5XXX_PSC6;
- return NULL;
-}
-
#include "mt46v32m16-75.h"
static void sdram_start (int hi_addr)
@@ -131,7 +122,7 @@ long int initdram (int board_type)
ulong test1, test2;
- if ((ulong)RELOC(initdram) > (2 << 30)) {
+ if (get_pc() > SZ_128M) {
/* setup SDRAM chip selects */
*(vu_long *)MPC5XXX_SDRAM_CS0CFG = 0x0000001b;/* 256MB at 0x0 */
*(vu_long *)MPC5XXX_SDRAM_CS1CFG = 0x10000000;/* disabled */
diff --git a/arch/ppc/include/asm/common.h b/arch/ppc/include/asm/common.h
index 26876c7..9239de4 100644
--- a/arch/ppc/include/asm/common.h
+++ b/arch/ppc/include/asm/common.h
@@ -3,6 +3,8 @@
#include <asm/barebox.h>
+extern unsigned long _text_base;
+
void upmconfig (unsigned int, unsigned int *, unsigned int);
ulong get_tbclk (void);
diff --git a/arch/ppc/lib/board.c b/arch/ppc/lib/board.c
index 798c386..82ba458 100644
--- a/arch/ppc/lib/board.c
+++ b/arch/ppc/lib/board.c
@@ -29,7 +29,6 @@
#include <memory.h>
#include <init.h>
#include <net.h>
-#include <reloc.h>
#include <asm-generic/memory_layout.h>
/************************************************************************
@@ -48,8 +47,6 @@ void board_init_r (ulong end_of_ram)
asm ("sync ; isync");
- _text_base += reloc_offset();
-
/*
* FIXME: 128k stack size. Is this enough? should
* it be configurable?
diff --git a/arch/ppc/mach-mpc5xxx/Kconfig b/arch/ppc/mach-mpc5xxx/Kconfig
index 5da6a5b..632fb85 100644
--- a/arch/ppc/mach-mpc5xxx/Kconfig
+++ b/arch/ppc/mach-mpc5xxx/Kconfig
@@ -10,6 +10,3 @@ config MACH_PHYCORE_MPC5200B_TINY_REV
old board you should set this option to 1
endmenu
-
-config EARLY_CONSOLE_PORT
- default "psc3" if MACH_PHYCORE_MPC5200B_TINY
\ No newline at end of file
diff --git a/arch/ppc/mach-mpc5xxx/cpu_init.c b/arch/ppc/mach-mpc5xxx/cpu_init.c
index 24edc48..bf0a5bd 100644
--- a/arch/ppc/mach-mpc5xxx/cpu_init.c
+++ b/arch/ppc/mach-mpc5xxx/cpu_init.c
@@ -24,7 +24,6 @@
#include <common.h>
#include <mach/mpc5xxx.h>
#include <types.h>
-#include <reloc.h>
/*
* Breath some life into the CPU...
@@ -177,8 +176,6 @@ int cpu_init(void)
/* route critical ints to normal ints */
*(vu_long *)MPC5XXX_ICTL_EXT |= 0x00000001;
- early_init();
-
return 0;
}
diff --git a/arch/ppc/mach-mpc5xxx/start.S b/arch/ppc/mach-mpc5xxx/start.S
index 3ba7208..2627e5d 100644
--- a/arch/ppc/mach-mpc5xxx/start.S
+++ b/arch/ppc/mach-mpc5xxx/start.S
@@ -802,21 +802,6 @@ trap_reloc:
blr
- .globl reloc_offset
-reloc_offset:
- mfspr r4, LR
- bl pc
-pc:
- mfspr r3, LR
- mtspr LR, r4
- addi r4, r3, (_text_base - pc)
- subi r3, r3, (pc - _start)
- lwz r4, 0(r4)
-
- sub r3, r3, r4
- subi r3, r3, 0x100
- blr
-
.globl _text_base
_text_base:
.long TEXT_BASE
diff --git a/common/Kconfig b/common/Kconfig
index 82e43aa..8e96920 100644
--- a/common/Kconfig
+++ b/common/Kconfig
@@ -398,23 +398,6 @@ config CONSOLE_ACTIVATE_ALL
Enabling this options activates all consoles on startup, so
you will get output and a prompt on all consoles simultaneously.
-config EARLY_CONSOLE_PORT
- string
- depends on HAS_EARLY_INIT
- prompt "Console device for early output"
- help
- Choose the device on which you want to have early output printed
- to. This is only used during startup when no device information
- is available.
-
-config EARLY_CONSOLE_BAUDRATE
- int
- default 115200
- depends on HAS_EARLY_INIT
- prompt "Early console baudrate"
- help
- Choose the baudrate for your early console.
-
config OF_FLAT_TREE
bool
prompt "Open Firmware flat device tree support"
diff --git a/common/console.c b/common/console.c
index 1f6ee93..06e9c29 100644
--- a/common/console.c
+++ b/common/console.c
@@ -29,7 +29,6 @@
#include <console.h>
#include <driver.h>
#include <fs.h>
-#include <reloc.h>
#include <init.h>
#include <clock.h>
#include <kfifo.h>
@@ -42,10 +41,9 @@ LIST_HEAD(console_list);
EXPORT_SYMBOL(console_list);
#define CONSOLE_UNINITIALIZED 0
-#define CONSOLE_INIT_EARLY 1
-#define CONSOLE_INIT_FULL 2
+#define CONSOLE_INIT_FULL 1
-static int __early_initdata initialized = 0;
+static int initialized = 0;
static int console_std_set(struct device_d *dev, struct param_d *param,
const char *val)
@@ -163,10 +161,8 @@ int console_register(struct console_device *newcdev)
console_output_buffer = NULL;
}
-#ifndef CONFIG_HAS_EARLY_INIT
if (first)
barebox_banner();
-#endif
return 0;
}
@@ -250,26 +246,16 @@ int tstc(void)
}
EXPORT_SYMBOL(tstc);
-#ifdef CONFIG_HAS_EARLY_INIT
-static void __early_initdata *early_console_base;
-#endif
-
void console_putc(unsigned int ch, char c)
{
struct console_device *cdev;
- int init = INITDATA(initialized);
+ int init = initialized;
switch (init) {
case CONSOLE_UNINITIALIZED:
kfifo_putc(console_output_buffer, c);
return;
-#ifdef CONFIG_HAS_EARLY_INIT
- case CONSOLE_INIT_EARLY:
- early_console_putc(INITDATA(early_console_base), c);
- return;
-#endif
-
case CONSOLE_INIT_FULL:
for_each_console(cdev) {
if (cdev->f_active & ch) {
@@ -410,19 +396,3 @@ int ctrlc (void)
}
EXPORT_SYMBOL(ctrlc);
#endif /* ARCH_HAS_CTRC */
-
-#ifdef CONFIG_HAS_EARLY_INIT
-
-void early_console_start(const char *name, int baudrate)
-{
- void *base = get_early_console_base(name);
-
- if (base) {
- early_console_init(base, baudrate);
- INITDATA(initialized) = CONSOLE_INIT_EARLY;
- INITDATA(early_console_base) = base;
- barebox_banner();
- }
-}
-
-#endif
diff --git a/common/startup.c b/common/startup.c
index 7a1b602..13783fb 100644
--- a/common/startup.c
+++ b/common/startup.c
@@ -38,7 +38,6 @@
#include <fs.h>
#include <linux/stat.h>
#include <environment.h>
-#include <reloc.h>
#include <asm-generic/memory_layout.h>
#include <asm/sections.h>
@@ -62,23 +61,6 @@ static void display_meminfo(void)
#endif
}
-#ifdef CONFIG_HAS_EARLY_INIT
-
-#define EARLY_INITDATA (CFG_INIT_RAM_ADDR + CFG_INIT_RAM_SIZE \
- - CONFIG_EARLY_INITDATA_SIZE)
-
-void *init_data_ptr = (void *)EARLY_INITDATA;
-
-void early_init (void)
-{
- /* copy the early initdata segment to early init RAM */
- memcpy((void *)EARLY_INITDATA, RELOC(&__early_init_data_begin),
- (ulong)&__early_init_data_end -
- (ulong)&__early_init_data_begin);
-}
-
-#endif /* CONFIG_HAS_EARLY_INIT */
-
#ifdef CONFIG_DEFAULT_ENVIRONMENT
#include <generated/barebox_default_env.h>
@@ -112,16 +94,6 @@ void start_barebox (void)
struct stat s;
#endif
-#ifdef CONFIG_HAS_EARLY_INIT
- /* We are running from RAM now, copy early initdata from
- * early RAM to RAM
- */
- memcpy(&__early_init_data_begin, init_data_ptr,
- (ulong)&__early_init_data_end -
- (ulong)&__early_init_data_begin);
- init_data_ptr = &__early_init_data_begin;
-#endif /* CONFIG_HAS_EARLY_INIT */
-
for (initcall = __barebox_initcalls_start;
initcall < __barebox_initcalls_end; initcall++) {
PUTS_LL("<<");
diff --git a/common/version.c b/common/version.c
index 945475f..0af8ec1 100644
--- a/common/version.c
+++ b/common/version.c
@@ -1,5 +1,4 @@
#include <common.h>
-#include <reloc.h>
#include <generated/utsrelease.h>
const char version_string[] =
@@ -7,7 +6,7 @@ const char version_string[] =
void barebox_banner (void)
{
- printf (RELOC("\n\n%s\n\n"), RELOC_VAR(version_string));
- printf(RELOC("Board: " CONFIG_BOARDINFO "\n"));
+ printf("\n\n%s\n\n", version_string);
+ printf("Board: " CONFIG_BOARDINFO "\n");
}
diff --git a/drivers/serial/serial_mpc5xxx.c b/drivers/serial/serial_mpc5xxx.c
index fb580cf..b00b442 100644
--- a/drivers/serial/serial_mpc5xxx.c
+++ b/drivers/serial/serial_mpc5xxx.c
@@ -39,7 +39,6 @@
#include <init.h>
#include <console.h>
#include <xfuncs.h>
-#include <reloc.h>
#include <mach/clocks.h>
static int __mpc5xxx_serial_setbaudrate(struct mpc5xxx_psc *psc, int baudrate)
@@ -180,27 +179,3 @@ static int mpc5xxx_serial_register(void)
}
console_initcall(mpc5xxx_serial_register);
-
-#ifdef CONFIG_MPC5XXX_EARLY_CONSOLE
-
-void early_console_putc(void *base, char c)
-{
- struct mpc5xxx_psc *psc =
- (struct mpc5xxx_psc *)base;
-
- /* Wait for last character to go. */
- while (!(psc->psc_status & PSC_SR_TXEMP))
- ;
-
- psc->psc_buffer_8 = c;
-}
-
-void early_console_init(void *base, int baudrate)
-{
- struct mpc5xxx_psc *psc =
- (struct mpc5xxx_psc *)base;
- __mpc5xxx_serial_init(psc);
- __mpc5xxx_serial_setbaudrate(psc, baudrate);
-}
-
-#endif
diff --git a/include/linux/ctype.h b/include/linux/ctype.h
index 728040e..74fb735 100644
--- a/include/linux/ctype.h
+++ b/include/linux/ctype.h
@@ -2,7 +2,6 @@
#define _LINUX_CTYPE_H
#include <common.h>
-#include <reloc.h>
/*
* NOTE! This ctype does not handle EOF like the standard C
@@ -20,7 +19,7 @@
extern unsigned char _ctype[];
-#define __ismask(x) (RELOC_VAR(_ctype[(int)(unsigned char)(x)]))
+#define __ismask(x) (_ctype[(int)(unsigned char)(x)])
#define isalnum(c) ((__ismask(c)&(_U|_L|_D)) != 0)
#define isalpha(c) ((__ismask(c)&(_U|_L)) != 0)
diff --git a/include/reloc.h b/include/reloc.h
deleted file mode 100644
index cc99866..0000000
--- a/include/reloc.h
+++ /dev/null
@@ -1,62 +0,0 @@
-#ifndef __RELOC_H
-#define __RELOC_H
-
-extern unsigned long _text_base;
-
-#ifdef CONFIG_HAS_EARLY_INIT
-
-extern ulong __early_init_data_begin, __early_init_data_end;
-
-/*
- * The difference between our link address and the address we're
- * currently running at.
- */
-unsigned long reloc_offset(void);
-
-/*
- * When not running at link address, relocate a pointer by
- * taking reloc_offset() into account
- */
-#define RELOC(a) (typeof(*a) *)((unsigned long)a + reloc_offset())
-
-/*
- * dito, used for variables
- */
-#define RELOC_VAR(v) *(typeof(v)* )((unsigned long)&v + reloc_offset())
-
-void early_init(void);
-
-/*
- * put a variable into early init RAM. This section will
- * be relocated into SRAM during early init
- */
-#define __early_initdata __attribute__ ((__section__ (".early_init_data")))
-
-/* Access init data */
-#define INITDATA(var) *(typeof(var) *)((ulong)(&var) - \
- (ulong)&__early_init_data_begin + \
- (ulong)RELOC_VAR(init_data_ptr))
-
-extern void *init_data_ptr;
-
-#else
-
-static inline int reloc_offset(void)
-{
- return 0;
-}
-
-static inline void early_init(void)
-{
-}
-
-#define RELOC(a) a
-#define RELOC_VAR(v) v
-
-#define __early_initdata
-
-#define INITDATA(var) var
-
-#endif /* CONFIG_HAS_EARLY_INIT */
-
-#endif /* __RELOC_H */
diff --git a/lib/vsprintf.c b/lib/vsprintf.c
index ccccc5d..54e162f 100644
--- a/lib/vsprintf.c
+++ b/lib/vsprintf.c
@@ -19,7 +19,6 @@
#include <common.h>
#include <led.h>
-#include <reloc.h>
unsigned long simple_strtoul(const char *cp,char **endp,unsigned int base)
{
--
1.7.6.3
More information about the barebox
mailing list