joel4: changed file permissions on intel.c

Missed this one - the file permissions were not set correctly on the
last commit.

Signed-off-by: jnider <joel@nider.org>
joel4: fixed static variables problem

The loader script was missing the static variables from the root task
and putting them at the wrong address. I can only assume that the section
name is different, but I wasn't able to determine the correct section name.
This is a work-around by selecting everything that isn't .text (code) and
putting it in the data section.  This is exactly what I want anyway, but it
would be nice to know what the correct section name is, and why my previous
solution didn't work.

Signed-off-by: jnider <joel@nider.org>
init.cpio: added boot.txt as a dependency

Allow rebuilding of init.cpio if the contents of boot.txt change.

Signed-off-by: jnider <joel@nider.org>
joel4: root task to handle cpio archives

Added support in the root task for opening cpio archives.  At this
point, support is minimal.  Only one archive can be opened at a time,
and the header must be in newc (ASCII) format.

Signed-off-by: jnider <joel@nider.org>
ignore init.cpio and tags files

Git should ignore generated files.

Signed-off-by: jnider <joel@nider.org>
joel4: root task error message on loading

Print an error message if an file specified in boot.txt cannot be found.

Signed-off-by: jnider <joel@nider.org>
Added drivers sub-directory

The first attempt at the Dominos drivers.  I started with the pcie bus,
which is just a stub at this point.  The real goal was to build the make
system, and test the loading function of the root task.

Signed-off-by: jnider <joel@nider.org>
joel4: preparation for release mode builds

Modified the makefiles and tools.mk to allow for separate debug/release
build configurations.  The debug mode adds the -g flag to gcc compilations
which includes DWARF2 debugging information in the object. Also, the -O0
flag is specified, even though its the default.  In the release configuration,
-O2 should be specified, but currently cannot be set due to the 'ldr' bug
(possibly in gcc, possibly in my code).

Signed-off-by: jnider <joel@nider.org>
joel4: convert from \n to \r\n in serial printing

I often read the log files on Windows, which requires \r\n as a line
ending.  However, I am in the habit of writing only \n in my printf()
statements as is common on UNIX systems.  So this patch converts \n
to \r\n so my log files are readable under Windows.

I also did some code cleanup, which should have been a separate patch
but at this point probably won't matter too much since I'm the only one
looking at the code.

Signed-off-by: jnider <joel@nider.org>
boot: fixed the paths to the init modules

boot.txt contains a list of files to be loaded by the boot task. These
files are contained in a cpio archive which is sensitive to path names.
Currently the cpio archive is built from the source tree, which contains
certain paths, and these paths are then carried over to the cpio file.
It just means that the paths must be specified in order to find the files
correctly when parsing the cpio archive.

Signed-off-by: jnider <joel@nider.org>
joel4: fixed module loading page allocation

Fixed a bug that occured while copying the boot module from kernel-space
to user-space.  The source index was not being incremented, so the same
memory page was copied each time.  Needless to the say the file was not
readable like that.

Signed-off-by: jnider <joel@nider.org>
joel4: changed the name of the version macro

The define specifying the kernel build number was copied from KOS, and the
name was kept.  This patch changes the name to JOEL4 to reflect the new
kernel name.

Signed-off-by: jnider <joel@nider.org>
joel4: split k_createTask to k_createThread

Created a new function k_createThread to separate the concept of a task
(which contains the memory space and a set of threads) and a thread (one
executable component in a task).  This is to be better aligned with the L4 API.

Signed-off-by: jnider <joel@nider.org>
joel4: notes

Very informal documentation mostly for myself.  This should explain why I did
what I did.

Signed-off-by: jnider <joel@nider.org>
joel4: added createTask syscall

A small wrapper function to bind the syscall mechanism to the existing
k_createTask kernel function.  Now a userspace app has the ability to cause
the kernel to create a new task. This is the basis for fork(), spawn(),
etc.  I needed it first for my loader.

Signed-off-by: jnider <joel@nider.org>
separate kernel and driver build targets

Allow kernel and drivers to be built as separate targets.  Also ensure drivers
are a pre-requisite for the init.cpio image.

Signed-off-by: jnider <joel@nider.org>
drivers: Makefile maintenance

Removed a bunch of commented out unused lines.

Signed-off-by: jnider <joel@nider.org>
Merge pull request #24 from jnider/dev

Dev