Specialties
- Embedded system development
- Board bring-up, diagnostics, booting and file systems
- PowerPC,
68xxx, ARM (Intel XScale, Sharp, Samsung, Atmel, Philips, Marvell,
TI), MIPS (Alchemy Au1xxx, Broadcom), x86 CPU's
(SC520),
NIOS-II
- Atmel (AVR, SAM7S),
Microchip PIC (16F, 18F, dsPIC) &
Motorola microprocessors (68HC11/12)
- Linux kernels on embedded systems
- Embedded software on Altera and Xilinx FPGA's
- Small quick hardware designs from concept to production
- Automotive networks & protocols: CAN, J1850, ISO 9141, KW2000, J2534
- Handheld and wearable devices
- Battery operated and low power devices, power management
- USB host and function controller drivers
- Ethernet and WAN drivers
- TCP/IP Protocols, IP forwarding and routing, IP Routing protocols
- Multicast routing and protocols
- Voice-over-IP (VOIP) protocols and codecs
Projects
-
-
- TI OMAP 3730 Linux port, debugging.
- Linux port for OMAP 3525/TPS69930 based system with multiple cpu's
and FPGA. New file system, driver support. Built-in diagnostics and
firmware loading. Board bring up, diagnostics and deployment.
- NIOS-II (w/mmu) linux unaligned access trap handler
- Add trap handler to NIOS-II linux kernel to catch unaligned memory
access and emulate them to produce the correct result. Fixed bug in module
loading code caused by un-flushed data cache.
- NIOS-II (w/mmu) simulator booting linux
- Updated NIOS-II instruction set simulator to include support for "MMU" TLB
hardware. Booted full linux kernel on simulator. Ran cpu verilog behavioral
model using "verilator" in co-simulation environment to compare TLB access against
behavioral model.
- X86_64 EMT64 64 bit pc boot code and standalone program
- Created boot code and application running in 64 bit (long mode)
on standard PC server hardware. Code boots from disk or via network
(PXE booting) and enters 64 bit "long mode". Application runs on
raw hardware with 16Gb of ram with no operating system. The setup
code initializes interrupts and sets up the memory management to access
all memory in flat linear mode.
- Co-simulation of custom verilog cpu with behavioral model
- Simulation of custom cpu written in verilog with "C" behavioral
model. Created custom tools to compare simulation in RTL and behavioral
environments for cycle accurate verification.
- Custom TI OMAP 3525 based video camera, sensor support.
- Added camera sensor support to custom OMAP 3525 platform. Integrated
with V4L code, wrote custom sensor drivers. Omnivision OV2640, OV2655.
- TI OMAP 3525 Linux port, debugging.
- Linux port for OMAP 3525/TPS69930 based system with multiple cpu's
and FPGA. New file system, driver support. Built-in diagnostics and
firmware loading. Board bring up, diagnostics and deployment.
- AMCC PPC440EPx Linux port, debugging.
- Brought up linux kernel on dual cpu PPC440EPx platform. Added
support for customer fiber gigabit ethernet. Board bring up,
diagnostics and deployment.
- NIOS firmware, VISCA protocal support, STM32 (cortex m3) firmware.
- Brought up video camera firmware on embedded NIOS in FPGA,
implemented basic VISCA camera control protocol in firmware.
- Multicore MIPS cpu port with verilog co-simulation.
- Ported linux kernel to new MIPS cpus. Worked with development
team in co-simulation environment to boot linux in simulation.
Enhanced behavioral model, modified kernel to suite the new cpu.
- Micronas USB audio chip integration.
- Debugged Micronas USB audio chip on linux platform. Low level
USB debugging and modifications to USB driver for platform specifics.
- Gumstix design debugging, Atmel CPLD design.
- Debugged Gumstix serial connection board. Write CPLD code for
Atmel CPLD used as part of design.
- Integrity RTOS Application, DO-178B Avionics
- Added additional functionality to existing Avionics system using
Integrity RTOS in DO-178 environment. Added to documentation and
testing documentation and performed basic system testing.
- Marvell PXA320 Linux port, debugging.
- Linux port for PXA320 based system with multiple cpu's and FPGA.
New file system, basic i/o support. Simple diagnostics. Firmware and
FPGA bitfile downloading. Booting of TI Davinci ARM chips, low level
Davinci, DM642 DSP diagnostics.
- PPC Linux port, debugging.
- Linux port for Freescale 8248 based system. New file system, basic
graphics and sound support. Hardware bringup.
- Altera NIOS II cpu simulation with Modelsim
- Simulation of firmware running on generated NIOS II cpu with Modelsim.
- Altera NIOS II cpu firmware
- Designed and wrote embedded firmware in C for Altera NIOS-II cpu.
Created custom startup code and simulated code with ncsim. Wrote
behavioral model (C) for hardware and instruction set simulator for
NIOS-II. Wrote utility to decode verilog trace file showing progress
through firmware.
- Altera NIOS II cpu generation
- Generated Altera NIOS II cpus with SOPC builder. Created custom
verilog to interface with top level of existing fpga design.
- Xilinx Virtex 4 PPC405 firmware
- Designed and wrote embedded firmware in C for dual PPC405 system
in a Virtex 4 part. Created custom startup and debug code, simulated
code with modelsim. Code includes support for
Infiniband core
and IB switch logic.
- Philips LPC3180 ARM926 linux port
- Quick port of linux 2.6 to Philips LPC3180 ARM926 linux port using
evaluation board.
- Extensions to Scheme/Lisp interpreter for embedded system
- Wrote extension library for Scheme interpreter (siod) to allow basic graphics and user interface support.
- Atmel SAM7S Controller firmware for embedded device
- Extensive firmware for Atmel SAM7S ARM controller. Bootloader, system
bring-up, LCD user interface, drivers.
- Kernal/FPGA Interaction debugging.
- Freescale 8270 based system with kernel panics. Debugged
interaction problems with custom FPGA and linux, VHDL. Found problem
in VHDL code, fixed and verified.
- Philips ISP176x USB controller debugging
- Debugged port of linux driver for Philips ISP176x USB controller.
Controller used to access USB flash disks in embedded device.
- PCI Ethernet driver debugging.
- Ethernet chip would become non-responsive. Patches to driver.
- Mason/Perl back end user interface
- Extensive Mason/Perl project which provides user interface code for
network management system.
- Alpha CPU assembler port
- Ported interpreter written in Alpha assembler to X86-64
architecture by writing a translator in lisp to convert the alpha
opcodes into C. The interpreter now runs very well on modern linux.
- Atmel SAM7S Firmware
- Small ARM embedded system with
MMC, SPI, floating point. Flash update and serial protocol software.
- Atmel SAM7S CPU card
- Small CPU card with SAM7S ARM cpu, CS8900 ethernet chip and Xilinx CPLD.
TCP/IP Firmware, diagnostics, bootloader, board bringup, Verilog code for CPLD.
- Voice-over-Satellite-uplink prototype
- Sending compressed speech captured from aviation headset over low speed
satellite uplink.
- Voice-over-IP (VOIP) monitoring
- linux based VOIP
monitoring station. Protocol statistics and jitter measurements.
- SNMP monitoring and configuration
- Access to product status and configuration via SNMP.
- Power Management for new TI ARM cpu (PXA270)
- Added frequency and voltage change support for new ARM cpu. Kernel
interfaces and drivers to make changes automatically.
- uClinux port to ARM9 cpu
- Ported uClinux to ARM9 cpu for cell phone.
- Port and extend JavaVM on TI TMS320DM642 DSP (TMS320C6000 family)
- Ported existing JavaVM and added on-the-fly code generation for
DM642 DSP. Re-coded assembler interpreter for new CPU. Low level
assembler and pipeline scheduling.
- Software emulator for custom microcoded 32 bit cpu
- Emulator program in C, runs existing microcode and boots existing
operating system.
- Power Management for new Intel XScale (ARM) cpu - PXA270
- Added frequency and voltage change support for new ARM XScale cpu. Kernel
interfaces and drivers to make changes automatically. Extensive debugging
with new silicon.
- Low cost X86 based linux platform
- Brought up linux on an custom embedded x86 platform, hardware debug,
boot code, file system, etc... Initial manufacturing runs of serial
peripheral cards. Manufacturing documentation.
- Ported existing JavaVM and added on-the-fly code generation for
DM642 DSP. Low level assembler and pipeline scheduling
- Low cost automotive vehicle interface
- Microchip 18F PIC platform for data collection from various
automotive vehicle interfaces. Designed hardware and
firmware. Supports CAN, J1850, SCI. Software to support TCP/IP,
J1850, CAN.
- Kernel port to new Broadcom MIPS CPU
- Brought up linux kernel on a new Broadcom MIPS CPU.
- Linux based wireless "picture frame"
- Sharp LH7A400 ARM 920 based platform. Designed hardware and
software. Platform has PCMCIA slot, CF slot, flash, sdram and LCD
interface, touch interface. Designed on low cost 6 layer PCB. Runs
full linux system and displays images and video over wireless link.
- Kernel port and network integration for hardware routing
chip
- Ported linux kernel to new ARM chip and added support for
hardware packet forwarding engine. Added interface to kernel NAT and
filter interface.
- MIPS based hand-held computer with touch screen
- Alchemy MIPS (Au1000, Au1100) kernel drivers for custom shared memory
hardware, Linux drivers and Atmel programming for touch screen, beep and power
management. File system developement for ramdisk, CF disk, flash booting.
Boot code for PCMCIA booting.
- Automotive protocol developement
- Protocol software (J1850, K-line, SCI, CAN, KW2000, J2534) development of drivers, servers, libraries and diagnostics. CAN drivers & diagnostics.
- PIC based ethernet device
- Hardware and software design for simple PIC based ethernet device
(CS8900, PIC18F458) with CAN, serial and parallel ports. TCP stack
and control software. Hardware design, PCB layout and prototype
fabrication.
- Wearable computing
- Linux running on a small cpu which can be worn around and used to interact
with the environment, a.k.a "Wearable computing". For
the MIThril project
I enabled USB on their PowerPC platform and for
the WearARM project I did a soup-to-nuts linux port which included early hardware debug and bringup,
boot rom, linux port and file systems.
- PowerPC platform bring-up
- Specification and debug of PowerPC 832 UPM microcode for DRAM interface.
Debugging and setup with JTAG debugger (Macraigor Wiggler).
- High Performance Ethernet
- Kernel VM debugging on 4 port gigabit ethernet device with PowerPC 7xx processor.
- USB Function drivers
- USB function (client) chip drivers and personality modules for various devices,
including devices designed to look like ethernet devices.
- Specialized I2C drivers
- StrongARM (SA1100) Linux drivers and firmware (Atmel 8051) to communicate over
i2c port for credit card strip reader.
- Audio drivers
- StrongARM (SA1111) Linux audio drivers.
- IPSEC integration and debugging
- Basic IPSEC port to PowerPC 405 processor with special changes to the libc
DNS "resolver" library.
- Custom OHCI USB Host controller
- Modifications to existing linux OHCI USB host controller driver to support
custom OHCI controller chip on PowerPC 405.
- StrongARM SA1111 USB Host controller driver
- Modifications to existing linux OHCI USB host controller driver to support
StrongARM SA1111 chip.
- USB Host controller software
- Complete USB host controller driver for the PowerPC 8xx processor.
Supports interrupt, bulk and isochronous transfers.
Contact Information
Brad Parker
Heeltoe Consulting
661 Massachusetts Avenue, Suite #2
Arlington MA 02476
781-483-3101
brad@heeltoe.com
http://www.heeltoe.com
Heeltoe Consulting
|