From 80402f34f8e1f46134a0272ff4d34be64ff7380b Mon Sep 17 00:00:00 2001 From: Heiko Schocher Date: Mon, 29 Jun 2015 09:10:46 +0200 Subject: [PATCH] spl, common, serial: build SPL without serial support This patch enables building SPL without CONFIG_SPL_SERIAL_SUPPORT support. Signed-off-by: Heiko Schocher [trini: Ensure we build arch/arm/imx-common on mx28] Signed-off-by: Tom Rini --- arch/arm/Makefile | 2 +- arch/arm/lib/interrupts.c | 4 ++-- arch/arm/mach-at91/arm926ejs/cpu.c | 2 +- arch/arm/mach-at91/spl_at91.c | 3 +++ common/Makefile | 4 ++++ common/cli_readline.c | 2 +- common/cli_simple.c | 2 +- common/image.c | 8 ++++++-- include/common.h | 7 +++++++ include/configs/apf27.h | 1 + include/configs/mx31pdk.h | 1 + include/configs/mxs.h | 1 + include/configs/tx25.h | 1 + lib/display_options.c | 13 ++++++++++--- 14 files changed, 40 insertions(+), 11 deletions(-) diff --git a/arch/arm/Makefile b/arch/arm/Makefile index 6f30098f0a..ab0e9ce673 100644 --- a/arch/arm/Makefile +++ b/arch/arm/Makefile @@ -78,7 +78,7 @@ libs-y += arch/arm/cpu/ libs-y += arch/arm/lib/ ifeq ($(CONFIG_SPL_BUILD),y) -ifneq (,$(CONFIG_MX23)$(CONFIG_MX35)$(filter $(SOC), mx25 mx27 mx5 mx6 mx31 mx35)) +ifneq (,$(CONFIG_MX23)$(CONFIG_MX28)$(CONFIG_MX35)$(filter $(SOC), mx25 mx27 mx5 mx6 mx31 mx35)) libs-y += arch/arm/imx-common/ endif else diff --git a/arch/arm/lib/interrupts.c b/arch/arm/lib/interrupts.c index 06f46795c3..ec3fb77f85 100644 --- a/arch/arm/lib/interrupts.c +++ b/arch/arm/lib/interrupts.c @@ -123,8 +123,8 @@ void bad_mode (void) void show_regs (struct pt_regs *regs) { - unsigned long flags; - const char *processor_modes[] = { + unsigned long __maybe_unused flags; + const char __maybe_unused *processor_modes[] = { "USER_26", "FIQ_26", "IRQ_26", "SVC_26", "UK4_26", "UK5_26", "UK6_26", "UK7_26", "UK8_26", "UK9_26", "UK10_26", "UK11_26", diff --git a/arch/arm/mach-at91/arm926ejs/cpu.c b/arch/arm/mach-at91/arm926ejs/cpu.c index da1d35907e..990c689ad7 100644 --- a/arch/arm/mach-at91/arm926ejs/cpu.c +++ b/arch/arm/mach-at91/arm926ejs/cpu.c @@ -42,7 +42,7 @@ void arch_preboot_os(void) #if defined(CONFIG_DISPLAY_CPUINFO) int print_cpuinfo(void) { - char buf[32]; + char __maybe_unused buf[32]; printf("CPU: %s\n", ATMEL_CPU_NAME); printf("Crystal frequency: %8s MHz\n", diff --git a/arch/arm/mach-at91/spl_at91.c b/arch/arm/mach-at91/spl_at91.c index a79a9dce75..b19f95b0d0 100644 --- a/arch/arm/mach-at91/spl_at91.c +++ b/arch/arm/mach-at91/spl_at91.c @@ -123,9 +123,12 @@ void board_init_f(ulong dummy) at91_periph_clk_enable(ATMEL_ID_PIOB); at91_periph_clk_enable(ATMEL_ID_PIOC); #endif + +#if defined(CONFIG_SPL_SERIAL_SUPPORT) /* init console */ at91_seriald_hw_init(); preloader_console_init(); +#endif mem_init(); diff --git a/common/Makefile b/common/Makefile index 6dc4c899bc..dc82433e90 100644 --- a/common/Makefile +++ b/common/Makefile @@ -251,7 +251,11 @@ obj-$(CONFIG_DDR_SPD) += ddr_spd.o obj-$(CONFIG_SPD_EEPROM) += ddr_spd.o obj-$(CONFIG_HWCONFIG) += hwconfig.o obj-$(CONFIG_BOUNCE_BUFFER) += bouncebuf.o +ifdef CONFIG_SPL_BUILD +obj-$(CONFIG_SPL_SERIAL_SUPPORT) += console.o +else obj-y += console.o +endif obj-$(CONFIG_CROS_EC) += cros_ec.o obj-y += dlmalloc.o ifdef CONFIG_SYS_MALLOC_F_LEN diff --git a/common/cli_readline.c b/common/cli_readline.c index 9a9fb35b71..c1476e42d9 100644 --- a/common/cli_readline.c +++ b/common/cli_readline.c @@ -597,7 +597,7 @@ int cli_readline_into_buffer(const char *const prompt, char *buffer, puts(tab_seq + (col & 07)); col += 8 - (col & 07); } else { - char buf[2]; + char __maybe_unused buf[2]; /* * Echo input using puts() to force an diff --git a/common/cli_simple.c b/common/cli_simple.c index 6c65cc686c..00a8d2f48b 100644 --- a/common/cli_simple.c +++ b/common/cli_simple.c @@ -68,7 +68,7 @@ void cli_simple_process_macros(const char *input, char *output) /* 1 = waiting for '(' or '{' */ /* 2 = waiting for ')' or '}' */ /* 3 = waiting for ''' */ - char *output_start = output; + char __maybe_unused *output_start = output; debug_parser("[PROCESS_MACROS] INPUT len %zd: \"%s\"\n", strlen(input), input); diff --git a/common/image.c b/common/image.c index 9efacf8b89..c3616e2c44 100644 --- a/common/image.c +++ b/common/image.c @@ -54,6 +54,10 @@ static const image_header_t *image_get_ramdisk(ulong rd_addr, uint8_t arch, #include #include #include + +#ifndef __maybe_unused +# define __maybe_unused /* unimplemented */ +#endif #endif /* !USE_HOSTCC*/ #include @@ -274,7 +278,7 @@ void image_multi_getimg(const image_header_t *hdr, ulong idx, static void image_print_type(const image_header_t *hdr) { - const char *os, *arch, *type, *comp; + const char __maybe_unused *os, *arch, *type, *comp; os = genimg_get_os_name(image_get_os(hdr)); arch = genimg_get_arch_name(image_get_arch(hdr)); @@ -299,7 +303,7 @@ static void image_print_type(const image_header_t *hdr) void image_print_contents(const void *ptr) { const image_header_t *hdr = (const image_header_t *)ptr; - const char *p; + const char __maybe_unused *p; p = IMAGE_INDENT_STRING; printf("%sImage Name: %.*s\n", p, IH_NMLEN, image_get_name(hdr)); diff --git a/include/common.h b/include/common.h index fcc9ae7c21..5c076d6ce1 100644 --- a/include/common.h +++ b/include/common.h @@ -830,11 +830,18 @@ int getc(void); int tstc(void); /* stdout */ +#if defined(CONFIG_SPL_BUILD) && !defined(CONFIG_SPL_SERIAL_SUPPORT) +#define putc(...) do { } while (0) +#define puts(...) do { } while (0) +#define printf(...) do { } while (0) +#define vprintf(...) do { } while (0) +#else void putc(const char c); void puts(const char *s); int printf(const char *fmt, ...) __attribute__ ((format (__printf__, 1, 2))); int vprintf(const char *fmt, va_list args); +#endif /* stderr */ #define eputc(c) fputc(stderr, c) diff --git a/include/configs/apf27.h b/include/configs/apf27.h index a0a26bbf61..cf13563c62 100644 --- a/include/configs/apf27.h +++ b/include/configs/apf27.h @@ -40,6 +40,7 @@ #define CONFIG_SPL_LDSCRIPT "arch/$(ARCH)/cpu/u-boot-spl.lds" #define CONFIG_SPL_MAX_SIZE 2048 #define CONFIG_SPL_TEXT_BASE 0xA0000000 +#define CONFIG_SPL_SERIAL_SUPPORT /* NAND boot config */ #define CONFIG_SPL_NAND_SUPPORT diff --git a/include/configs/mx31pdk.h b/include/configs/mx31pdk.h index 7e709cd936..72d28c9bd9 100644 --- a/include/configs/mx31pdk.h +++ b/include/configs/mx31pdk.h @@ -35,6 +35,7 @@ #define CONFIG_SPL_MAX_SIZE 2048 #define CONFIG_SPL_NAND_SUPPORT #define CONFIG_SPL_LIBGENERIC_SUPPORT +#define CONFIG_SPL_SERIAL_SUPPORT #define CONFIG_SPL_TEXT_BASE 0x87dc0000 #define CONFIG_SYS_TEXT_BASE 0x87e00000 diff --git a/include/configs/mxs.h b/include/configs/mxs.h index 38b1e9377c..9d823def67 100644 --- a/include/configs/mxs.h +++ b/include/configs/mxs.h @@ -55,6 +55,7 @@ #define CONFIG_SPL_LDSCRIPT "arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds" #define CONFIG_SPL_LIBCOMMON_SUPPORT #define CONFIG_SPL_LIBGENERIC_SUPPORT +#define CONFIG_SPL_SERIAL_SUPPORT #define CONFIG_SPL_GPIO_SUPPORT /* Memory sizes */ diff --git a/include/configs/tx25.h b/include/configs/tx25.h index e7b006c2d4..834b6169f6 100644 --- a/include/configs/tx25.h +++ b/include/configs/tx25.h @@ -26,6 +26,7 @@ #define CONFIG_SPL_MAX_SIZE 2048 #define CONFIG_SPL_NAND_SUPPORT #define CONFIG_SPL_LIBGENERIC_SUPPORT +#define CONFIG_SPL_SERIAL_SUPPORT #define CONFIG_SPL_TEXT_BASE 0x810c0000 #define CONFIG_SYS_TEXT_BASE 0x81200000 diff --git a/lib/display_options.c b/lib/display_options.c index 57fb9741da..df134cd23a 100644 --- a/lib/display_options.c +++ b/lib/display_options.c @@ -25,7 +25,10 @@ int display_options (void) void print_freq(uint64_t freq, const char *s) { - unsigned long m = 0, n; + unsigned long m = 0; +#if defined(CONFIG_SPL_SERIAL_SUPPORT) + unsigned long n; +#endif uint32_t f; static const char names[] = {'G', 'M', 'K'}; unsigned long d = 1e9; @@ -45,7 +48,9 @@ void print_freq(uint64_t freq, const char *s) } f = do_div(freq, d); +#if defined(CONFIG_SPL_SERIAL_SUPPORT) n = freq; +#endif /* If there's a remainder, show the first few digits */ if (f) { @@ -58,7 +63,9 @@ void print_freq(uint64_t freq, const char *s) m = (m / 10) + (m % 100 >= 50); } +#if defined(CONFIG_SPL_SERIAL_SUPPORT) printf("%lu", n); +#endif if (m) printf(".%ld", m); printf(" %cHz%s", c, s); @@ -121,9 +128,9 @@ int print_buffer(ulong addr, const void *data, uint width, uint count, } lb; int i; #ifdef CONFIG_SYS_SUPPORT_64BIT_DATA - uint64_t x; + uint64_t __maybe_unused x; #else - uint32_t x; + uint32_t __maybe_unused x; #endif if (linelen*width > MAX_LINE_LENGTH_BYTES)