11 years agoSMP Booting, APIC, and IRQs
Barret Rhoden [Mon, 23 Mar 2009 06:01:01 +0000 (23:01 -0700)]
SMP Booting, APIC, and IRQs

Lots of things in this, would have liked to split it up, but they are
rather woven together.  Primitive SMP booting, some basic APIC work,
basic IRQ work, and other x86 infrastructure.  Backtrace works too.

11 years agoLAPIC memory mapping
Barret Rhoden [Sun, 8 Mar 2009 21:45:17 +0000 (14:45 -0700)]
LAPIC memory mapping

Creates page table mapping for the APIC area (0xfee00000), which should
be removed when we have MTRR support, I think.

11 years agoTrap work
Barret Rhoden [Sun, 8 Mar 2009 21:37:04 +0000 (14:37 -0700)]
Trap work

Set all IDT entries to use interrupt gates for now, til IRQ and APIC
issues are sorted.  DF might need to be NOEC (is now, though the books
say it generates an EC).  Long range, DF might be a task gate (it is in

11 years agoMSR support and more CPUID info
Barret Rhoden [Sat, 7 Mar 2009 23:44:05 +0000 (15:44 -0800)]
MSR support and more CPUID info

11 years agoSome Deputization with IN_HANDLER
Zach Anderson [Wed, 4 Mar 2009 02:30:09 +0000 (18:30 -0800)]
Some Deputization with IN_HANDLER

Putting IN_HANDLER in some of the places it should go, and added empty
handler entry and exit functions.

11 years agoAdds support for DANGEROUS annotation
Zach Anderson [Wed, 4 Mar 2009 00:21:31 +0000 (16:21 -0800)]
Adds support for DANGEROUS annotation

Used to mark userspace pointers, which can't be dereferenced
until checked.  Also sorts some Makefrag and pgdir issues.

11 years agoDeputy turned on. YOU NEED TO UPDATE YOUR IVY
Zach Anderson [Fri, 27 Feb 2009 20:03:10 +0000 (12:03 -0800)]
Deputy turned on.  YOU NEED TO UPDATE YOUR IVY

Compiles with --deputy now, with select files ignored with #pramga
nodeputy.  Most files are currently ignored, but this will allow
incremental deputization of the project.

11 years agoRemoved parallel output
Barret Rhoden [Wed, 25 Feb 2009 02:22:43 +0000 (18:22 -0800)]
Removed parallel output

Each character put was really slow when trying to output it to the
parallel port on real hardware (presumably because nothing is listening,
or perhaps due to the ugly delay()ing).  The only thing that used it was
Bochs, so just go ahead and redirect your serial out to a terminal like
a real man/woman.

11 years agoFriendly with GCC > 4.1
Barret Rhoden [Wed, 25 Feb 2009 01:17:12 +0000 (17:17 -0800)]
Friendly with GCC > 4.1

11 years agoFencepost
Barret Rhoden [Mon, 23 Feb 2009 21:48:20 +0000 (13:48 -0800)]

11 years agoMemory protection and page fault handling
Barret Rhoden [Mon, 23 Feb 2009 09:13:13 +0000 (01:13 -0800)]
Memory protection and page fault handling

Moved and improved the user memory check function, new panics on kernel
page faults, and processes learn their Env* early on.  User processes
provide some testing.

11 years agoInitial syscall support
Barret Rhoden [Mon, 23 Feb 2009 06:44:02 +0000 (22:44 -0800)]
Initial syscall support

'goodbye world' works, but needs actual testing.

11 years agoRudimentary breakpoint handling
Barret Rhoden [Mon, 23 Feb 2009 05:12:28 +0000 (21:12 -0800)]
Rudimentary breakpoint handling

11 years agoFixed traphandlers; they were backwards.
Barret Rhoden [Mon, 23 Feb 2009 02:53:29 +0000 (18:53 -0800)]
Fixed traphandlers; they were backwards.

If you want to learn something, go back a commit, run the four fault*
userprograms, and debug the problem based on the output.  This patch
also changes softint to texas's intentions, since we now have the fault

11 years agoPoor man's KVM reboot.
Barret Rhoden [Mon, 23 Feb 2009 01:45:02 +0000 (17:45 -0800)]
Poor man's KVM reboot.

11 years agoPermissions on IDTs.
Barret Rhoden [Mon, 23 Feb 2009 00:26:51 +0000 (16:26 -0800)]
Permissions on IDTs.

See user/softint.c for more info.

11 years agoIDT set up
Barret Rhoden [Fri, 20 Feb 2009 09:01:55 +0000 (01:01 -0800)]
IDT set up

Handles the setup of the IDT and handler functions.  Doesn't do much
other than detect and print out messages.  Backtrace doesn't work right
once kicked to the monitor.  O/W, things seem fine.

11 years agoLab3, Env support
Barret Rhoden [Thu, 19 Feb 2009 21:50:37 +0000 (13:50 -0800)]
Lab3, Env support

basic environment infrastructure.  not fully tested, but seems to work
okay.  need to remove the panic if you want to test it out, but unless
you are stepping in a debugger, the system will crash when hello
attempts a syscall.

11 years agoTwo-level page permissions fixes
Barret Rhoden [Wed, 18 Feb 2009 01:18:31 +0000 (17:18 -0800)]
Two-level page permissions fixes

showmapping now properly considers the PDE.  PDE permissions are set
during pgdir_walks so that the userspace UVPT mapping can actually see
pages other than 'UPD'.  Added checks for permissions in check_boot.

11 years agoadded my .gitignore. treat like other local-specific files.
Barret Rhoden [Mon, 16 Feb 2009 04:55:03 +0000 (20:55 -0800)]
added my .gitignore.  treat like other local-specific files.

11 years agoChecks for PSE support, just for yucks.
Barret Rhoden [Fri, 13 Feb 2009 20:01:45 +0000 (12:01 -0800)]
Checks for PSE support, just for yucks.

11 years agoFixed backtrace
Barret Rhoden [Wed, 11 Feb 2009 07:18:55 +0000 (23:18 -0800)]
Fixed backtrace

11 years agoLab3 initial merge
Barret Rhoden [Fri, 6 Feb 2009 01:10:30 +0000 (17:10 -0800)]
Lab3 initial merge

11 years agoInitial support for PSE
Barret Rhoden [Thu, 5 Feb 2009 08:43:09 +0000 (00:43 -0800)]
Initial support for PSE

Doesn't check CPUID for the PSE capability (not a big deal, actually,
but nice to do right / know how to do).  Maps all of the KERNBASE
mappings with jumbo pages, but that's it.  Grep pmap for PSE status for
more info.

