Thomas J. Merritt
PO Box 3357
Oakland, CA 94609
(510) 652-0151 x115
e-mail: tjm at codegen dot com
Areas of Expertise
- CodeGen's SmartFirmware, an implementation of IEEE Std. 1275, 7 years.
- FreeBSD system administration, kernel development, device drivers, and applications development, 10 years.
- X Windows server device drivers, 5 years.
- Kernel device drivers for Solaris, HP-UX, Digital Unix (Tru 64), FreeBSD, Linux, LynxOS, and VxWorks, 8 years.
- TCP/IP client/server network programming, 13 years.
- Embedded software development, including custom operating systems and
device drivers, with MIPS, PowerPC, Alpha, and 68000, 20 years.
- X Windows/Motif graphical user interface development, 7 years.
- Unix applications programming and systems administration, 20 years.
- Assembly language programming on wide variety of processors, 16 years.
- C++ programming and class library development, 9 years.
- C programming language compilers, 5 years.
- Microprocessor emulation and logic analysis, 3 years.
- High performance storage allocators, 8 years
- Application level performance tuning, 9 years.
- 1/92 - Present CodeGen, Inc., President
I am responsible for day to day operation of the Company. I have been
responsible for hiring outside professionals for various services that
the business has required, such as legal and accounting services.
I have also developed a number of software packages and technologies that
CodeGen licensees to its clients. These include a compiler back end that
supports the Am29050, i960, MIPS R4000, DEC Alpha, PowerPC, Motorola 680x0,
and IA-32 processors, as well as the 68HC11 and 68HC16 microcontrollers.
This compiler technology is currently available as part of our CC-Fcode
My focus for the last six years has been developing our SmartFirmware, implementation of the
IEEE-1275 OpenFirmware standard. I have been involved in the design of
nearly every aspect of the product, and have been primarily responsible
for the memory management, PCI bus and Flash memory support. I am currently
working on system support for the AMD Athlon64 and Opteron processors
I am the author of SmartAlloc, CodeGen's high performance memory
I created several web sites using the PHP4 scripting language and
the PostgreSQL database.
I have worked on a number of projects that were developed
under contract or licensee to specific clients.
- FCode device driver for Intel 8254x Network Controllers.
- SmartFirmware system support for Cirrus Logic ARM EP7312 development system.
- Device driver for AMD 79C97x Network controllers.
- Device driver for 3Dfx Voodoo 3 graphics controller
- Device driver for #9 Imagine 128 graphics controller
- Device driver for Cirrus Logic 7555 Matterhorn graphics controller
I have done consulting for a number of companies, the most noteworthy
are as follows:
CodeGen and ATC-NY are currently working together on a DARPA SBIR contract
to develop security modules for OpenFirmware that can detect and prevent
execution of malicious code on plugin modules. I have meet with ATC-NY
on serveral occasions as well as many teleconferences to make available
to ATC-NY my knowledge of OpenFirmware and device driver techniques.
- Themis Computer
Customized Sun OpenBoot firmware for ruggedized E4500 enterprise server.
This included writing a FCode device driver for the Tundra Universe II PCI-VME
bridge chip, and adding commands for thermal monitoring and control as well as
adapting the firmware update utility.
- L-3 Communications
Provided on site consulting to assist L-3 in optimizing the graphics rendering
of an F-16 simulator. The simulator used a number of Number Nine I128 based
graphics modules and depended upon making full use of a number graphics
rendering accelerations on the chip.
- Connex, Inc.
Developed an I2C device driver for VxWorks for the Intel 810E chipset.
The device driver was used to control an LCD front panel display, receive
user input, and monitor drive bay status in a RAID Network Storage device.
- 5/94 - 3/95 Contract to Informix Software, Inc.
Ported Informix's NewEra object-oriented 4GL compiler and run-time system
from Microsoft Windows to Solaris 2.3. Converted run-time from archive
libraries to shared libraries to reduce memory requirements.
- 5/94 - 10/94 Contract to Peritek Corporation
Ported device driver for high-performance graphics card to Solaris 2.3,
System V release 4 for Motorola 88110 processors, VMEexec 3.0, and Psos+ 2.0
- 1/94 - 4/94 Contract to Sun Microsystems, Inc.
Developed a command interpreter to aid in testing of Project DOE Messaging
Object Service. Created test scripts to exercise all aspects of the product.
Identified memory leaks and verified test coverage. Command interpreter also
formed the basis of end user documentation aimed at instructing developers on
the capabilities of the Object Service. Setup build environment and product
installation scripts used to create master media. Assisted in writing and
editing the Messaging Object Service Programmer's Guide.
- 3/93 - 1/94 Contract to Taligent, Inc.
Designed and implemented a suite of tests to verify the correct operation of
the micro kernel core of Taligents Pink Operating System. These tests
verified the task and thread services, messaging services, and virtual
memory management services of the operating system. The testing was
completed on schedule.
- 9/83 - 12/91 Hewlett-Packard Co.
- Scientific Instruments Division
Developed performance enhancements for lastest revision of GC/MS instrument
control software. Made major improvements to usability of X Windows based user
interface. Integrated Client/Server and command language modules provided by
an independent group. Eliminated backlog of defects in instrument control
software at all levels of system from user interface to embedded code. Setup
site wide software configuration management systems. Managed product builds
and internal releases. Contributed to the development of HP's Codelib
C++ Class library. Developed C++ Class library for manipulating GC/MS data.
- Electronic Design Division
Lead team developing design automation link between HP's schematic capture
systems and HP's 16500 logic analyzer. Product allowed gate array designers to
verify actual parts behavior with simulation results and was written in C++.
- Logic Systems Division
Developed C subset cross compiler, embedded operating system, and Unix host
communication software for 6809 based instrument controller. Developed software
architecture for Unix version of HP64000 family of microprocessor emulators.
Developed 8086 family of Unix based emulators. This included user interface
design and development of 8086 emulator specific device drivers for the
- 6/80 - 9/82 Systems Control, Inc.
Developed control software for 6809 based embedded controllers used in
electric power control systems. Embedded controllers acquired analog and
digital data from transducers at remote locations in the power grid and
transmitted data to a central power management computer system. Controllers
also executed commands from the central computer to control power switching system.
- OSF/1, Digital Unix, Tru 64
- SunOS 4.1.4
- Solaris 2.3 thru Solaris 9
- FreeBSD 1.0 thru FreeBSD 4.8
- OpenBSD 2.4 thru OpenBSD 3.3
- NetBSD 1.1 thru NetBSD 1.6
- Linux 2.4.13
- System V Unix
- Windows 95
- Windows 2000 Professional
- Windows XP
Copyright (C) 1995-2003, Thomas J. Merritt, All rights reserved.
- Korn Shell
- TCL (Tool Command Language)
- Perl 5
- Various Assembly Languages
- Micro controllers: Z80, 6809, 68HC11, 68HC16
- CISC: IA-32, 68020, VAX, PDP-11, AMD64
- RISC: MIPS, ARM, Alpha, PowerPC, Sparc, PA-RISC, 88110, 80960, 29050