Home | History | Annotate | Download | only in usermode
History log of /src/sys/arch/usermode/usermode/machdep.c
RevisionDateAuthorComments
 1.58  01-Jan-2022  andvar fix typos in comments, mainly basicly -> basically.
 1.57  01-Aug-2018  reinoud Oops, forgot a debug printf
 1.56  11-Jun-2018  reinoud branches: 1.56.2;
Now we use timestamp info, use direct console output instead of kernel
timestamped output for usage() reporting
 1.55  05-Jun-2018  reinoud Add ATAPI passtrough support giving the NetBSD/usermode kernel full control of
an ATAPI device. All ATAPI/SCSI commands are passed trough.

Note that ATAPI/SCSI calls are made in the foreground still. Lengthy calls
will still hug the CPU until completion. Making it asynchronous is in the
pipeline
 1.54  22-Dec-2016  cherry branches: 1.54.14;
switch all ports to use uvm_init.c:uvm_md_init()

uvm_setpagesize() is now subsumed within this funciton.
 1.53  08-Feb-2012  reinoud branches: 1.53.6; 1.53.24; 1.53.28;
Fix /dev/kmem access and make vmstat(1) `work'. Not sure all the results are
indeed valid or correct but at least it shows them without coredumping or
coredumping the kernel.
 1.52  15-Jan-2012  jmcneill don't modify command-line parameters
 1.51  15-Jan-2012  jmcneill allow specifing the root device with 'root=ldN' parameter
 1.50  07-Jan-2012  jmcneill support multiple disk images (pass multiple disk=<path> parameters on the
command-line). while changing command-line params, rename tap= option to
net=
 1.49  06-Jan-2012  reinoud Split machdep.c into a MI part and a MD part.
 1.48  03-Jan-2012  reinoud Fix logic that checks if its the kernel or a userland process that causes the
trap. Signal sending still needs to be addressed.
 1.47  29-Dec-2011  jmcneill Replace the SDL based genfb driver with a wsdisplay and wskbd driver that
implements the VNC (RFB) protocol.

To enable the VNC server, add 'vnc=640x480,5900' to the kernel command line
(where 640x480 is the desired fb resolution and 5900 is the TCP port).

Screenshot of it here: http://www.netbsd.org/~jmcneill/usermode.tiff
 1.46  27-Dec-2011  reinoud Implement physio() for NetBSD/usermode the right way!
 1.45  26-Dec-2011  jmcneill update usage message:

$ ./netbsd -h
-h: unknown flag
usage: ./netbsd [-acdqsvxz] [tap=<dev>,<eaddr>] [audio=<dev>] [<fsimg>]
(ex. "./netbsd tap=tap0,00:00:be:ef:ca:fe audio=audio0 root.fs")
 1.44  26-Dec-2011  jmcneill add vaudio(4) audio device driver
 1.43  26-Dec-2011  jmcneill first cut at networking support for usermode, doesn't fully work yet but
enough to get an address with dhcp and answer arps
 1.42  24-Dec-2011  reinoud Make signals work for NetBSD/usermode[i386] !
 1.41  20-Dec-2011  jmcneill on second thought, set machine and machine_arch both from the host and
override module_machine
 1.40  20-Dec-2011  jmcneill set machine_arch to that of the host
 1.39  20-Dec-2011  jmcneill get rid of urkelvisor, and use same MD majors as the host
 1.38  20-Dec-2011  reinoud Add int $80 and sysenter opcodes to the x86 SIGILL opcode detector
 1.37  14-Dec-2011  reinoud Cleanup i386 register printing and opcode extraction
 1.36  14-Dec-2011  reinoud Remove the need for a siginfo structure in illegal instruction handling.
 1.35  13-Dec-2011  reinoud Print the signal we are supposed to deliver!
 1.34  12-Dec-2011  reinoud Fix error flag (carry) setting if its a pseudo error of EJUSTRETURN etc. Just
in case.
 1.33  27-Nov-2011  reinoud branches: 1.33.2;
Big patch that changes the signal stack usage of urkel significantly.

Formerly, all signals came on the signal stack and the two important ones were
then forwared to either the system call or the pagefault handler. This worked
fine but the signal stack remains that, a stack. When we go multi-process this
stack gets corrupted and out-of-order with all kind of nastyness since a
userland process switch can occure when a system call is called or when a
process gets a page fault.

The new scheme only uses the signal stack as a jumpboard. It swaps states and
then returns from the signal, clearing the stack but instead of returning to
the code it now jumpt to the handler and that handler then returns to the code
when its finished.
 1.32  16-Sep-2011  reinoud branches: 1.32.2;
Split the two debug sections
 1.31  14-Sep-2011  reinoud Implement in-place execution for binaries! No more MKPIE/MKPIC for userland
anymore!
 1.30  12-Sep-2011  reinoud Implement spl level based priority interrupt controller in software
 1.29  09-Sep-2011  reinoud Use the new thunk_makecontext() scheme with function and upto 3 aguments
 1.28  09-Sep-2011  reinoud machdep.c: Cleanup the machine dependent code and set the carry flag on error
out. While here also clean up register printing.

syscall.c: Add debug syscall printing code to track basic syscalls being
taken.
 1.27  08-Sep-2011  reinoud Implement a working(!) syscall! well, it can call a number of syscalls without
dying ;)
 1.26  08-Sep-2011  reinoud Implement md_check_syscall_opcode() to check if the instruction at the pointer
`ptr' is indeed a syscall entry.
 1.25  07-Sep-2011  reinoud Move all i386 specific stuff in a #ifdef __i386__
 1.24  05-Sep-2011  reinoud Cleanup the exec debugging printf mess in usermode's machdep.c and make them