11 years agoImproved backtrace and added some mapping commands
Barret Rhoden [Thu, 5 Feb 2009 04:11:09 +0000 (20:11 -0800)]
Improved backtrace and added some mapping commands

11 years agoLab2, exercise 6, basic paging
Barret Rhoden [Wed, 4 Feb 2009 04:35:30 +0000 (20:35 -0800)]
Lab2, exercise 6, basic paging

Nothing that relies on the boot_alloc and friends.  Passes all of their
tests, haven't run any other tests.

11 years agoLab2, exercise 4 - basic VM init, paging
Barret Rhoden [Tue, 3 Feb 2009 22:29:53 +0000 (14:29 -0800)]
Lab2, exercise 4 - basic VM init, paging

Could use some more tests in check_boot_pgdir, but seems to be okay.

11 years agoMinor changes to ROS and make infrastructure
Barret Rhoden [Sun, 1 Feb 2009 03:47:15 +0000 (19:47 -0800)]
Minor changes to ROS and make infrastructure

kern/Makefrag is set to a default everyone can use, and not just
specific to my environment with mnt/hdd, etc.  if you want to change
yours, run git update-index --assume-unchanged kern/Makefrag.  i did the
same with .bochsrc.

11 years agoAdded serial output for the console. It's sweet.
Barret Rhoden [Sat, 31 Jan 2009 05:55:10 +0000 (21:55 -0800)]
Added serial output for the console.  It's sweet.

11 years agoLab2 work in progress. Helper functions, touchups
Barret Rhoden [Sat, 31 Jan 2009 05:53:33 +0000 (21:53 -0800)]
Lab2 work in progress.  Helper functions, touchups

11 years agoKevin's changes and some Ivy.
Barret Rhoden [Wed, 28 Jan 2009 03:54:44 +0000 (19:54 -0800)]
Kevin's changes and some Ivy.

Some ivy work, but does not compile with deputy yet (due also to my
changes to monitor.c).

Most of kevin's changes from lab1 made it too.  Anything missing is
cosmetic or didn't fit with the end of lab1 things I did.

11 years agoLab2 merges, compiles now
Barret Rhoden [Sat, 24 Jan 2009 18:28:03 +0000 (10:28 -0800)]
Lab2 merges, compiles now

11 years agoLab2 initial changes
Barret Rhoden [Fri, 23 Jan 2009 20:46:41 +0000 (12:46 -0800)]
Lab2 initial changes

11 years agoEnd of Lab1
Barret Rhoden [Fri, 23 Jan 2009 20:25:52 +0000 (12:25 -0800)]
End of Lab1