HARSHAVARDHAN BOKIL 949-***-**** kica1o@r.postjobfree.com
*** *** ****** **, ******, CA 92602
SUMMARY
=======
Embedded software professional with a demonstrated ability to successfully
develop BSP, device drivers for various ARM and MIPS based SoC, open source
middleware integration and enhancements.
- 11 years of experience with embedded Linux, VxWorks - across system level,
middleware and application on ARM and MIPS based chipsets.
- Proven programming skills in C,C++.
- Experience wprking on embedded Linux and device driver development- UART, SPI,
I2C, MTD, MFD, LCD, Input, USB, Ethernet, SD-MMC.
- Experience working on graphics subsystems such as DirectFB, XServer on
embedded Linux systems
- Experience working on multimedia software such as gstreamer, ffmpeg.
- Experience working on UI frameworks such as GTK, QT 4.6.x & 4.7.x over
different graphics subsystems
- Extensive work on open source components such as Evolution Data Server (PIM
component), optimized the design for effective usage of memory and CPU
- Exposure to Qt/Webkit and Anroid/Webkit.
- Extensively used application development tools such as strace, gdb, ltrace.
- Exposure to third party Linux platforms such as ALP, Poky, OpenMoko, Android,
Maemo, Meego.
- Extensively used Linux based build systems such as buildroot, scratchbox,
openEmbedded with deployment on board, SVN, CVS, Clearcase, Perfoce for
configuration management.
- Experience in platform level optimization for a mobile handset platform.
- Exposure to uboot.
- Good communication, presentation and interpersonal skills, self-motivated,
quick learner, team player, team leader with good problem solving ability.
EDUCATION
=========
- Bachelor of Engineering in Electronics and Communication (B.E) - University
of Pune, India
EMPLOYMENT HISTORY
==================
- As Sr. Software engineer embedded with Conexant from FEB 2011 to Present
- As Technical Lead / Solution Architect with Persistent Systems from AUG 2006
to FEB 2011
- As Project Lead with eInfochips Limited from SEP 2004 to AUG 2006
- As Sr. Software Engineer with Ruksun Software Technologies from JAN 2004 to
AUG 2004
- As System Analyst with Cybage Software from AUG 2002 to JAN 2004
- As Software Developer with Cruise Controls from OCT 2006 to AUG 2002
TECHNICAL SKILLS
================
- Languages: Assembly, C, C++
- IDE/Tools: Windriver Tornado & Workbench, GNU make, scratchbox, buildroot,
Microsoft Windows CE platform builder
- Target Operating Systems: Embedded Linux, VxWorks, Windows CE
- Version Control: SVN, git, clearcase, trac
- Host Operating Systems:Windows XP, Ubuntu Linux 6.10 to 10.04
- Target Hardware: ARM, MIPS, PowerPC, Xtensa LX, UART, SD-MMC, I2C, SPI, USB,
LCD, Keypad, MFD. (TI-OMAP, BCM2153, BCM2820, NXP, TNETV1051, MPC860T)
- Communication Protocol: TCP/IP, Ethernet
- Open Source components: Evolution Data Server, Qt, Qt mobility, Gtk, Xserver,
DirectFB, Webkit, dbus, tslib, sqlite3, gstreamer, ffmpeg etc
- Debugging tools: ltrace, strace, gdb, oprofile etc
Experience
==========
Conexant Systems Inc Feb 2011- Present
-----------------------------------------
Qt based Imaging platform
Conexant's imaging platforms feature a high performance 1080p hardware video
engine, a graphics processing unit with Display List Processor, Alpha Blend,
and Clipping Units, ARM microprocessor with Vector Floating Point Processor, a
programmable LCD interface, hardware JPEG codec, and Conexant’s advanced Image
Processing pipeline to deliver image quality and performance. The SoC includes
an integrated Ethernet MAC, SD/SDIO port, and multiple USB 2.0 host and device
ports to support 3G, WiFi®, Bluetooth®, or other network peripherals, stereo
Class-D amplifier with speaker and line-out support, microphone input,
touchscreen controller, LVDS transmitter, backlight regular power supply
controller flash. Combined with software development kit (SDK) and hardware and
firmware, enables customers to quickly design cost-effective digital imaging
products.
This project involves providing gstreamer based multimedia support for this
family of chips.
Responsibilities
- Integration of gst-ffmpeg open source package into the platform.
- Added support for hardware decoders in ffmpeg and gst-ffmpeg.
- Added support to fbdevsink plugin of gstreamer to utilize the post processor,
integrated with hardware decoder.
- Added support to QVideoWidget of Qt 4.6.0 in order to utilize the enhanced
fbdevsink, provided by gstreamer.
- Qt mobility integration
Environment: C,C++, Linux, Buildroot
Persistent Systems (Client: Nokia Inc) July 10- FEB 2011
---------------------------------------------------------
Qt based Set top Box
Nokia promots Qt which is a cross platform framework to devices like Set top
box.This project involves integrating Qt with the Linux platform delivered
by the OEM, fixing integration issues, performance issues and feature addition.
Responsibilities
- Qt build integration with makefiles
- Functional and performance analysis of Qt applications
- Modifications to aQt plugins for directfb
- New feature additions such as web-gl and HTML5 multimedia
- Development of Proof of concept applications over Qt
Environment: C,C++, Linux, GNU make and related tools
Persistent Systems (Internal project) Jan 09-Mar 10
-----------------------------------------------------
Linux Mobile Competency
Started under a growth initiative during economic slow-down, this project aims
at the demonstrable product (not a COTS) that involves Linux kernel, mobile
phone middleware, applications and which can express the team's capability to
work on a Linux based mobile platform with majority of open source packages and
platforms. It also aims at the scalability factor to train engineers in a large
number. Project also includes third party software stack realization on hardware
such as pokylinux, android etc.
Responsibilities
- Qemu (Quick Processor emulator) setup with Linux kernel built for SoC
simulated by Qemu with nfs-kernel-serer, scratchbox, busybox, bridge-utils.
- Modification in Versatile Board LCD driver and Spitz board mtd driver for Qemu
emulation.
- XServer and DirectFB integration, fixes for Qemu
- Modifications to Qemu for simulation of PXA270 based SoC
- Gtk integration to work on XServer and / or DirectFB. Optimization for Memory,
CPU speed and application startup time
- Development of Application manager and alarm manager
- Integration of Evolution Data Server for PIM applications. This acts as a
middleware communicating over dbus.
- Qt 4.6.x build for the platform
- Modifications to Qt web browser
- Development of small application, typically for a Linux based embedded device
platform such as Homescreen (with GL effects in Qt), OpenSocial,
Fleet Management, Web browser etc
- Linux kernel migration from 2.6.21 to 2.6.29 on TI DaVinci based DVEVM6446.
Involved fixes in USB driver
- Web browser running on a TV screen with TI DaVinci
- Linux kernel migration from 2.6.24 to 2.6.27.10 on TI Omap 3430 based Mobile
Development Kit.
- Integration of Powervr driver in the kernel
- Integration of DSP bridge
- Set up for trac and SVN server to make the platform available for contribution
by workforce available in a typical service provider company.
- Realization of Android, PokyLinux, Maemo over Omap 3430 MDK
Environment: C, C++, GNU make, Ubuntu Linux, scratchbox.
Persistent Systems (Client: Broadcom) Oct 07- Apr 08
------------------------------------------------------
Linux based platform development
Broadcom’s mobile and wireless development group is responsible for making Linux
kernel available for ready use the ARM based chipsets. This project involves
development of device drivers for newly added peripherals in the SoC,
integration of some basic middleware components such as Gtk, DirectFB etc
Responsibilities
- Linux 2.6.23 base kernel port.
- DMA subsystem migration from 2.6.17 to 2.6.23.
- Timer subsystem migration.
- u-boot modifications for SoC.
- SD-MMC driver migration from Linux kernel 2.6.19 to 2.6.23.
- NOR and NAND flash driver and integration with Linux mtd subsystem.
- Integration of USB mass storage class driver in Linux USB subsystem.
- LCD driver development.
- Keypad driver development and integration with Linux input subsystem
- Development of firmware upgrade utility
- Integration of Gtk and DFB as builtin-components. Optimizations to Gtk
Environment: C, C++, GNU make, Ubuntu Linux, buildroot
Persistent Systems (Client: Azingo Soft Systems) Dec 06- Oct 07
----------------------------------------------------------------------
PIM middleware development
Azingo developed a Linux based mobile handset platform (middleware and
applicaitons) . PIM middlware was needed for applications like addressbook and
calendar. This middleware has 2 parts viz a daemon and a library that links
with an application and queries the daemon over dbus and present a response from
the daemon to the application.
Responsibilities
- Requirement analysis.
- Feature comparison among PIM components for Windows Mobile, Symbain and
Evolution Data server.
- Migration from Berkley DB library to Sqlite3 for data storage.
- Modifications to database query API.
- Feature addition- Changed the communication from dbus which makes the dbus
daemon consume most of the CPU time across platform to dbus+sockets which uses
dbus to sync and socket for data transfer.
- Feature addition- memory optimizations for addressbook and calendar backends.
- Reduction in memory footprint by removing the unwanted features from build
- Development of profiling utility for Gtk based application
- Gtk optimization for application startup time and memory footprint
Environment: C, C++, GNU make, Ubuntu Linux, scratchbox
eInfochips (Client: Texas Instruments India) Dec 05- Aug 06
--------------------------------------------------------------
PSP development for Broadband system platforms
TI’s PSP group provides OS support for the chipsets under development by TI.
The broadband system team within PSP group works on SoCs designed for
broadband communication systems such as a VOIP phone, Cable modem etc. This also
involves OS enhancements such as migrations from older versions of OS to the new
one, enhancements in device drivers during each port, addition of new drivers
for newly added peripherals. This project involved Linux 2.6.10 and VxWorks 6.2
porting across BSP to device drivers.
Responsibilities
- Documentation-Requirements specifications
- Modifications in the boot loader for the previous version of SoC, based on the
memory map and flash storage technology. (Provided support for NAND flash,
modified the memory mapped register definitions, initializations etc.)
- Worked on FPGA based boards instead of released boards, as the hardware and
software development went in parallel
- Modifications in the device drivers I2C, SPI, USB 1.1 based on the changes in
hardware design
- Development of device drivers - Ethernet Switch
- Provided WindML® compatibility to character LCD
- graphical LCD and Keypad drivers
- Design and development for hardware Ethernet packet filter - Assembler for the
special purpose micro controller which is a Windows XP / Linux based application
- API for configuration and programming
- user level API for the same in target Linux OS
- API for VxWorks based applications
- Developed DMA interface for various device drivers in the platform
- Provided support for IDE build method along with command line build
- Test planning for the entire platform
- Test applications development for drivers and middleware
Environment: C, C++, GNU make, WindRiver Workbench, Tornado etc
eInfochips (Client: Xipkey Singapore) Aug 05- Dec 05
------------------------------------------------------
USB Computer
This project involves developing a USB slave device to boot Windows XP.
The OS image stored on the device serves as the boot image.
Responsibilities
- Design and development of USB 2.0 slave driver for mass storage device type
Developed in C over ARM based micro controller
- Design and development of control logic for multiple writes to the flash device
- Design and development of interface provided by a FPGA logic to read and write
to flash storage device
- Design and development of flash management logic
Environment: C, Keil IDE
eInfochips (Client: Tensilica USA) Dec 04- Jul 05
------------------------------------------------------
Configurable processor
Tensilica has a configurable processor based on the architecture Xtensa LX. To
promote this product, a cycle accurate simulator is developed to profile the
software running on it and to obtain a ‘real picture’ of how optimized the SoC
under design will be. This is based on SystemC library. The project involved
testing the simulator library that provides an API that helps simulate the SoC
based on Xtensa LX core. The testing is done developing C applications using the
simulator library, which when run, behave as an SoC. Also, this project involved
J2ME porting onto the simulated processor.
Responsibilities
- Development of SoC simulators using a library provided by processor vendor
- Test planning, test case definition for all the API provided by the library,
based on systemC
- Execution of test applications over simulated SoC and test report generation.
- Performing the same tests from an eclipse based IDE
- Compilation of J2ME (CLDC configuration)
- Integration of J2ME with the hardware abstraction layer of the Xtensa LX
processor
- Development of processor simulator in C using a library which is distributed
by processor vendor
- Execution of J2ME main function from the boot loader provided by processor vendor
- Development of simple Java applications over J2ME, Execution of test applications
and generation of performance benchmarking data
Environment: C, Red Hat Linux, Windows and Solaris
Ruksun (Client: bSquare USA) Jan 04- Aug 04
----------------------------------------------
Windows CE based PDA platform
bSquare develops software development kits for PDA platforms. For varying customer
needs, a reference platform based on PXA255 was created in order to accelerate
the deployment of end product exactly according to the specific needs. This
project involves integration, modifications to Windows CE OS at driver and
application level.
Responsibilities
- Self-learning - WinCE as a platform, Board bring-up with Windows CE 4.2
- Integration of device drivers provided my Microsoft with the platform
- Modifications in the PDD (Platform Device Driver) based on the architecture
details of the SoC such as memory map
- Integration of third party compact flash driver and file system (supplied by
the vendor)
- Integration of WinCE test kit and test execution for drivers. Bug Fixing for
the whole platform
- Various miscellaneous tasks such as Power Management applet modification,
Porting Legacy applications onto the new platform
Environment: C, Microsoft Windows CE 4.2 Platform Builder
Cybage (Client: ILTS USA) Aug 02- Dec 03
----------------------------------------------
Online gaming system
ILTS develops online gaming systems that involve lottery systems as well. This
project is an umbrella project which was actually an ODC with various tasks.
This involved learning of the system on-site, training team members off-shore,
enhancements to existing systems with respect to the technologies used.
Responsibilities
- Development setup
- Wireless point of sales terminal enhancements
- Interface for web based sales terminal in OSS (Heart of the system)
- Bug fixes
Environment: C, OpenVMS
Cruise Controls (Client: Centerpoint Broadband) Oct 00- Aug 02
--------------------------------------------------------------
Wireless radio
Centerpoint developed a series of wireless radio for the target customers such
as a mobile service provider or an Internet service provider. These products
can be used to set up a long haul network for such services. This is an umbrella
project which involves software development for the radios over VxWorks/PowerPC
platform, SNMP agent extensions, Automatic Test Bench for manufacturing the
radio. The radios were of different capabilities based on the wired data rate
the radio supports- Ethernet, 34Mbps (called as AIM34) and 310 Mbps (called as
AIM310)
Responsibilities
- Development of SPI driver in RTXC OS for QUICC 68360
- Implementation of MIB access module for an EEPROM connected to SPI
- Contributed to BSP development for VxWorks/MPC860T
- Design and development of management module for wired interface of the radio
(User Interface Board)
- Extension to Envoy SNMP agent of VxWorks for custom MIB as defined by
Centerpoint, contributed to MIB definitions.
- FPGA programming module that programs various FPGA during system
initialization
- Development of calibration utility for AIM310 (Utility to change the
transmitter frequency and temperature)
- Development of Automatic Level Control (ALC) and Automatic Gain Control (AGC)
for AIM310
- SNMP agent extension for custom MIB for AIM310 outdoor unit.
Environment: C, GNU make, Tornado