December was a busy month and a lot got done, though as always I wish I add completed more. This will be the last status report that I provide via email. Within the next day or two www.learningce.com will be going live, and all future status reports will appear in a special section of the web site, complete with weblog-like comment functionality (thanks to the ASP.net Community Starter Kit). I will be sending out a general announcement email message when it is officially available.
Boot Loader:
My primary focus for the last few weeks has been to replace the AMI BIOS on the ICOP 6070 board with a derivative of ROMBOOT, provided for Geode based platforms in Platform Builder (Windows CE IDE). This has turned out to be more difficult than I first imagined (Sam of ICOP warned me it would be ?), but I believe that I am nearing completion, and I should be finished this month. I have been “booting” the BIOS using the existing BIOS, as a way of finding bugs from a fully initialized processor. It at least guarantees that the serial port is available as the initialization code is being debugged.
Why replace a perfectly good BIOS you ask? Well it is my feeling that today’s non x86 embedded systems typically do not possess a BIOS, and I cannot realistically demonstrate writing software from platform initialization to operating system device drivers unless, the software I present runs from the reset vector. A BIOS just does too much of the work, and makes the platform startup code almost trivial. In any case, this will be a valuable tool in the future for providing BIOS extensions that allow booting from flash based removable media, such as CF cards and USB keys. It will also help me to adapt the reference implementation of Intel’s Extensible Firmware Interface (EFI) to run on this processor.
Many thanks to Sam Phung of ICOP for his continuing help and rapid responses. I still have a lot to learn about the amazing capabilities of the SiS 55x, and all of its peripheral devices. We have certainly come a long way since the 8051!
PCM-37E12 CE Drivers:
Work will begin this month on the CE drivers for the PCM-37E12 (CEbot I/O board). Eric Rossi of EMAC Inc. has graciously donated a board to this project, including the sample source code written in Linux. I plan to produce some kind of wrapper around the Linux source to allow it to work as a Stream Interface Driver, while keeping the source code provided separate from anything added for the Socrates project. This will allow the newly developed CE code to be provided in source form, while distributing the code provided by EMAC as an object module library. It will also demonstrate how Linux drivers can be reused and adapted for use in Windows CE.
I don’t have a firm estimate for completion on this task just yet, but I will sometime this month and I will put this information on the website. Speaking of which…
LearningCE.com:
I am happy to report that learningce.com will be going live in a few days now. I just need to complete a bit more of the narrative, and reformat a few of my existing documents for presentation on the web site. I am very excited about this, in part because it is my first weblog, and because I will have a portal from which to communicate with y’all and to attract additional watchers!
Goals for the Month of January:
- Complete the Bootloader
- Start work on the PCM-37E12 Windows CE drivers
- Provide additional content for LearningCE.com
- Officially announce LearningCE.com
- Begin work on the Platform Initialization chapter
That’s all for now.
Onward!
Jim