[coreboot] [flashrom] r529 - trunk

svn at coreboot.org svn at coreboot.org
Mon May 18 00:57:34 CEST 2009


Author: uwe
Date: 2009-05-18 00:57:34 +0200 (Mon, 18 May 2009)
New Revision: 529

Modified:
   trunk/Makefile
   trunk/flash.h
   trunk/flashrom.8
   trunk/flashrom.c
   trunk/pcidev.c
   trunk/physmap.c
   trunk/sata_sii.c
Log:
Various smaller flashrom improvements:

 - Document new 'satasii' programmer in -L output and manpage.

 - Drop PCI_IO_BASE_ADDRESS, pci.h has such #defines already.

 - Beautify flashrom output and make it more consistent.
 
 - Same for the 'make' output (reordered some $CC parameters).
   Build-tested on i386, shouldn't break any builds, I think.

 - Some variable renaming and other cosmetic fixes.

Signed-off-by: Uwe Hermann <uwe at hermann-uwe.de>
Acked-by: Uwe Hermann <uwe at hermann-uwe.de>



Modified: trunk/Makefile
===================================================================
--- trunk/Makefile	2009-05-17 19:46:43 UTC (rev 528)
+++ trunk/Makefile	2009-05-17 22:57:34 UTC (rev 529)
@@ -46,7 +46,7 @@
 	$(CC) $(LDFLAGS) -o $(PROGRAM) $(OBJS) $(LIBS)
 
 flashrom.o: flashrom.c
-	$(CC) -c $(CFLAGS) $(SVNDEF) $(CPPFLAGS) $< -o $@
+	$(CC) $(CFLAGS) $(CPPFLAGS)  -c -o $@ $< $(SVNDEF)
 
 clean:
 	rm -f $(PROGRAM) *.o

Modified: trunk/flash.h
===================================================================
--- trunk/flash.h	2009-05-17 19:46:43 UTC (rev 528)
+++ trunk/flash.h	2009-05-17 22:57:34 UTC (rev 529)
@@ -560,7 +560,6 @@
 /* pcidev.c */
 #define PCI_OK 0
 #define PCI_NT 1    /* Not tested */
-#define PCI_IO_BASE_ADDRESS 0x10
 
 extern uint32_t io_base_addr;
 extern struct pci_access *pacc;
@@ -670,7 +669,6 @@
 uint8_t satasii_chip_readb(const chipaddr addr);
 extern struct pcidev_status satas_sii[];
 
-
 /* flashrom.c */
 extern int verbose;
 #define printf_debug(x...) { if (verbose) printf(x); }

Modified: trunk/flashrom.8
===================================================================
--- trunk/flashrom.8	2009-05-17 19:46:43 UTC (rev 528)
+++ trunk/flashrom.8	2009-05-17 22:57:34 UTC (rev 529)
@@ -147,6 +147,8 @@
 Example:
 .B "flashrom -p nic3com=05:04.0"
 .sp
+.BR "* satasii" " (for flash ROMs on Silicon Image SATA/IDE controller cards)"
+.sp
 .BR "* dummy" " (just prints all operations and accesses)"
 .TP
 .B "\-h, \-\-help"

Modified: trunk/flashrom.c
===================================================================
--- trunk/flashrom.c	2009-05-17 19:46:43 UTC (rev 528)
+++ trunk/flashrom.c	2009-05-17 22:57:34 UTC (rev 529)
@@ -543,6 +543,7 @@
 		printf("\nSupported PCI devices flashrom can use "
 		       "as programmer:\n\n");
 		print_supported_pcidevs(nics_3com);
+		print_supported_pcidevs(satas_sii);
 		exit(0);
 	}
 

Modified: trunk/pcidev.c
===================================================================
--- trunk/pcidev.c	2009-05-17 19:46:43 UTC (rev 528)
+++ trunk/pcidev.c	2009-05-17 22:57:34 UTC (rev 529)
@@ -42,16 +42,16 @@
 			continue;
 
 		/* Don't use dev->base_addr[0], won't work on older libpci. */
-		addr = pci_read_long(dev, PCI_IO_BASE_ADDRESS) & ~0x03;
+		addr = pci_read_long(dev, PCI_BASE_ADDRESS_0) & ~0x03;
 
