在dos下想要做選單連結一些執行檔,但是將執行檔路徑寫在autoexec.bat 常常會碰到顏色花掉以及執行完執行檔卻回不了DOS的問題。
原因是因為在執行autoexec.bat時DOS initial還沒完成(還必須設定VGA mode跟執行int 21h回到Dos),因此autoexec.bat內不能直接執行用C寫的程式,要先寫執行一個組合語言寫的程式切video mode 以及呼叫DOS中斷來回到DOS,才會完整跑完DOS initial的流程。
在autoexec.bat最前面先放以下這隻程式,之後再跑其他的C語言寫的執行檔都能順正常執行,執行完後也能順利回到DOS
bloggerads
2015年9月14日 星期一
2015年8月20日 星期四
2015年8月12日 星期三
DRAM overview
每周部門meeting都會討論各function owner的issue,然後幾乎都是一堆DRAM的issue。
我自己也不是很懂,不過我把比較常聽到同事講的東西加上自己的理解寫一篇來分享
1. DRAM Data的寬度是 8 bytes (64bits)/ 含有ECC的則是72bits
2. Channel/Rank/記憶體顆粒的解釋:
- 1個channel可以有很多Dimm, 但每個channel有支援Rank的數量限制 (如H61/H81單一Channel只能接受2個Rank)
- 1條Dimm可以有很多Rank. (一條記憶體目前最多是有4個Rank)
- 1個Rank資料寬度是64bit, 由許多記憶體顆粒組成這個資料寬度, 1個記憶體顆粒資料寬度可能是8bit, 16bit,.同一個Rank上的記憶體顆粒他們的CS都是接在一起。
- bank則是cell 組成的二維陣列(Row & Column), 使用控制訊號為BA0, BA1,.
3. DRAM 頻率的算法
- IO clock (或稱Bus clk, 外頻) = Memory clock (或稱Internal clk, 內頻)* 1或2或4或8 (要看是DDR或DDR2或DDR3或DDR4)
- Data rate (數據速率) = Memory clock * 2或4或8或16 (要看是DDR或DDR2或DDR3或DDR4)
- ex: 模組名稱: PC3-6400 (DDR3-800): IO clock=400MHz(因為是double date rate), 記憶體clock=100MHz, 數據速率=800MT/s
5. Bank Interleaving技術: 原理是將奇數位址和偶數位址分在不同bank,減少讀寫當前字元而影響下一個字元的時間
6. CPU 至 DRAM 顆粒層級由大至小為 channel>DIMM>rank>chip>bank>row/column
6. CPU 至 DRAM 顆粒層級由大至小為 channel>DIMM>rank>chip>bank>row/column
2015年8月1日 星期六
UEFI : ROM 格式
相關設定請參考 .fdf (Flash Description Files)檔案
UEFI對於ROM的格式,可以分為下面幾項:(由大集合到小集合)
● Firmware Device (FD):
● Firmware Device (FD):
Bios Rom即是一個 FD, 一個FD可以由多個FV組成● Firmware Volume (FV):
每個FV通常是由一個 header+N個Firmware Files所組成, 一般說的Boot Firmware Volume/ Recovery Firmware Volume/ Main Firmware Volume就是以這個為單位, FV的細部定義如下:
2015年7月26日 星期日
UEFI 各階段資料的傳遞方式
將bios 選單變數(ex: SetupData.my_var)傳遞到PEI及DXE的方法
// // PEI 接收資料 // Status = (*PeiServices)->LocatePpi ( PeiServices, &gEfiPeiReadOnlyVariablePpiGuid, 0, NULL, &ReadOnlyVariable ); ASSERT_PEI_ERROR (PeiServices, Status); VariableSize = sizeof (SETUP_DATA); Status = ReadOnlyVariable->GetVariable ( PeiServices, L"Setup", &gEfiSetupGuid, NULL, &VariableSize, &SetupData ); if (EFI_ERROR (Status)) return;
SMBios (System Management Bios)
使用者可以透過SMBios知道這台電腦的詳細規格,RW everything / RW這些tool都有提供SMBios data查詢。
SMBios是一份軟體的spec, 他定義了兩個table, 即EPS ( Entry Point structure) 和 Structure Table
EPS位於記憶體1MB以下64K之間,也就是0xF0000 ~ 0xFFFFF之間。透過程式搜尋搜尋_SM_和_DMI_這兩個Keyword可以找到這個table。
以下是 SMBIOS 2.1 (32-bit) Entry Point structure,這邊列出比較重要的部分
Offset
|
Name
|
Length
|
Description
|
00h
|
Anchor String
|
4 BYTEs
|
_SM_, specified as
four ASCII characters (5F 53 4D 5F).
|
10h
|
Intermediate Anchor
String
|
5 BYTEs
|
_DMI_, specified as
five ASCII characters (5F 44 4D 49 5F)
|
16h
|
Structure Table
Length
|
WORD
|
Total length of
SMBIOS Structure Table, pointed to by the Structure Table Address, in bytes
|
18h
|
Structure Table
Address
|
DWORD
|
32-bit physical
starting address of the read-only SMBIOS Structure
|
1Ch
|
Number of SMBIOS
Structures
|
WORD
|
Handle的數量
|
訂閱:
意見 (Atom)
