From f48d7df7467a4c801cdbce5cc6cd748979f8baff Mon Sep 17 00:00:00 2001 From: raywu Date: Mon, 17 Sep 2018 10:57:55 +0800 Subject: F81216 ISA/PCI IRQ Share Mode Control --- Board/IO/F81216/F81216DXE.C | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'Board/IO/F81216/F81216DXE.C') diff --git a/Board/IO/F81216/F81216DXE.C b/Board/IO/F81216/F81216DXE.C index 03160b4..4963c1b 100644 --- a/Board/IO/F81216/F81216DXE.C +++ b/Board/IO/F81216/F81216DXE.C @@ -480,6 +480,30 @@ static EFI_STATUS COM_Init( SioCfgMode(dev->Owner, FALSE); dev->VlData.DevIrq1=dev->ResOwner->VlData.DevIrq1; } + + { + EFI_GUID SetupGuid = SETUP_GUID; + UINTN Size = sizeof(SETUP_DATA); + SETUP_DATA SetupData; + + Status = pRS->GetVariable ( L"Setup", \ + &SetupGuid, \ + NULL,\ + &Size, \ + &SetupData ); + + Status=AmiSio->Access(AmiSio,FALSE,FALSE,0x70,&rv); + // PCI Share Mode + if( SetupData.F81216ComIrqShareMode == 0 ) { + rv &= ~(BIT5) ; + rv |= BIT4 ; + } + else { // ISA Share Mode + rv |= BIT5 ; + rv |= BIT4 ; + } + Status=AmiSio->Access(AmiSio,TRUE,FALSE,0x70,&rv); + } break; case isAfterActivate: -- cgit v1.2.3