diff options
author | raywu <raywu@aaeon.com.tw> | 2019-09-11 14:04:13 +0800 |
---|---|---|
committer | raywu <raywu@aaeon.com.tw> | 2019-09-11 14:04:13 +0800 |
commit | 34a5b4b1255b27875baacbeb2507b31c38621d74 (patch) | |
tree | 11b6cd9b7ceb769f81f29936af668363ffd26d11 /Board/IO/F81866/F81866DXE.C | |
parent | ab678c2e19ca5ba6ce5347d62971cec2bc1fc935 (diff) | |
download | zprj-34a5b4b1255b27875baacbeb2507b31c38621d74.tar.xz |
Support F81866 COM3 ~ COM6 IRQ Sharing Mode Selection
Diffstat (limited to 'Board/IO/F81866/F81866DXE.C')
-rw-r--r-- | Board/IO/F81866/F81866DXE.C | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/Board/IO/F81866/F81866DXE.C b/Board/IO/F81866/F81866DXE.C index ed434f5..fdf8534 100644 --- a/Board/IO/F81866/F81866DXE.C +++ b/Board/IO/F81866/F81866DXE.C @@ -702,6 +702,35 @@ static EFI_STATUS COM_Init( Status=AmiSio->Access(AmiSio, FALSE, FALSE, 0xF0, &rv); rv &= ~(BIT0) ; Status=AmiSio->Access(AmiSio,TRUE,FALSE,0xF0,&rv); + +//ray_override / Support F81866 COM3 ~ COM6 IRQ Sharing Mode Selection / Added >> + if ( dev->DeviceInfo->UID >= 2 && dev->DeviceInfo->UID <= 5 ) + { + EFI_GUID SetupGuid = SETUP_GUID; + UINTN Size = sizeof(SETUP_DATA); + SETUP_DATA SetupData; + + Status = pRS->GetVariable ( L"Setup", \ + &SetupGuid, \ + NULL,\ + &Size, \ + &SetupData ); + + // PCI Share Mode + if( SetupData.F81866ComIrqShareMode == 0 ) { + Status=AmiSio->Access(AmiSio,FALSE,FALSE,0xF0,&rv); + rv |= BIT0 ; + rv &= ~(BIT1); + Status=AmiSio->Access(AmiSio,TRUE,FALSE,0xF0,&rv); + } + else { // ISA Share Mode + Status=AmiSio->Access(AmiSio,FALSE,FALSE,0xF0,&rv); + rv |= BIT0 ; + rv |= BIT1; + Status=AmiSio->Access(AmiSio,TRUE,FALSE,0xF0,&rv); + } + } +//ray_override / Support F81866 COM3 ~ COM6 IRQ Sharing Mode Selection / Added << break; case isAfterActivate: |