summaryrefslogtreecommitdiff
path: root/src/southbridge/intel/lynxpoint/pch.c
diff options
context:
space:
mode:
authorDuncan Laurie <dlaurie@chromium.org>2013-01-10 13:20:40 -0800
committerRonald G. Minnich <rminnich@gmail.com>2013-03-17 00:36:24 +0100
commit71346c064b4f2d27e5a5a0499d1a4eed2f40ffbc (patch)
tree3ba480557dbf6aba1b9f05f269590be1de022d41 /src/southbridge/intel/lynxpoint/pch.c
parentaa3f4287d40f7f3c7b1fca1af5cfa426ff4fa27f (diff)
downloadcoreboot-71346c064b4f2d27e5a5a0499d1a4eed2f40ffbc.tar.xz
lynxpoint: Add support for disabling ULT devices
These enables are hidden behind IOBP for some reason. Boot to linux with SDIO disabled and see that the SDIO driver does not load and crash the system. Change-Id: Icfbfa117e9e57a51d32db7f6366a9d0d790adcf0 Signed-off-by: Duncan Laurie <dlaurie@chromium.org> Reviewed-on: http://review.coreboot.org/2695 Tested-by: build bot (Jenkins) Reviewed-by: Ronald G. Minnich <rminnich@gmail.com>
Diffstat (limited to 'src/southbridge/intel/lynxpoint/pch.c')
-rw-r--r--src/southbridge/intel/lynxpoint/pch.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/southbridge/intel/lynxpoint/pch.c b/src/southbridge/intel/lynxpoint/pch.c
index 1fb49158ee..41c596c43a 100644
--- a/src/southbridge/intel/lynxpoint/pch.c
+++ b/src/southbridge/intel/lynxpoint/pch.c
@@ -61,6 +61,27 @@ static void pch_hide_devfn(unsigned devfn)
case PCI_DEVFN(20, 0): /* XHCI */
RCBA32_OR(FD, PCH_DISABLE_XHCI);
break;
+ case PCI_DEVFN(21, 0): /* DMA */
+ pch_iobp_update(SIO_IOBP_FUNCDIS0, ~0UL, SIO_IOBP_FUNCDIS_DIS);
+ break;
+ case PCI_DEVFN(21, 1): /* I2C0 */
+ pch_iobp_update(SIO_IOBP_FUNCDIS1, ~0UL, SIO_IOBP_FUNCDIS_DIS);
+ break;
+ case PCI_DEVFN(21, 2): /* I2C1 */
+ pch_iobp_update(SIO_IOBP_FUNCDIS2, ~0UL, SIO_IOBP_FUNCDIS_DIS);
+ break;
+ case PCI_DEVFN(21, 3): /* SPI0 */
+ pch_iobp_update(SIO_IOBP_FUNCDIS3, ~0UL, SIO_IOBP_FUNCDIS_DIS);
+ break;
+ case PCI_DEVFN(21, 4): /* SPI1 */
+ pch_iobp_update(SIO_IOBP_FUNCDIS4, ~0UL, SIO_IOBP_FUNCDIS_DIS);
+ break;
+ case PCI_DEVFN(21, 5): /* UART0 */
+ pch_iobp_update(SIO_IOBP_FUNCDIS5, ~0UL, SIO_IOBP_FUNCDIS_DIS);
+ break;
+ case PCI_DEVFN(21, 6): /* UART1 */
+ pch_iobp_update(SIO_IOBP_FUNCDIS6, ~0UL, SIO_IOBP_FUNCDIS_DIS);
+ break;
case PCI_DEVFN(22, 0): /* MEI #1 */
RCBA32_OR(FD2, PCH_DISABLE_MEI1);
break;
@@ -73,6 +94,9 @@ static void pch_hide_devfn(unsigned devfn)
case PCI_DEVFN(22, 3): /* KT */
RCBA32_OR(FD2, PCH_DISABLE_KT);
break;
+ case PCI_DEVFN(23, 0): /* SDIO */
+ pch_iobp_update(SIO_IOBP_FUNCDIS7, ~0UL, SIO_IOBP_FUNCDIS_DIS);
+ break;
case PCI_DEVFN(25, 0): /* Gigabit Ethernet */
RCBA32_OR(BUC, PCH_DISABLE_GBE);
break;