Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
199 commits
Select commit Hold shift + click to select a range
98ef6ca
changes to the readme
Jun 20, 2017
b8af352
Merge branch 'feature/readme' into dev
Jun 20, 2017
504919a
merge in changes into our main dev branch (#1)
Jun 20, 2017
e4de4ff
WIP -- interrupts still not working
Jun 22, 2017
2f8bcfd
changed default maxaddr in platforminit.c
Jun 26, 2017
02bfe4c
correct EL is set.. more refactoring needed...
Jul 7, 2017
d435f21
working version with EL1 code..WIP
Jul 10, 2017
5e61152
set up to use Aarch32 in assembly.. WIP
Jul 13, 2017
4dde4a7
still stuck.. going to continue after converting to 32-bit
Jul 14, 2017
200148d
irq's working..reaching dispatch
Jul 14, 2017
2bdb335
utility files.. forgot from last push
Jul 14, 2017
4551be6
added documentation to start.S and fixed documentation in others
Jul 15, 2017
a82322e
irq handling working successfully
Jul 16, 2017
6420450
removed unnecessary #define's
Jul 17, 2017
71b5ff6
add more files to the ignore
Jul 17, 2017
29bebcc
Merge pull request #2 from tomlazar/feature/irq-handling
Jul 17, 2017
20621e6
added everything from lowfat xinu
Jul 17, 2017
0e0bc61
Moved everything from lowfat_xinu, fixed merge issues.
Jul 17, 2017
a955f0d
Fixed some compile / syntax errors / merge conflicts. Running.
Jul 17, 2017
e739b57
minor fixes
Jul 18, 2017
7359fe3
Testing multicore (not working without BCM2837 mailbox addresses).
Jul 18, 2017
c85a9b0
Added core.c - working on starting cores at addresses used by Pi2 mai…
Jul 19, 2017
801bb88
Prints core 0 number infinitely. Modified initialize.c and (new) core.S.
Jul 19, 2017
020666f
Changed initialize.c and core.S to start cores.
Jul 20, 2017
2bb2060
All cores in ARM_MODE_SYS and context switch works. Jumbled printing.…
Jul 24, 2017
6318149
WIP -- working on mutex
rlatinovich Jul 31, 2017
3b56561
mutex working
rlatinovich Nov 14, 2017
6d613e5
fix getcpuid
Nov 14, 2017
96d3882
unparkcore() works as should
rlatinovich Nov 27, 2017
b95dcae
refactored mmu code
rlatinovich Dec 1, 2017
7e04860
boundedbuffer consumer() not running properly
rlatinovich Dec 15, 2017
a7435e4
finished refactoring mmu code and unparkcore
rlatinovich Dec 29, 2017
f2d0a29
boundedbuffer test is working
rlatinovich Dec 29, 2017
aeb49dc
commented/refactored code
rlatinovich Dec 29, 2017
729228a
fixed memheap address
rlatinovich Jan 25, 2018
04e08a7
process preemption working on SINGLE CORE
rlatinovich Feb 6, 2018
9e8eb27
WIP -- error occurs in etherOpen
rlatinovich Feb 6, 2018
3291ae3
WIP -- ether/usb debugging in progress
rlatinovich Feb 15, 2018
5231183
WIP -- adding print statements to debug usb
rlatinovich Feb 20, 2018
6d62fb2
WIP -- debugging usb hcd
rlatinovich Mar 16, 2018
2965db2
Refactored old code (not netboot relevant
rlatinovich Mar 26, 2018
0cb20e5
Refactored old code (not netboot relevant
rlatinovich Mar 26, 2018
4fe24e7
fixed unparkcore.. works on 3B+
rlatinovich Mar 27, 2018
a5b3b83
WIP -- shell not taking input
rlatinovich Apr 5, 2018
66a6945
xsh working.. delay bug after input
Apr 5, 2018
b3d465d
XinuPi3 shell working.
Apr 5, 2018
9639556
Fixed preprocessing condition so that xinupi3 shell is platform-speci…
Apr 6, 2018
eb1caaf
refactored initialize.c -- moved pi 3 specific code to proper places
rlatinovich Apr 6, 2018
d25ff02
refactored main.c -- removed unnessary print statements and pi 3 spec…
rlatinovich Apr 6, 2018
9bd7d01
forgot a line from previous commit
rlatinovich Apr 6, 2018
11d6d75
added random generator support and xsh command for it
rlatinovich Apr 7, 2018
e9c59e2
unparkcore updated to have argument passing -- pthread style
rlatinovich Apr 9, 2018
3ae48ca
unparkcore -- tested for multiple argument passing
rlatinovich Apr 9, 2018
5855e92
DES library works... testable with test shell command
rlatinovich Apr 15, 2018
9763b09
uses pseudo-random generator.. key generator is better (for some reason)
rlatinovich Apr 16, 2018
9b26939
Updated xsh banner to include fancy 'xinu pi 3' (keeping other platfo…
Apr 18, 2018
0dada6c
des multicore brute force without known plaintext
rlatinovich Apr 18, 2018
92c598b
Merge branch 'feature/xsh' of github.com:tomlazar/xinu into feature/xsh
rlatinovich Apr 18, 2018
2ae2434
WIP -- checked USB support
May 29, 2018
13dc0fc
WIP -- USB debugging
May 30, 2018
54bb29d
Merge pull request #5 from tomlazar/feature/xsh
rlatinovich May 30, 2018
d9239e2
USB completed (#6)
rlatinovich Jun 24, 2018
81675fd
new lan7800 directory
rlatinovich Jun 26, 2018
c019281
adjusted Makerules and platformVars
rlatinovich Jun 26, 2018
d722664
lan7800 read/write registers
rlatinovich Jun 26, 2018
bee3172
more methods
rlatinovich Jun 26, 2018
00c1d93
read/write register test
rlatinovich Jun 26, 2018
d04917f
[WIP] Begin port of 'known' register sets, testing MAC and other func…
Jun 27, 2018
3bdb1dc
changed MAC address test
rlatinovich Jun 27, 2018
9b3501c
added etherinit and testing
rlatinovich Jun 27, 2018
959473e
Enable xinu.conf ethernet devices. Test: values are set by etherInit(…
Jun 27, 2018
8f3afe9
[WIP] Integrating etherOpen and etherInit. Descriptor behavior expect…
Jun 28, 2018
a1a4b8c
lan7800 device now registers with USB driver
rlatinovich Jul 3, 2018
ca58520
WIP -- getting MAC from mailbox.. code is all in initialize.c; have t…
rlatinovich Jul 9, 2018
6ae6bab
[WIP] cleaning up MAC accessing. Invalid mailbox request.
Jul 10, 2018
953630c
ether->devAddress now holds MAC address obtained from Mailbox.
Jul 11, 2018
7644e7a
[WIP] etherOpen running before LAN7800 device is initialized.
Jul 12, 2018
9c249c7
[WIP] MAC instructions moved to etherInit().
Jul 14, 2018
72d0001
etherOpen() opens LAN7800. Need to fix UART dependency in etherInit().
Jul 18, 2018
1269a80
Cleaned up init(), open(). Begin to test read() function.
Jul 19, 2018
4975be0
LAN7800 opens in correct, traditional order.
Jul 20, 2018
a5b07d9
Adding functions read() and write(). Cleaned up MAC/Mailbox/open/init…
Jul 23, 2018
a895da0
Write test passes. Read gets stuck in wait, as if Rx callback fails.
Jul 24, 2018
8a2e201
[WIP] Testing write() in shell, need to fix read() stuck in terminal …
Jul 24, 2018
54fbed0
Cleaned up write test. [WIP] Control(), Read(), Interrupt() callback …
Jul 25, 2018
bfb61cd
added some debug statements for when usb_debug is enabled.
Aug 1, 2018
b206372
removed odd files
Sep 17, 2018
a5b89d8
Begin changing lan7800 register definitions.
Sep 19, 2018
dbb8f75
added some mdio functions
Sep 19, 2018
2ede486
Merge branch 'feature/ethernet' of https://github.com/rlatinovich/xin…
Sep 19, 2018
6230dd7
Changed order of ether open for lan7800. Updated register write execu…
Sep 20, 2018
20998fa
Continue adding LAN7800 functions. TODO: Update header file.
Sep 20, 2018
e3b646f
Major additions to LAN7800 driver. Need to test read(), write()
Sep 26, 2018
cfefddf
now it sets the MAC address properly
rlatinovich Sep 27, 2018
d1f4cb3
mutex refined (#7)
rlatinovich Oct 15, 2018
e810471
minor change in preload_data.S
rlatinovich Oct 17, 2018
9207ce1
reverted bad semaphore code
rlatinovich Oct 18, 2018
fdebe99
added udelay to smooth unparking process
rlatinovich Oct 18, 2018
161c3aa
initialize VBAR on other cores
rlatinovich Oct 26, 2018
2b3a626
updated mutexes
rlatinovich Oct 26, 2018
2120772
updated mutex.h and made adapted other files
rlatinovich Oct 26, 2018
9b38d92
USB not working properly.. trying to debug.
rlatinovich Oct 31, 2018
0a95a8c
fixed usb issue..
rlatinovich Oct 31, 2018
2408415
[WIP] lan7800 additions, read() has bugs.
Oct 31, 2018
303c258
reading properly.. need changes in lan7800.c for RFE
rlatinovich Nov 2, 2018
984cd64
updated RFE.. receives broadcast multicast and unicast
rlatinovich Nov 2, 2018
6e7119e
lan7800 loopback mode is working
rlatinovich Nov 6, 2018
ccc94ea
network stacked enabled.. not working
rlatinovich Nov 6, 2018
364a010
writing a broadcast packet test
rlatinovich Nov 6, 2018
9c23885
WIP -- debugging network stack issues
rlatinovich Nov 12, 2018
88bbfc4
working network stack
rlatinovich Nov 19, 2018
e8f3152
Cleaning up LAN7800 files.
Nov 20, 2018
abc37e9
LAN7800 driver is camera-ready.
Nov 20, 2018
1a2ccfc
WIP -- testing kexec
rlatinovich Dec 18, 2018
fa9ac48
kexec functioning now
rlatinovich Dec 18, 2018
229caa5
changed mutex #define's
rlatinovich Dec 28, 2018
6b35aa7
mutexed the quetab
rlatinovich Dec 28, 2018
23f29ec
thrtab mutex'ed
rlatinovich Dec 29, 2018
1fea787
semtab mutexed
rlatinovich Dec 29, 2018
d051488
prepared for multicore scheduling
rlatinovich Dec 29, 2018
495b69f
WIP -- basic scheduling in progress
rlatinovich Dec 29, 2018
01df340
Temporary fix for ready_multi
Dec 30, 2018
1d5991a
WIP -- scheduling works; netup does not work
rlatinovich Jan 2, 2019
a9c8a8d
changed mutex structure.. more formal
rlatinovich Jan 2, 2019
5a24add
WIP -- trying to debug DHCP issue
rlatinovich Jan 3, 2019
373eb19
WIP -- updated acquire and release methods for tables
rlatinovich Jan 3, 2019
8ab689b
dhcp now works
rlatinovich Jan 3, 2019
f851f4a
WIP -- working on better scheduling
rlatinovich Jan 4, 2019
db45a8a
resolved merge conflicts
rlatinovich Jan 4, 2019
8a33ddf
modified thrcurrent and readylist
rlatinovich Jan 4, 2019
1d69a66
tweaked the scheduler a bit
rlatinovich Jan 4, 2019
f73cbe2
cooperative scheduling test
rlatinovich Jan 4, 2019
02b5be9
Initial xsh serial test
May 29, 2019
775432d
Clean branch for formal release.
May 29, 2019
c4c6816
Remove old platforms
May 30, 2019
1af5692
Remove old archs
May 30, 2019
a9b516d
Fix aarch64 platformvars
May 30, 2019
fbf7ed3
Change aarch64 to armv8
May 30, 2019
f57d85b
added fpu and abi
May 30, 2019
ca09f69
WIP - FPU. Add double test
May 30, 2019
084e2bc
start.S changes
May 30, 2019
1822ef8
WIP framebuffer stuck at mbox read
May 30, 2019
f3a5a6b
WIP framebuffer+usbkbd in a working state
May 31, 2019
dda2570
changed color hex format
Jun 3, 2019
7ede21e
framebuffer minishell WIP
Jun 3, 2019
34fe032
Framebuffer driver complete
Jun 3, 2019
3d61f19
Update ready for multicore. Add CPUID for ps cmd
Jun 10, 2019
498b7b6
Add mutexes
Jun 11, 2019
0209307
WIP test multicore kprintf
Jun 11, 2019
8935ef5
cleaned up swap files, and added to gitignore
Jl5her Jun 12, 2019
c0577b4
Merge branch 'feature/multicore' of github.com:7043mcgeep/xinu into f…
Jl5her Jun 12, 2019
5e98e7f
WIP mutex table
Jun 12, 2019
4361d4c
Merge branch 'feature/multicore' of https://github.com/7043mcgeep/xin…
Jun 12, 2019
32292f6
WIP 3-cores breaks mutex
Jun 13, 2019
3343c57
Merge homework MMU changes
Jun 13, 2019
fb25d20
Tempfix mmu, test suite compiling
Jun 14, 2019
1aca390
added debug code
rlatinovich Jun 16, 2019
194aa23
WIP mmu lan7800 conflict discovered
Jun 17, 2019
4a44b38
kill.c changes. shell banner fixed
Jun 18, 2019
b5204a4
usbfs driver early binding code
Jl5her Jun 18, 2019
f18c49e
usb driver code
Jl5her Jun 18, 2019
311d8f8
Revert "WIP test multicore kprintf"
Jl5her Jun 19, 2019
9c7f716
Revert "Add mutexes"
Jl5her Jun 19, 2019
7124a89
Revert "Update ready for multicore. Add CPUID for ps cmd"
Jl5her Jun 19, 2019
4b2bc9c
Revert "Framebuffer driver complete"
Jl5her Jun 19, 2019
098c2ea
Revert "framebuffer minishell WIP"
Jl5her Jun 19, 2019
bdbe65e
WIP usb dma cache issue
Jun 19, 2019
6f8b9f5
WIP flush cache
Jun 19, 2019
19cfb23
Add cache arch info
Jun 20, 2019
fd517cc
Integrated other endpoint into usbfs device
Jl5her Jun 24, 2019
eb8a4f6
WIP changed cache flush increment
Jun 24, 2019
7258398
WIP cache flush behavior analysis
Jun 25, 2019
bd47e69
WIP add cache area functions
Jun 26, 2019
22173b1
WIP better state - device close to init
Jun 27, 2019
9b9b142
WIP fixing dma for config xfer
Jun 27, 2019
692d4b5
partial usb_xfer_request
Jl5her Jun 28, 2019
62d561e
extra files for last commit
Jl5her Jun 28, 2019
3ecb627
Minor cleaning, WIP bLength
Jul 8, 2019
345c28f
Switch to unaligned accessing
Jul 9, 2019
502d509
Kprintf fixes execution temporarily
Jul 10, 2019
371ad5a
WIP mutex lock conflict
Jul 10, 2019
1e4bbd7
WIP endpoints invalid for LAN
Jul 11, 2019
568b9d2
WIP LAN device config desc fails
Jul 12, 2019
a3dd30d
WIP Add mmu page function
Jul 15, 2019
77aadca
attempted to create non-cacheable buffer space for dma transfers to o…
rlatinovich Jul 17, 2019
8081769
usb devices attach.. ethernet device is not getting mac address set..
rlatinovich Jul 23, 2019
54416b1
Fix shell hang due to improper invalidation
Jul 23, 2019
e10c84c
usb working now with 2d array abstraction.. yuck.
Jul 23, 2019
cf10d3b
LAN+mcore working state. Cleanup to do
Jul 24, 2019
ab01905
minor cleaning updates
Jul 24, 2019
4f4a6d5
removed 2d array abstraction
rlatinovich Jul 25, 2019
43d9c45
framebuffer mailbox.. attempting to use dma_buf
rlatinovich Jul 25, 2019
02d5b6d
Fix framebuffer. WIP cleanup
Jul 25, 2019
c77f26c
merged with mmu_cache
Jl5her Jul 26, 2019
475d67b
merge with mmu_cache
Jl5her Jul 26, 2019
fa6395a
merging with mmu_cache
Jl5her Jul 26, 2019
5940d5f
cleaning up.. may need more cleaning.. not sure
rlatinovich Jul 27, 2019
46ade35
Merge branch 'mmu_cache' of github.com:7043mcgeep/xinu into usbfs
Jl5her Jul 30, 2019
5b8f74f
merge scheduler_refactor
Jl5her Jul 30, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
19 changes: 19 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
#backup files
*.back
*~

# Object files
*.o

Expand All @@ -8,6 +12,9 @@
*.lib
*.a

# Memory maps
*.map

# Shared objects (inc. Windows DLLs)
*.dll
*.so
Expand All @@ -24,11 +31,23 @@
*.boot
*.bin

# Temporary swap files (from open Vim windows)
[._]*.s[a-v][a-z]
[._]*.sw[a-p]
[._]s[a-rt-v][a-z]
[._]ss[a-gi-z]
[._]sw[a-p]

# .nfs files are created when an open file is removed but is still being accessed
.nfs*

# Xinu build files
compile/config/config
compile/config/y.tab.h
compile/config/parse.c
compile/version
compile/vn
include/conf.h
include/version.h
system/conf.c

156 changes: 87 additions & 69 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,22 +1,22 @@
# Embedded Xinu #
# Embedded Xinu

Embedded Xinu, Copyright (C) 2008, 2009, 2010. All rights reserved.

Version: 2.01

1. What is Embedded Xinu?
2. Directory Structure
3. Prerequisites
4. Installation Instructions
1. Build Embedded Xinu
2. Make serial and network connections
3. Enter Common Firmware Environment prompt
4. Set IP address
5. Load image over TFTP
5. Links
1. What is Embedded Xinu?
2. Directory Structure
3. Prerequisites
4. Installation Instructions
1. Build Embedded Xinu
2. Make serial and network connections
3. Enter Common Firmware Environment prompt
4. Set IP address
5. Load image over TFTP
5. Supported Platforms
6. Links


## 1. What is Embedded Xinu? ##
## 1. What is Embedded Xinu?

Xinu ("Xinu is not unix", a recursive acronym) is a UNIX-like operating
system originally developed by Douglas Comer for instructional purposes at
Expand All @@ -27,82 +27,82 @@ on the MIPS processor which is able to run on inexpensive wireless routers
and is suitable for courses and research in the areas of Operating Systems,
Hardware Systems, Embedded Systems, Networking, and Compilers.

## 2. Directory Structure ##
## 2. Directory Structure

Once you have downloaded and extracted the xinu tarball, you will see a
basic directory structure:

AUTHORS device/ lib/ mem/ loader/ README system/
compile/ include/ LICENSE mailbox/ network/ shell/ test/

* `AUTHORS` a brief history of contributors to the Xinu operating system
in it's varying iterations.
* `compile/` contains the Makefile and other necessities for building the
Xinu system once you have a cross-compiler.
* `device/` contains directories with source for all device drivers in Xinu.
* `include/` contains all the header files used by Xinu.
* `lib/` contains library folders (e.g., `libxc/`) with a Makefile and
source for the library
* `LICENSE` the license under which this project falls.
* `loader/` contains assembly files and is where the bootloader will begin
execution of O/S code.
* `mailbox/` contains source for the mailbox message queuing system.
* `mem/` contains source for page-based memory protection.
* `network/` contains code for the TCP/IP networking stack.
* `README` this document.
* `RELEASE` release notes for the current version.
* `shell/` contains the source for all Xinu shell related functions.
* `system/` contains the source for all Xinu system functions such as the
nulluser process (`initialize.c`) as well as code to set up a C
environment (`startup.S`).
* `test/` contains a number of testcases (which can be run using the shell
command `testsuite`).

## 3. Prerequisites ##

### 3.1 Supported platform with hardware modification ###
AUTHORS device/ lib/ mem/ loader/ README system/
compile/ include/ LICENSE mailbox/ network/ shell/ test/

- `AUTHORS` a brief history of contributors to the Xinu operating system
in it's varying iterations.
- `compile/` contains the Makefile and other necessities for building the
Xinu system once you have a cross-compiler.
- `device/` contains directories with source for all device drivers in Xinu.
- `include/` contains all the header files used by Xinu.
- `lib/` contains library folders (e.g., `libxc/`) with a Makefile and
source for the library
- `LICENSE` the license under which this project falls.
- `loader/` contains assembly files and is where the bootloader will begin
execution of O/S code.
- `mailbox/` contains source for the mailbox message queuing system.
- `mem/` contains source for page-based memory protection.
- `network/` contains code for the TCP/IP networking stack.
- `README` this document.
- `RELEASE` release notes for the current version.
- `shell/` contains the source for all Xinu shell related functions.
- `system/` contains the source for all Xinu system functions such as the
nulluser process (`initialize.c`) as well as code to set up a C
environment (`startup.S`).
- `test/` contains a number of testcases (which can be run using the shell
command `testsuite`).

## 3. Prerequisites

### 3.1 Supported platform with hardware modification

To run Embedded Xinu you need a supported router or virtual machine.
Currently, Embedded Xinu supports Linksys WRT54GL, Linksys WRT160NL,
and the Qemu-mipsel virtual machine. For an updated list
of supported platforms, visit:

http://xinu.mscs.mu.edu/List_of_supported_platforms
<http://xinu.mscs.mu.edu/List_of_supported_platforms>

In order to communicate with the router, you need to perform a hardware
modification that will expose the serial port that exists on the PCB. For
more information on this process, see:

http://xinu.mscs.mu.edu/Modify_the_Linksys_hardware
<http://xinu.mscs.mu.edu/Modify_the_Linksys_hardware>

### 3.2 Cross-compiler ###
### 3.2 Cross-compiler

To build Embedded Xinu you will need a cross-compiler from your host
computer's architecture to MIPSEL (little endian MIPS for the 54GL router)
or MIPS (big endian for the 160NL router). Instructions on how to do this
can be found here:

http://xinu.mscs.mu.edu/Build_Xinu#Cross-Compiler
<http://xinu.mscs.mu.edu/Build_Xinu#Cross-Compiler>

### 3.3 Serial communication software ###
### 3.3 Serial communication software

Any serial communication software will do. The Xinu Console Tools include
a program called tty-connect which can serve the purpose for a UNIX
environment. More information about the Xinu Console Tools can be found
a program called tty-connect which can serve the purpose for a UNIX
environment. More information about the Xinu Console Tools can be found
at:

http://xinu.mscs.mu.edu/Console_Tools#Xinu_Console_Tools
<http://xinu.mscs.mu.edu/Console_Tools#Xinu_Console_Tools>

### 3.4 TFTP server software ###
### 3.4 TFTP server software

A TFTP server will provide the router with the ability to download and run
the compiled Embedded Xinu image.

## 4. Installation Instructions ##
## 4. Installation Instructions

### 4.1 Build Embedded Xinu ###
### 4.1 Build Embedded Xinu

Update the `MIPS_ROOT` and `MIPS_PREFIX` variables in compile/mipsVars to
Update the `MIPS_ROOT` and `MIPS_PREFIX` variables in compile/mipsVars to
correctly point to the cross-compiler on your machine.

Then, from the compile directory, simply run make, which should leave you
Expand All @@ -111,16 +111,16 @@ your router for it to run Embedded Xinu. The default build is for the
WRT54GL router; change the compile/Makefile `PLATFORM` variable for other
builds. See the compile/platforms directory for supported configurations.

### 4.2 Make serial and network connections ###
### 4.2 Make serial and network connections

After creating the `xinu.boot` image you can connect the router's serial
port to your computer and open up a connection using the following
settings:

- 8 data bits, no parity bit, and 1 stop bit (8N1)
- 115200 bps
- 8 data bits, no parity bit, and 1 stop bit (8N1)
- 115200 bps

### 4.3 Enter Common Firmware Environment prompt ###
### 4.3 Enter Common Firmware Environment prompt

With the serial connection open, power on the router and immediately start
sending breaks (Control-C) to the device, if your luck holds you will be
Expand All @@ -130,16 +130,16 @@ greeted with a CFE prompt.

If the router seems to start booting up, you can powercycle and try again.

### 4.4 Set IP address ###
### 4.4 Set IP address

By default, the router will have a static IP address of 192.168.1.1. If you
need to set a different address for your network, run one of the following
commands:

ifconfig eth0 -auto if you are using a DHCP server
ifconfig eth0 -auto if you are using a DHCP server
ifconfig eth0 -addr=*.*.*.* for a static IP address

### 4.5 Load image over TFTP ###
### 4.5 Load image over TFTP

On a computer that is network accessible from the router, start your TFTP
server and place the xinu.boot image in the root directory that the server
Expand All @@ -150,19 +150,37 @@ Then, on the router type the command:
CFE> boot -elf [TFTP server IP]:xinu.boot

If all has gone correctly the router you will be greeted with the Xinu Shell
(`xsh$ `), which means you are now running Embedded Xinu!
(`xsh$`), which means you are now running Embedded Xinu!

## 5. [Supported Platforms](http://xinu.mscs.mu.edu/List_of_supported_platforms)

| Platforms | Status | Comments |
| -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [Linksys WRT54G v8](http://www.linksys.com/servlet/Satellite?c=L_Product_C2&childpagename=US%2FLayout&cid=1149562300349&pagename=Linksys%2FCommon%2FVisitorWrapper) | Supported | Tested and running at the Embedded Xinu Lab. |
| [Linksys WRT54GL](http://www.linksys.com/servlet/Satellite?c=L_Product_C2&childpagename=US%2FLayout&cid=1133202177241&pagename=Linksys%2FCommon%2FVisitorWrapper) | Supported | This is our primary development platform, on which Xinu has been tested thoroughly. |
| [Linksys WRT54G v4 ](http://www.linksys.com/servlet/Satellite?c=L_Product_C2&childpagename=US%2FLayout&cid=1149562300349&pagename=Linksys%2FCommon%2FVisitorWrapper) | Probably Supported | The v4 is apparently the version on which WRT54GL is based, and so although the Embedded Xinu Lab has not explicitly tested it, it probably works. |
| [Linksys WRT350N](http://www.linksys.com/servlet/satellite?c=l_product_c2&childpagename=us%2flayout&cid=1162354643512&pagename=linksys%2fcommon%2fvisitorwrapper) | Under Development | Currently the synchronous UART Driver works. |
| [Linksys WRT160NL](http://www.linksys.com/servlet/satellite?c=l_product_c2&childpagename=us%2flayout&cid=1149562300349&pagename=linksys%2fcommon%2fvisitorwrapper) | Supported | Newer model of router. Full O/S teaching core functioning, including wired network interface. |
| [mipsel-qemu](http://www.qemu.org/) | Supported | Full O/S teaching core functioning, network support in progress. |
| [Raspberry Pi](http://www.raspberrypi.org) | Under Development | Core operating system including wired networking is functional. Some new features are still being worked on, and the full documentation (e.g. for a laboratory setup) hasn't been completed yet. |
| [Raspberry Pi 3](http://www.raspberrypi.org) | Under development | Work has been started remaking the low level systems to operate on the aarch64 architecture. |

## 6. Links

## 5. Links ##
### Embedded Xinu documentation.

### The Embedded Xinu Wiki ###
Home of the most up to date documentation about new and upcoming projects.

http://embedded-xinu.readthedocs.io/en/latest/

### The Embedded Xinu Wiki

The home of the Embedded Xinu project

http://xinu.mscs.mu.edu/
http://xinu.mscs.mu.edu/

### Dr. Brylow's Embedded Xinu Lab Infrastructure Page ###
### Dr. Brylow's Embedded Xinu Lab Infrastructure Page

More information about the Embedded Xinu Lab at Marquette University

http://www.mscs.mu.edu/~brylow/xinu/

http://www.mscs.mu.edu/~brylow/xinu/
1 change: 1 addition & 0 deletions compile/Doxygen.PROJECT_NUMBER
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
5
8 changes: 4 additions & 4 deletions compile/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
#
# $ make PLATFORM=arm-rpi
#
PLATFORM := x86
PLATFORM := arm-rpi3

# Filename of boot image to create (platform can override it if really needed)
BOOTIMAGE := xinu.boot
Expand All @@ -24,7 +24,7 @@ TOPDIR := ..

# Set the C compilation flags common to all Embedded Xinu platforms.
# platformVars can add more flags if desired.
CFLAGS :=
CFLAGS :=

# Do not perform linking until the end.
CFLAGS += -c
Expand Down Expand Up @@ -169,7 +169,7 @@ COMPILER_ROOT := $(ARCH_ROOT)$(ARCH_PREFIX)
# Set the actual compiler and several binutils programs.
CC := $(COMPILER_ROOT)gcc
AR := $(COMPILER_ROOT)ar
LD := $(COMPILER_ROOT)ld
LD := $(COMPILER_ROOT)ld# -Map test.map
STRIP := $(COMPILER_ROOT)strip
OBJCOPY := $(COMPILER_ROOT)objcopy

Expand Down Expand Up @@ -247,7 +247,7 @@ LIB_ARC := $(LIBS:%=$(LIBDIR)/%.a)
MAIN_OBJ := $(MAIN_SRC:%.c=%.o)

# Data is relative to the compile directory
DATA := data
DATA ?= data

DATA_SRC :=
include $(DATA:%=%/Makerules)
Expand Down
Loading