Device Driver Development...
development is one of the most complex areas of modern software
engineering. Due to many multi-threaded race conditions in combination with
simultaneous ongoing multi-level hardware interrupt levels and DMA operations,
it is very easy to introduce hard-to-catch bugs that will not be detected until
your product has been put into your customers hands.
Over the years we have implemented device drivers for all of
Microsoft's operating systems as well as for many Mac, Linux and embedded
systems. This experience, in combination with our deep understanding of the
underlying hardware functionality, allows us to guarantee a robust and correct
implementation of your next Device Driver project.
Click here for a free estimate on your
current or future project
Past Windows device driver projects
Windows 7/Vista WLAN 802.11n PCIe and Mini PCI device
drivers. Developed Windows 7 and Windows Vista WDF KMDF NDIS
Miniport network drivers. Developed AP and station system software in power
management, MIMO Power Save, encryption and decryption, Wi-Fi performance and
throughput optimization. Technology: WLAN 802.11n PCIe and Mini PCI,
Environment: Visual Studio, C/C++, Windows 7/8.
Windows 7/8 PCI driver using Jungo toolkit. PCI DMA/chained
buffer data processing, real time tasks, etc. Ported Driver Studio
implementation to Jungo Windriver. Technology: C/C++, Environment: Driver
Open Virtual Switch (OVS) on Hyper-V.platform. Virtual NIC
driver in Windows OS, x86-64 memory mapped I/O instruction decoder and
emulator, SR-IOV driver stack for SR-IOV physical and virtual functions
(Hypervisor and Guest OS), SR-IOV device configuration and enumeration, GPU
emulation and accelerated shared graphics driver in Hypervisor (Intel
Sandybridge on chip GPU), Hypercall service Kernel mode library for
para-virtualized Windows drivers and Hypervisor communication. (x86 and
x86-64). High performance implementation of kernel datapath. High speed data
transfer in virtual network. The Hyper-V Extensible Virtual Switch architecture
provides fast and thread safe user mode access for flow management.
Windows NDIS NIC Miniport device drivers for 802.11 wireless NIC. Porting of NDIS 4 version of NIC miniport driver to NDIS 5.
Windows 7 driver for a PCI Express (PCIe) device that provides
PCIe to serial communications to be used in PC controlled paint mixers.
Reviewed product plans and OEM hardware specification. Designed and developed
Windows 7 PCI Express driver to support serial communication and configuration.
Created installation package for the Windows 7 driver. Went through complete
WHQL process and obtained Microsoft driver signature. Technology: WDM Driver,
PCI Express, Installation Package. Environment: Visual Studio, C and C++,
Windows 7 WDK.
Windows Server 2012 R2 NDIS 6.40 miniport for PCI Express Card.
Porting functionality from Linux Driver. Technology: C/C++, Environment:
Windows Driver Kit (WDK).
PC based digital TV and a set top box. The implementation
includes Device Drivers and Direct-Show filters for the Digital TV system. The
project involved providing an IP tunnel through MPEG-2 transport on either
satellite or digital television. It Included interfacing with the Satellite
receiver NDIS driver and the development of an Audio (AC3) and Video(MPEG-2)
Direct-Show Source Filters.
WinUSB based device driver for scientific instruments on Windows 7 32bit and
64bit platforms, WDF kernel mode driver development. USB device
driver development and debugging in C++ and C#. .NET framework, CLR, Kernel
mode driver and user mode DLL, SDK API. Silent install of driver on Windows 7.
Complete process to obtain Microsoft WHQL driver signature, DTM test and
troubleshooting. Technology: WinUSB Driver, WDF, WHQL. Environment: Visual
Studio, C++ and C#, Windows 7 WDK.
PCI Driver for custom PCI Card. Created INF file, Implemented
user mode test application. Technology: C/C++, Environment: Windows WDK, Visual
Windows XP NDIS 5.1 and WDM Driver development. Hired as principal to solve kernel issues in redundant-network process control software that manifested with migration effort from NT4 to XP. Instrument and debug core kernel components including proprietary NDIS protocol driver. Implement WDM serial filter driver to solve printer issue. Develop NDIS 5.1 Intermediate driver and corresponding installation package for next-generation project effort. Adapt network component configuration packages. Develop WMI kernel and user-mode modules. Improve XP build process for Foxboro kernel components.
Advanced R&D of Windows WDM USB
drivers, PIC32, PIC18, and OMAP-L137 firmware, flash based
storage, CMOS sensor, GPS technologies, wireless communications, USB firmware
and kernel mode drivers, and application software. Defense and Specialized
Government Contractor Environment.
Kernel mode bus driver, NDIS miniport driver, and KMDF storage driver.
Debug kernel mode driver in WinDBG, WPP TraceView, DebugView, IRP Trace,
Prefast, Driver Verifier. Implemented Windows user mode services in VBScripts
and C# to manage networking services. Microsoft Windows PowerShell script
design and command line tools. InstallShield MSI and InstallScript installer
design and debugging, silent mode enterprise installer design. Technology:
Fiber Channel, SAN, I/O virtualization, iSCSI, NDIS, KMDF. Environment: WinDBG,
WPP TraceView, DebugView, IRP Trace, Prefast, Driver Verifier, Windows
Windows 7 NDIS 6.20 TCP/IP Driver. Utilized Scatter / Gather
DMA for maximum throughput. Technology: C/C++, Environment: Windows WDK.
Development of firmware, kernel
mode drivers, API libraries, and applications level software for
high end scientific digital camera systems. Block level hardware design for
PCIe, USB, and 1394 interfaces. FPGA based imaging microcontroller to support
advanced imaging and system integration. Developed instruction set. Was a key
player in development of technology for precise timing of FPGAs for maximum CCD
performance - forming the core of the client's most advanced camera systems.
NDIS 6 driver for a 10GBit Ethernet Network Interface Card for
the Windows Longhorn/Vista Operating System. Features include Receive Side
Scaling support for MSI-X and optimization for MP server machine.
Windows 7 and MAC OS X Lion, Snow Leopard USB 3.0 HID Drivers for
mouse/keyboard battery powered devices and application software. Windows 7 HID
KMDF Driver development and debugging. MAC OS X Lion, Snow Leopard kernel and
application programming in Objective C. USB HID Driver development and
debugging for Logitech mouse/keyboard and desktop HID devices. Power management
and optimization in battery operated devices. Design Windows 7 and MAC OS X
driver for Logitech's next generation universal USB HID receiver modules.
Maintenance and bug fixing for existing Logitech HID device drivers.
Technology: USB 3.0 HID, KMDF, MAC OS. Environment: Visual Studio, C++ and C#,
Windows 7 WDK.
Windows 7 USB driver for a composite CDC USB device. Technology:
C, Environment: Windows WDK.
Windows Vista/XP and Mac OS USB and 1394 Firewire host driver for
real-time 3D DirectShow digital video camera modules. Windows Vista/XP host
driver development using Microsoft DirectShow, Microsoft Universal Audio
Architecture (UAA) and Video Class USB device driver. Design 1394 driver for
audio video camera modules. Design and develop user-mode plug-in to extend USB
Video Class devices based on USB Video Control Extension Unit Descriptor. Build
and test WDM KS filter graphs using Microsoft DirectX SDK COM APIs, Microsoft
Windows Driver Kit (WDK) kernel streaming tools, etc. Color sensor data formats
(RGB vs. YUV vs. etc.) and video compression (M-JPEG, etc.).
Technology/Environment: 1394 Firewire, 3D DirectShow, Universal Audio
Architecture, Video Class USB, WDM KS filter graphs, DirectX SDK COM, Winqual
WHQL certification, Mac OS X kernel.
Windows Socket Direct provider on top of the RDMA iWarp RNIC
API (socket emulation over RDMA).
Microsoft Winqual WHQL certification process Debug,
troubleshoot and fix issues in existing Network adapter drivers for Microsoft
Windows Vista and XP. Enhance and implement new features to meet new
requirements. Take the Windows driver package through the Microsoft Winqual
WHQL certification process, pass the WHQL DTM tests, submit Winqual package to
Microsoft, and get the official digital certification and logo. Develop Mac OS
X kernel extension (kext) driver. Technology/Environment: 1394 Firewire, 3D
DirectShow, Universal Audio Architecture, Video Class USB, WDM KS filter
graphs, DirectX SDK COM, Winqual WHQL certification, Mac OS X kernel.
Windows NDIS Miniport driver for Atheros 802.11 wireless NIC. Optimized for low latency and low jitter connection requirements for a gaming hardware company.
Advanced R&D on high
performance computer interface technologies, including PCIe, PCI,
IEEE 1394, USB 2.0 / 3.0. Scatter/Gather DMA in hardware, firmware, and kernel
driver space to achieve maximum system performance. Directed development of
nVidia CUDA based plugin for post processing of image data, mimicking /
extending capabilities found in FGPA based camera systems and for legacy
(non-FPGA) camera systems.
Dual Ethernet NDIS Driver for XP/Vista/2003 32/64-bit. Technology:
C, Environment: Windows WDK.
NDIS Intermediate driver to support trunking. Load Balancing
and Fail Over for multiple NIC devices.
Windows Vista/7 kernel driver for Bluetooth 3D glasses. The
driver synchronizes the 3D glasses with Windows host HID Bluetooth stack, Works
with CSR and Broadcom Bluetooth chipsets and SDKs, Implements C and C++ kernel
mode Bluetooth driver and firmware. Designed and developed GPU display and
graphics driver, DirectX, Direct3D, WDDM, and driver installation packages in
MSI, InstallShield. C and C++ development of display and graphics driver in
Microsoft Display Driver Model (WDDM), DirectX and Direct3D video rending,
encoding and decoding, and resolve issues in existing driver. GPU driver
installer design and implementation in InstallShield on Windows Vista and XP.
Driver stack for supporting PCIe IO Virtualization in Windows
Longhorn Operating System. The design is based on a virtual bus driver which
instantiates multiple Physical Device Objects (PDOs) for every Virtual Function
configured in the PCIe Root Complex (RC).
Silent mode driver installer design and implementation. MSI
driver installer package design and implementation in InstallShield and
Microsoft installer. Coinstaller design and implementation, integrate driver
installer with existing C and C++ coinstaller, DLL and applications to validate
driver INF, matching device IDs with hardware installed, etc. DIFx driver
installation framework programming. Develop Apple Mac application on OS X
Leopard, installer packages, DMG packaging. Technology/Environment: Bluetooth,
CSR and Broadcom Bluetooth chipsets, GPU display and graphics driver, DirectX
and Direct3D, MSI driver installer package, OS X Leopard, C and C++.
Windows kernel mode filter drivers for blocking image capture
over GDI and WDDM standard drivers.
Implemented SCSI III Medium Changer,
200 Disc DVD Changer, 1394, Am188 RTOS/Firmware, Windows Driver Development.
Development environment used Paradigm C++ Professional Linker / Locator,
RTKernel-C on embedded x86. Ported RTKernel-C RTOS from PC/DOS environment to
Embedded / Paradigm environment. Project was showcased as a main stage keynote
demo for WinHEC 1997.
Windows File system minifilter driver and its communication to other kernel components for proprietary file-access security system. Also developed System Event Log module.
Windows Device driver stack to support I/O virtualization system.
The driver stack exposes a Virtual NIC (VNIC) and a virtual HBA (VHBA) to the
Operating System enabling the sharing of network and storage devices over the
an Infiniband (IB) fabric. The provisioning of resources to the server is
flexible and manageable (preconfigured QoS). The I/O virtualization driver
stack is implemented on top of the IB HCA drivers. The servers communicate with
the physical devices through a fast and low latency RDMA channels.
XP/Vista/7 WDM USB Audio Filter Driver that intercepts sound
buffers and periodically modifies the sound buffers. Technology: C,
Environment: Windows WDK.
Windows Printer Driver (Unidriver)
for business / industrial multi-form dot matrix printers.
Windows NT Adaptec Fibre Channel Storage Adapter Protocol
Stack Maintenance. Developed Fibre Channel chip engineering
validation diagnostics, also developed flash programming utility for Adaptec's
Emerald chip. Emerald is used in JNI's FCE-3200 and FCE-6400 line of 32-bit and
64-bit PCI-to-Fibre Channel host adapter cards.
Windows XP, Vista and Windows 7NDIS 5.1 miniport para-virtualization
driver on Windows XP, Vista and Windows 7. FreeScale PowerPC e500. QEMU and
Kernel-based Virtual Machine (KVM) virtualization structure development. Port
5.1 miniport to NDIS 6 spec. Crash dump analysis, BSOD root cause analysis and
debugging. Obtain Microsoft Designed for Windows logo and pass Microsoft
Winqual WHQL certification test. Technology: NDIS 5/6 miniports, QEMU, KVM,
Winqual WHQL certification. Environment: Windows 7 WDK, C and C++.
Windows NDIS NIC Miniport device driver for 802.11a/b/g wireless NIC. 802.11 IBSS mode. Porting of NDIS 5 version of NIC miniport driver to NDIS 6.
Windows Direct Show filters for A/V subsystem. Multi-PVR Media
Center product Architecture, Design and implementation. The design includes a
kernel mode driver stack and Direct Show filters for the A/V subsystem. It
provides a solution for fundamental issues in a broadcast network such as:
client/headend synchronization, A/V lip-sync and distribution, clock skew
fixing, minimal latency, headend clock recovery and implementation of trick
modes on a live and stored MPEG transport stream. The architecture is based on
the AVStream and the Broadcast Architecture frameworks and the WDM Kernel
Migration of NDIS 5.x miniport driver to interface with next-generation bus architecture for high-speed wide-area wireless CDMA device on Windows XP/2K platform. Work with modem firmware team on system integration and issue investigation. Instrumental in preparing driver for WHQL submission process. Develop component to interpret customer's proprietary structure in system BIOS to ensure device security at startup. Wrote corresponding documentation.
Windows XP/7 WDM driver for a PCI Express 64-port Serial I/O Board.
Technology: C/C++, Environment: Windows WDK.
Windows 7/8 and embedded USB software and firmware design for
the client's mobile TV, audio and video solutions. Architectural design and
development of USB software on new IPTV chip product from scratch. IPTV device
firmware based on ARM7TDMI processor and toolchain. Analog and digital video,
DVB-T and DVB-H protocol, MPEG, YUV encoding and decoding. Chipidea USB IP
stack modification and integration. Help hardware team make architecture
decisions, e.g. Hardware buffer size requirement analysis. Video and Audio USB
class driver and firmware development, High Speed USB 2.0 specification.
WDM USB host-side driver debugging of crash that manifested when client had moved to Windows 7 platform. Developed KMDF version of driver for proper migration. Subsequently assigned side task of investigating and developing solution employing Windows Text Services Framework for detecting various language input events.
WDM bus driver. Multiple remote control handsets architecture
and design for using a single RF receiver. The design is based on a bus driver
which creates device object for any remote control handset and a single HID
mini driver (per handset) which maps USB packets to HID. Application use HID
API to retrieve input regardless of the current windows in focus.
Windows WDM and WDF host USB audio and video driver design, and
integration with device firmware, using DirectX, DirectShow, DirectSound,
AVStream. Bulk, Interrupt, and Isochronous USB transfer, descriptor and
endpoint priming, queue heads, etc. Debugging and troubleshooting with Ellisys
and CATC USB analyzer, A/V decode, frame analysis. RGB and YUV format,
encoding/decoding. Technology/Environment: USB 2.0, ARM7TDMI, DVB-T and DVB-H,
MPEG, YUV, Chipidea USB IP, Video and Audio USB class, WDM and WDF, DirectX,
DirectShow, DirectSound, AVStream RGB and YUV.
WDF and WDK drivers for Windows 7,Vista and XP PCI Cards. Designed and developed architecture for supporting client's proprietary PCI digital boards and corresponding network interface. Solution involved
implementation of four (4) WDF drivers for platform matrix consisting of Windows 7 32-bit & 64-bit, and Vista & XP 32-bit. Driver set included: PCI driver for each of two (2) in-house boards; NDIS-WDM upper device filter driver; and custom root-enumerated driver for control and multiplexing between network and multiple PCI cards. Developed internal I/O test application. Applied client's signing certificate for 64-bit installations.
Windows 2003, 2003R2, 2008, 2008 R2, 2012 2 - Change Block Filter Driver
development for NTFS, CSVv2, SMBv3, REFS, FAT32. Technology: C, Environment:
Direct Show filters and device driver for ancillary A/V
Windows CE based node. The node receive an A/V interleaved extended Transport
streams over a network, demultiplex the audio and video streams and send
packets to a hardware based MPEG decoder (TriMedia). The node includes an
implementation of headend clock recovery as well as precise A/V lipsync.
PCI VxD to NT4 Audio Driver porting of embedded digital audio system from Windows 98 to NT Embedded. Solely responsible for port of VxD to NT4 kernel mode device driver for proprietary PCI Busmaster audio card to enable transition. Responsible for creating embedded configurations using Target Designer tool and subsequent installation of images.
Windows Vista/7 KMDF USB HID Driver for force feedback gaming device.
Windows device driver development in C and C++. KMDF HID Filter driver
development. Gaming HID USB device driver development. Microsoft WHQL
certification and testing. Technology/Environment: KMDF USB 2.0 HID, force
feedback, KMDF Filter Driver, WHQL certification.
Dedicated WIA driver for high-speed scanner. Technology: C/C++
Environment: Windows WDK.
XP/CE 802.11b NDIS 5.1 driver for PC card. The driver includes
an implementation of the .11 OIDs, as well as support for encryption (EAP/TLS).
The driver was WHQL certified and was complied with the Windows XP and CE .NET
Windows 802.11n WiFi drivers on Atheros AR9130 chipset,
Broadcom and Marvell chipsets with Integrated MIPS, MAC, Baseband and ADC/DAC.
Design and Develop Bluetooth high performance devices. Develop Linux 2.6 based
kernel driver, BSP, MadWiFi driver, and USB based WiFi device drivers, LTIB
(Linux Target Image Builder) to deploy BSPs (Board Support Packages) for
various target platforms. Develop Windows 7 and Windows Vista WDF NDIS Miniport
network drivers based on the latest Microsoft Windows 7 device driver
architecture, device stage, device metadata packaging, etc.
Windows 7 WDM driver for a LSI SAS/SATA 5 Gbps PCI Express Host Controller
Card. Involved use or PCI Express Protocol Analyzer to maximize
throughput of multiple simultaneous DMA Transfers. Technology: C/C++
Environment: Windows WDK.
Voice over IP (VoIP) kernel mode driver. The kernel mode
driver includes a Real Time Protocol (RTP) implementation over a TDI, which
minimize the audio signal latency across the network. The driver handles
network jitter and clock skews as well. The software uses the MGCP protocol for
signaling and two voice CODECs: ADPCM and G711. The project was part of
Shoreline Communication Softphone product.
Windows NDIS miniport device driver for 802.11b wireless NIC.
Porting of 32-bit XP/7 USB Driver to 64-bit. Driver Signing.
Technology: C Environment: Windows WDK.
Windows PCI Express audio/video kernel mode drivers and user
mode sample applications and SDK for surveillance camera and security market
applications. C/C++ Host side kernel mode PCI Express driver development, bug
fixing, and performance enhancement. Directly interface with client's PCIe
surveillance card hardware and firmware. Driver transports live streaming
compressed audio and video data MPEG4/H264/ASF, as well as uncompressed preview
(live video) data through DMA at different video resolutions 30 fps, supports
multiple channels on multiple PCIe cards. User mode multi-threaded GUI sample
applications, DLLs and SDK to help customer write applications. Performance
tuning and improvement, reduce driver and application's CPU
utilization.Technology/Environment: PCI Express, C/C++, MPEG4/H264/ASF, Windows
WDM Driver, BIOS and WinQual Development. Responsible for migration of BIOS-based FailSafe system to BIOS-agnostic Windows platform using two-phased approach: Phase 1: Modified kernel-mode WDM driver to support such activity. Implement Windows Native application to provide POST/BIOS verification upon startup of systems intentionally disabled via server UI. Incorporate installer library in previously-written personal Setup application provided to client. Develop applications/libraries to hook client system current input context. Upgrade DTM server and oversee Winqual (WHQL) efforts to obtain certifiable version of crucial driver component. Work with personnel dedicated to this custom effort to successfully deliver product to customer.
Phase 2: Second phase of project involved migrating above security platform to desktop virtual environment. Involved in fundamental architectural discussions and subsequent design and implementation of proposed solution. Extend Linux kernel driver to support secure storage of data from previous phase. Customize third-party NDIS filter driver framework to adapt to platform, and work with team personnel to extend existing Windows WDF virtual PCI driver to support proprietary network over shared memory/shared interrupt interface; extend to KMDF v1.9. Implement Windows kernel mode driver-to-driver communication to provide proprietary network interface from Windows guest domain to secure host domain. Implement custom library to provide interface to these kernel-mode routines to fundamental product applications.
WDM Kernel Streaming driver for a USB camera. The driver
includes an implementation of communication protocol, which controls the camera
over asynchronous USB pipe. The driver receives a compressed video input stream
through the use of isochronous USB channel. The driver was developed for the
Logitech QuickCam USB product line.
Windows 2008 Windows Graphics Device Driver to replace
rdpdd.sys for Windows Terminal Services. Framebuffer rendering from the GDI.
Technology: C/C++ Environment: Windows WDK.
Windows Vista NDIS Network driver. Port of NDIS 5.1 to NDIS 6.
Technology: C/C++ Environment: Windows WDK.
Windows Vista 32/64-bit NDIS Network Device Drivers. Design and
develop VOIP based Ethernet Layer 2 protocol driver for Cisco IP Video phone,
switches and routers. Port the existing CDP driver from Windows XP/2000 to
Windows Vista 32-bit and 64-bit platforms. Implement Layer 2 Cisco Discovery
Protocol driver and firmware based on CDP RFC specification.
Technology/Environment: VOIP, Ethernet Layer 2, Cisco IP Video, CDP driver, CDP
RFC specification, NDIS, WDM, TCP/IP, KMDF, x64, DIFx, 802.3 Ethernet, TLV/TTL
processing, PREfast, DebugView, SoftICE.
NDIS protocol driver design based on Microsoft WDM, TCP/IP
network programming. Driver porting from WDM on Windows XP/2000 to the latest
KMDF driver architecture on Windows Vista. Windows Vista driver implementation,
64-bit x64 Windows Driver development. Ethernet NIC binding, 802.3 Ethernet
protocol, TLV processing, multicast, TTL processing. PREfast for Drivers static
analysis and driver verifier, DebugView, SoftICE driver debugging.
WDF USB driver for fingerprint sensor being ported to WDF and Vista 32/64-bit OS. Employed WDTF tools to assist with driver submissions for WHQL process. Develop filter driver for inserting SAS sequence into keyboard stream. Develop virtual mouse device stack using KMDF as prototype solution towards utilizing sensor for user I/O navigation.
WHQL certification, Microsoft Driver Install Framework (DIFx),
InstallShield scripting, install packaging.
Apple Mac OS X platform software in Xcode. Technology/Environment:
VOIP, Ethernet Layer 2, Cisco IP Video, CDP driver, CDP RFC specification,
TCP/IP, x64, 802.3 Ethernet, TLV/TTL processing, PREfast, Apple Mac OS X,
Porting of Linux RAID driver to Windows SCSI miniport. Technology:
C/C++ Environment: Windows WDK.
Windows XP/Vista Network Device Drivers. NDIS, WDM Driver,
Windows Kernel, embedded software and BSP development for the company's
complete line of WiMAX mobile wireless PC cards on Windows XP and Windows
Vista, Reverse engineering pre-existing code-base, write new design
specification documents based on the reverse engineering result, fix bugs and
add enhancement features to the code-base thereafter. Support WiMAX drivers on
PCMCIA, CardBus, MiniPCI, SDIO and USB PC card interfaces. Design and
trouble-shoot wireless network drivers on Windows driver architectures through
WinDBG, SoftICE, crash dump analysis, debugview, etc.
BlueTooth / Wireless driver for camera device. Technology:
C/C++ Environment: Windows WDK.
Research of distributed file system on Windows 2000/XP. MIT Information Systems deploys and maintains AFS as a distributed file system across entire campus on XP and 2K workstations. Hired as principal to solve issues involving running AFS as Win32 system service. Research and author white paper for purposes of encouraging further discussion concerning benefits and tradeoffs of moving AFS to native file system running in kernel of XP/2K systems.
GEN 3.0 PCIe Reference Design card using Stratix GX FPGA.
Implementation of Altera Express Driver and associated DDK in Linux.
Development of Altera Express DDK for Windows using the Storport
Debugging of WDM PCI device driver that works on XP SP2 but
stops working after SP3. Technology: C/C++ Environment: Windows WDK.
Windows 2000/2003 Server SCSI Port/Miniport drivers
(Pentium + Itanium). Ported Windows code base to run as a Stor miniport driver
for AMCC's next generation 1/2/4/10 Gig. product. Built-in failover and
load-balancing capabilities. Performance enhancements via Intel VTune
NDIS NIC Miniport for a IEEE-1394 satellite receiver card. The
project includes the development of the WDM 1394 miniport and a Ndis miniport.
The NIC miniport also DeMultiplex MPEG-2 streams to an elementary stream or IP
datagram packet and deliver it to the transport drivers (IP Tunneling over
Windows 2000/XP SCSI miniport and Win9x VxD Development. Pioneer effort with select team to create client-side portion of streaming media player for Windows 2000/XP, leveraging existing technology for Win9x platforms. Responsible for kernel components including SCSI Miniport, dynamic device management, and completion of proprietary installable file system. Orchestrate developer-friendly build process for same project. Modify VxD components for previously released Win9x product.
PCI Express EXPRESSvault and DDR3 NVvault software
maintenance. Environment/Technology: Microsoft Windows Driver Kit,
Windows Storport Miniport.
UMDF driver for USB 2.0 device on Windows 7 32 & 64 bit. Technology:
C/C++ Environment: Windows WDK.
Debugging of device driver issues with USB GPS receiver on Windows XP.
Technology: C, Environment: Windows WDK.
Windows XP/2003 RAID miniport driver for LSI 1068
SAS/SATA controller. Integrated the LSI 1068 chip firmware (MPI
Fusion) to work with the Aristos software stack. This provided SAS/SATA support
to the Aristos RAID controller, which was fibre channel based at the time. Part
of small team which got the third generation chip (MPX) integrated to the
Aristos Software Stack. This product has native SAS/SATA support and is a
replacement for a currently shipping product. Refactored, simplified, cleaned
up and solidified 'inherited' code.
Debugging of USB driver crashes for an embedded product. Technology:
C/C++ Environment: Windows WDK.
Windows NDIS 5 Ethernet device drivers for AMD's PCnet family
of products. Windows device drivers to meet latest NDIS 5 and OS
specifications. Enhanced features for Fail-Over and Load Balancing as well as
Power Management (On Now/ACPI) and Windows 2000 Plug n Play. Optimization of
PCI bus mastering NDIS miniport for performance and implementation of Fast
Ethernet Channel standard and Port Aggregation protocol. Implementation of IEEE
802.1p priority protocol. De-Serialization for NDIS 5 driver for the PCnet
Ethernet 10/100 Mbps controller.
Windows virtual RAM/FILE-based storage driver for Win7/Vista/XP 32/64bit.
Technology: C Environment: Windows WDK.
Windows Kernel mode drivers (PS/2 and Serial ports interrupt handlers) for pointing input devices: mice, touchpad, trackball, cordless devices etc.
Windows XP/7/Vista Serial port (RS-232/RS485) WDM driver for a
PCI Express Card. Technology: C Environment: Windows WDK.
NDIS intermediate driver which was part of the RedCreek
Communication VPN client software which enables a remote user to securely
access corporate resources through either public networks or existing corporate
dial-up facilities. Security is provided through the use of 56-bit DES, 168-bit
Triple DES encryption) and the user authentication (ISO X.509 v.3 digital
certificates), and the key management (IKE)
Windows XP/7 Serial Attached SCSI (SAS) Miniport driver for the
LSI SAS 1064 Controller. Included installation script for seamless driver
installation. Technology: C Environment: Windows WDK.
NDIS miniport device driver for a line of DSL network adapters.
NDIS network device driver. A design and an implementation of
a high performance, deserialized network device driver for the 3COM Python
network server based Network Interface Card. The driver maximizes the level of
concurrency and the full duplex operation. It scales network throughput along
with the addition of system processors and network cards. In order to implement
the deserialization in the driver it should meet more stringent design
requirements. The driver protects SW and HW critical resources and also manages
its own queues rather than using the Operating System services.
Windows XP/Vista/7 XPS compatible print driver. Technology: C
Environment: Windows WDK.
Windows 7 USB driver silent install. Signing, INF, WHQL etc.
Technology: C Environment: Windows WDK.
Driver Signing of USB driver for XP and newer 32/64-bit platforms.
WHQL-submission. Technology: C Environment: Windows WDK.
Windows XP and Vista WDF Driver for an infrared Device. Use of
WinDbg and SoftICE. Technology: C. Environment: Windows XP, Vista DDK, Visual
Studio .NET 2003, WinDbg.
Windows XP kernel-mode drivers for disk encryption. Modification
of the bootloader, creation of disk filter drivers. Assembly and C reverse
engineering. Documentation. Use of WinDbg and SoftICE. Technology: C.
Environment: Windows XP DDK, Visual Studio .NET 2003, WinDbg.
TDI driver for a 10 Gbps Ethernet network card. Use of WinDbg
and SoftICE. Technology: C. Environment: Windows XP DDK, Visual Studio .NET
Windows 2000 NDIS intermediate driver. An architecture and a
design of a server based Port Aggregation and Fail Over system. The design was
based on a development of a Windows 2000 NDIS intermediate driver for
supporting VLAN (virtual LANs) and Fail-Over. This driver supports a Plug and
Play configuration of virtual LANs and fail over teams. Also, it supports the
Fast Ethernet Channel trunking protocol as well as a generic port aggregation.
Reverse-engineering and debugging of a multi-port serial WDM driver for
Windows 2000/XP. Fixed major bugs and implemented flow control in
the driver. This was for a custom multi-purpose I/O board. Use of WinDbg and
SoftICE, Oscilloscope etc. Technology: WDM, C. Environment: Windows XP DDK,
Visual C++ 6.0, WinDbg.
NDIS 5 network driver for 802.11a wireless device. The NDIS 5
driver was developed for a prototype in a ten-week period. Along with a driver
a diagnostics infrastructure was developed to enable interaction between a user
mode test script application and the hardware through the driver. The driver
over the prototype was used to demonstrate a DVD stream playback over the
Porting an existing USB driver to Vista. Technology: WDM, C.
Environment: Windows XP DDK, Visual C++ 6.0, WinDbg.
W98 to Xp PCI card driver porting for several custom PCI cards.
Technology: WDM, C. Environment: Windows XP DDK, Visual C++ 6.0, WinDbg.
NT 5 Graphics and Video Input Drivers for the Cyrix Media-GX
and Media-MXi platforms. The drivers were developed for the Windows NT 5.0 Beta
Operating Systems and include the latest features such as : Multiple monitor
support, Power management and Kernel Mode Interface. The Display driver
includes the support for Direct Draw 6.0 and the implementation of the Video
Port Extension interface.
Redesign of USB 1.1 USB driver to 2.0 for XP/Vista. 8 channel
I/O isochronous audio data streaming Synchronization to master clock. I/O
channel selection. Interface with a control panel. MIDI message handling
support Multiple sample rate support (48KHz, 96KHz). Environment: Windows
XP/Vista DDK, Visual C++ 6.0, WinDbg.
WDM Kernel Streaming driver for PC based digital TV. An
architecture, design and implementation of system modules and device drivers
for PC based digital TV. The implementation includes a WDM Kernel Streaming
mini driver for controlling an on-board MPEG decoder and streaming data. The
driver enables the satellite receiver PCI card to participate in a Direct-Show
graph for streaming and synchronizing audio and video. The driver extracts data
streams out of the MPEG2 transport and injects IP data to the built in IP stack
of the Operating System. Also, an NDIS intermediate driver was developed to
enable the delivery of an IP based data to the OS stack.
WDM driver for a custom PCI I/O card. The I/O card contained
several D/A converters, serial EEPROM and other components that the card
interfaced to via the I2C serial interface. A driver installation script was
provided for seamless installation. The driver was designed to work on the
Windows 98 / 2000 / XP / 2003 platforms. Technology: WDM, C. Environment:
Windows XP DDK, Visual C++ 6.0, WinDbg.
Windows XP printer driver for USB Device. Windows XP DDK,
Visual C++ 6.0, WinDbg.
Windows 9x and NT/2000 kernel mode development of XML/SVG printer drivers.
Generates an XML/SVG file that contains scalable information that describes the
printed page. The SVG file can later be viewed using Adobe's SVG viewer or
printed to an SVG compatible printer. Technology: C. Environment: Windows
9x/2000 DDK, SoftICE.
XP/Vista/Server 2003/Server 2008 32/64-bit Windows Network Driver
for Controlling QoS Tagging. Technology: C. Environment: Windows WDK.
Multi-Channel and AC3 Direct Show audio renderer filter audio driver
for the Aureal Vortex hardware. The filter includes an implementation of a
Direct Show graph clock, which is used to synchronize the audio, and video
streams embedded in a DVD. The WDM driver supports an internal and external S/P
DIF for multiple channel output.
WDM and VxD device drivers for Windows 95/98/98SE/2000/XP/Vista.
The drivers intercept all sounds sent via the Wave and DirectX/DirectSound
APIs, applies various 3D-sound algorithms to the sound data before sending the
sound buffers on to the sound card or USB speakers. Also developed a user mode
DLL for hooking Wave out on Windows 9x. Technology: WDM & VxD kernel mode
development in C and x86 Assembly. Environment: 95/98/W2K DDKs. 16 bit compiler
for the hook DLL.
Windows XP USB Driver for Custom USB Device. Device firmware
development. MicroChip PIC4455. Microchip MPLab. Environment: Windows XP DDK,
Visual C++ 6.0, WinDbg.
Windows 2000 Graphic Device Drivers for the Rendition 22000 graphic chip.
A video miniport incorporated enhanced features of the Windows 2000 including
Plug N Play, Power Management and the support for Multi-Adapters. Microsoft
Windows Hardware Quality Lab (WHQL) tests.
Windows XP application, firmware and driver for USB2.0 SCSI
NAND SD Flash mass storage device to help Production Test of USB flash drive
controller & embedded USB PHY. Develop Visual Basic 6 test application and
user mode DLL in Windows XP to drive USB device. C, Python, Jungo USB tool,
Windows XP, JTAG debugging, Visual Basic 6. USB Host and device driver
implementation for HID and SCSI MSC drivers. Firmware testing
verification/validation, production test. Terydyne ATE tester, USB2.0 HUB, 8
USB 2.0 SD flash memory cards with SPI interface. Improve real-time test
performance, debug test program in CATC and Ellisys USB protocol analyzers.
Technology/Environment: USB2.0, SCSI, NAND SD Flash, mass storage device, USB
PHY, Visual Basic 6, HID and SCSI MSC, USB2.0 HUB, CATC and Ellisys USB
Windows 2000 Display driver. Include an implementation of the
GDI Device Driver Interface. A video memory manager enabled a high performance
drawing functions on on-screen as well on off-screen Device Managed Bitmaps.
Microsoft Windows Hardware Quality Lab (WHQL) tests.
Windows 2000/XP/Whistler printer driver that generates
SVG/XML-data. Contains two COM-component plug-ins that handle rendering into
the XML/SVG file respectively defines the user settable properties of the
printer driver. Technology: COM, ATL, and C. Environment: Windows 2000 DDK,
Visual C++ 6.0.
OpenGL graphics drivers for multiple graphics chipsets.
Optimized NT driver that rotated graphics to make a portrait display.
Windows CE printer driver design and implementation. Porting of
Windows CE operating system code to a new hardware platform. Setup of Windows
CE build environment on a build server and system integration of Windows CE to
the target system. Technology: Microsoft Windows CE 2.0. Environment: Microsoft
Embedded Toolkit, C.
WDM Kernel Streaming mini driver for hardware DVD decoder to
support high-performance video/audio playback. The driver handles 3 types of
streams ( video-MPEG2, audio PCM and AC3 and the sub-picture ) through the use
of Direct-Show proxy filter. The Video is rendered through the Direct Draw HAL
and VPE extensions. Implemented Audio/Video synchronization and provide the
Direct-Show graph clock.
NT4, CE 1.0 device driver and application development. Various accomplishments for Windows NT embedded market, including augmenting NTDETECT functionality, modifying NT kernel device drivers, developing multi-threaded benchmarks, creating GUI applications to monitor above, and documenting interfaces and various research activities. Work with Windows CE 1.0, modifying kernel code and developing drivers and applications for various hardware platforms (Intel, MIPS 4300, Hitachi SH-3). Access high-resolution timer for purposes of obtaining hard real-time metrics to investigate viability of this platform for real-time embedded market. Port EIDE disk driver from NT DDK to CE 2.0 for company's QuickStart product. Design and develop DOS-less boot product to load and run Windows CE images for x86 PCs. Created NT kernel driver for booting NT Embedded from CD-ROM.
Windows Real-time HAL subsystem replacement. Design and develop
calibration and diagnostics ATE software components, and made significant
real-time software performance improvement to micro-controller based software.
Design, implement and test ATE calibration and diagnostics modules in
large-scale ATE software packages. Choose a Windows Real-time extension
subsystem to replace regular HAL and interrupt scheduling. Design and implement
real-time solution, and multi-tasking benchmarking application in C and C++ on
Windows DDK. The result shows that the interrupt latency and repeatability
improved by at least 100%. Develop real-time application software SDK based on
the new design and successfully release the SDK to both internal and external
customers. Develop Python and Perl based unit test tools and nightly build
scripts. Technology/Environment: Windows HAL, C and C++, Python and Perl.
NT4 stream device driver in C++. Used for generating simulated
data that implements a virtual USB device. Technology: Vireo Driver::Works
class library, C++. NT DDK, C. Environment: NT4.
Windows NT Filter driver development. Determine and correct show-stopping problem on Windows NT platform for software licensing system. Create NT filter driver for data protection scheme. Development on similar project using Win32 API-hooking approach.
WDM Audio miniport driver for Sti4600 AC3 decoder.
USB WDM device driver for Windows98/NT5. Used for collecting
real-time data from a medical data acquisition instrument. Technology:
Microsoft DDK. C. Environment: Windows 98 and Windows 2000.
Modem network stack design and implementation. Error
correction and data compression protocols over telephone modem complying with
the standards V42, V42bis , MNP 2-4, MNP 5 for National Semiconductor. Protocol
stacks software is event driven and implemented as background tasks executing
on a proprietary real-time multi-tasking operating system.
Advanced multi-threaded WIN32 DLL and application development for NT 4.0 Workstation. Client is developing a medical device that monitors a laser catheter inside the heart and displays a 3D representation of the movement and operation of the catheter in real-time on Windows NT 4.0 Workstation. Responsible for design, development, documentation, and delivery of multi-threaded Win32 DLL that employs OVERLAPPED serial I/O for real-time acquisition of coordinates from tracking system. Library also parses data stream and provides soft real-time data management for graphics application, exposing an API to readily access formatted data representing catheter activity. Also implemented multi-threaded dialog-based application for development tool.
NDIS network driver for an ATM/ADSL card on
Microsoft platforms. Performed impact studies for proposed product lines,
describing kernel issues and conflicts.
Windows CE portable medical data acquisition device
system and application programming. Subprojects included: 1)
Specification and development of Windows CE device drivers for data
acquisition, 2) Windows sockets communication over infrared link (IrDa), 3)
Application programming using WIN32API, Visual C++ and MFC for Windows CE.
Environment: Windows CE, C, C++, Embedded toolkit for VC++.
Windows 95/NT device drivers and system design of an ISDN Multimedia
telephone for Windows 95/NT. DirextX technologies like DirectShow,
DirectDraw and DirectSound were used for multimedia presentation. A video for
windows (VFW) device driver was used for interfacing the hardware with the
system. A NDIS 4.0 miniport driver handled the network communication. TAPI was
used for call management. Technologies: DirectX, VFW, NDIS miniport, TAPI.
Environment: Microsoft DDK, Windows 95/NT, C/C++.
Wireless modem drivers for Win95/DOS. Implementation of software class to support wireless modem under Windows95 and extended-DOS through TSR. Also research and partly implement serial port driver for supporting multiple protocols, via NDIS and serial port VxD. Help design future architecture for Winsock 2.0 compatibility.
NT device driver for a PCI based fibre network card. Subprojects
included: 1) Specification and development of an NDIS 4.0 miniport. It used bus
master DMA for transferring data between main memory and the PCI Network card,
2) A LAN emulation software was designed and implemented for interfacing NT's
connectionless TCP/IP network stack to the connection oriented DTM network.
Environment: Microsoft NT DDK. C, Windows NT 4.0.
Windows NT stream device driver used to control a
general-purpose parallel ISA interface board. A user mode DLL was developed for
easier access to the device driver from application programs written in C, C++,
Pascal and Visual Basic. Test applications for the targeted programming
languages were also developed. Technology: Microsoft NT DDK, C, WIN32 API,
Visual C++ and Visual Basic.
Software for LCD-based projection system.
Included drivers for Windows 95 and NT, an emulator using MFC in Visual C++,
and applications and utilities in Visual Basic and Win32.
Kernel mode audio driver for Microsoft Windows NT. The audio
board was partly Soundblaster compatible. User mode support drivers were also
developed which enabled plug-into the NT multimedia subsystem. Technology: C,
Microsoft C Compiler.
Windows for Workgroups 3.11 NDIS 3.0 miniport. The miniport
controlled a NE2000 compatible ISA network card. Installation script was also
developed for the network driver. Technology: C, Microsoft C Compiler.
Past Linux/miscellaneous device driver projects
Linux WLAN 802.11n PCIe and Mini PCI device drivers.
Designed and implemented Linux kernel driver, managed and updated kernel driver
distributions and driver packages, automated packaging tools, GNU toolchains
and Make. Developed AP and station system software in power management, MIMO
Power Save, encryption and decryption, Wi-Fi performance and throughput
optimization. Technology: WLAN 802.11n PCIe and Mini PCI, Environment: GNU,
C/C++, Linux Kernel.
Linux kernel software and device drivers for Storage, Fiber
Channel based storage adapter and data center I/O virtualization solutions on
XEN and KVM. C and C++, Linux kernel mode virtual storage driver. XEN
Hypervisor open source virtualization development, modification, and
performance optimization for servers in data centers. Paravirtualization
development in Linux Kernel-based Virtual Machine (KVM) for storage I/O
controller. Designed and developed High Availability (HA) drivers for iSCSI bus
adapter, virtual Ethernet NIC.
Atheros IEEE 802.11s MadWiFi embedded Linux WLAN NIC driver. Development and support of wireless mesh network implementation.
Linux 3G/WiMAX kernel driver for security, intrusion detection
and blocking features for the company's WiFi analyzer software suites. Develop
VoFi (Wireless VoIP) analyzer software to analyze and pinpoint wireless
communication issues for clients. Implement application to integrate with Cisco
Call Manager protocol engine into VoFi analyzer to analyze Cisco VoFi phone
call statistics, QoS metrics and identify problem areas. Develop 802.11a/b/g
WIFI driver on Atheros 5212 based on PowerPC IBM405GP platform running Denx
ELDK embedded Linux, on MiniPCI Atheros Wifi card. Ubuntu Linux host dev
platform. Read Mini PCI IBM 405 data sheet, troubleshoot PCI register
configuration problems. MadWifi Soft AP access point configuration shell
scripts, AP management CLI and Web interface in CGIC scripts and thttpd web
Linux kernel (2.4 and 2.6) software and device drivers for
multi-service business gateway devices which integrate VOIP, Ethernet, DSL, and
T1/E1 WAN interfaces. C and C++ in real-time embedded Linux and VxWorks U-Boot
bootloader programming, UBoot customization, board bringup. Linux kernel
ramdisk based image programming, TFTP protocol. Fix interrupt handling problem
in interrupt service routines. Technology/Environment: 802.11n WiFi drivers,
ADC/DAC, Bluetooth, Linux 2.6 Kernel, BSP, MadWiFi, Linux Target Image Builder,
3G/WiMAX, Wireless VoIP, 802.11a/b/g WIFI, Atheros 5212, PowerPC IBM405GP,
embedded Linux, Ubuntu Linux 2.4/2.6, VOIP, Ethernet, DSL, and T1/E1 WAN, C and
C++, VxWorks U-Boot, TFTP.
Atheros OEM Wi-Fi drivers for embedded Linux boxes and MS Windows PCs. Drivers were used for a proprietary wireless meshes network-based integrated mobile video surveillance system for public safety applications.
OpenBSD/NetBSD Network Device Drivers. Embedded software and
BSP development for the company's complete line of WiMAX mobile wireless PC
cards on OpenBSD and NetBSD. Reverse engineering pre-existing code-base, write
new design specification documents based on the reverse engineering result, fix
bugs and add enhancement features to the code-base thereafter. Support WiMAX
drivers on PCMCIA, CardBus, MiniPCI, SDIO and USB PC card interfaces.
Technology/Environment: OpenBSD/NetBSD, CardBus, MiniPCI, SDIO and USB PC card,
wireless, crash dump analysis, IPv4 and IPv6.
OpenBSD and NetBSD wireless driver debugging and
troubleshooting. Drivers implement Ethernet and IP Convergence sublayers,
Packet classification, QoS support, Connection management, IPv4 and IPv6.
Software deliverables include downloadable firmware, config files for chipsets,
NDIS device drivers on Windows, API library/DLL, installer setup programs, and
sample connection management application. Technology/Environment:
OpenBSD/NetBSD, CardBus, MiniPCI, SDIO and USB PC card, wireless, crash dump
analysis, IPv4 and IPv6.
Linux PCIe Gen 3 driver for Altera Stratix
GX FPGA Reference Design board. Implementation of Altera Express Driver and
associated DDK in Linux. Development of Altera Express DDK for Windows using
the Storport Miniport.
Solaris UNIX disk driver performance tuning.
Increased Solaris driver performance by 25%. Responsible for getting the
Solaris driver through the McData qualification test cycle. Debugged various
problems found in the field. Did core dump and protocol analyzer trace
analysis. Re-architectured and maintained the hardware access layer of the
PCI Express Linux device driver and configuration utility
for SSD (solid state disk). The driver supports both block and
character devices as well as proprietary IOCTL interface. Extensive user manual
Broadcom device driver for WiFi
radios on embedded Linux and Android systems. Added features such
as detecting DHCP packets and signaling events for them. Debugged and improved
proprietary user-space WiFi management utility in C. Provided on-site customer
support to debug issues in the field.
Linux touchscreen driver in C
to be used on next-generation multi-lane PIN entry retail payment terminals,
using Cirque Pinnacle touchscreen controller on SPI bus. Supported 300
sample/second signature-capture mode, finger-only mode, and signature window
mode where finger input is ignored inside signature box but accepted elsewhere.
Also implemented touchdown, smoothing, and linear correction filters.
Configuration options implemented with sysfs.
Nucleous RTOS thermal printer
control driver in C, implementing new algorithm which buffers
lines and computes optimal speed for each line so that motor can be decelerated
before reaching lines requiring many dots turned on, in order to avoid sudden
deceleration which caused compressed lines.
Nucleus RTOS Embedded C
programming. Implemented new features in PIN entry terminal
software such as printer overvoltage detection. Debugged and fixed issues with
PIN entry terminal C++ software running on Nucleus RTOS, such as intermittent
error with I2C bus read, and string buffer overflow error during password
entry. Brought up Linux development environment for new generation of
Linux-based payment terminals.
Linux device driver for MSC7120
GPON (Fiber-to-the-Home) SoC product based on e300 PowerPC core,
with one 2.4 Gbps optical port and two gigabit Ethernet ports. Provided
extensive debugging support to characterize silicon bugs and devise software
workarounds. Created MAC bridging driver using C to bridge optical and Ethernet
network ports on MSC7120, using the existing Linux bridging driver to learn new
routes, and then programming these routes into Direct-Link Bridge hardware on
SoC to achieve bridging between these network ports at full speed. Added /proc
filesystem tree to Linux device driver for printing debug information. Added
features to device driver, such as implementing configurable outgoing packet
padding and VLAN select bit in buffer descriptor. Created automated release
notes generation utilities using Perl and LaTeX. Set up and managed Bugzilla
website for tracking bugs within group.
Linux 2.6 kernel and OpenEmbedded
filesystem. Brought up Intel IOP348 development board. Took
performance measurements using hard drives connected to IOP348 with SATA, using
Linux RAID subsystem. Created C application to communicate with host computer
over Ethernet and transfer data to and from drives in order to measure
Linux 802.11 NIC driver debugging: connectivity issues (with Meru AP) for a medical equipment company (Atheros code-based embedded Linux 802.11 NIC driver).
Implemented Linux Kernel
message-signaled interrupt (MSI) support for Intel IOP34x X-scale
I/O processors. Modified Vitesse SATA controller driver (sata_vsc) to use MSI
interrupts and successfully submitted for inclusion in Linux kernel.
libposix-aio library using C to be thread-safe and modified IOmeter application
to use it.
iSCSI kernel driver for Linux.
Debugged and tested proprietary iSCSI kernel driver on Intel IOP341.
Architected, wrote, and debugged a run-time C++ data coherency test checking
application ("Intrepid") which interfaced to VHDL bus trackers using Verilog
PLI and was used for pre-silicon validation of three-core processor for use in
mobile applications. Performed pre-silicon RTL debugging on X-Scale ARM I/O
processors using ModelSim in Verilog. Wrote automatic test generation and
checking software in Perl for use in pre-silicon validation, and also for
validation of Linux-based NAS product. Set up and administered Linux servers
for group use (Bugzilla, Subversion, NFS/SMB, backup, etc.).
Debugging of Embedded Linux 802.11ac/n SoC device drivers.
Link Layer Solaris GLDv3 10GBit Ethernet driver for Sun OS 10
and OpenSolaris Operating Systems. Driver includes implementation for CrossBow
extension for network and device virtualization.
Linux driver for a 5MP MIPI camera on a TI
OMAP4460-based Pandaboard. Designed adapter board to interface a 12.7MP camera
to the Pandaboard.