網路城邦
上一篇 回創作列表 下一篇   字體:
BDA & CMOS
2013/07/31 22:02:51瀏覽2145|回應0|推薦0

BDA

BDA : BIOS DATA AREA

BDA 存放System Bios 會使用到的重要的資料,

範圍 : 40:00 ~ "50" : 00 (Segment)

 

重要的Register :

40:1A Keyboard, Head of buffer pointer  (word)

40:1C Keyboard, End of buffer pointer (word)

40:1E Keyboard buffer (16 words

Keyboard Buffer can only holds 15 words.

When the buffer is full, additional keys are discarded by the INT9.

An error beep is generated for each discard.

 

40:6C Timer Ticks Count (Dword)

8254 Counter 0 做為系統時間的計數器,8254它有一個輸出接腳會接到8259IRQ0,這是一個count down
只要數到0的時候就會在OUT0 pin 會拉一個low,在一個時間道就會拉high,這會加一個訊號,
造成IRQ0的產生,這樣INT8就會run一段程式,會把40:6C那個位置加一


40:0E Extended BIOS Data Area Segment

EBDA 範圍 : EBDA:0 ~ EBDA:11D

EBDA is to hold data for a motherboard mouse port, hard disk parameters, and disk track buffers.

 

CMOS

The system contains a small amout of CMOS memory that retains its data while the system power is off.

CMOS chip also has a Real-Time Clock that keeps current time.

 

Accessing 限制

必須關閉interrupts (include NMI(port 70h bit 7) ) when access (read/write) CMOS

因為要確保在寫入index(70h port)時,別的中斷不會access CMOS

另外是read 時,也需要check Bit 7 of Register A,

Bit 7 of Register A 代表RTC updating ,

//loop for RTC updating

do {
          Status = BDA_CMOS->Io.Write ( 
                              BDA_CMOS,
                              EfiCpuIoWidthUint8,
                              0x70,
                              1,
                              &REG_A_OFFSET);
          Status = BDA_CMOS->Io.Read ( 
                              BDA_CMOS,
                              EfiCpuIoWidthUint8,
                              0x71,
                              1,
                              &DATA);
        } while (((DATA & 0x80) == 0x80)); 

 

RTC

real time clock alarm is a feature that can be used to allow a computer to 'wake up' after shut down to execute tasks every day or on a certain day.

( 知識學習科學百科 )
回應 推薦文章 列印 加入我的文摘
上一篇 回創作列表 下一篇

引用
引用網址:https://classic-blog.udn.com/article/trackback.jsp?uid=wens1689&aid=8054899