bloggerads

2015年11月28日 星期六

PIC IRQ in PCI

先介紹PCI configuration的兩個欄位Interrupt Line (0x3C) / Interrupt Pin (0x3D)

# Interrupt Line (0x3C) 
a. 這個configuration space register欄位的值是看Bios IRQ routing到哪個 IRQ number後Bios填進去的,系統或device driver可能會使用到, 只是現在的系統很少在用PIC了。(PCI device因為只有定義四個interrupt pin, 因此通常會IRQ sharing)

b. 另外一種方法是透過int 1A, GET_IRQ_ROUTING_EXPANSIONS, 來得到routing的位置 (PCI firmware spec有提到但是沒試過)

# Interrupt Pin (0x3D)
a. 出廠就固定了

2015年11月13日 星期五

X86 Reset

X86 Reset 
  • Soft reset ( Warm boot / Ctrl+Alt+Del) (Software Reset, Assert CPU Init#):
      • IoWrite8 (0xCF9, 0x04);  or  
      • IoWrite8 (  0x92, 0x01);  or  
      • IoWrite8 (  0x66, 0xFE); // KB Controller assert KBRST#(SIO) -> RCIN#(SB)
  • Hard reset (Cold boot): 
      • IoWrite8(0xCF9, 0x06) , HW Assert PLTRST# 16 cycles
      • IoWrite8(0xCF9, 0x0E) , HW Assert PLTRST# 16 cycles