[U-Boot-Users] Patch to drivers/pci.c

Donald White dbwhite at asu.edu
Thu May 22 08:30:41 CEST 2003


Following is a patch to drivers/pci.c.  It fixes the calculation of the base address 
in pci_hose_config_device().


diff -urN u-boot-0.3.0/drivers/pci.c u-boot-0.3.0-zpc1900/drivers/pci.c
--- u-boot-0.3.0/drivers/pci.c	Thu Feb 27 17:19:49 2003
+++ u-boot-0.3.0-zpc1900/drivers/pci.c	Tue May 20 20:51:35 2003
@@ -329,9 +329,12 @@
  		if (bar_response & PCI_BASE_ADDRESS_SPACE)
  		{
  			bar_size = ~(bar_response & PCI_BASE_ADDRESS_IO_MASK) + 1;
-			bar_value = io;

+			/* round up region base address to a multiple of size */
  			io = ((io - 1) | (bar_size - 1)) + 1;
+			bar_value = io;
+			/* compute new region base address */
+			io = io + bar_size;			
  		}
  		else
  		{
@@ -340,9 +343,12 @@
  				found_mem64 = 1;

  			bar_size = ~(bar_response & PCI_BASE_ADDRESS_MEM_MASK) + 1;
-			bar_value = mem;

+			/* round up region base address to multiple of size */
  			mem = ((mem - 1) | (bar_size - 1)) + 1;
+			bar_value = mem;
+			/* compute new region base address */
+			mem = mem + bar_size;
  		}

  		/* Write it out and update our limit */





More information about the U-Boot mailing list