summaryrefslogtreecommitdiff
path: root/sys/src/9/kw
AgeCommit message (Collapse)Author
2016-01-05kernel: change active.machs from bitmap to char array to support up to 64 ↵cinap_lenrek
cpus on pc64
2015-11-30kernel: cleanup exit()/shutdown()/reboot() codecinap_lenrek
introduce cpushutdown() function that does the common operation of initiating shutdown, returning once all cpu's got the message and are about to shutdown. this avoids duplicated code which isnt really machine specific. automatic reboot on panic only when *debug= is not set and the machine is a cpu server or has no display, otherwise just hang.
2015-06-19kernel: do not pull in atom.s from libc for arm kernelscinap_lenrek
- provide our own copy of cas() in l.s - replace use of libc ainc()/adec() with portable incref()/decref()
2015-06-15kernel: add pagechaindone() to wakeup processes waiting for memorycinap_lenrek
we keep the details about palloc in page.c, providing pagechaindone() for mmu code to be called after a series of pagechainhead() calls.
2015-05-30io.h: fis comment PciSID (alphapc, kw, mtx, teg2) (thanks qeed!)cinap_lenrek
2015-04-30pass Ureg* argument to note handler in R0 register on armcinap_lenrek
userspace note handlers, like any function, expect ther first argument in R0 register on arm.
2015-02-14usbehci: initial support for usb on zynq, remove uncached.hcinap_lenrek
the following hooks have been added to the ehci Ctlr structore to handle cache coherency (on arm): void* (*tdalloc)(ulong,int,ulong); void* (*dmaalloc)(ulong); void (*dmafree)(void*); void (*dmaflush)(int,void*,ulong); tdalloc() is used to allocate descriptors and the periodic frame schedule array. on arm, this needs to return uncached memory. tdalloc()ed memory is never freed. dmaalloc()/dmafree() is used for io buffers. this can return cached memory when when hardware maintains cache coherency (pc) or dmaflush() is provided to flush/invalidate the cache (zynq), otherwise needs to return uncached memory. dmaflush() is used to flush/invalidate the cache. the first argument tells us if we need to flush (non zero) or invalidate (zero). uncached.h is gone now. this change makes the handling explicit.
2015-02-07kernel: reduce Page structure size by changing Page.cachectl[]cinap_lenrek
there are no kernels currently that do page coloring, so the only use of cachectl[] is flushing the icache (on arm and ppc). on pc64, cachectl consumes 32 bytes in each page resulting in over 200 megabytes of overhead for 32gb of ram with 4K pages. this change removes cachectl[] and adds txtflush ulong that is set to ~0 by pio() to instruct putmmu() to flush the icache.
2014-12-16kernel: remove obsolete comment regarding Mntcache size in */main.ccinap_lenrek
2014-12-14kernel: get rid of /boot/boot parametrizationcinap_lenrek
there is no use for "bootdisk" variable parametrization of /boot/boot and no point for the boot section with its boot methods in the kernel configuration anymore. so mkboot and boot$CONF.out are gone. move the rules for bootfs.paq creation in 9/boot/bootmkfile. location of bootfs.proto is now in 9/boot/bootfs.proto. our /boot/boot target is now just "boot".
2014-11-09kernel: remove implicit Proc* argument from procctl()cinap_lenrek
procctl() is always called with up and it would not work correctly if passed a different process, so remove the Proc* argument and use up directly.
2014-06-08kernel: remove _xinc()/_xdec()cinap_lenrek
as with the Block refcount changes, _xinc() and _xdec() arent used anymore, so remove them. architecure can still define ainc()/adec() when it needs them.
2014-06-08kernel: remove Block refcounting (thanks erik)cinap_lenrek
2014-06-08kw: move syscall.$O target from config to mkfilecinap_lenrek
2014-02-06pc64: fix note handlingcinap_lenrek
2014-01-20kernel: various cleanupscinap_lenrek
2014-01-20kernel: apply uintptr for ulong when a pointer is storedcinap_lenrek
this change is in preparation for amd64. the systab calling convention was also changed to return uintptr (as segattach returns a pointer) and the arguments are now passed as va_list which handles amd64 arguments properly (all arguments are passed in 64bit quantities on the stack, tho the upper part will not be initialized when the element is smaller than 8 bytes). this is partial. xalloc needs to be converted in the future.
2013-12-29kernel: dont call pprint() while holding up->debug qlockcinap_lenrek
pprint() might block or even (maliciously) call into devproc write which will corrupt the qlock chain on attempt to qlock up->debug again.
2013-12-16devether: remove qfull prints and fix loopback packet handling of etheroq()cinap_lenrek
dont spam the console with qfull warnings. this makes things worse. handle loopback packets as stated in the comment. we call etheriq() with fromwire=1 for loopback packets so etheriq() can pass the packet on (without copying) or free it. dont inhibit interrupts while calling etheriq(). etheriq() can safely be called from process and interrupt context. it is unclear what this was supposed to fix and testing didnt seem to have any odd effects.
2013-11-22kernel: more kproc pexit() and sleep error handlingcinap_lenrek
2013-08-04apply richard millers arm debug fixes (from sources)cinap_lenrek
From richard: A couple of patches applied yesterday should make debugging on ARM a bit more reliable. Using db or acid on ARM, you may have noticed that a program being debugged would sometimes execute through a breakpoint without stopping, or run away while being single stepped. It turns out, as often happens, that one symptom had two separate causes. For details: /n/sources/patch/applied/5db-condcode/readme /n/sources/patch/applied/arm-bkpt-cond/readme To take advantage of the patches, rebuild libmach.a, then acid and db. On machines with a kw kernel (sheevaplug et al), you'll also want to rebuild /arm/9plug; otherwise breakpoints will stop working at all. The new 9plug will, however, still work with the old libmach; and the bcm and teg2 kernels are already compatible with the new libmach.
2013-06-14fpiarm: condok() verfiy before specialop() omap/kwjpathy
2013-06-12Remove unused fpemu function in omap, kwjpathy
2013-06-12ARM: kernel: add vfp emulator to bcm, teg2, omap, kwjpathy
2013-05-30kernel: do all fp state fork from procfork() (like pc kernel)cinap_lenrek
this simplifies the arm ports and keeps all the stuff in one place instead of spreading it thru notify(), trap() and syscall() functions and prevents useless fp state copying for kernel procs. also make sure to save fp in notify while still splhi().
2013-03-16sysexec: fix possible segment overlap with temporary stackcinap_lenrek
the kernel uses fixed area (TSTKTOP, TSTKSIZ) of the address space to temporarily map the new stack segment for exec. for 386 and arm, this area was right below the stack segment which has the problem that the program can map arbitrary segments there (even readonly). alpha and ppc dont have this problem as they map the temporary exec stack *above* the user reachable stack segement and segattach prevents one from mapping anything above or overlaping the stack. lots of arch code assumes USTKTOP being the end of userspace address space and changing this to TSTKTOP would work, but results in lots of hard to test changes. instead, we'r going to map the temporary stack programmatically finding a hole in the address space where to map it. we also lift the size limitation for arguments and allow arguments to fill the whole new stack segement. the TSTKTOP and TSTKSIZ are not used anymore so they where removed. references: http://9fans.net/archive/2013/03/203 http://9fans.net/archive/2013/03/202 http://9fans.net/archive/2013/03/197 http://9fans.net/archive/2013/03/195 http://9fans.net/archive/2013/03/181
2012-12-06move devusb to portcinap_lenrek
moved devusb to port, shifting the responsibility of how to enable interrupts to the arch specific hci driver.
2012-12-04syscallfmt: fix syscall trace for kw/opamp4cinap_lenrek
2012-12-04kw: syscallfmt() declaration moved to port/portfns.hcinap_lenrek
2012-05-03kernel: move duplicated random.c to portcinap_lenrek
2012-02-23correcting unicode superscripts for 1 2 and 3cinap_lenrek
2011-12-14kernel: fix wrong calculation of swap iolist sizecinap_lenrek
2011-10-25fix _tos->pcycles, make _tos->kcycles actually count cycles executing kernel ↵cinap_lenrek
code on behalf of the process
2011-08-17change definition of Chan.create to return a chan like opencinap_lenrek
2011-07-12segdesc: add /dev/^(ldt gdt) supportcinap_lenrek
2011-06-04cleanup boot(8), replace read(1), fix cpu kernel configscinap_lenrek
2011-06-04boot(8): replace bzfs with paqfscinap_lenrek
2011-05-21remove keyboard stuff from other ports, make openssl and python compile on armcinap_lenrek
2011-03-30Import sources from 2011-03-30 iso image - libTaru Karttunen
2011-03-30Import sources from 2011-03-30 iso imageTaru Karttunen