From: Heiko Schocher Date: Mon, 29 Jun 2015 07:10:46 +0000 (+0200) Subject: spl, common, serial: build SPL without serial support X-Git-Tag: KARO-TX6-2015-09-18~491 X-Git-Url: https://git.kernelconcepts.de/?p=karo-tx-uboot.git;a=commitdiff_plain;h=81e14f3d11925e34447e0d93d84c39c052431866 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 --- diff --git a/arch/arm/Makefile b/arch/arm/Makefile index 3c99a617de..a35a668d5c 100644 --- a/arch/arm/Makefile +++ b/arch/arm/Makefile @@ -2,9 +2,47 @@ # SPDX-License-Identifier: GPL-2.0+ # +ifeq ($(CONFIG_SPL_BUILD)$(CONFIG_TEGRA),yy) +CONFIG_CPU_V7= +CONFIG_CPU_ARM720T=y +endif + +# This selects which instruction set is used. +arch-$(CONFIG_CPU_ARM720T) =-march=armv4 +arch-$(CONFIG_CPU_ARM920T) =-march=armv4 +arch-$(CONFIG_CPU_ARM926EJS) =-march=armv5te +arch-$(CONFIG_CPU_ARM946ES) =-march=armv4 +arch-$(CONFIG_CPU_SA1100) =-march=armv4 +arch-$(CONFIG_CPU_PXA) = +arch-$(CONFIG_CPU_ARM1136) =-march=armv5 +arch-$(CONFIG_CPU_ARM1176) =-march=armv5t +arch-$(CONFIG_CPU_V7) =$(call cc-option, -march=armv7-a, -march=armv5) +arch-$(CONFIG_ARM64) =-march=armv8-a + +# Evaluate arch cc-option calls now +arch-y := $(arch-y) + +# This selects how we optimise for the processor. +tune-$(CONFIG_CPU_ARM720T) =-mtune=arm7tdmi +tune-$(CONFIG_CPU_ARM920T) = +tune-$(CONFIG_CPU_ARM926EJS) = +tune-$(CONFIG_CPU_ARM946ES) = +tune-$(CONFIG_CPU_SA1100) =-mtune=strongarm1100 +tune-$(CONFIG_CPU_PXA) =-mcpu=xscale +tune-$(CONFIG_CPU_ARM1136) = +tune-$(CONFIG_CPU_ARM1176) = +tune-$(CONFIG_CPU_V7) = +tune-$(CONFIG_ARM64) = + +# Evaluate tune cc-option calls now +tune-y := $(tune-y) + +PLATFORM_CPPFLAGS += $(arch-y) $(tune-y) + # Machine directory name. This list is sorted alphanumerically # by CONFIG_* macro name. machine-$(CONFIG_ARCH_AT91) += at91 +machine-$(CONFIG_ARCH_BCM283X) += bcm283x machine-$(CONFIG_ARCH_DAVINCI) += davinci machine-$(CONFIG_ARCH_HIGHBANK) += highbank machine-$(CONFIG_ARCH_KEYSTONE) += keystone @@ -40,7 +78,7 @@ libs-y += arch/arm/cpu/ libs-y += arch/arm/lib/ ifeq ($(CONFIG_SPL_BUILD),y) -ifneq (,$(CONFIG_SOC_MX23)$(CONFIG_SOC_MX35)$(filter $(SOC), mx25 mx27 mx5 mx6 mx31 mx35)) +ifneq (,$(CONFIG_SOC_MX23)$(CONFIG_SOC_MX28)$(CONFIG_SOC_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 101507a72e..5ee87b89c8 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 52d4c9195f..6106ace862 100644 --- a/common/Makefile +++ b/common/Makefile @@ -252,7 +252,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 4e821a5cfc..4c7a849862 100644 --- a/common/cli_readline.c +++ b/common/cli_readline.c @@ -603,7 +603,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 aea20055fd..d35ecf1541 100644 --- a/include/configs/apf27.h +++ b/include/configs/apf27.h @@ -39,6 +39,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 af0ad8ef40..1dce66c754 100644 --- a/include/configs/mx31pdk.h +++ b/include/configs/mx31pdk.h @@ -34,6 +34,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 7b3b38b79a..3606c56078 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 1feabac6e3..b2c0fd3e87 100644 --- a/include/configs/tx25.h +++ b/include/configs/tx25.h @@ -25,6 +25,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)