一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

BIOS備忘錄之EC常用知識點

 zhuwen1966 2022-05-07 發(fā)布于吉林省

BIOS工程師眼中常用的EC知識點匯總:

EC的硬件架構(gòu)

EC硬件結(jié)構(gòu)上主要分為兩部分:Host Domain和EC Domain

Host Domain就是通過LPC與CPU通信的部分(LPC部分需要先執(zhí)行相關(guān)的初始化:比如decode 62/66  68/6c,設置LPC Serial IRQ mode to continus mode等,這樣EC才能通過IO與PCH通信),可以看成ISA的設備卡;

EC Domain可以看成一個51的單片機。

BADRSEL寄存器是在EC初始化的時候設置的,決定了使用tool訪問EC的信息時要通過 4E/4F

EC的代碼框架

必要的初始化,然后進入一個while循環(huán)。

while循環(huán)里面有不同間隔的定時器回調(diào)函數(shù),比如每1ms, 5ms, 10ms等就執(zhí)行一次。在回調(diào)函數(shù)里面判斷各種flag(flag由硬件中斷或其他函數(shù)置起來,比如拔一下AC,按一下hotkey等),執(zhí)行相應操作。

EC RAM space

比如定義RAM 0x0400用來與EC ASL code交互數(shù)據(jù)(參看:BIOS之ASL code常用知識點

比如定義RAM 0x0E00用做debug:在EC code里面通過調(diào)用RamDebug(dbgcode)來往0xE00的位置寫debug code從而追蹤EC code的執(zhí)行。

EC Register Space

通過EC tool查看寄存器的值,從而判斷寄存器的輸入輸出狀態(tài);通常用在通過EC的GPIO來Enable/Disable TP等device(Hotkey的實現(xiàn)原理)

下面的Datasheet和tool截圖(GPIO的數(shù)據(jù)寄存器)表示:

offset 0A = ED (1110,1101)表示GPJ1,GPJ4的輸出為低,GPJ0,2,3,5,6,7輸出為高 - 每個寄存器(byte)對應一組8個pin,EC code通過調(diào)用SET_MASK(GPDRJ, BIT(6))來把GPDRJ:bit6置起來即把GPIO GPJ6拉高。

EC code與BIOS code交互

上面提過EC code與EC ASL code之間通過EC RAM Space(62/66)的交互(參看:BIOS之ASL code常用知識點

現(xiàn)在看一下BIOS通過60/64,62/66與EC通信:首先PCH端的LPC要初始化相應的端口

BIOS demo code:

1.判斷輸入buffer是否為空,為空就往64 port寫數(shù)據(jù)(命令):

2.判斷輸出buffer是否有數(shù)據(jù),有就從60 port讀數(shù)據(jù):

EC code里面的處理:

Hook_64Port(cmd)檢測cmd,調(diào)用不同的處理函數(shù),然后調(diào)用Data_To_Host(data)把數(shù)據(jù)返給BIOS,BIOS可以從60 port讀到這個值。

cmd被BIOS寫到64 port,實際上是寫到了寄存器KBHIDIR里面,EC返回的data也是被寫到寄存器KBHIKDOR里面。

對IO口的操作最底層也是操作寄存器:

P80

一般來說,BIOS可以通過往port80寫值來記錄代碼的運行,往port80寫的值會通過LPC總線寫到EC的RAM區(qū)域:

Power

power sequence:

power sequence描述的是EC為系統(tǒng)不同的模塊上電的順序,比如按power button開機,就執(zhí)行S5_to_S0的power sequence(包括比如:檢查SLP_S4#的信號是否已經(jīng)被PCH拉高,把PCH的SYS_PWROK拉高表示上電OK等等)。

power信號:

1. 比如系統(tǒng)進S4,PCH會把SLP_S4#拉低來告訴EC系統(tǒng)進S4了。

2. 比如系統(tǒng)進S0 idle,PCH會把SLP_S0#拉低來告訴EC系統(tǒng)進MS了,EC會開啟power燈閃爍。

3. PCH把SLP_S4#拉高,表示從S4喚醒,EC需要給系統(tǒng)各模塊重新上電(當然EC可以加一下條件,比如檢測到Lid close就不給系統(tǒng)上電)

ASL code里面的EC device

參看:BIOS之ASL code常用知識點

通過EC燒寫B(tài)IOS ROM

通過EC燒寫B(tài)IOS ROM的原理就是把ROM當成EC的外接存儲芯片來燒錄,所以在設計原理圖的時候需要把SPI ROM同時接到PCH和EC。

BIOS備忘錄之EC常用知識點的更多相關(guān)文章

  1. BIOS備忘錄之IIC(touchpad)設備

    簡述BIOS中對IIC device的支持,以touchpad為例. 信息收集 收集平臺的硬件信息: 1. IIC controller number(PCH一般包含多個controller,我們使用 ...

  2. DB2_SQL_常用知識點&實踐

    DB2_SQL_常用知識點&實踐 一.刪除表中的數(shù)據(jù)(delete或truncate) 1 truncate table T_USER immediate; 說明:Truncate是一個能夠快 ...

  3. JAVA常用知識點及面試題總結(jié)

    1. String.StringBuffer.StringBuilder三者區(qū)別? (1)三者在執(zhí)行速率上的比較: String<StringBuffer<StringBuilder 原因 ...

  4. HTML常用知識點代碼演示

    1 HTML部分常用知識點 <!-- 版本聲明 --> <!DOCTYPE html> <!-- 唯一根元素 --> <html> <!-- 對網(wǎng) ...

  5. Java 常用知識點

    Java 常用知識點 1.日期格式化 SimpleDateFormat Date date=new Date(System.currentTimeMillis()) ; SimpleDateForma ...

  6. Less常用知識點

    上篇文章介紹了如何安裝Less,我們將所有東西都寫在.less里面,最后通過命令將.less轉(zhuǎn)換成.css文件,就可以放入到項目里用了.今天了解一些less常用知識點. 1.變量:聲明兩個變量,一個是 ...

  7. YII2常用知識點總結(jié)

    YII2常用知識點總結(jié) (一)總結(jié)性語句 (1)經(jīng)常看看yii源碼比如vendor\yiisoft\yii2\web這個目錄(很重要)下的文件中的方法(這些文件中的公共方法,大致看了下基本上都可以通過 ...

  8. CSS3常用知識點

    CSS3常用知識點 1 css3選擇器 1.1 屬性選擇器 /* E[attr~=val] 表示的一個單獨的屬性值 這個屬性值是以空格分隔的*/ .attr2 a[class~='kawa& ...

  9. javaScript常用知識點有哪些

    javaScript常用知識點有哪些 一.總結(jié) 一句話總結(jié):int = ~~myVar, // to integer | 是二進制或, x|0 永遠等于x:^為異或,同0異1,所以 x^0 還是永遠等 ...

隨機推薦

  1. 圖文混排--CoreText的簡單運用

    常見的在一些微博微信中可以看見一段文字中有不同的字體,字體有不同的顏色,并且可能會有一些笑臉之類的表情,這些可以通過圖文混排做到. 圖文混排可以通過WebView和CoreText做到,其他還有別的方 ...

  2. NetBios 的結(jié)構(gòu)體詳解

    [NetBios 的結(jié)構(gòu)體詳解] NetBIOS是早期的局域網(wǎng)傳輸協(xié)議. 1.結(jié)構(gòu)體. 2.命令 NetBIOS命令的使用方式有兩種,即等待和非等待(或稱為同步與異步)方式. 如果命令碼的高階位是0時 ...

  3. Android Launcher 研究學習

    Launcher是系統(tǒng)啟動后第一個啟動的程序,是其它應用程序的入口,也就是我們的手機程序的桌面程序; 一.Launcher的定義及構(gòu)成: <1>通過查看官方提供的Launcher源碼可以知 ...

  4. 在magento中定義static block

    在magento中如何調(diào)用static block?(系統(tǒng)面板內(nèi)CMS---->static block) 解答:若想在站點頁面的某個地方放點靜態(tài)的內(nèi)容,比如廣告,或者是促銷信息之類的,這樣的東 ...

  5. Anton and Chess

    Anton and Chess time limit per test 4 seconds memory limit per test 256 megabytes input standard inp ...

  6. Struts 關(guān)聯(lián)DTD 文件

    Struts 的xml 文件在Eclipse 中  默認是不會有提示的. 但是我們可以關(guān)聯(lián)DTD 文件, 這樣子就可以出現(xiàn)如下的struts   提示了 1. 首先得先確保自己有Struts2 的Sr ...

  7. not in 前面/后面存在null值時的處理

    表聲明 order_header表中有ship_method列: ship_method_map表中ship_method為主鍵列. 需求 找出order_header表中所有ship_method不 ...

  8. Git 常用使用技巧

    1.創(chuàng)建代碼倉庫 Step 1:先配置下我們的身份吧,這樣在提交代碼的時候Git就可以知道是誰提交的,命令如下: git config --global user.name 'coder-p ...

  9. zoj 2104 Let the Balloon Rise(map映照容器的應用)

    題目鏈接: http://acm./onlinejudge/showProblem.do?problemCode=2104 題目描述: Contest time again! Ho ...

  10. Linux教程:基礎+中級+運維高級

    視頻內(nèi)容40G:Linux基礎視頻.Linux中級視頻.Linux運維高級視頻+贈送 職業(yè)素質(zhì)視頻 +查用服務器安卓文檔 目錄 Linux基礎教程81節(jié) 常用命令.文件管理命令詳解.bash腳本編程. ...

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    国内真实露脸偷拍视频| 日韩无套内射免费精品| 亚洲国产成人爱av在线播放下载| 欧美在线观看视频免费不卡| 国产熟女一区二区三区四区| 久久精品国产在热亚洲| 中文字幕一区二区熟女| 色婷婷视频国产一区视频| 在线亚洲成人中文字幕高清| 日韩精品一级一区二区| 欧美中文日韩一区久久| 黑色丝袜脚足国产一区二区| 国产免费一区二区三区不卡| 精品少妇一区二区视频| 千仞雪下面好爽好紧好湿全文| 欧美精品久久一二三区| 久久成人国产欧美精品一区二区 | 九九热精彩视频在线免费| 国产精品成人免费精品自在线观看| 偷拍洗澡一区二区三区| 亚洲欧美日韩国产自拍| 亚洲一区二区福利在线| 日本一级特黄大片国产| 91熟女大屁股偷偷对白| 91亚洲人人在字幕国产| 欧美有码黄片免费在线视频| 日韩精品一级一区二区| 欧美高潮喷吹一区二区| 亚洲国产成人精品福利| 国产毛片av一区二区三区小说| 在线免费视频你懂的观看| 很黄很污在线免费观看| 欧美日韩综合免费视频| av一区二区三区天堂| 国产内射一级一片内射高清| 国产激情国产精品久久源| 大香蕉久草网一区二区三区| 久久精品色妇熟妇丰满人妻91 | 午夜久久精品福利视频| 不卡视频免费一区二区三区| 中文文精品字幕一区二区|