x86: Provide more configuration granularity
authorGraeme Russ <graeme.russ@gmail.com>
Tue, 8 Nov 2011 02:33:20 +0000 (02:33 +0000)
committerGraeme Russ <graeme.russ@gmail.com>
Tue, 29 Nov 2011 10:09:52 +0000 (21:09 +1100)
Planned future ports requires more granularity for some options

Signed-off-by: Graeme Russ <graeme.russ@gmail.com>
arch/x86/lib/Makefile
arch/x86/lib/board.c
arch/x86/lib/bootm.c
arch/x86/lib/pci.c
arch/x86/lib/video_bios.c
common/cmd_bdinfo.c
include/configs/eNET.h

index 71e94f76f37d9e60df3fbd525e3c40bc03d33117..eb5fa10398e9da81a65b3b752e6a313df485ff92 100644 (file)
@@ -25,11 +25,11 @@ include $(TOPDIR)/config.mk
 
 LIB    = $(obj)lib$(ARCH).o
 
-SOBJS-y        += bios.o
-SOBJS-y        += bios_pci.o
-SOBJS-       += realmode_switch.o
+SOBJS-$(CONFIG_SYS_PC_BIOS)    += bios.o
+SOBJS-$(CONFIG_SYS_PCI_BIOS)   += bios_pci.o
+SOBJS-$(CONFIG_SYS_X86_REALMODE)       += realmode_switch.o
 
-COBJS-y        += bios_setup.o
+COBJS-$(CONFIG_SYS_PC_BIOS)    += bios_setup.o
 COBJS-y        += board.o
 COBJS-y        += bootm.o
 COBJS-y        += interrupts.o
@@ -37,11 +37,11 @@ COBJS-$(CONFIG_SYS_PCAT_INTERRUPTS) += pcat_interrupts.o
 COBJS-$(CONFIG_SYS_GENERIC_TIMER) += pcat_timer.o
 COBJS-$(CONFIG_PCI) += pci.o
 COBJS-$(CONFIG_PCI) += pci_type1.o
-COBJS-       += realmode.o
-COBJS-y        += timer.o
-COBJS-y        += video_bios.o
-COBJS-y        += video.o
-COBJS-y        += zimage.o
+COBJS-$(CONFIG_SYS_X86_REALMODE)       += realmode.o
+COBJS-$(CONFIG_SYS_X86_ISR_TIMER)      += timer.o
+COBJS-$(CONFIG_VIDEO)  += video_bios.o
+COBJS-$(CONFIG_VIDEO)  += video.o
+COBJS-$(CONFIG_CMD_ZBOOT)      += zimage.o
 
 SRCS   := $(SOBJS-y:.o=.S) $(COBJS-y:.o=.c)
 OBJS   := $(addprefix $(obj),$(SOBJS-y) $(COBJS-y))
index e8227b13e9b2224e1964487d7d52a1e5919da361..b4451795cc70c0688d2424885e45fc988f37a47d 100644 (file)
@@ -91,11 +91,13 @@ static int display_dram_config(void)
        return 0;
 }
 
+#ifndef CONFIG_SYS_NO_FLASH
 static void display_flash_config(ulong size)
 {
        puts("Flash: ");
        print_size(size, "\n");
 }
+#endif
 
 /*
  * Breath some life into the board...
@@ -254,8 +256,12 @@ void board_init_f(ulong boot_flags)
 
 void board_init_r(gd_t *id, ulong dest_addr)
 {
+#if defined(CONFIG_CMD_NET)
        char *s;
+#endif
+#ifndef CONFIG_SYS_NO_FLASH
        ulong size;
+#endif
        static bd_t bd_data;
        static gd_t gd_data;
        init_fnc_t **init_fnc_ptr;
@@ -287,10 +293,13 @@ void board_init_r(gd_t *id, ulong dest_addr)
 #ifdef CONFIG_SERIAL_MULTI
        serial_initialize();
 #endif
+
+#ifndef CONFIG_SYS_NO_FLASH
        /* configure available FLASH banks */
        size = flash_init();
        display_flash_config(size);
        show_boot_progress(0x24);
