Commit graph

623 commits

Author SHA1 Message Date
cinap_lenrek 9ea4028246 ether82567: x200 ethernet (thanks ftrvxmtrx)
Apparently i82567m ether (ich9) _has_ flash. Provided patch fixes the ethernet for Thinkpad X200.
2012-12-29 12:02:59 +01:00
cinap_lenrek ec6714f5ed sdahci: fix mistake 2012-12-29 11:27:24 +01:00
cinap_lenrek b7b2fea16f sdahci: get dvd drive to work with x301 2012-12-28 03:54:06 +01:00
cinap_lenrek f9b9cab6a1 sdide: confusion 2012-12-28 03:39:39 +01:00
cinap_lenrek 1c090cd04f sdide: packet io byte count.
instead of setting the packet io byte count to some bullshit
value, use the dlen from the scsi request. limit transfer
byte count to 32k for atapi.
2012-12-26 17:58:15 +01:00
cinap_lenrek 4a4c8218ee devsd: fix possible sdbio() race with inquiry data changing (due to ahci hotplug)
the unit inquiry data might change in case the drive got pulled
with ahci. so keep track if we locked the ctl in a local stack
variable instead of relying on that the inquiry data stays the
same.
2012-12-26 17:53:12 +01:00
cinap_lenrek e7348f8ed2 sdiahci: prevent x301 dvd-ram from hanging machine
matushita dvd-ram on thinkpad x301 hangs on the inquiry command
done from scsiverify(). not sure whats wrong with it, but at least
this makes the machine boot.
2012-12-25 00:22:32 +01:00
cinap_lenrek f379992fcd adiahci: drive onlining, task file error (atapi) handling, missed interrupts, bios handoff, idle, cleanup
wait for the drives to become ready or missing in iaonline()
and iaverify() to prevent nobootprompt= race.

handle task file error status (this can happen for atapi)
under some circumstances and would hang the io if not
handled.

preventively poll interrupts from the checkdrive kproc in
case we loose interrupts (bad via machine).

implement bios handoff procedure.

make sure the port is idle before programming the port dma
regios in configdrive(), do not start command processing
on the port unless phylink has been established.
2012-12-24 18:07:18 +01:00
cinap_lenrek 9465269c40 ethervgbe: fix broken rx block handling 2012-12-20 09:44:10 +01:00
cinap_lenrek 30b8fa0eef pci: add southbridge for Viatech VT8235 2012-12-19 00:35:53 +01:00
cinap_lenrek 5d27a5972d pci: add southbridge for intel 82hb65 cougar point pch (thanks ftrvxmtrx) 2012-12-19 00:09:42 +01:00
cinap_lenrek 5d78632d41 pci: add Viatech VT8251 south bridge 2012-12-17 07:51:40 +01:00
cinap_lenrek 8f0ed00420 audiohda: add support for PCH (Dell E5420) 2012-12-10 10:01:52 +01:00
cinap_lenrek 3bf1e0798b audiohda: pikeshedding
use seprint() for audiostat.
2012-12-07 00:56:26 +01:00
cinap_lenrek 62721182c4 audiohda: fix getoutamprange()
same problem as previous commit. have to query
function group if not Wampovrcap.
2012-12-07 00:36:15 +01:00
cinap_lenrek 29aa499682 audiohda: handle default amp settings
widgets that do not have Wampovrcap have ther default
amplifier parameters stored in the aydio function group.
only if the amp override bit is *not* set, then the widget
stores its own amplifier parameters and we have to query
its node id, otherwise the audio function group node id.
2012-12-07 00:12:16 +01:00
cinap_lenrek 5a138029db move devusb to port
moved devusb to port, shifting the responsibility of how
to enable interrupts to the arch specific hci driver.
2012-12-06 18:53:17 +01:00
cinap_lenrek 75b1ec6716 audiohda: dont xspanalloc() Ctlr structure
theres no requirement for the Ctlr structure to be 8 byte aligned.
its not passed to hardware.
2012-12-06 17:19:13 +01:00
cinap_lenrek c3105131fe bootrc: fix mistake, god damn it 2012-12-06 03:46:22 +01:00
cinap_lenrek 620d6df973 bootrc: reparse all env variables, not just #ec 2012-12-06 02:03:59 +01:00
cinap_lenrek 23239adf54 nusb/ether: port drivers for asix and smsc ethernet 2012-12-06 23:05:24 +01:00
cinap_lenrek 0750687012 move usb ethernet in bootfs.paq 2012-12-05 13:53:34 +01:00
cinap_lenrek 96cc3eb2ee devtls: add support for aes_128_cbc and aes_256_cbc (import from sources) 2012-12-04 10:53:53 +01:00
cinap_lenrek b296b96c68 devssl: handle bad secretin/secretout ctl arguments (import from sources) 2012-12-04 10:52:42 +01:00
cinap_lenrek b142e2a308 devpipe: import pipe wstat() support to change permissions (import from sources) 2012-12-04 10:40:08 +01:00
cinap_lenrek 580a8ae857 syscallfmt: fix syscall trace for kw/opamp4 2012-12-04 07:26:33 +01:00
cinap_lenrek b4e34c1c74 kw: syscallfmt() declaration moved to port/portfns.h 2012-12-04 05:28:38 +01:00
cinap_lenrek 50c9769bbd sdiahci: fix staggered spinup wait loop, fix confusion
setting Asud in the cmd register is not needed, because
Apwr is (Asud|Apod) already. the problem really was that
the drive comes up with sstatus Spresent (001), so we never
spun it up because (p->sstatus & Sphylink) == 0 was never
met (Sphylink being a mask (011) overlaping Spresent bit).

