spl, common, serial: build SPL without serial support
authorHeiko Schocher <hs@denx.de>
Mon, 29 Jun 2015 07:10:46 +0000 (09:10 +0200)
committerLothar Waßmann <LW@KARO-electronics.de>
Thu, 10 Sep 2015 06:24:11 +0000 (08:24 +0200)
This patch enables building SPL without
CONFIG_SPL_SERIAL_SUPPORT support.

Signed-off-by: Heiko Schocher <hs@denx.de>
[trini: Ensure we build arch/arm/imx-common on mx28]
Signed-off-by: Tom Rini <trini@konsulko.com>
14 files changed:
arch/arm/Makefile
arch/arm/lib/interrupts.c
arch/arm/mach-at91/arm926ejs/cpu.c
arch/arm/mach-at91/spl_at91.c
common/Makefile
common/cli_readline.c
common/cli_simple.c
common/image.c
include/common.h
include/configs/apf27.h
include/configs/mx31pdk.h
include/configs/mxs.h
include/configs/tx25.h
lib/display_options.c

index 3c99a61..a35a668 100644 (file)
@@ -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
index 101507a..5ee87b8 100644 (file)
@@ -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",
index da1d359..990c689 100644 (file)
@@ -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",
index a79a9dc..b19f95b 100644 (file)
@@ -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();
 
index 52d4c91..6106ace 100644 (file)
@@ -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
index 4e821a5..4c7a849 100644 (file)
@@ -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
index 6c65cc6..00a8d2f 100644 (file)
@@ -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);
index 9efacf8..c3616e2 100644 (file)
@@ -54,6 +54,10 @@ static const image_header_t *image_get_ramdisk(ulong rd_addr, uint8_t arch,
 #include <u-boot/md5.h>
 #include <time.h>
 #include <image.h>
+
+#ifndef __maybe_unused
+# define __maybe_unused                /* unimplemented */
+#endif
 #endif /* !USE_HOSTCC*/
 
 #include <u-boot/crc.h>
@@ -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));
index fcc9ae7..5c076d6 100644 (file)
@@ -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)
index aea2005..d35ecf1 100644 (file)
@@ -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
index af0ad8e..1dce66c 100644 (file)
@@ -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
index 7b3b38b..3606c56 100644 (file)
@@ -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 */
index 1feabac..b2c0fd3 100644 (file)
@@ -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
index 57fb974..df134cd 100644 (file)
@@ -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)