depend on DEBUG_EXEC
 1.23  04-Sep-2011  jmcneill implement splraise/spllower
 1.22  03-Sep-2011  jmcneill Get this compiling (but not quite linking yet) on Linux
 1.21  03-Sep-2011  jmcneill move call of urkelvisor_init to main instead of pmap_bootstrap
 1.20  01-Sep-2011  reinoud Hack register setup for __i386__. This now seems to start up the code a lot
further.
 1.19  30-Aug-2011  reinoud Hack to try to help usermode/i386 by setting the EBX register
 1.18  29-Aug-2011  reinoud Dirty commit of machdep.c and cpu.c
 1.17  28-Aug-2011  reinoud Implement redementary setregs()
 1.16  27-Aug-2011  reinoud Print when retregs() is called.
 1.15  25-Aug-2011  jmcneill - build thunk code with warnings
- add option SDL which pulls in thunk_sdl code and links the kernel to libSDL
- add an experimental framebuffer driver based on thunk_sdl, enable with:
options SDL
genfb* at mainbus?
wsdisplay* at genfb?
options WS_KERNEL_FG=WSCOL_GREEN
options WSEMUL_VT100
- reserve a major # for wsdisplay
- add thunk_getenv()
 1.14  23-Aug-2011  jmcneill more time_t fixes
 1.13  13-Aug-2011  jmcneill - initialize cpu_info_primary early, before cpu0 attaches
- track idepth in cpu_info struct and use it in cpu_intr_p
- for debug and diagnostic kernels, abort when rebooting
- fill in __cpu_simple_lock_* stubs
- splraise(IPL_HIGH) before calling kernmain
- pmap_extract: only return phys addr if pap is not NULL
 1.12  12-Aug-2011  jmcneill add a simple disk driver, pass the path to the disk image on the kernel command line:

soundwave$ ./netbsd /tmp/test.fs
NetBSD/usermode startup
[...]
ld0 at mainbus0: /tmp/test.fs (33554432)
ld0: 32768 KB, 8322 cyl, 64 head, 63 sec, 1 bytes/sect x 33554432 sectors
boot device: ld0
root on ld0a dumps on ld0b
 1.11  12-Aug-2011  jmcneill implement reboot using execv
 1.10  10-Aug-2011  jmcneill fix build
 1.9  08-Feb-2010  joerg Remove separate mb_map. The nmbclusters is computed at boot time based