+#endif
 
        show_boot_progress(0x25);
 
index 836803cbea3ca5c252bc57150976c1dac66ea19d..bac7b4f0cfb8a3b629e11010073509a2b463191b 100644 (file)
@@ -35,7 +35,7 @@
 int do_bootm_linux(int flag, int argc, char * const argv[],
                bootm_headers_t *images)
 {
-       void            *base_ptr;
+       void            *base_ptr = NULL;
        ulong           os_data, os_len;
        image_header_t  *hdr;
 
@@ -73,8 +73,10 @@ int do_bootm_linux(int flag, int argc, char * const argv[],
                goto error;
        }
 
+#ifdef CONFIG_CMD_ZBOOT
        base_ptr = load_zimage((void *)os_data, os_len,
                        images->rd_start, images->rd_end - images->rd_start, 0);
+#endif
 
        if (NULL == base_ptr) {
                printf("## Kernel loading failed ...\n");
index f3018b7926163712f03e4064ae7bffa467b88e00..71878dd7dcbed21c6a4f1adf6bd4534c0be5bb36 100644 (file)
@@ -151,3 +151,38 @@ int pci_shadow_rom(pci_dev_t dev, unsigned char *dest)
 
        return res;
 }
+
+#ifdef PCI_BIOS_DEBUG
+
+void print_bios_bios_stat(void)
+{
+       printf("16 bit functions:\n");
+       printf("pci_bios_present:                %d\n",
+                       RELOC_16_LONG(0xf000, num_pci_bios_present));
+       printf("pci_bios_find_device:            %d\n",
+                       RELOC_16_LONG(0xf000, num_pci_bios_find_device));
+       printf("pci_bios_find_class:             %d\n",
+                       RELOC_16_LONG(0xf000, num_pci_bios_find_class));
+       printf("pci_bios_generate_special_cycle: %d\n",
+                       RELOC_16_LONG(0xf000,
+                                     num_pci_bios_generate_special_cycle));
+       printf("pci_bios_read_cfg_byte:          %d\n",
+                       RELOC_16_LONG(0xf000, num_pci_bios_read_cfg_byte));
+       printf("pci_bios_read_cfg_word:          %d\n",
+                       RELOC_16_LONG(0xf000, num_pci_bios_read_cfg_word));
+       printf("pci_bios_read_cfg_dword:         %d\n",
+                       RELOC_16_LONG(0xf000, num_pci_bios_read_cfg_dword));
+       printf("pci_bios_write_cfg_byte:         %d\n",
+                       RELOC_16_LONG(0xf000, num_pci_bios_write_cfg_byte));
+       printf("pci_bios_write_cfg_word:         %d\n",
+                       RELOC_16_LONG(0xf000, num_pci_bios_write_cfg_word));
+       printf("pci_bios_write_cfg_dword:        %d\n",
+                       RELOC_16_LONG(0xf000, num_pci_bios_write_cfg_dword));
+       printf("pci_bios_get_irq_routing:        %d\n",
+                       RELOC_16_LONG(0xf000, num_pci_bios_get_irq_routing));
+       printf("pci_bios_set_irq:                %d\n",
+                       RELOC_16_LONG(0xf000, num_pci_bios_set_irq));
+       printf("pci_bios_unknown_function:       %d\n",
+                       RELOC_16_LONG(0xf000, num_pci_bios_unknown_function));
+}
+#endif
index f89f7d6b2073e9d338d6bdc32e98df6c16cbae23..1e06759d9eb7edcb7cb7ecdbfdd2162bf163c407 100644 (file)
 #define PRINTF(fmt, args...)
 #endif
 
-#ifdef CONFIG_PCI
-
-#ifdef PCI_BIOS_DEBUG
-void print_bios_bios_stat(void)
-{
-       printf("16 bit functions:\n");
-       printf("pci_bios_present:                %d\n",
-                       RELOC_16_LONG(0xf000, num_pci_bios_present));
-       printf("pci_bios_find_device:            %d\n",
-                       RELOC_16_LONG(0xf000, num_pci_bios_find_device));
-       printf("pci_bios_find_class:             %d\n",
-                       RELOC_16_LONG(0xf000, num_pci_bios_find_class));
-       printf("pci_bios_generate_special_cycle: %d\n",
-                       RELOC_16_LONG(0xf000,
-                                     num_pci_bios_generate_special_cycle));
-       printf("pci_bios_read_cfg_byte:          %d\n",
-                       RELOC_16_LONG(0xf000, num_pci_bios_read_cfg_byte));
-       printf("pci_bios_read_cfg_word:          %d\n",
-                       RELOC_16_LONG(0xf000, num_pci_bios_read_cfg_word));
-       printf("pci_bios_read_cfg_dword:         %d\n",
-                       RELOC_16_LONG(0xf000, num_pci_bios_read_cfg_dword));
-       printf("pci_bios_write_cfg_byte:         %d\n",
-                       RELOC_16_LONG(0xf000, num_pci_bios_write_cfg_byte));
-       printf("pci_bios_write_cfg_word:         %d\n",
-                       RELOC_16_LONG(0xf000, num_pci_bios_write_cfg_word));
-       printf("pci_bios_write_cfg_dword:        %d\n",
-                       RELOC_16_LONG(0xf000, num_pci_bios_write_cfg_dword));
-       printf("pci_bios_get_irq_routing:        %d\n",
-                       RELOC_16_LONG(0xf000, num_pci_bios_get_irq_routing));
-       printf("pci_bios_set_irq:                %d\n",
-                       RELOC_16_LONG(0xf000, num_pci_bios_set_irq));
-       printf("pci_bios_unknown_function:       %d\n",
-                       RELOC_16_LONG(0xf000, num_pci_bios_unknown_function));
-
-}
-#endif
-
-#ifdef CONFIG_VIDEO
-
 #define PCI_CLASS_VIDEO                        3
 #define PCI_CLASS_VIDEO_STD            0
 #define PCI_CLASS_VIDEO_PROG_IF_VGA    0
@@ -233,5 +194,3 @@ int video_bios_init(void)
        return 1;
 
 }