the spinup wait loop has to run only for the staggered spinup
case (h->cap & Hss) and it should wait for the drive to be
detected by the phy, not just cold presence detect.
2012-12-02 04:50:37 +01:00
cinap_lenrek a9206fa5ad sdiahci: make drive dvd drive spinup work, add *ahcidebug= boot parameter
thinkpad r400 dvd drive was not recognized. port status
indicated present device but no Sphylink because the
device did not spin up. setting the Asud bit in ahciconfigdrive()
made it come up clean.

add scsciverify() call in iaverify() for atapi inquiry.

keep in some of the debug prints and add a *ahcidebug= boot
parameter to enable them.
2012-12-02 01:39:03 +01:00
cinap_lenrek a8fc4ddc6d usbehci: route ports to all ehci controllers, not just the first
i belive the seizing up was a side effect of broken
bios handover. ehci will not work on the other controllers
if we do not route the ports to them.
2012-11-28 07:35:28 +01:00
cinap_lenrek f98bdfece0 audiohda: add pci vid/did for lenovo thinkpad x230t 2012-11-28 01:20:58 +01:00
cinap_lenrek ffa54947bc usbehci: fix broken bios takeover
bios takeover was broken. bad Ceecpmask (was 8, should be 0xFF)
causing it to miss the legacy control ecap and properly take
overship of the controller. also the order seems wrong, we
have to takeover before we do anything with the controller.

remove the pci config space 0xc0 = 0x2000 write. this the
uhci legacy register. its not anywhere in the ehci spec.
2012-11-25 16:24:10 +01:00
cinap_lenrek f8f118423c usbohci: revert td overrun error handling change from sources
regarding the ohci spec, a overrun td might supply a full
packet of data. this change seemed to have caused nusb/kb to
fail with getting spurious zero byte reads. reverting for now.
2012-11-24 16:41:38 +01:00
cinap_lenrek f37d68003d usbohci: implement smm handover, timeouts, donehead dequeue.
implement SMM emulation driver handover in ohcireset(). this fixes
hang and defunct internal keyboard problems on a acer notebook.

dont spin forever waiting for the controller on soft reset in init().

check both, donehead pointer *and* interrupt status for
processed td event (Wdh) similar to the ohci spec example for
processed tds and unlink immidiately. acknowledge *all* the
interrupt status bits before masking. mask out unhandled
events.

various stuff:

check for christmas light interrupt status (cardbus controller
removed?)

add (missing?) break for Tddataovr error case in qhinterrupt().
(changed on sources, not clear why?)

mask interrupt events on shutdown() (from sources).
2012-11-24 03:51:57 +01:00
cinap_lenrek 4b4070a8b9 ratrace: fix race conditions and range check
the syscallno check in syscallfmt() was wrong. the unsigned
syscall number was cast to an signed integer. so negative
values would pass the check provoking bad memory access from
kernel. the check also has an off by one. one has to check
syscallno >= nsyscalls instead of syscallno > nsyscalls.

access to the p->syscalltrace string was not protected
from modification in devproc. you could awake the process
and cause it to free the string giving an opportunity for
the kernel to access bad memory. or someone could kill the
process (pexit would just free it).

now the string is protected by the usual p->debug qlock. we
also keep the string arround until it is overwritten again
or the process exists. this has the nice side effect that
one can inspect it after the process crashed.

another problem was that our validaddr() would error() instead
of pexiting the current process. the code was changed to only
access up->s.args after it was validated and copied instead of
accessing the user stack directly. this also prevents a sneaky
multithreaded process from chaning the arguments under us.

in case our validaddr() errors, we cannot assume valid user
stack after the waserror() if block. use up->s.arg[0] for the
noted() call to avoid bad access.
2012-11-23 20:27:09 +01:00
cinap_lenrek 6f1efd37a2 limit clunk queue length for cclose()
dont let the clunk queue grow too large if we are allowed to
block (cclose) as the fileserver might run out of fids.
2012-11-07 22:04:29 +01:00
cinap_lenrek 6c8097a84d fix spurious kproc ppid
newproc() didnt zero parentpid and kproc() didnt set it, so
kprocs ended up with random parent pid. this is harmless as
kprocs have no up->parent but it gives confusing results in
pstree(1).

now we zero parentpid in newproc(), and set it in sysrfork()
unless RFNOWAIT has been set.
2012-11-07 20:46:30 +01:00
cinap_lenrek 2c4a77f21f devproc: remove pgrpid == 1 check for notepg open
assuming that this check tried to prevent the hostowner
from killing init, it is silly because init would just
handle the note.

with kbdfs, we actually want to send interrupt note to
the initial process group so instead of working arround
this with rfork(RFNOTEG|RFNAMEG), we remove the check.
2012-11-07 18:57:02 +01:00
cinap_lenrek 599dd1c34f make interrupt key (Del) just work in the console
these changes make the interrupt key available in the
console (before rio is started).

kbdfs: will now send a "interrupt" note to its invoking
process group in cooked mode.

bootrc: is now prepared to handle interrupts, mainly to
not accidently spawn a new bootargs prompt.

init: forwards the interrupt to the cpurc/termrc pgrp.

