Merge branch 'master' of git://www.denx.de/git/u-boot-ppc4xx
diff --git a/common/cmd_nand.c b/common/cmd_nand.c
index e20c1af..cc7c5ba 100644
--- a/common/cmd_nand.c
+++ b/common/cmd_nand.c
@@ -55,11 +55,11 @@
 	off &= ~(nand->oobblock - 1);
 	i = nand_read_raw(nand, buf, off, nand->oobblock, nand->oobsize);
 	if (i < 0) {
-		printf("Error (%d) reading page %08x\n", i, off);
+		printf("Error (%d) reading page %08lx\n", i, off);
 		free(buf);
 		return 1;
 	}
-	printf("Page %08x dump:\n", off);
+	printf("Page %08lx dump:\n", off);
 	i = nand->oobblock >> 4; p = buf;
 	while (i--) {
 		printf( "\t%02x %02x %02x %02x %02x %02x %02x %02x"
@@ -149,7 +149,7 @@
 	if (*size == nand->size)
 		puts("whole chip\n");
 	else
-		printf("offset 0x%x, size 0x%x\n", *off, *size);
+		printf("offset 0x%lx, size 0x%x\n", *off, *size);
 	return 0;
 }
 
@@ -181,7 +181,7 @@
 		putc('\n');
 		for (i = 0; i < CFG_MAX_NAND_DEVICE; i++) {
 			if (nand_info[i].name)
-				printf("Device %d: %s, sector size %lu KiB\n",
+				printf("Device %d: %s, sector size %u KiB\n",
 					i, nand_info[i].name,
 					nand_info[i].erasesize >> 10);
 		}
@@ -238,7 +238,7 @@
 		printf("\nDevice %d bad blocks:\n", nand_curr_device);
 		for (off = 0; off < nand->size; off += nand->erasesize)
 			if (nand_block_isbad(nand, off))
-				printf("  %08x\n", off);
+				printf("  %08lx\n", off);
 		return 0;
 	}
 
@@ -417,7 +417,7 @@
 				if (off == nand->size - nand->oobblock
 				    || (s != last_status && off != 0))	{
 
-					printf("%08x - %08x: %8d pages %s%s%s\n",
+					printf("%08lx - %08lx: %8lu pages %s%s%s\n",
 					       block_start,
 					       off-1,
 					       (off-block_start)/nand->oobblock,
diff --git a/drivers/mtd/nand/nand.c b/drivers/mtd/nand/nand.c
index 27b5792..e44470e 100644
--- a/drivers/mtd/nand/nand.c
+++ b/drivers/mtd/nand/nand.c
@@ -70,7 +70,7 @@
 		if (nand_curr_device == -1)
 			nand_curr_device = i;
 	}
-	printf("%lu MiB\n", size / (1024 * 1024));
+	printf("%u MiB\n", size / (1024 * 1024));
 
 #ifdef CFG_NAND_SELECT_DEVICE
 	/*
diff --git a/drivers/mtd/nand/nand_util.c b/drivers/mtd/nand/nand_util.c
index c82f77b..828cc33 100644
--- a/drivers/mtd/nand/nand_util.c
+++ b/drivers/mtd/nand/nand_util.c
@@ -154,7 +154,7 @@
 	}
 
 	if (erase_length < meminfo->erasesize) {
-		printf("Warning: Erase size 0x%08x smaller than one "	\
+		printf("Warning: Erase size 0x%08lx smaller than one "	\
 		       "erase block 0x%08x\n",erase_length, meminfo->erasesize);
 		printf("         Erasing 0x%08x instead\n", meminfo->erasesize);
 		erase_length = meminfo->erasesize;
@@ -498,7 +498,7 @@
 			 * on (slow) serial consoles
 			 */
 			if (percent != percent_complete) {
-				printf("\rWriting data at 0x%x "
+				printf("\rWriting data at 0x%lx "
 				       "-- %3d%% complete.",
 				       mtdoffset, percent);
 				percent_complete = percent;
@@ -678,7 +678,7 @@
 			 */
 			if (percent != percent_complete) {
 			if (!opts->quiet)
-				printf("\rReading data from 0x%x "
+				printf("\rReading data from 0x%lx "
 				       "-- %3d%% complete.",
 				       mtdoffset, percent);
 				percent_complete = percent;
diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
index b3ae3b1..16180cb 100644
--- a/drivers/pci/pci.c
+++ b/drivers/pci/pci.c
@@ -411,6 +411,40 @@
 extern int pciauto_config_device(struct pci_controller *hose, pci_dev_t dev);
 extern void pciauto_config_init(struct pci_controller *hose);
 
+int __pci_skip_dev(struct pci_controller *hose, pci_dev_t dev)
+{
+	/*
+	 * Check if pci device should be skipped in configuration
+	 */
+	if (dev == PCI_BDF(hose->first_busno, 0, 0)) {
+#if defined(CONFIG_PCI_CONFIG_HOST_BRIDGE) /* don't skip host bridge */
+		/*
+		 * Only skip configuration if "pciconfighost" is not set
+		 */
+		if (getenv("pciconfighost") == NULL)
+			return 1;
+#else
+		return 1;
+#endif
+	}
+
+	return 0;
+}
+int pci_skip_dev(struct pci_controller *hose, pci_dev_t dev)
+	__attribute__((weak, alias("__pci_skip_dev")));
+
+#ifdef CONFIG_PCI_SCAN_SHOW
+int __pci_print_dev(struct pci_controller *hose, pci_dev_t dev)
+{
+	if (dev == PCI_BDF(hose->first_busno, 0, 0))
+		return 0;
+
+	return 1;
+}
+int pci_print_dev(struct pci_controller *hose, pci_dev_t dev)
+	__attribute__((weak, alias("__pci_print_dev")));
+#endif /* CONFIG_PCI_SCAN_SHOW */
+
 int pci_hose_scan_bus(struct pci_controller *hose, int bus)
 {
 	unsigned int sub_bus, found_multi=0;
@@ -423,21 +457,10 @@
 
 	for (dev =  PCI_BDF(bus,0,0);
 	     dev <  PCI_BDF(bus,PCI_MAX_PCI_DEVICES-1,PCI_MAX_PCI_FUNCTIONS-1);
-	     dev += PCI_BDF(0,0,1))
-	{
-		/* Skip our host bridge */
-		if ( dev == PCI_BDF(hose->first_busno,0,0) ) {
-#if defined(CONFIG_PCI_CONFIG_HOST_BRIDGE)              /* don't skip host bridge */
-			/*
-			 * Only skip hostbridge configuration if "pciconfighost" is not set
-			 */
-			if (getenv("pciconfighost") == NULL) {
-				continue; /* Skip our host bridge */
-			}
-#else
-			continue; /* Skip our host bridge */
-#endif
-		}
+	     dev += PCI_BDF(0,0,1)) {
+
+		if (pci_skip_dev(hose, dev))
+			continue;
 
 		if (PCI_FUNC(dev) && !found_multi)
 			continue;
@@ -473,15 +496,14 @@
 				hose->fixup_irq(hose, dev);
 
 #ifdef CONFIG_PCI_SCAN_SHOW
-			/* Skip our host bridge */
-			if ( dev != PCI_BDF(hose->first_busno,0,0) ) {
-			    unsigned char int_line;
+			if (pci_print_dev(hose, dev)) {
+				unsigned char int_line;
 
-			    pci_hose_read_config_byte(hose, dev, PCI_INTERRUPT_LINE,
-						      &int_line);
-			    printf("        %02x  %02x  %04x  %04x  %04x  %02x\n",
-				   PCI_BUS(dev), PCI_DEV(dev), vendor, device, class,
-				   int_line);
+				pci_hose_read_config_byte(hose, dev, PCI_INTERRUPT_LINE,
+							  &int_line);
+				printf("        %02x  %02x  %04x  %04x  %04x  %02x\n",
+				       PCI_BUS(dev), PCI_DEV(dev), vendor, device, class,
+				       int_line);
 			}
 #endif
 		}
diff --git a/drivers/rtc/m41t60.c b/drivers/rtc/m41t60.c
index 8a32ea0..ef135ca 100644
--- a/drivers/rtc/m41t60.c
+++ b/drivers/rtc/m41t60.c
@@ -241,7 +241,7 @@
 
 		if (l <= 0x3F) {
 			if ((data[RTC_CTRL] & 0x3F) != l) {
-				printf("Setting RTC calibration to 0x%02X\n",
+				printf("Setting RTC calibration to 0x%02lX\n",
 				       l);
 				data[RTC_CTRL] &= 0xC0;
 				data[RTC_CTRL] |= (uchar) l;