* fix crt0s/ldscripts paths to fix out of tree build.
* fix iasl output directory for i945 boards (patch
  for moving it to the mainboard directory will follow)
* coreboot_table.c: lb_mainboard can be static
* coreboot_table.c: dump memory table in debug and spew mode
* fix a warning in bootblock.c
* don't include arch/i386/init in arch/i386/Makefile.inc
* announce generation of crt0_includes.h
* allow overriding $(obj)
* drop unused src_types from Makefile
* correctly use hostname -s instead of hostname for COMPILE_HOST

Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
Acked-by: Myles Watson <mylesgw@gmail.com>



git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5065 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
diff --git a/src/arch/i386/Makefile.bigbootblock.inc b/src/arch/i386/Makefile.bigbootblock.inc
index 06af5d2..a888231 100644
--- a/src/arch/i386/Makefile.bigbootblock.inc
+++ b/src/arch/i386/Makefile.bigbootblock.inc
@@ -19,6 +19,7 @@
 	printf '$(foreach ldscript,$(ldscripts),INCLUDE "$(ldscript:$(obj)/%=%)"\n)' >> $@
 
 $(obj)/crt0_includes.h: $(crt0s)
+	@printf "    GEN        $(subst $(obj)/,,$(@))\n"
 	printf '$(foreach crt0,config.h $(crt0s),#include "$(crt0:$(obj)/%=%)"\n)' > $@
 
 $(obj)/mainboard/$(MAINBOARDDIR)/crt0.o: $(obj)/mainboard/$(MAINBOARDDIR)/crt0.s
diff --git a/src/arch/i386/Makefile.inc b/src/arch/i386/Makefile.inc
index ef4b90a..05f7894 100644
--- a/src/arch/i386/Makefile.inc
+++ b/src/arch/i386/Makefile.inc
@@ -1,7 +1,7 @@
 #######################################################################
 # Take care of subdirectories
 subdirs-y += boot
-subdirs-y += init
+# subdirs-y += init
 subdirs-y += lib
 subdirs-y += smp
 
diff --git a/src/arch/i386/Makefile.tinybootblock.inc b/src/arch/i386/Makefile.tinybootblock.inc
index 003bac9..e30e89d 100644
--- a/src/arch/i386/Makefile.tinybootblock.inc
+++ b/src/arch/i386/Makefile.tinybootblock.inc
@@ -86,6 +86,7 @@
 	printf '$(foreach ldscript,ldoptions location.ld $(ldscripts),INCLUDE "$(ldscript:$(obj)/%=%)"\n)' > $@
 
 $(obj)/romstage/crt0_includes.h: $(crt0s)
+	@printf "    GEN        $(subst $(obj)/,,$(@))\n"
 	mkdir -p $(obj)/romstage
 	printf '$(foreach crt0,config.h $(crt0s),#include "$(crt0:$(obj)/%=%)"\n)' > $@
 
diff --git a/src/arch/i386/boot/coreboot_table.c b/src/arch/i386/boot/coreboot_table.c
index 00c34b2..e766463 100644
--- a/src/arch/i386/boot/coreboot_table.c
+++ b/src/arch/i386/boot/coreboot_table.c
@@ -148,7 +148,7 @@
 #endif
 }
 
-struct lb_mainboard *lb_mainboard(struct lb_header *header)
+static struct lb_mainboard *lb_mainboard(struct lb_header *header)
 {
 	struct lb_record *rec;
 	struct lb_mainboard *mainboard;
@@ -407,6 +407,36 @@
 	lb_cleanup_memory_ranges(mem);
 }
 
+static void lb_dump_memory_ranges(struct lb_memory *mem)
+{
+	int entries;
+	int i;
+	entries = (mem->size - sizeof(*mem))/sizeof(mem->map[0]);
+	
+	printk_debug("coreboot memory table:\n");
+	for(i = 0; i < entries; i++) {
+		uint64_t entry_start = unpack_lb64(mem->map[i].start);
+		uint64_t entry_size = unpack_lb64(mem->map[i].size);
+		const char *entry_type;
+
+		switch (mem->map[i].type) {
+		case LB_MEM_RAM: entry_type="RAM"; break;
+		case LB_MEM_RESERVED: entry_type="RESERVED"; break;
+		case LB_MEM_ACPI: entry_type="ACPI"; break;
+		case LB_MEM_NVS: entry_type="NVS"; break;
+		case LB_MEM_UNUSABLE: entry_type="UNUSABLE"; break;
+		case LB_MEM_VENDOR_RSVD: entry_type="VENDOR RESERVED"; break;
+		case LB_MEM_TABLE: entry_type="CONFIGURATION TABLES"; break;
+		default: entry_type="UNKNOWN!"; break;
+		}
+
+		printk_debug("%2d. %016llx-%016llx: %s\n", 
+			i, entry_start, entry_start+entry_size-1, entry_type);
+		
+	}
+}
+
+
 /* Routines to extract part so the coreboot table or 
  * information from the coreboot table after we have written it.
  * Currently get_lb_mem relies on a global we can change the
@@ -518,6 +548,8 @@
 	add_mainboard_resources(mem);
 #endif
 
+	lb_dump_memory_ranges(mem);
+
 	/* Note:
 	 * I assume that there is always memory at immediately after
 	 * the low_table_end.  This means that after I setup the coreboot table.
diff --git a/src/arch/i386/boot/coreboot_table.h b/src/arch/i386/boot/coreboot_table.h
index 98836c4..13ae9a2 100644
--- a/src/arch/i386/boot/coreboot_table.h
+++ b/src/arch/i386/boot/coreboot_table.h
@@ -10,7 +10,6 @@
 
 void lb_memory_range(struct lb_memory *mem, 
 	uint32_t type, uint64_t start, uint64_t size);
-struct lb_mainboard *lb_mainboard(struct lb_header *header);
 
 /* Routines to extract part so the coreboot table or information
  * from the coreboot table.
diff --git a/src/arch/i386/init/Makefile.inc b/src/arch/i386/init/Makefile.inc
index 792d600..98077e8 100644
--- a/src/arch/i386/init/Makefile.inc
+++ b/src/arch/i386/init/Makefile.inc
@@ -1 +1 @@
-#
+# If you add something to this file, enable it in src/arch/i386/Makefile.inc first.
diff --git a/src/arch/i386/init/bootblock.c b/src/arch/i386/init/bootblock.c
index 112a195..86a5c5b 100644
--- a/src/arch/i386/init/bootblock.c
+++ b/src/arch/i386/init/bootblock.c
@@ -29,7 +29,7 @@
 
 static void call(unsigned long addr, unsigned long bist)
 {
-	asm volatile ("jmp %0\n\t" : : "r" (addr), "a" (bist));
+	asm volatile ("jmp *%0\n\t" : : "r" (addr), "a" (bist));
 }
 
 static void main(unsigned long bist)