端口61

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)  

转载于:https://www.cnblogs.com/lurker0/archive/2011/12/06/2278046.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值