-#endif
-#endif
index 688b2382a7d59ccb95d7926e3123bc5882b3fa4e..6c485949c0662f6d397a40c3889f8fb603d51e9b 100644 (file)
@@ -31,7 +31,8 @@ DECLARE_GLOBAL_DATA_PTR;
 
 static void print_num(const char *, ulong);
 
-#if !(defined(CONFIG_ARM) || defined(CONFIG_M68K) || defined(CONFIG_SANDBOX)) \
+#if !(defined(CONFIG_ARM) || defined(CONFIG_M68K) || \
+       defined(CONFIG_SANDBOX) || defined(CONFIG_X86)) \
        || defined(CONFIG_CMD_NET)
 #define HAVE_PRINT_ETH
 static void print_eth(int idx);
index 70c74f63d4c2f498a5548698da06e2160183f175..d5c9cad657abd8e7ced508b8e8aa7694f9335013 100644 (file)
 #define CONFIG_CMD_SETGETDCR
 #define CONFIG_CMD_SOURCE
 #define CONFIG_CMD_XIMG
+#define CONFIG_CMD_ZBOOT
 
 #define CONFIG_BOOTDELAY                       15
 #define CONFIG_BOOTARGS                                "root=/dev/mtdblock0 console=ttyS0,9600"
 #undef  CONFIG_SYS_GENERIC_TIMER
 #define CONFIG_SYS_PCAT_INTERRUPTS
 #define CONFIG_SYS_NUM_IRQS                    16
+#define CONFIG_SYS_PC_BIOS
+#define CONFIG_SYS_PCI_BIOS
+#define CONFIG_SYS_X86_REALMODE
+#define CONFIG_SYS_X86_ISR_TIMER
 
 /*-----------------------------------------------------------------------
  * Memory organization: