eCo Software Developer Connection


About DevCon
Subscription to DevCon
Budget of DevCon
FAQ


Roadmap
eCo Software runtime
eCo Software toolkit
Contacts

Development of device drivers

Template of 32-bit driver for eComStation

Download eCo Software simple 32-bit driver.

  • 32-bit driver
  • interaction with ACPI driver

KEE interface

To develop modern drivers you should use DevHlp, KEE interfaces. Read DDK, pddref.inf for details.

Tutorials

Suspend/resume

eCS supports suspend/resume for one-core and multi-core desktops and notebooks. You can use APM interface (read DDK → in_out.inf, Input/Output Device Driver Reference) or hidden kernel function SaveRestore()

/*
*  Function SaveRestore
* @pkt     standard drivers packet
* @return  None
* Note: This function is undocemmented in pddref.inf
*/
void
SaveRestore(
    PRPSAVERESTORE pkt)
{
    PrintDevCall((PRPH)pkt, "SaveRestore");
    if (PSD)
    {
        PSD->AcpiOsPrintf("APM:SaveRestore - %x\n",(ULONG)pkt->FuncCode);
    }
    pkt->rph.Status |= STDON;
 
}
 
 dd    OFFSET FLAT:SaveRestore  ; Command code 20h SaveRestore

Please share information with other developers how to:

  • How to process command line parameters?
  • How to gather log, so user can call: copy acpica$ acpi.log
  • How to register driver in resource manager? So users can see it via rmview /IRQ

Programming PCI devices

To create new driver, you need

Wakeup PCI devices

Examples:

  • Wake up sleeping PCI devices at boot time (by Veit) driver, source code
  • Source code of USB drivers (DDK)

Read/write ports from Ring3

Mapping physical memory to linear

Use this method (via SCREEN$) memory mapping via SCREEN$ (thx LightElf)

Driver debugging

if you are going to do driver debugging, a trap dump partition is a must have. It will save you a lot of time. A usable kernel debugger setup will save you a even more time, but this can be problematic on newer systems that lack a serial port.

Read details: OS/2 Diagnostic Tools and Tips by Steven Levine.

Useful links

 
en/device_drivers_development.txt · Last modified: 2009/10/24 12:55 (external edit)

 
Recent changes RSS feed
© 2001 - 2009 eCo Software, All rights reserved