diff options
Diffstat (limited to 'Board/IO/F81216/F81216DXE.C')
-rw-r--r-- | Board/IO/F81216/F81216DXE.C | 24 |
1 files changed, 24 insertions, 0 deletions
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: |