vncs: shields itself from kbdfs notegroup so interrrupt
wont kill the whole vnc session.
2012-11-06 17:19:41 +01:00
cinap_lenrek 90cbdce8ab devdraw: fix stats for #i/winname (thanks jas) 2012-10-27 22:27:19 +02:00
cinap_lenrek 22c7584780 devproc: fix another channel leak, move the cclose(c) from proctext() to procopen. 2012-10-22 21:59:52 +02:00
cinap_lenrek 6680d50d4b fix devproc text chan leak 2012-10-22 18:51:19 +02:00
cinap_lenrek 1ee5cd7425 kernel: mnt cache rework
avoid double entries in the cache for copen() and properly handle
locking so we wont just give up if we cant lock the Mntcache entry,
but drop the cache lock, qlock the Mntcache entry, and then recheck
the cache.

general cleanup (cdev -> ccache, use eqchantdqid())
2012-10-17 15:48:30 +02:00
cinap_lenrek fcacce0f2f kernel: duppage cleanup
remove the sched() call and retry loop from duppage() and just
drop the page lock, then reacquire it after lock(&palloc).
2012-10-16 16:10:26 +02:00
cinap_lenrek 45b99937be kernel: cachedel() lock order, lookpage, cleanup
the lock order of page.Lock -> palloc.hashlock was
violated in cachedel() which is called from the
pager. change the code to do it in the right oder
to prevent deadlock.

change lookpage to retry on false hit. i assume that
a false hit means:

a) we'r low on memory -> cached page got uncached/reused

b) duppage() got called on the page, meaning theres another
cached copy in the image now.

paging in is expensive compared to the hashtable lookup, so
i think retrying is better.

cleanup fixfault, adding comments.
2012-10-16 14:12:21 +02:00
cinap_lenrek 1335be8276 swap: track swap pages with > 255 references, setswapchan() swapimage.c
swaped pages use a 8bit refcount where as the Page uses a 16bit one.
this might be exploited with having a process having a single page
swaped out and then forking 255 times to make the swap map refcount
overflow and panic the kernel.

this condition is probably very rare. so instead of doubling the
size of the swap map, we add a single 32bit refcount swapalloc.xref
which will keep the combined refcount of all swap map entries who
exceeded 255 references.

zero swapimage.c in setswapchan() after closing it as the stat() call
below might error leaving a dangeling pointer.
2012-10-15 14:04:30 +02:00
cinap_lenrek 2f732e9a85 kernel: attachimage / exec error handling
attachimage()'s approach to handling newseg() error is flawed:

a) the the image is on the hash table, but ref is still 0, and
there is no segment/pages attached to it so nobody is going to
reclaim / putimage() it -> leak

b) calling pexit() would deadlock us because exec has acquired
up->seglock when calling attachimage(), so this would just deadlock.

the fix does the following:

attachimage() will putimage() and nexterror() if newseg() fails
instead of pexit(). this is less surprising.

exec now keeps the condition variable commit which is set once
we are commited / reached the point of no return and check this
variable in the highest waserror() handler and pexit() us there.

this way we have released up all the locks and pexit() will
cleanup.

note: this bug shouldnt us hit in with the current newseg()
implementation as it uses smalloc() which would wait to
satisfy the allocation instead of erroring.
2012-10-14 19:48:46 +02:00
cinap_lenrek 16d61d3c97 kernel: try to catch some (rare) mistakes
kstrcpy() did not null terminate for < 4 byte buffers. fixed,
but i dont think there is any case where this can happen in
practice.

always set malloctag in kstrdup(), cleanup.

always use ERRMAX bounded kstrcpy() to set up->errstr, q->err
and note[]->msg. paranoia.

instead of silently truncating interface name in netifinit(),
panic the kernel if interface name is too long as this case
is clearly a mistake.

panic kernel when filename is too long for addbootfile() in
devroot. this might happen if your kernel configuration is
messed up.
2012-10-11 17:29:16 +02:00
cinap_lenrek 73e7e47d5b kenrel: simplify image cache by use of ccloseq() 2012-10-10 08:22:35 +02:00
cinap_lenrek 83ffc3a1da pc kernel: make imagemem maxsize 10% less of mainmem maxsize 2012-10-06 07:05:08 +02:00
cinap_lenrek 9e7ecc41d5 devproc buffer overflow, strncpy
in devproc status read handler the p->status, p->text and p->user
could overflow the local statbuf buffer as they where copied into
it with code like: memmove(statbuf+someoff, p->text, strlen(p->text)).
now using readstr() which will truncate if the string is too long.

make strncpy() usage consistent, make sure results are always null
terminated.
2012-10-01 02:52:05 +02:00
cinap_lenrek 347ac6ef58 guesscpuhz(), apm suspend
use fastclock timer (pit2) to measure cpufreq in guesscpuhz(). this
gives a bigger period minimizing the danger of overrun as pit2 runs
at the constant maximum period of 0x10000 ticks. also use smaller
loop increments (1000) and bigger maximum loop upper bound.

move the loops < ... check to the bottom of the loop so we get the
effective count *before* adding the next loop increment.

ilock() while doing measurements in guesscpuhz() to prevent accidents
with other processors reading fastclock or doing guesscpuhz()
in parralel.

