Improve coreboot build output and eliminate some warnings:
authorUwe Hermann <uwe@hermann-uwe.de>
Tue, 27 Oct 2009 21:49:33 +0000 (21:49 +0000)
committerUwe Hermann <uwe@hermann-uwe.de>
Tue, 27 Oct 2009 21:49:33 +0000 (21:49 +0000)
 - Add static and const where possible.

 - Turn some #warning entries into TODO comments.

 - Add missing prototypes.

 - Remove unused variables.

 - Fix printf arguments or cast them as needed.

 - Make sconfig output look better. Drop useless "PARSED THE TREE" output.

 - Print "(this may take a while)" while building romcc. Add missing "\n".

Signed-off-by: Uwe Hermann <uwe@hermann-uwe.de>
Acked-by: Myles Watosn <mylesgw@gmail.com>
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@4874 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1

18 files changed:
Makefile
src/arch/i386/boot/gdt.c
src/arch/i386/boot/tables.c
src/arch/i386/lib/pci_ops_auto.c
src/console/vsprintf.c
src/devices/device.c
src/devices/pci_device.c
src/devices/pciexp_device.c
src/include/device/device.h
src/include/device/pci.h
src/northbridge/intel/i440bx/northbridge.c
src/southbridge/intel/i82371eb/i82371eb_ide.c
src/southbridge/intel/i82371eb/i82371eb_isa.c
util/romcc/romcc.c
util/sconfig/config.g
util/sconfig/parsedesc.g
util/sconfig/yapps2.py
util/x86emu/x86.c

index b3e3e42cb980463e6772895217ad7c40d16f1930..1132fb3aa7dc428d2098a81f6c19534f0d61956e 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -311,7 +311,7 @@ $(obj)/ldoptions: $(obj)/config.h
        awk '/^#define ([^"])* ([^"])*$$/ {print $$2 " = " $$3 ";";}' $< > $@
 
 $(obj)/romcc: $(top)/util/romcc/romcc.c
-       @printf "    HOSTCC     romcc"
+       @printf "    HOSTCC     romcc (this may take a while)\n"
        $(HOSTCC) -g -O2 -Wall -o $@ $<
 
 .PHONY: $(PHONY) prepare prepare2 clean distclean doxygen doxy coreboot
index c4ed37486d7c21d9af2b5daff7a4d2dceb56ac04..0230acf2087874d74d414ebe2bead82eae07679a 100644 (file)
@@ -47,11 +47,11 @@ void move_gdt(void)
                        printk(BIOS_ERR, "Error: Could not relocate GDT.\n");
                        return;
                }
-               printk_debug("Moving GDT to %#lx...", newgdt);
+               printk_debug("Moving GDT to %p...", newgdt);
                memcpy((void*)newgdt, &gdt, num_gdt_bytes);
        }
 
-       gdtarg.base = newgdt;
+       gdtarg.base = (u32)newgdt;
        gdtarg.limit = num_gdt_bytes - 1;
 
        __asm__ __volatile__ ("lgdt %0\n\t" : : "m" (gdtarg));
index b47826dd06f6d8769d755fd312f73373aee7d45a..03ebda60f7c11d33828c0ec61b562c339a042cbd 100644 (file)
@@ -191,7 +191,7 @@ struct lb_memory *write_tables(void)
 #define MAX_COREBOOT_TABLE_SIZE (8 * 1024)
        post_code(0x9d);
 
