Improve coreboot build output and eliminate some warnings:

 - 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
diff --git a/Makefile b/Makefile
index b3e3e42..1132fb3 100644
--- a/Makefile
+++ b/Makefile
@@ -311,7 +311,7 @@
 	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
diff --git a/src/arch/i386/boot/gdt.c b/src/arch/i386/boot/gdt.c
index c4ed374..0230acf 100644
--- a/src/arch/i386/boot/gdt.c
+++ b/src/arch/i386/boot/gdt.c
@@ -47,11 +47,11 @@
 			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));
diff --git a/src/arch/i386/boot/tables.c b/src/arch/i386/boot/tables.c
index b47826d..03ebda6 100644
--- a/src/arch/i386/boot/tables.c
+++ b/src/arch/i386/boot/tables.c
@@ -191,7 +191,7 @@
 #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 @@
 
 		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);
 
diff --git a/src/arch/i386/lib/pci_ops_auto.c b/src/arch/i386/lib/pci_ops_auto.c
index f453d47..1dd2494 100644
--- a/src/arch/i386/lib/pci_ops_auto.c
+++ b/src/arch/i386/lib/pci_ops_auto.c
@@ -43,7 +43,7 @@
 
 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_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;
 }
 
diff --git a/src/console/vsprintf.c b/src/console/vsprintf.c
index 9507e8e..7f3e33c 100644
--- a/src/console/vsprintf.c
+++ b/src/console/vsprintf.c
@@ -48,6 +48,8 @@
 	return i;
 }
 
+int sprintf(char *buf, const char *fmt, ...);
+
 int sprintf(char *buf, const char *fmt, ...)
 {
 	va_list args;
diff --git a/src/devices/device.c b/src/devices/device.c
index 2f01ae2..2323850 100644
--- a/src/devices/device.c
+++ b/src/devices/device.c
@@ -671,8 +671,11 @@
 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;
diff --git a/src/devices/pci_device.c b/src/devices/pci_device.c
index 5c73db5..1788044 100644
--- a/src/devices/pci_device.c
+++ b/src/devices/pci_device.c
@@ -809,7 +809,7 @@
 	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,
diff --git a/src/devices/pciexp_device.c b/src/devices/pciexp_device.c
index 909026a..461c3b6 100644
--- a/src/devices/pciexp_device.c
+++ b/src/devices/pciexp_device.c
@@ -34,8 +34,8 @@
 		/* 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, 
diff --git a/src/include/device/device.h b/src/include/device/device.h
index eba6eb5..25a549c 100644
--- a/src/include/device/device.h
+++ b/src/include/device/device.h
@@ -86,7 +86,7 @@
 	unsigned int links;
 
 	struct device_operations *ops;
-	struct chip_operations *chip_ops;
+	const struct chip_operations *chip_ops;
 	void *chip_info;
 };
 
diff --git a/src/include/device/pci.h b/src/include/device/pci.h
index 60cf4aa..5485644 100644
--- a/src/include/device/pci.h
+++ b/src/include/device/pci.h
@@ -38,7 +38,7 @@
 };
 
 struct pci_driver {
-	struct device_operations *ops;
+	const struct device_operations *ops;
 	unsigned short vendor;
 	unsigned short device;
 };
diff --git a/src/northbridge/intel/i440bx/northbridge.c b/src/northbridge/intel/i440bx/northbridge.c
index 26229a9..4431aafa 100644
--- a/src/northbridge/intel/i440bx/northbridge.c
+++ b/src/northbridge/intel/i440bx/northbridge.c
@@ -85,7 +85,6 @@
 	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 @@
 		/* 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;
diff --git a/src/southbridge/intel/i82371eb/i82371eb_ide.c b/src/southbridge/intel/i82371eb/i82371eb_ide.c
index 6611289..0e91839 100644
--- a/src/southbridge/intel/i82371eb/i82371eb_ide.c
+++ b/src/southbridge/intel/i82371eb/i82371eb_ide.c
@@ -144,7 +144,7 @@
 }
 
 /* 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 @@
 };
 
 /* 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,
diff --git a/src/southbridge/intel/i82371eb/i82371eb_isa.c b/src/southbridge/intel/i82371eb/i82371eb_isa.c
index bc6465b..1f1aef0 100644
--- a/src/southbridge/intel/i82371eb/i82371eb_isa.c
+++ b/src/southbridge/intel/i82371eb/i82371eb_isa.c
@@ -69,7 +69,7 @@
 	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,
diff --git a/util/romcc/romcc.c b/util/romcc/romcc.c
index 695130e..e049abf 100644
--- a/util/romcc/romcc.c
+++ b/util/romcc/romcc.c
@@ -23843,12 +23843,12 @@
 	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 @@
 	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);
diff --git a/util/sconfig/config.g b/util/sconfig/config.g
index db3c516..fdb1f05 100644
--- a/util/sconfig/config.g
+++ b/util/sconfig/config.g
@@ -886,7 +886,7 @@
 
 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 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 @@
 	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]
diff --git a/util/sconfig/parsedesc.g b/util/sconfig/parsedesc.g
index 7113c6d..4c759eb 100644
--- a/util/sconfig/parsedesc.g
+++ b/util/sconfig/parsedesc.g
@@ -126,8 +126,8 @@
 	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
diff --git a/util/sconfig/yapps2.py b/util/sconfig/yapps2.py
index 71bfa05..f53f168 100644
--- a/util/sconfig/yapps2.py
+++ b/util/sconfig/yapps2.py
@@ -18,6 +18,7 @@
 from string import *
 from yappsrt import *
 import re
+import os.path
 
 INDENT = " "*4
 
@@ -709,8 +710,8 @@
 	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
diff --git a/util/x86emu/x86.c b/util/x86emu/x86.c
index 9f373e7..2f314a0 100644
--- a/util/x86emu/x86.c
+++ b/util/x86emu/x86.c
@@ -149,6 +149,14 @@
 	    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,
+	    u32 ebp, u32 esp,
+	    u32 ebx, u32 edx,
+	    u32 ecx, u32 eax,
 	    u32 cs_ip, u16 stackflags)
 {
 	u32 ip;