on the amount of physical memory and limited by NMBCLUSTERS if present.
Architectures without direct mapping also limit it based on the kmem_map
size, which is used as backing store. On i386 and ARM, the maximum KVA
used for mbuf clusters is limited to 64MB by default.

The old default limits and limits based on GATEWAY have been removed.
key_registered_sb_max is hard-wired to a value derived from 2048
clusters.
 1.8  10-Dec-2009  matt branches: 1.8.2;
Change u_long to vaddr_t/vsize_t in exec code where appropriate (mostly
involves setregs and vmcmds). Should result in no code differences.
 1.7  26-Nov-2009  matt Kill proc0paddr. Use lwp0.l_addr instead.
 1.6  21-Oct-2009  snj Drop 3rd and 4th clauses. OK jmcneill (copyright holder).
 1.5  02-Jul-2008  ad Replce exec_map with a pool. Proposed on tech-kern@, reviewed by chs@.
 1.4  07-Jan-2008  joerg branches: 1.4.2; 1.4.4; 1.4.6; 1.4.12; 1.4.16; 1.4.18; 1.4.20;
Use gettimeofday as timecounter.
 1.3  29-Dec-2007  jmcneill branches: 1.3.2;
Add -z to usage strings.
 1.2  29-Dec-2007  jmcneill Define init_main's main away to kernmain, and provide our own MD main entry
point. We do this since we don't have a proper bootloader, so we can
instead parse boot arguments here.

$ ./netbsd -h
-h: unknown flag
usage: ./netbsd [-acdqsvx]
(ex. "./netbsd -s")
 1.1  29-Dec-2007  jmcneill Import work-in-progress NetBSD/usermode port.
 1.3.2.3  08-Jan-2008  bouyer Sync with HEAD
 1.3.2.2  02-Jan-2008  bouyer Sync with HEAD
 1.3.2.1  29-Dec-2007  bouyer file machdep.c was added on branch bouyer-xeni386 on 2008-01-02 21:51:04 +0000
 1.4.20.1  03-Jul-2008  simonb Sync with head.
 1.4.18.1  18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.4.16.2  11-Mar-2010  yamt sync with head
 1.4.16.1  04-May-2009  yamt sync with head.
 1.4.12.1  02-Jul-2008  mjf Sync with HEAD.
 1.4.6.2  18-Feb-2008  mjf Sync with HEAD.
 1.4.6.1  07-Jan-2008  mjf file machdep.c was added on branch mjf-devfs on 2008-02-18 21:05:13 +0000
 1.4.4.2  21-Jan-2008  yamt sync with head
 1.4.4.1  07-Jan-2008  yamt file machdep.c was added on branch yamt-lazymbuf on 2008-01-21 09:39:56 +0000
 1.4.2.2  09-Jan-2008  matt sync with HEAD
 1.4.2.1  07-Jan-2008  matt file machdep.c was added on branch matt-armv6 on 2008-01-09 01:49:29 +0000
 1.8.2.1  30-Apr-2010  uebayasi Sync with HEAD.
 1.32.2.1  17-Apr-2012  yamt sync with head
 1.33.2.1  18-Feb-2012  mrg merge to -current.
 1.53.28.1  07-Jan-2017  pgoyette Sync with HEAD. (Note that most of these changes are simply $NetBSD$
tag issues.)
 1.53.24.1  05-Feb-2017  skrll Sync with HEAD
 1.53.6.1  03-Dec-2017  jdolecek update from HEAD
 1.54.14.2  06-Sep-2018  pgoyette Sync with HEAD

Resolve a couple of conflicts (result of the uimin/uimax changes)
 1.54.14.1  25-Jun-2018  pgoyette Sync with HEAD
 1.56.2.1  10-Jun-2019  christos Sync with HEAD

RSS XML Feed