Device Manage for OS/2

DevCon for OS/2 - Developer Connection

Operating systems:
ArcaOS, eComStation, IBM OS/2 Warp
eComStation myths 

(Unsorted)  
 
 
Compilers  
 
 
Tools  
 
 
REXX  
 
 
Drivers/kernel  
 
 

 

 

ACPI FAQ for eComStation developers

Q1: I am developing a driver. How to create ACPI compatible driver?
A1: Main rules:
  • don't set own restrictions to high IRQs > IRQ15
  • read information about IRQ from PCI Config Space or from acpi.psd

How to create driver ready for SMP and APIC mode?

  • Use DevEOI helper only (DevHlp_EOI), DON'T USE OUT 20h,20h

More suggestions:

  • If you are going use IRQ before INIT_COMPLETE then use PIC IRQ before, APIC IRQ after. Query the information using FindPCIDevice()

APM:

  • when you init the adapter, look at D-state in PCI, if the adapter is in D-state (i.e. D-state != 0) then enable it. Else the devices don't work if computer was suspended by Windows.

 
Q2: There is old device driver. How to make it work in APIC?
A2: Patch it. It's necessary patch DevHlp_SetIRQ and set shared. (This will help if DevHlp_EOI are used) If you have asm source code with headers from DDK then makefile should contain SMP=1
 
Q3: How to create driver ready for SMP?
A3: SMP Considerations for OS/2 Device Drivers http://www.edm2.com/0701/driver.html (by Scott E. Garfinkle)
 
Q4: How to run my R3 program on CPU 2?
A4: Use DosSetThreadAffinity function
 
Q5: ACPI replaces OEMHLP$ driver. Is this new OEMHLP$ documented?
A5: The interface is not changed. DDK contains description of OEMHLP.
 
Q6: How to find COM-port in ACPI tree
A6: Example:

We looked into the acpitree output to find the com port of the digitizer.

+*DTR_ T:[Device] HID:[WACF004] STA:[0xd] SxD State:[0xff:ff:ff:ff]
Current state:
> IO:[1 0x200 - 0x200 Al:1 Len:8]
>Trigger by Edge, Polarity High IRQ-4
> ENDTAG

thx Wim Brul
 

 


 

(C) OS2.GURU 2001-2024