Ping?
Regards,
Carl-Daniel
On 10.07.2008 20:31, Carl-Daniel Hailfinger wrote:
> On 10.07.2008 16:48, Stefan Reinauer wrote:
>
>> Carl-Daniel Hailfinger wrote:
>>
>>
>>> On 04.07.2008 01:32, Carl-Daniel Hailfinger wrote:
>>>
>>>
>>>
>>>> - Improve VPCI hiding debug message and add doxygen comments.
>>>> - Replace a hand-crafted open-coded VPCI hiding sequence.
>>>>
>>>> Build tested on all relevant targets.
>>>>
>>>> Signed-off-by: Carl-Daniel Hailfinger <[EMAIL PROTECTED]>
>>>>
>>>>
>>>>
>>> And as attachment for Ron.
>>>
>>>
>> I suggest using pci_write_config32 to register 0x7C, because that is
>> exactly what this does.
>>
>>
>
> The one call I converted is the only one which does not use register
> 0x7C. All other calls will be using a to-be written function which takes
> a struct device * and uses pci_write_config32. Besides that, as long as
> we offer the unwanted_vpci array in the dts, the function in my patch is
> essential.
>
> If there are workable alternatives, I'd like to hear about them.
>
> Regards,
> Carl-Daniel
>
Index: LinuxBIOSv3-cs5536cleanup/southbridge/amd/cs5536/cs5536.c
===================================================================
--- LinuxBIOSv3-cs5536cleanup/southbridge/amd/cs5536/cs5536.c (Revision 692)
+++ LinuxBIOSv3-cs5536cleanup/southbridge/amd/cs5536/cs5536.c (Arbeitskopie)
@@ -89,6 +89,28 @@
};
/**
+ * Hide unwanted virtual PCI device.
+ *
+ * @param vpci_devid The bus location of the device to be hidden.
+ * bits 0 -> 1 zero
+ * bits 2 -> 7 target dword within the target function
+ * (zero if we're disabling entire pci devices)
+ * bits 8 -> 10 target function of the device
+ * bits 11 -> 15 target pci device
+ * bits 16 -> 23 pci bus
+ * bits 24 -> 30 reserved and set to zero
+ * bit 31 triggers the config cycle
+ */
+static void hide_vpci(u32 vpci_devid)
+{
+ printk(BIOS_DEBUG, "Hiding VPCI device: 0x%08X (%02x:%02x.%01x)\n",
+ vpci_devid, (vpci_devid >> 16) & 0xff,
+ (vpci_devid >> 11) & 0x1f, (vpci_devid >> 8) & 0x7);
+ outl(vpci_devid + 0x7C, 0xCF8);
+ outl(0xDEADBEEF, 0xCFC);
+}
+
+/**
* Power button setup.
*
* Setup GPIO24, it is the external signal for CS5536 vsb_work_aux which
@@ -175,8 +197,7 @@
static void enable_ide_nand_flash_header(void)
{
/* Tell VSA to use FLASH PCI header. Not IDE header. */
- outl(0x80007A40, 0xCF8);
- outl(0xDEADBEEF, 0xCFC);
+ hide_vpci(0x800079C4);
}
#define RTC_CENTURY 0x32
@@ -619,16 +640,6 @@
pci_write_config32(dev, IDE_CFG, ide_cfg);
}
-
-static void hide_vpci(u32 vpci_devid)
-{
- /* Hide unwanted virtual PCI device. */
- printk(BIOS_DEBUG, "Hiding VPCI device: 0x%08X\n",
- vpci_devid);
- outl(vpci_devid + 0x7C, 0xCF8);
- outl(0xDEADBEEF, 0xCFC);
-}
-
/**
* TODO.
*
--
coreboot mailing list
[email protected]
http://www.coreboot.org/mailman/listinfo/coreboot