export new i8253reset() function for apm to reset the timers after
a apm bios suspend.
2012-09-30 19:41:34 +02:00
cinap_lenrek 2204bb7321 ether82557: timeout for ifstats DumpSC command 2012-09-30 16:16:20 +02:00
cinap_lenrek 5d64e428eb fix devproc and killbig segment race
we have to acquire p->seglock before we lock the individual
segments of the process and lock them. if we dont then pexit()
might free the segments before we can lock them causing the
"qunlock called with qlock not held, from ..." prints.
2012-09-30 16:14:27 +02:00
google c3cd4fe746 fix typo. 2012-09-19 21:13:36 +12:00
google 1f7eb17f4b Enable busmastering for SCH (Poulsbo) PATA controller. 2012-09-19 21:07:44 +12:00
cinap_lenrek a31c30564c sdide: make sure bmiba is in i/o port space, not memory 2012-09-16 16:46:28 +02:00
cinap_lenrek 1d62e1d8c8 usb: dont give up on unassigned pci irq line in hci driver
sometimes, the bios does not assign a interrupt line for pci
devices. this should not be fatal in case of mp ineterrupts
as long as there is intpin or msi can be used.

warn in intrenable() if we hit such a interrupt and set
irq to -1 to prevent it from getting enabled on the pic
or as isa interrupt in apic mode.
2012-09-15 03:17:17 +02:00
cinap_lenrek 336df4d4ae Qcoalesce patch to satisfy full read length 2012-09-14 03:35:15 +02:00
google dd1b8df880 Add alignment hints for e512 ATA drives. 2012-09-09 17:22:12 +12:00
cinap_lenrek 9c18f300a4 devshr: honor noattach 2012-09-06 01:05:37 +02:00
google 577a9f763f Prevent nusb/disk and nusb/kb from blocking nusbrc 2012-09-06 13:15:59 +12:00
cinap_lenrek 0c52215ae3 usb: fix potential isoread overruns, error instead of panic on isoread in ohci 2012-09-03 04:23:02 +02:00
cinap_lenrek cfd25faa28 usb: fix isowrite putsamples race 2012-09-03 01:54:34 +02:00
cinap_lenrek d32c8fc79a ether82563: fix format string error 2012-09-02 21:57:10 +02:00
google 3914d039b1 Add timeout to eeprom and flash init in ether82563 driver.
Prevents hang on misidentified or broken cards.
2012-09-03 19:23:28 +12:00
google 25a5ae8a44 Add Intel 82801JIB ICH10 southbridge 2012-09-03 17:44:30 +12:00
google 14843589e2 Intel 82567V DOES support jumbo frames, despite claims to the contrary. 2012-09-03 13:40:51 +12:00
google 59d3ba2ce0 Intel 82567V does not support jumbo frames. 2012-09-02 11:31:53 +12:00
cinap_lenrek c74eff0906 audiohda: unsigned vid/rid formating 2012-09-02 01:02:34 +02:00
google 87b6b93257 Fix for i82567V-2 2012-09-02 00:27:43 +12:00
cinap_lenrek e91301a401 rdmsr/wrmsr become tryrdmsr/trywrmsr, we can should check for trap 2012-08-31 16:48:33 +02:00
aiju 5ba4ccd30e fixed RFNOMNT 2012-08-27 17:50:48 +02:00
cinap_lenrek 25070f33fb audiohda: add intel sch models (thanks puddingpimp on #cat-v for sending a patch) 2012-08-26 17:16:03 +02:00
cinap_lenrek 19219d5a95 archmp: checksum _MP_ structure before use, coherence() and comments (import from sources)
we used to only test the checksum of the PCMP structure referenced by
the _MP_ without checking _MP_ itself. now fixed.

geoff added some coherence() calls and comments in the mpstartup and
apic code which seems to be a good idea.
2012-08-25 14:06:42 +02:00
cinap_lenrek 3ac4524e4a syscallfmt: use up->syserrstr instead of up->errstr (import from sources) 2012-08-24 15:53:35 +02:00
cinap_lenrek da01fdae11 guesscpuhz: add sanity checks for virtualbox (import from sources) 2012-08-24 15:46:21 +02:00
cinap_lenrek d436b2117e add unified sigsearch() function to look for bios data structures
replace the various functions that searched for bios data structures by
a single sigsearch() one in pc/memory.c that will probe the various bios
data areas.

also, a new checksum() function was added that is to be used to validate
the structures found.
2012-08-24 15:36:56 +02:00
cinap_lenrek 86f323290c wait: always check up->nchild before going to sleep
always make sure that there are child processes we can wait for
before sleeping.

put pwait() sleep into a loop and recheck. this is not strictly
neccesary but prevents accidents if there are spurious wakeups
or a bug.
2012-08-24 13:11:04 +02:00
cinap_lenrek d404e9e9f8 devmnt: more carefull wakeup in mountmux
once we set q->done = 1 in mountmux, the sleeper might return freeing q
so the wakeup might access invalid memory. we change the embedded Rendez
structure in the Mntrpc into a pointer to the sleeping procs up->sleep
rendez so the rendez is always going to be valid even if the rpc has been
freed.

the call to mntstats was moved before we set q->done also to prevent
accessing invalid memory.
2012-08-24 13:00:14 +02:00
cinap_lenrek 80a5bfc1d8 sdvirtio: be more carefull at wakeup
wakeup cannot access r->sleep once we set r->done because the
sleeper might just return at this point making r invalid. make
a copy of the sleep rendez pointer before setting r->done.
2012-08-24 12:52:34 +02:00
cinap_lenrek c120dbc777 pccpuf: add vgaradeon 2012-08-17 19:03:26 +02:00
cinap_lenrek 7fdf820589 pckernel: use constants instead of hardcoding cpuid bits in various places 2012-08-17 04:03:51 +02:00
cinap_lenrek a8d7bbeeb3 remove 9/pc/boot.fs file 2012-08-14 03:54:26 +02:00
cinap_lenrek d1f1be9c57 vgavmware: fix hardware acceleration (fill is not available with SVGA2) 2012-08-10 15:17:27 +02:00
aiju b21b9ba89c added hjfs 2012-08-07 17:57:04 +02:00
cinap_lenrek 36adf27af8 add Echange[] error string 2012-08-07 07:15:41 +02:00
cinap_lenrek 7fbae174eb floppy: fix endless loop when trying to change floppy type on media change 2012-08-07 07:08:33 +02:00
cinap_lenrek 5eec707368 pci.c: reserve pci membars after assinging them for *nobios= option 2012-08-06 23:56:10 +02:00
cinap_lenrek cd99666815 memory.c: remove unused xmapupa map 2012-08-06 23:54:52 +02:00
cinap_lenrek 2f457f5f19 audioac97: reserve ioport ranges 2012-08-05 15:49:38 +02:00
cinap_lenrek 1159f1e54f ip: fix assert panic on fragmented icmp echo request (see eriks icmp-frag patch) 2012-08-02 02:02:10 +02:00
cinap_lenrek 9caf93faa8 vesa: timeout blank/unblank operation if it gets stuck 2012-08-01 22:56:58 +02:00
cinap_lenrek fcc5e75d07 tsemacquire: manpage and syscallfmt 2012-07-30 22:45:49 +02:00
cinap_lenrek 49ac0b93d3 add tsemacquire syscall for go 2012-07-29 20:26:49 +02:00
cinap_lenrek 81d43b6f9d kernel: make mp mode and msi interrupts the default. *msi -> *nomsi 2012-07-25 23:18:26 +02:00
cinap_lenrek 15885866cb revert every commit, for great justice! 2012-07-18 21:39:06 +02:00
glenda fbb8a423e7 fix 2012-07-18 21:29:00 +02:00
aiju 21eced0e5d all your base are belong to us 2012-07-18 21:21:16 +02:00
cinap_lenrek c71c05dd64 screen: cleanup 2012-07-18 15:08:01 +02:00
cinap_lenrek b9ca8e8378 vga: softscreen
allow the shadow framebuffer (softscreen) to be used with any
vga driver, not just vesa. this removes the ugly scr->paddr = 0
hack employed by vesa driver to force softscreen and adds a
softscreen vgactl message that can switch the feature on and off
at runtime.

softscreen can greatly improve graphics performance when bus
reads are slow even tho it disables hardware acceleration.
2012-07-18 10:16:00 +02:00
aiju c612f9c41f multiboot: use initrd for config 2012-07-13 18:52:39 +02:00
aiju c03913c62d fixed multiboot booting 2012-07-13 18:09:42 +02:00
cinap_lenrek 546ee86c52 tcp: memset paranoia, synced from sources 2012-07-09 21:01:42 +02:00
cinap_lenrek a360bddee7 qio: raise critical queue bloat threshold from 2 to 10 times to queue limit
the limit for overqueueing was too small for stuff like fcp
on a fileserver connected with a standard 32K limit pipe like
ramfs.

fcp usesd 8K*16procs > 32K*2

the biggest queue limit used in the kernel is 256K making
the maximum queue bloat 2.5MB or 320K for standard pipes.
that should be big enougth to never happen in practice
unless there is a bug which we like to catch before we
exhaust all kernel memory.
2012-07-08 19:11:29 +02:00
cinap_lenrek 7417118d30 apic: fix qemu panic lapic clock xxx > cpu clock > yyy 2012-06-24 05:34:17 +02:00
cinap_lenrek ba7374508e e820: support new format 2012-06-21 04:57:27 +02:00
cinap_lenrek 447b37d838 e820: check for newer *e820= variable (old e820= might get removed in the future) 2012-06-21 01:55:56 +02:00
cinap_lenrek cf4c3e7c5c ether82563: sync with erik (fixed 82579 eeprom checksum error, adds i350 support) 2012-06-21 01:06:17 +02:00
cinap_lenrek 69470de37d acpi: work arround missing _BBN, check _HID 2012-06-19 16:30:11 +02:00
cinap_lenrek a92749485e archacpi: boot processor comment 2012-06-17 02:49:59 +02:00
cinap_lenrek b7b8be6831 fix ioapic mre off by one 2012-06-17 01:06:57 +02:00
cinap_lenrek a47521a3ed experimental acpi support for apic irq routing 2012-06-17 23:12:19 +02:00
cinap_lenrek 9b29d5be82 mp: cleanup mp code 2012-06-15 22:10:24 +02:00
cinap_lenrek 3e42a08988 acpi: format string warning for uchar* vs char* 2012-05-25 07:10:46 +02:00
cinap_lenrek a170c952ff ethervt610xx: dont assume sizeof(Ds) <= cls 2012-05-23 18:30:34 +02:00
cinap_lenrek b44038fec0 kernel: add debug driver for dumping acpi tables 2012-05-19 01:58:40 +02:00
cinap_lenrek ca12be87df merge 2012-05-15 02:05:31 +02:00
cinap_lenrek 68c77bf4a6 kernel: add eriks #P/cputemp 2012-05-05 10:44:29 +02:00
cinap_lenrek aa015b1c4f kernel: use monitor/mwait instruction on pc multiprocessor for idlehands 2012-05-04 11:02:11 +02:00
cinap_lenrek 1de9ca2de5 bring back il protocol support 2012-05-03 10:47:40 +02:00
cinap_lenrek 299cf4e4b9 kernel: print format 2012-05-03 08:53:47 +02:00
cinap_lenrek 7f04d86dfb kernel: move duplicated random.c to port 2012-05-03 08:49:25 +02:00
cinap_lenrek 656762ae98 cardbus io reservation 2012-05-01 03:35:15 +02:00
cinap_lenrek 1d42b2dac1 avoid leaking up->dot into the closeproc 2012-04-28 09:12:04 +02:00
cinap_lenrek e440d414d5 fix missed clunkq wakeup race 2012-04-27 18:51:15 +02:00
cinap_lenrek 6bd82b34fd async clunk for cached mounts, fix closeproc explosion 2012-04-27 17:51:20 +02:00
cinap_lenrek 23c05d3235 sdvirtio: make sure queue sizes are multiple of two 2012-04-24 08:46:23 +02:00
cinap_lenrek 43fb53943e sdvirtio: ioalloc, cleanup 2012-04-24 07:48:59 +02:00
cinap_lenrek b7b734bd59 sdvirtio: reset device, better block completion handling 2012-04-23 11:42:05 +02:00
cinap_lenrek 80381d93d9 sdvirtio: cleanup, add to pccpuf config 2012-04-22 07:20:30 +02:00
cinap_lenrek ee983985d9 sdvirtio: primitive virtio block driver 2012-04-22 05:19:34 +02:00
cinap_lenrek f3609bada2 sdide: increase Drq wait timeouts (fixes i/o errors in vbox) 2012-04-19 14:50:00 +02:00
cinap_lenrek df1d6ba99d sdide: do drive presence check in atadrive, probe slave drive before master. 2012-04-19 23:56:10 +02:00
cinap_lenrek e294bcae53 sdide: make ataidentify wait longer if theres no floating bus 2012-04-18 16:49:27 +02:00
cinap_lenrek 1d96a8256e sdide: do drive probles the non-clever way, this got a-'s cdrom to working 2012-04-18 15:55:51 +02:00
cinap_lenrek 73b7f5f12c panic: trailing newlines 2012-03-28 18:13:45 +02:00
cinap_lenrek c3004ddf25 port/chan.c: fix locking issue 2012-03-28 18:11:09 +02:00
cinap_lenrek 6bda7fac86 ether82563: make sure not to run over tx ring head 2012-03-27 16:51:53 +02:00
cinap_lenrek 8745e29e15 make pc kernels graphics image memory pool unlimited by default, add *imagemaxmb= kernel parameter 2012-03-18 20:12:29 +01:00
cinap_lenrek 7106166b11 etherigbe: fixup PciCLS if not initialized (qemu) 2012-03-18 01:27:30 +01:00
cinap_lenrek f0facb2ed8 usbehci: import changes from sources (portreset, port handover handling), set interrupt threshold to 1 uframe 2012-03-07 23:50:58 +01:00
cinap_lenrek 3ede927b40 audiohda: oops... 2012-03-04 07:02:38 +01:00
cinap_lenrek f649ceba09 audiohda: set power state, eapd for x61 2012-03-04 06:17:40 +01:00
cinap_lenrek 02217fa6c2 boot: check nousbrc boot parameter, add delay 2012-03-01 18:55:42 +01:00
cinap_lenrek 63f2214164 boot: ignore led file in /dev/sd* 2012-02-28 21:42:25 +01:00
cinap_lenrek f2b6ec3140 correcting unicode superscripts for 1 2 and 3 2012-02-23 16:58:53 +01:00
cinap_lenrek 6c41bd843c audiohda: add more pci vid/did 2012-02-21 11:58:42 +01:00
cinap_lenrek 6512bbc679 audiohda: ich8 support 2012-02-20 17:37:39 +01:00
cinap_lenrek 5b07f6238b devdraw: use QLock to serialize sleep on refresh to prevent double sleep 2012-02-20 10:49:14 +01:00
cinap_lenrek 9e28bf1a63 audiohda: make it work with sb600 onboard sound 2012-02-19 19:43:49 +01:00
cinap_lenrek 77c21a062c kernel: remove duppage debug, add comments, cleanup 2012-02-16 18:04:08 +01:00
cinap_lenrek 083612b34e kernel: duppage checking 2012-02-16 11:38:50 +01:00
cinap_lenrek 4780a7ff56 devmouse: add twitch mousectl command 2012-02-13 07:06:08 +01:00
cinap_lenrek c9f5d14ea6 ip: fix missing poperror (from applied/netlogpoperror) 2012-02-13 05:56:47 +01:00
cinap_lenrek 84b8be31d0 sdide: fix lba48 transition bug 2012-02-12 04:02:33 +01:00
cinap_lenrek 1d58cb8832 pci: add pcicap 2012-02-11 00:49:39 +01:00
cinap_lenrek 061d55111b add Etoolong error string, cleanup genbuf truncation fix 2012-02-08 02:32:03 +01:00
cinap_lenrek 022fd02b96 fix endless devwalk loops caused by genbuf truncation 2012-02-08 00:00:42 +01:00
cinap_lenrek 5acde1e791 make smalloc() uninterruptable as most callers cant handle it anyway 2012-02-06 05:28:57 +01:00
cinap_lenrek 9d60d8262e fix potential double ready in postnote() for rendezvous 2012-02-06 00:23:38 +01:00
cinap_lenrek 3599f733ee more checking for eqlock 2012-02-05 20:52:12 +01:00
cinap_lenrek 8d22d0b165 devuart: fix no memory panic with zero number of uarts 2012-02-04 16:41:46 +01:00
cinap_lenrek 173a01ef8b sdide: add another pci vid/did for nVidia MCP55 2012-01-25 19:46:12 +01:00
cinap_lenrek 8ef32ed38c fix double free in exec 2012-01-23 05:12:05 +01:00
cinap_lenrek e2bbb41a30 fix unlock(&procalloc) race on mp systems 2012-01-22 22:33:15 +01:00
cinap_lenrek 9334509224 sdide: add another vid/did for 82801FB 2012-01-21 03:06:24 +01:00
cinap_lenrek 413ab7785f eqlock: cleanup 2012-01-15 14:31:53 +01:00
cinap_lenrek 577d31ab13 fix race condition of the CCACHE flag by clearing the flag in
attachimage() instead of temporarily reseting in pio().
2012-01-12 12:54:45 +01:00
cinap_lenrek 659943558f kernel: keep segment locked for data2txt 2012-01-09 21:33:22 +01:00
cinap_lenrek 367b4be219 nusbrc: fix permissions, was broken when the complication got a complication 2012-01-09 21:30:57 +01:00
cinap_lenrek 85fd5bf58d eqlock: dont rely on notepending flag when detecting eqlock interruption 2012-01-09 21:18:03 +01:00
cinap_lenrek 2131248411 swap: make sure swapchan doesnt use the mntcache 2011-12-22 02:33:49 +01:00
cinap_lenrek ea5a23d39a kernel: make mntcache effective, be carefull 2011-12-22 02:17:29 +01:00
cinap_lenrek 4fe344847c kernel: better pidalloc() 2011-12-21 23:08:15 +01:00
cinap_lenrek 2450b55c7b kernel: add pidalloc() and reuse pid once the counter wraps arround 2011-12-20 22:22:08 +01:00
cinap_lenrek 9310f981b0 kernel: xalloc error handling 2011-12-14 00:22:46 +01:00
cinap_lenrek 861713765b kernel: fix wrong calculation of swap iolist size 2011-12-14 00:10:33 +01:00
cinap_lenrek 95742d95a9 cleanup 2011-12-13 16:16:21 +01:00
cinap_lenrek e15102aa75 kernel: make system come up into bootrc with 8MB of memory 2011-12-13 16:16:01 +01:00
cinap_lenrek bef3c5a3c5 devfs: dont raise "no more trees" if malloc fails 2011-12-13 16:12:40 +01:00
cinap_lenrek 1238374df9 killbig(): fix crash if no process could be found 2011-12-13 16:10:37 +01:00
cinap_lenrek 36dc22fd57 panic(): dont print message twice. for terminals, dont auto reboot. 2011-12-13 16:07:52 +01:00
cinap_lenrek a03d9a7985 kernel: more alloc stuff 2011-12-13 23:35:21 +01:00
cinap_lenrek 4b8eb68f8d etherbcm: missing free() 2011-12-12 22:42:40 +01:00
cinap_lenrek 9679d7525c kernel: fix more malloc bugs 2011-12-12 22:24:25 +01:00
cinap_lenrek f32ef135d4 devbridge: fix 2011-12-12 19:28:21 +01:00
cinap_lenrek 3028437f8b glitch :-) 2011-12-12 19:20:40 +01:00
cinap_lenrek 8cb8043d0e kernel: fix more malloc/smalloc errors 2011-12-12 19:17:58 +01:00
cinap_lenrek 304ee3b2b5 devfs: fix cryptio memory leak 2011-12-12 19:17:24 +01:00
cinap_lenrek bf3476d661 kernel: fix inproper use of malloc/smalloc 2011-12-12 16:55:26 +01:00
cinap_lenrek 589f99915e devssl: tiny fixes (from plan 9) 2011-12-12 14:59:14 +01:00
cinap_lenrek 9d82b73dbe etherbcm: fix did emum 2011-12-07 19:41:12 +01:00
cinap_lenrek d342e41177 etherbcm: fix pci fix, add pci dids 2011-12-07 18:52:48 +01:00
cinap_lenrek 077537baeb fix cdrom media change 2011-12-06 14:49:40 +01:00
cinap_lenrek 3720af62db sdiahci: add Hudson SATA controller 2011-12-04 12:45:56 +01:00
cinap_lenrek 663240a9ae etherbcm: endian word swap 2011-11-27 05:55:27 +01:00
cinap_lenrek 440d68d003 vgavesa: some nvidia cards start the framebuffer in the middle of a pci membar 2011-11-26 21:24:01 +01:00
cinap_lenrek 2ef535bff9 pc kernel: add sb600 southbridge id 2011-11-13 21:33:33 +01:00
cinap_lenrek 807e8e69ec sdide: make pkt io non interruptable, do scsionline in pio mode 2011-11-11 10:16:07 +01:00
cinap_lenrek a863f74881 pc kernel: make *nomp= work like *nomp=1 2011-11-11 09:31:34 +01:00
cinap_lenrek d4b7ca211d pc kernel: remove i8253link 2011-11-11 05:55:55 +01:00
cinap_lenrek b2a869489c audiohda: fix null pointer dereference 2011-11-11 05:48:48 +01:00
cinap_lenrek a11501b24f sdide: remove debug prints 2011-11-10 05:07:27 +01:00
cinap_lenrek 29c9eb1c21 sdide: Marvell PATA, sdiahci: 82801 SATA RAID 2011-11-09 15:17:00 +01:00
cinap_lenrek 875e89b8fa merge 2011-11-05 11:06:58 +01:00
cinap_lenrek b6901035d0 vesa: *vesashadow -> *novesashadow 2011-11-05 11:06:24 +01:00
aiju 6f8f383ab1 added timeouts to bcminit() 2011-11-05 10:22:21 +01:00
aiju abc602e191 digged up some omap4 changes ... 2011-11-05 09:46:34 +01:00
cinap_lenrek 409ed0d966 memory: e820 cleanup 2011-11-05 07:17:54 +01:00
cinap_lenrek f5018135c0 vesa/realmode cleanup 2011-11-05 06:54:48 +01:00
cinap_lenrek 563437cb6d remove realmode and e820 code from kernel 2011-11-05 06:19:52 +01:00
cinap_lenrek 0bddb7e28d vesa: make softscreen optional (has to be enabled with *vesashadow= option now in plan9.ini) 2011-11-05 05:16:50 +01:00
cinap_lenrek 092930f337 sdide: add pci id for bvaleks amd ide controller 2011-11-04 18:14:57 +01:00
cinap_lenrek 30907f1d00 devmouse: allow multiple writers on /dev/mousein 2011-11-03 02:33:09 +01:00
cinap_lenrek 4c05d129e2 eqlock: fix postnote/qunlock race 2011-11-02 21:39:30 +01:00
cinap_lenrek 3fce94e785 fix _tos->pcycles, make _tos->kcycles actually count cycles executing kernel code on behalf of the process 2011-10-25 20:17:39 +02:00
cinap_lenrek c00a72a02d mouse: disable ps2 hwaccel by default, drop inconsitent packet start byte 2011-10-07 20:19:09 +02:00
cinap_lenrek 0089c44663 devcons: readd dummy consctl file so telnetd has something to bind on 2011-09-17 02:35:03 +02:00
aiju bb36c1aa98 improved on omap4 kernel, now runs rc! 2011-09-03 11:59:10 +02:00
cinap_lenrek 9194371eac kbdfs: add -q (quiet) option 2011-09-02 15:16:10 +02:00
cinap_lenrek 933d48e43e merge 2011-09-02 14:13:15 +02:00
cinap_lenrek 513bdcccdc chan: use chanpath() in chan DBG, do more checking in cclose and cclone 2011-09-02 14:12:39 +02:00
cinap_lenrek 9e65fced98 usbohci: virtual box fix from richard miller 2011-09-02 14:11:23 +02:00
aiju d886c9d248 added omap4 kernel prototype 2011-09-02 12:23:34 +02:00
cinap_lenrek 203443ee05 ether8169: huge cleanup, remove magic stuff 2011-08-31 15:49:32 +02:00
cinap_lenrek e113f037a3 ether8169: reset on fifo overflow error 2011-08-30 17:19:22 +02:00
cinap_lenrek 962ec8cfb1 ether8169: sometimes transmits got missed. kicking the poll bit on each transmit fixes the problem 2011-08-30 09:08:55 +02:00
cinap_lenrek df6360169f nusbrc: $usbdelay 2011-08-28 21:07:20 +02:00
cinap_lenrek cd47b3e9d4 bootrc: prefer 9660 filesystem as default on cdboot, restart factotum, delay for usb 2011-08-28 20:37:20 +02:00
cinap_lenrek 9403363364 bootrc: dont try to convert kernel variables, fix quoting 2011-08-27 17:58:20 +02:00
cinap_lenrek 6d9f649c41 bootrc: broke #ec copying, fix it. dontkill: ignore errors 2011-08-27 17:20:42 +02:00
cinap_lenrek a6e3c9fd83 calculate the real number of pages used by segments and use it for killbig and proc 2011-08-26 04:47:34 +02:00
cinap_lenrek cf974eb852 fix kernel: pio()/mfreeseg() race 2011-08-24 14:43:15 +02:00
cinap_lenrek 61a0117ea5 swap: do less print spamming, sched after killbig so killed proc can get released 2011-08-24 07:58:14 +02:00
cinap_lenrek 5182bb7ecf dont hang if swap is full 2011-08-24 06:52:24 +02:00
cinap_lenrek 1a82d67770 vgavesa: fix race 2011-08-23 06:11:16 +02:00
cinap_lenrek b25e48b949 vgavesa: cleanup 2011-08-23 06:03:54 +02:00
cinap_lenrek 54db805a16 apm: cleanup 2011-08-23 05:34:49 +02:00
cinap_lenrek e54222fb0d implement vesa screenblanking (issue #36) 2011-08-23 05:33:51 +02:00
cinap_lenrek ce1915c53e bootrc: simplify by just converting all variables from #ec 2011-08-23 00:24:24 +02:00
cinap_lenrek e1488b2de7 bootrc: use rtc. temporarily. 2011-08-22 11:20:32 +02:00
aiju 8434f98cdd added interrupt proc ctl message 2011-08-20 12:30:06 +02:00
cinap_lenrek 79a044e38e usb: fix potential uninterruptable calls 2011-08-19 05:19:10 +02:00
cinap_lenrek c44b78f739 change definition of Chan.create to return a chan like open 2011-08-17 23:27:31 +02:00
cinap_lenrek 72304eb350 fix broken cross platform build 2011-08-17 23:25:22 +02:00
cinap_lenrek f682600440 serial console stuff 2011-08-16 10:15:36 +02:00
cinap_lenrek 828f63711b 9boot: list known filesystem images on usb stick as boot filesystems 2011-08-16 04:09:15 +02:00
cinap_lenrek 04fa57de3a usb storage device auto mount 2011-08-16 01:50:46 +02:00
cinap_lenrek cb9e638c00 bind devshr to /shr 2011-08-16 01:49:37 +02:00