-       high_table_pointer = cbmem_add(CBMEM_ID_CBTABLE, MAX_COREBOOT_TABLE_SIZE);
+       high_table_pointer = (unsigned long)cbmem_add(CBMEM_ID_CBTABLE, MAX_COREBOOT_TABLE_SIZE);
 
        if (high_table_pointer) {
                unsigned long new_high_table_pointer;
@@ -202,7 +202,7 @@ struct lb_memory *write_tables(void)
 
                if (new_high_table_pointer > (high_table_pointer +
                                        MAX_COREBOOT_TABLE_SIZE))
-                       printk_err("%s: coreboot table didn't fit (%llx)\n",
+                       printk_err("%s: coreboot table didn't fit (%lx)\n",
                                   __func__, new_high_table_pointer -
                                   high_table_pointer);
 
index f453d4782648a8396b2f420ed4d87d20dd4daa85..1dd2494ba91b16a1a21ad832d6e785bc67c5e68d 100644 (file)
@@ -43,7 +43,7 @@ static int pci_sanity_check(const struct pci_bus_operations *o)
 
 struct pci_bus_operations *pci_bus_fallback_ops = NULL;
 
-const struct pci_bus_operations *pci_check_direct(void)
+static const struct pci_bus_operations *pci_check_direct(void)
 {
        unsigned int tmp;
 
@@ -86,7 +86,7 @@ const struct pci_bus_operations *pci_check_direct(void)
 const struct pci_bus_operations *pci_remember_direct(void)
 {
        if (!pci_bus_fallback_ops)
-               pci_bus_fallback_ops = pci_check_direct();
+               pci_bus_fallback_ops = (struct pci_bus_operations *)pci_check_direct();
        return pci_bus_fallback_ops;
 }
 
index 9507e8ea540be460d43f89c108df8525feeca742..7f3e33c3cc8c13c27b775324a4415284a1de0687 100644 (file)
@@ -48,6 +48,8 @@ static int vsprintf(char *buf, const char *fmt, va_list args)
        return i;
 }
 
+int sprintf(char *buf, const char *fmt, ...);
+
 int sprintf(char *buf, const char *fmt, ...)
 {
        va_list args;
index 2f01ae2df2f9d26713b013482056d327ea5e7082..2323850ae6c35fb198110506fcafa9a16f31a106 100644 (file)
@@ -671,8 +671,11 @@ static void avoid_fixed_resources(struct device *dev)
 device_t vga_pri = 0;
 static void set_vga_bridge_bits(void)
 {
-#warning "FIXME modify set_vga_bridge so it is less pci centric!"
-#warning "This function knows too much about PCI stuff, it should be just a iterator/visitor."
+       /*
+        * FIXME: Modify set_vga_bridge so it is less PCI centric!
+        * This function knows too much about PCI stuff, it should be just
+        * an iterator/visitor.
+        */
 
        /* FIXME: Handle the VGA palette snooping. */
        struct device *dev, *vga, *vga_onboard, *vga_first, *vga_last;
index 5c73db5ed0de495786b19cbad5eb1a4eaef5de50..1788044fe7865232773c184e63fa8db9f18ed62e 100644 (file)
@@ -809,7 +809,7 @@ static void set_pci_ops(struct device *dev)
        for (driver = &pci_drivers[0]; driver != &epci_drivers[0]; driver++) {
                if ((driver->vendor == dev->vendor) &&
                    (driver->device == dev->device)) {
-                       dev->ops = driver->ops;
+                       dev->ops = (struct device_operations *)driver->ops;
                        printk_spew("%s [%04x/%04x] %sops\n",
                                    dev_path(dev),
                                    driver->vendor, driver->device,
index 909026a36500180d1bb2af9434917ede6262a97e..461c3b6c7a30e303f94261726af94797e6986d51 100644 (file)
@@ -34,8 +34,8 @@ static void pciexp_tune_dev(device_t dev)
                /* error... */
                return;
        }
-       printk_debug("PCIe: tuning %s\n", dev_path(dev));
-#warning "IMPLEMENT PCI EXPRESS TUNING"
+       // printk_debug("PCIe: tuning %s\n", dev_path(dev));
+       /* TODO: Implement PCI Express tuning. */
 }
 
 unsigned int pciexp_scan_bus(struct bus *bus, 
index eba6eb50c6415a8371336d8308fdf2057343c20e..25a549cc72682864d614c07062d2b1120d0f39e8 100644 (file)
@@ -86,7 +86,7 @@ struct device {
        unsigned int links;
 
        struct device_operations *ops;
-       struct chip_operations *chip_ops;
+       const struct chip_operations *chip_ops;
        void *chip_info;
 };
 
index 60cf4aa35c14aa02f1736da0e6a8cca12c8be8a1..54856443931cbeb793bdbef1603ffcf502042f73 100644 (file)
@@ -38,7 +38,7 @@ struct pci_bus_operations {
 };
 
 struct pci_driver {
-       struct device_operations *ops;
+       const struct device_operations *ops;
        unsigned short vendor;
        unsigned short device;
 };
index 26229a953c6bd5e7e68e9b7ac1a5808964cbcc01..4431aafaf8b30eba5d95b06cd71f4b18278cf77f 100644 (file)
@@ -85,7 +85,6 @@ static void i440bx_domain_set_resources(device_t dev)
        pci_tolm = find_pci_tolm(&dev->link[0]);
        mc_dev = dev->link[0].children;
        if (mc_dev) {
-               uint16_t tolm_r;
                unsigned long tomk, tolmk;
                int idx;
 
@@ -98,7 +97,7 @@ static void i440bx_domain_set_resources(device_t dev)
                /* Convert to KB. */
                tomk *= (8 * 1024);
 
-               printk_debug("Setting RAM size to %d MB\n", tomk / 1024);
+               printk_debug("Setting RAM size to %ld MB\n", tomk / 1024);
 
                /* Compute the top of low memory. */
                tolmk = pci_tolm / 1024;
index 6611289403c68d0fb68d21b90e97f23ac060f83b..0e91839fb2ac444d6479ee2b3062942420c09016 100644 (file)
@@ -144,7 +144,7 @@ static void ide_init_i82371ab_eb_mb(struct device *dev)
 }
 
 /* Intel 82371FB/SB */
-static struct device_operations ide_ops_fb_sb = {
+static const struct device_operations ide_ops_fb_sb = {
        .read_resources         = pci_dev_read_resources,
        .set_resources          = pci_dev_set_resources,
        .enable_resources       = pci_dev_enable_resources,
@@ -155,7 +155,7 @@ static struct device_operations ide_ops_fb_sb = {
 };
 
 /* Intel 82371AB/EB/MB */
-static struct device_operations ide_ops_ab_eb_mb = {
+static const struct device_operations ide_ops_ab_eb_mb = {
        .read_resources         = pci_dev_read_resources,
        .set_resources          = pci_dev_set_resources,
        .enable_resources       = pci_dev_enable_resources,
index bc6465b280f5fc5e5110e00643adf9c3d81ad7c3..1f1aef0b9367eb3ad5ee057c11be6215c65083f1 100644 (file)
@@ -69,7 +69,7 @@ static void sb_read_resources(struct device *dev)
        res->flags = IORESOURCE_MEM | IORESOURCE_ASSIGNED | IORESOURCE_FIXED;
 }
 
-const struct device_operations isa_ops = {
+static const struct device_operations isa_ops = {
        .read_resources         = sb_read_resources,
        .set_resources          = pci_dev_set_resources,
        .enable_resources       = pci_dev_enable_resources,
index 695130e5ff43ee7d5f0b6a8a7df030e594245ec6..e049abf76323a3948f0b2f12c3d039aa0ad56f19 100644 (file)
@@ -23843,12 +23843,12 @@ static long get_const_pool_ref(
        long ref;
        ref = next_label(state);
        fprintf(fp, ".section \"" DATA_SECTION "\"\n");
-       fprintf(fp, ".balign %ld\n", align_of_in_bytes(state, ins->type));
+       fprintf(fp, ".balign %ld\n", (long int)align_of_in_bytes(state, ins->type));
        fprintf(fp, "L%s%lu:\n", state->compiler->label_prefix, ref);
        print_const(state, ins, fp);
        fill_bytes = bits_to_bytes(size - size_of(state, ins->type));
        if (fill_bytes) {
-               fprintf(fp, ".fill %ld, 1, 0\n", fill_bytes);
+               fprintf(fp, ".fill %ld, 1, 0\n", (long int)fill_bytes);
        }
        fprintf(fp, ".section \"" TEXT_SECTION "\"\n");
        return ref;
@@ -24657,7 +24657,7 @@ static void print_sdecl(struct compile_state *state,
        struct triple *ins, FILE *fp)
 {
        fprintf(fp, ".section \"" DATA_SECTION "\"\n");
-       fprintf(fp, ".balign %ld\n", align_of_in_bytes(state, ins->type));
+       fprintf(fp, ".balign %ld\n", (long int)align_of_in_bytes(state, ins->type));
        fprintf(fp, "L%s%lu:\n", 
                state->compiler->label_prefix, (unsigned long)(ins->u.cval));
        print_const(state, MISC(ins, 0), fp);
index db3c51658301830100f44c1700575d4bf363036a..fdb1f05fe986a6e52911a8e43d651033a4bbac0d 100644 (file)
@@ -886,7 +886,7 @@ def dumptree(part, lvl):
 
 def writecode(image):
        filename = os.path.join(img_dir, "static.c")
-       print "Creating", filename
+       print "    SCONFIG    Creating", os.path.basename(filename)
        file = safe_open(filename, 'w+')
        file.write("#include <device/device.h>\n")
        file.write("#include <device/pci.h>\n")
@@ -920,7 +920,7 @@ def gencode(part, file, pass_num):
 
 def writegraph(image):
        filename = os.path.join(img_dir, "static.dot")
-       print "Creating", filename
+       print "    SCONFIG    Creating", os.path.basename(filename)
        file = safe_open(filename, 'w+')
        file.write("digraph devicetree {\n")
        file.write("    rankdir=LR\n")
@@ -1015,7 +1015,6 @@ if __name__=='__main__':
        fp = safe_open(config_file, 'r')
        if (not parse('devicetree', fp.read())):
                fatal("Could not parse file")
-       print "PARSED THE TREE"
        partstack.pop()
        
        img_dir = argv[3]
index 7113c6d6f31375a671e46fd20d45fffe1bc9cc8f..4c759eb26518245cb0c02dac1df80015b2af3950 100644 (file)
@@ -126,8 +126,8 @@ def generate(inputfilename, outputfilename='', dump=0, **flags):
        if inputfilename[-2:]=='.g': outputfilename = inputfilename[:-2]+'.py'
        else: raise "Invalid Filename", outputfilename
         
-    print 'Input Grammar:', inputfilename
-    print 'Output File:', outputfilename
+    print '    SCONFIG     Input Grammar:', os.path.basename(inputfilename)
+    print '    SCONFIG     Output File:', os.path.basename(outputfilename)
     
     DIVIDER = '\n%%\n' # This pattern separates the pre/post parsers
     preparser, postparser = None, None # Code before and after the parser desc
index 71bfa05ca61b1f04c86219c9a50023f243554b28..f53f16897b8a8f49d6c8e77e8ebb2a7930a9da5f 100644 (file)
@@ -18,6 +18,7 @@
 from string import *
 from yappsrt import *
 import re
+import os.path
 
 INDENT = " "*4
 
@@ -709,8 +710,8 @@ def generate(inputfilename, outputfilename='', dump=0, **flags):
        if inputfilename[-2:]=='.g': outputfilename = inputfilename[:-2]+'.py'
        else: raise "Invalid Filename", outputfilename
         
-    print 'Input Grammar:', inputfilename
-    print 'Output File:', outputfilename
+    print '    SCONFIG    Input Grammar:', os.path.basename(inputfilename)
+    print '    SCONFIG    Output File:', os.path.basename(outputfilename)
     
     DIVIDER = '\n%%\n' # This pattern separates the pre/post parsers
     preparser, postparser = None, None # Code before and after the parser desc
index 9f373e79dd0d95437e17382ea46aa6d0524d69b7..2f314a043f8a389eb4a05045547420b6a4c843a7 100644 (file)
@@ -143,6 +143,14 @@ void run_bios(struct device *dev, unsigned long addr)
        printk(BIOS_DEBUG, "... Option ROM returned.\n");
 }
 
+int __attribute__((regparm(0))) interrupt_handler(u32 intnumber,
+           u32 gsfs, u32 dses,
+           u32 edi, u32 esi,
+           u32 ebp, u32 esp,
+           u32 ebx, u32 edx,
+           u32 ecx, u32 eax,
+           u32 cs_ip, u16 stackflags);
+
 int __attribute__((regparm(0))) interrupt_handler(u32 intnumber,
            u32 gsfs, u32 dses,
            u32 edi, u32 esi,