Difference between revisions of "Main Page"
(killed text above TOC) |
(→Internal Documentation: added "this section sort of sucks" warning) |
||
Line 15: | Line 15: | ||
== Internal Documentation == | == Internal Documentation == | ||
+ | After this point is our "scratchpad" of information collected mostly during Summer 2006 as research and experimentation was done. It is possible that there is more detailed information here on a few topics, but it is less organized and not as ready for public consumption. | ||
=== Project Outline === | === Project Outline === |
Revision as of 00:41, 6 March 2007
Contents
About this Project
This is an ongoing research and implementation project in the area of Operating Systems and Embedded Systems. Its goal is to port the XINU Operating System to the MIPS platform by specifically targeting LinkSys WRT54GL routers, with the hope that it can soon be used as the basis for classes on Operating Systems, Embedded Systems, and Networking classes.
The Embedded XINU project was conceived and is supervised by Dr. Dennis Brylow and is being conducted by both graduate and undergraduate students in the Math, Statistics, & Computer Science department of Marquette University in Milwaukee, Wisconsin. The first major phase of work on Embedded XINU took place in the Summer of 2006.
Guides to Replicate Our Work
In this section we are developing instructions so that other groups can benefit from the work we are doing. These guides can be followed more or less in order to create a relatively inexpensive platform for a custom operating system. As our work develops further, there will be more XINU-specific information.
Internal Documentation
After this point is our "scratchpad" of information collected mostly during Summer 2006 as research and experimentation was done. It is possible that there is more detailed information here on a few topics, but it is less organized and not as ready for public consumption.
Project Outline
- Goals
- Infect WRT54GL Routers with a XINU kernel
- Develop XINU to a point where it can control the router's basic functions
- Use this platform for a course in embedded systems and/or networking
- Hardware (Mod that LinkSys!)
- Why we add serial ports
- How we add serial ports
- Pictures of building
- Wiring Diagrams
- Chip Diagrams
- Software
- How to connect to a modified router
- Our Project's Directory Structure
- And then there was light: the Common Firmware Environment
- Interacting with the CFE Command Line Interface
- Fun freebies in the CFE API
- How code can Interface with CFE
- OpenWRT (When all else fails, steal it from Linux!)
- Important OpenWRT places of interest
- XINU (an O/S of our own)
More Research
- TODO: (concrete tasks)
- XINU Tasks
- Complete wired NIC driver.
- Start on wireless NIC driver and "RoboSwitch".
- Integrate XINU TCP/IP stack.
- XINU Tasks
- TOTHINK: (abstract goals and wishlists)
- Learn more about the memory structure and underlying hardware.
- How should the loader discover hardware parameters if CFE does not implement device enumeration?
- How do we safely access flash memory without bricking the router?
Useful Links
- http://www.openwrt.org
- http://linux.junsun.net/porting-howto/ - Linux MIPS Porting Guide
- http://www.version6.net/gallery/WRT54GL - WRT54GL Internals Pics Gallery
- http://en.wikipedia.org/wiki/WRT54G - WRT54G Wiki
- http://en.wikipedia.org/wiki/MIPS_architecture - MIPS Architecture
- http://www.redhat.com/docs/manuals/enterprise/RHEL-4-Manual/gnu-linker/ - How To Write Linker Scripts
- http://www.embedded.com/shared/printableArticle.jhtml;jsessionid=0LLEHS3YT5KWUQSNDBCSKHSCJUMEIJVN?articleID=9900048 - Linux Porting Guide
- http://courses.cs.vt.edu/~cs2504/spring2006/MIPSDocs/MD00090-2B-MIPS32PRA-AFP-02.50.pdf - MIPS32 Architecture For Programmers