-		printf("Found \"%s %s\" (%04x:%04x, BDF %02x:%02x.%x)\n",
+		printf("Found \"%s %s\" (%04x:%04x, BDF %02x:%02x.%x).\n",
 		       devs[i].vendor_name, devs[i].device_name, dev->vendor_id,
 		       dev->device_id, dev->bus, dev->dev, dev->func);
 
 		if (devs[i].status == PCI_NT) {
-			printf("===\nThis PCI device is UNTESTED. Please email "
-			       "a report including the 'flashrom -p xxxxxx'\n"
-			       "output to flashrom at coreboot.org if it works "
+			printf("===\nThis PCI device is UNTESTED. Please "
+			       "report the 'flashrom -p xxxx' output \n"
+			       "to flashrom at coreboot.org if it works "
 			       "for you. Thank you for your help!\n===\n");
 		}
 
@@ -98,7 +98,7 @@
 		exit(1);
 	} else if (found > 1) {
 		fprintf(stderr, "Error: Multiple supported PCI devices found. "
-			"Please use 'flashrom -p xxxxxx=bb:dd.f' \n"
+			"Use 'flashrom -p xxxx=bb:dd.f' \n"
 			"to explicitly select the card with the given BDF "
 			"(PCI bus, device, function).\n");
 		exit(1);

Modified: trunk/physmap.c
===================================================================
--- trunk/physmap.c	2009-05-17 19:46:43 UTC (rev 528)
+++ trunk/physmap.c	2009-05-17 22:57:34 UTC (rev 529)
@@ -81,18 +81,18 @@
 void *physmap(const char *descr, unsigned long phys_addr, size_t len)
 {
 	if (len == 0) {
-		printf_debug("Not mapping %s, zero size at 0x%08lx\n",
-			descr, phys_addr);
+		printf_debug("Not mapping %s, zero size at 0x%08lx.\n",
+			     descr, phys_addr);
 		return NULL;
 	}
 		
 	if ((getpagesize() - 1) & len) {
-		fprintf(stderr, "Mapping %s at 0x%08lx, unaligned size 0x%lx\n",
+		fprintf(stderr, "Mapping %s at 0x%08lx, unaligned size 0x%lx.\n",
 			descr, phys_addr, (unsigned long)len);
 	}
 
 	if ((getpagesize() - 1) & phys_addr) {
-		fprintf(stderr, "Mapping %s, 0x%lx bytes at unaligned 0x%08lx\n",
+		fprintf(stderr, "Mapping %s, 0x%lx bytes at unaligned 0x%08lx.\n",
 			descr, (unsigned long)len, phys_addr);
 	}
 

Modified: trunk/sata_sii.c
===================================================================
--- trunk/sata_sii.c	2009-05-17 19:46:43 UTC (rev 528)
+++ trunk/sata_sii.c	2009-05-17 22:57:34 UTC (rev 529)
@@ -15,7 +15,7 @@
  *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
- * Foundation, , 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
  */
 
 /* Datasheets can be found on http://www.siliconimage.com. Great thanks! */
@@ -39,6 +39,7 @@
 	{0x1095, 0x3124, PCI_NT, "Silicon Image", "SiI 3124 PCI-X Serial ATA Controller"},
 	{0x1095, 0x3132, PCI_OK, "Silicon Image", "SiI 3132 Serial ATA Raid II Controller"},
 	{0x1095, 0x3512, PCI_NT, "Silicon Image", "SiI 3512 [SATALink/SATARaid] Serial ATA Controller"},
+
 	{},
 };
 
@@ -50,33 +51,27 @@
 	get_io_perms();
 
 	pcidev_init(PCI_VENDOR_ID_SII, satas_sii);
-
 	id = pcidev_dev->device_id;
 
 	if ((id == 0x3132) || (id == 0x3124)) {
-		/* BAR 0, offset 0x70 */
-		addr = pci_read_long(pcidev_dev, PCI_IO_BASE_ADDRESS) & ~0x07;
+		addr = pci_read_long(pcidev_dev, PCI_BASE_ADDRESS_0) & ~0x07;
 		reg_offset = 0x70;
 	} else {
-		/* BAR 5, offset 0x50 */
-		addr = pci_read_long(pcidev_dev, PCI_IO_BASE_ADDRESS + (5 * 4)) & ~0x07;
+		addr = pci_read_long(pcidev_dev, PCI_BASE_ADDRESS_5) & ~0x07;
 		reg_offset = 0x50;
 	}
 
-	sii_bar = physmap("SATA SIL registers", addr, 0x100);
-	sii_bar += reg_offset;
+	sii_bar = physmap("SATA SIL registers", addr, 0x100) + reg_offset;
 
-	/* check if rom cycle are OK */
-	if (!(mmio_readl(sii_bar)) & (1 << 26)) {
+	/* Check if ROM cycle are OK. */
+	if (!(mmio_readl(sii_bar)) & (1 << 26))
 		printf("Warning: Flash seems unconnected\n");
-	}
 
 	return 0;
 }
 
 int satasii_shutdown(void)
 {
-
 	free(pcidev_bdf);
 	pci_cleanup(pacc);
 #if defined(__FreeBSD__) || defined(__DragonFly__)
@@ -96,21 +91,19 @@
 
 void satasii_chip_writeb(uint8_t val, chipaddr addr)
 {
+	uint32_t ctrl_reg, data_reg;
 
-	uint32_t ctrl_reg, addr_reg;
-
 	while ((ctrl_reg = mmio_readl(sii_bar)) & (1 << 25)) ;
 
-	/* Mask out unused/reserved bits, set writes and start transaction */
+	/* Mask out unused/reserved bits, set writes and start transaction. */
 	ctrl_reg &= 0xfcf80000;
 	ctrl_reg |= (1 << 25) | (0 << 24) | ((uint32_t) addr & 0x7ffff);
 
-	addr_reg = (mmio_readl((sii_bar + 4)) & ~0xff) | val;
-	mmio_writel(addr_reg, (sii_bar + 4));
+	data_reg = (mmio_readl((sii_bar + 4)) & ~0xff) | val;
+	mmio_writel(data_reg, (sii_bar + 4));
 	mmio_writel(ctrl_reg, sii_bar);
 
 	while (mmio_readl(sii_bar) & (1 << 25)) ;
-
 }
 
 uint8_t satasii_chip_readb(const chipaddr addr)
@@ -119,13 +112,13 @@
 
 	while ((ctrl_reg = mmio_readl(sii_bar)) & (1 << 25)) ;
 
-	/* Mask out unused/reserved bits, set reads and start transaction */
+	/* Mask out unused/reserved bits, set reads and start transaction. */
 	ctrl_reg &= 0xfcf80000;
 	ctrl_reg |= (1 << 25) | (1 << 24) | ((uint32_t) addr & 0x7ffff);
 
 	mmio_writel(ctrl_reg, sii_bar);
 
-	while ((mmio_readl(sii_bar)) & (1 << 25)) ;
+	while (mmio_readl(sii_bar) & (1 << 25)) ;
 
 	return (mmio_readl(sii_bar + 4)) & 0xff;
 }





More information about the coreboot mailing list