sdfirm is abbrieviated for Small Device Firmware.
It is started to build firmware for a MCS51 chip (AT89C5122). Compiled with sdcc, we call it sdfirm. Unlike other small device firmware architecture (sdcc or avr-libc), sdfirm does not require libc to be linked.
Our mission is to add following features for this firmware, others are left for you to extend:
1. supported architectures
1.1. MCS51 support with SDCC compiler
1.2. AVR support with GCC compiler
1.3. ARM support with GCC EABI compiler
2. supported simulators
2.1. OpenOCD configuration for some boards
3. timing facilities (delay, timer, jiffies)
There are tow kinds of timing devices supported:
4.1. TSC (like linux's clock source device)
4.2. GPT (like linux's clock event device)
Following timing features are not yet implemented:
4.3. realtime time axis (not supported due to lack of RTC and usable TSC)
4.4. interrupt context timeout event
4. state machine machnism (like linux's soft IRQ)
5. USB device protocol stack
Following USB features are implemented:
6.1. control endpoint
6.2. bulk/interrupt endpoints
6.3. pipe halting (reset recovery, unhalt recovery)
6.4. synchronous/asynchronous pipe IO
Following USB features are not yet implemented:
6.5. buffering (global single buffering, local single buffering, local double buffering)
6.6. isochronous endpoints
6.7. bi-directional endpoints
6. Smart card interface devices protocol stack
Following IFD features are implemented:
6.1. ISO7816-3 support
6.1.1. protocols: T=0, T=1
6.1.2. exchanges: TPDU level, short APUD level
6.1.3. auto sequences
6.2. USB CCID and ICCD support
Following IFD features are not yet implemented:
6.3. ISO7816-4 support
6.4. ISO14443 support
6.5. ISO18092 support
7. SCSI device protocol stack
Following SCSI features are implemented:
6.1. SAM and SPC support
6.2. SBC support
6.3. USB MSD support
There are still needs for performance tuning on MTD devices.
8. Networking
This has been in the plan for months, but not yet implemented.
This project is released under GPLv2. Sponsors and developers are welcome to this project!
The sdfirm wiki uses Markdown syntax.