bit7 RO 1 RAM奇偶错误(仅当bit2有效时)
bit6 W 1 清除IRQ0 时钟锁存
bit6 R 1 IO奇偶校验 (仅当bit3有效时)
bit5 RO x 时钟2的输出
bit4 RO x 刷新请求 时钟除以2
bit3 RW 0 使能IO奇偶校验
bit2 RW 0 使能RAM奇偶校验错误
bit1 RW 1 允许扬声器数据
bit0 RW 1 使能时钟2
有个平台的Metronomo代码使用0x61的bit4 来定时
LegacyMetronome.c ()
UINT8
ReadRefresh (
VOID
)
{
UINT8 Data;
mCpuIo->Io.Read (
mCpuIo,
EfiCpuIoWidthUint8,
REFRESH_PORT,
1,
&Data
);
return (UINT8) (Data & REFRESH_ON);
}
EFI_STATUS
EFIAPI
WaitForTick (
IN EFI_METRONOME_ARCH_PROTOCOL *This,
IN UINT32 TickNumber
)
{
//
// Wait for TickNumber toggles of the Refresh bit
//
for (; TickNumber != 0x00; TickNumber--) {
while (ReadRefresh () == REFRESH_ON)
;
while (ReadRefresh () == REFRESH_OFF)
;
}
return EFI_SUCCESS;
}
//
Metronome.c (MdeModulePkg\Universal\Metronome)