<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#ffffff" text="#000000">
    On 10/7/10 8:52 AM, Uwe Hermann wrote:
    <blockquote cite="mid:20101007155202.GA12954@greenwood" type="cite">
      <pre wrap=""><fieldset class="mimeAttachmentHeader"><legend class="mimeAttachmentName">v4_i82371eb_bootblock.patch</legend></fieldset>
Convert all Intel 82371AB/EB/MB based boards to TINY_BOOTBLOCK.

Also:

Unfortunately Intel 440BX + 82371AB/EB/MB boards can have their ISA device
on various PCI bus:device.function locations.
Examples we encountered: 00:07.0, 00:04.0, or 00:14.0.

Thus, instead of hardcoding PCI bus:device.function numbers such as
PCI_DEV(0, 7, 0), we now simply find the ISA device via PCI IDs, which
works the same on all boards.

As an additional benefit this patch also gets rid of one .c file include
in romstage.c.

Abuild-tested.

Signed-off-by: Uwe Hermann <a moz-do-not-send="true" class="moz-txt-link-rfc2396E" href="mailto:uwe@hermann-uwe.de"><uwe@hermann-uwe.de></a>
</pre>
    </blockquote>
    <br>
    Acked-by: Stefan Reinauer <a class="moz-txt-link-rfc2396E" href="mailto:stepan@coresystems.de"><stepan@coresystems.de></a><br>
    with one comment:<br>
    <br>
    <blockquote cite="mid:20101007155202.GA12954@greenwood" type="cite">
      <pre wrap="">Index: src/southbridge/intel/i82371eb/i82371eb_enable_rom.c
===================================================================
--- src/southbridge/intel/i82371eb/i82371eb_enable_rom.c        (Revision 5917)
+++ src/southbridge/intel/i82371eb/i82371eb_enable_rom.c        (Arbeitskopie)
</pre>
    </blockquote>
    <blockquote cite="mid:20101007155202.GA12954@greenwood" type="cite">
      <pre wrap="">-static void i82371eb_enable_rom(device_t dev)
+static void i82371eb_enable_rom(void)
 {
        u16 reg16;
+       device_t dev;
 
+       /*
+        * Note: The Intel 82371AB/EB/MB ISA device can be on different
+        * PCI bus:device.function locations on different boards.
+        * Examples we encountered: 00:07.0, 00:04.0, or 00:14.0.
+        * But scanning for the PCI IDs (instead of hardcoding
+        * bus/device/function numbers) works on all boards.
+        */
+       dev = pci_locate_device(PCI_ID(PCI_VENDOR_ID_INTEL,
+                                      PCI_DEVICE_ID_INTEL_82371AB_ISA), 0);
+
</pre>
    </blockquote>
    Does it make sense to use pci_locate_device_on_bus() here instead?
    Well, maybe not because we start on bus 0 and the device is always
    there. Maybe it's kind of too philosophical to distinguish.<br>
    <br>
    Stefan<br>
    <br>
    <br>
  </body>
</html>