summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2014-10-28newt: removed unused functionstanley lieber
2014-10-28newt: implement ned-style address ranges and overhaul h command to suitstanley lieber
2014-10-25rio: dont serve a kbd file per window when we didnt got one from the environmentcinap_lenrek
9vx doesnt provide a /dev/kbd file and rio faking one up causes problems with vncv. (issue #223)
2014-10-24fortunes: this exact error message is in the fortunes file.stanley lieber
2014-10-24rob: Working as intendedstanley lieber
2014-10-24efi: change eficonfig ordering so memconf() is first, dont fallback to fs ↵cinap_lenrek
when /cfg/pxe/ file isnt there having the memconf() (*e820=) last clutters the screen. do it first, so we can read *acpi= and *bootscreen= prints. we want to continue using tftp even when the /cfg/pxe/$ether file is not found. only when we detect no pxe/dhcp session, then we switch to local filesystem (non-network boot).
2014-10-23lib9p: prevent files from being created in deleted directories (thanks BurnZeZ)cinap_lenrek
2014-10-23lib9p: fix .. walk crash in deleted directory (thanks BurnZeZ)cinap_lenrek
to reproduce: % ramfs; cd /tmp % mkdir foo; cd foo % pwd /tmp/foo % rm /tmp/foo % pwd /tmp/foo % ls % ls /tmp % ls .. ramfs 202751: suicide: sys: trap: fault read addr=0x0 pc=0x0000e46d ls: ..: '..' mount rpc error
2014-10-23efi: add initial pxe support (v4 only)cinap_lenrek
2014-10-21pc, pc64: make mtrr() callable from interrupt context and before mpinitcinap_lenrek
to make it possible to mark the bootscreen framebuffer as write combining in early initialization, mtrr() is changed not not to error() but to return an error string. as bootscreen() is used before multiprocessor initialization, we have to synchronize the mtrr's for every processor as it comes online. for this, a new mtrrsync() function is provided that is called from cpuidentify() if mtrr support is indicated. the boot processor runs mtrrsync() which snarfs the registers. later, mtrrsync() is run again from the application processors which apply the values from the boot processor. checkmtrr() from mp.c was removed as its task is also done by mtrrsync() now.
2014-10-199boot(8): document efi bootingcinap_lenrek
2014-10-19inst: ignore *bootscreen= variable when generating plan9.inicinap_lenrek
2014-10-19pc, pc64: lookup pci device for bootscreen() and maximize framebuffer ↵cinap_lenrek
aperture so can change screen resolution
2014-10-19efi: use LocateHandle() and HandleProtocol() to check for multiple gop ↵cinap_lenrek
protocols to find a usable one the gop returned by LocateProtocol() is not usable on thinkpad x230, so iterate over all handles to find a usable one.
2014-10-19efi: fix compiler warnings, remove indicator prints in readn()cinap_lenrek
2014-10-18efi: simplify bootscreen codecinap_lenrek
2014-10-18games/gba: add state savingaiju
2014-10-18efi: convert pixel format to bootscreen color channelcinap_lenrek
2014-10-18efi: make clean target virtualcinap_lenrek
2014-10-18efi: add experimental efi bootloadercinap_lenrek
this is basically a port of 9boot to EFI. theres support for IA32 (386) and X64 (amd64). has been tested only under qemu with OVMF so far.
2014-10-18pc, pc64: allow passing RSDT pointer in *acpi= boot parameter, early ↵cinap_lenrek
bootscreeninit(), fix rampage() usage rampage() cannot be used after meminit(), so test for conf.mem[0].npage != 0 and use xalloc()/mallocalign() instead. this allows us to use vmap() early before mmuinit() which is needed for bootscreeninit() and acpi. to get memory for page tables, pc64 needs a lowraminit(). with EFI, the RSDT pointer is passed in *acpi= parameter from the efi loader. as the RSDT is ususally at the end of the physical address space (and not to be found in bios areas), we cannot KMAP() it so we need to vmap().
2014-10-15sysupdate/psfax/play: fix unquoted brackets causing rc to perform ↵BurnZeZ
unnecessary file lookups
2014-10-13pc: add *bootscreen= variable to pass pre-initialized framebuffer info to kernelcinap_lenrek
EFI system has no cga or vesa anymore, so it becomes neccesary to pass GOP framebuffer info to the kernel to get some output on the screen.
2014-10-12pc: sanity check bda value in lowraminit() to avoid overflow with eficinap_lenrek
2014-10-12pkg: change default repo to http://9front.org/pkg/386stanley lieber
2014-10-11rio: fix "-cd dir" in mountspec being ignoredBurnZeZ
2014-10-06fortunes: You have an agenda.stanley lieber
2014-10-03games/gba: new faster ppu code, audio supportaiju
2014-09-30added gbatypeaiju
2014-09-30games/gba: fix dma repeat bit and eeprom addressesaiju
2014-09-30added crc32aiju
2014-09-29hgfs: make data files with meta headers having the right size after opencinap_lenrek
to get the right data size of a file, the revlog needs to have been opened and the metaheader parsed. as an optimization, we used to open revlog only on the first read resulting revlogs with metaheaders having the wrong size returned by fstat() until the first read(). tar relies on fstat() giving the correct file size, so just open the revlog on open. reading directories can still yield the wrong size but it is not that critical.
2014-09-29snap: change ulong return of stackptr() to uvlong for amd64cinap_lenrek
2014-09-28games/gba: small fixesaiju
2014-09-28apply ps2mouse corruption fix to omapcinap_lenrek
the omap ps2mouse driver is currently unused, but in case of being finished at some point, apply the fix from the pc driver.
2014-09-28mergecinap_lenrek
2014-09-28pc/pc64: fix ps2mouse memory corruption racecinap_lenrek
there was a memory corruption bug caused by us enabling the ps2mouseputc() handler *before* initializing packetsize. once we enabled the handler, mouse interrupts could come in and advance the packet buffer index (nb) beyond the buffer boundaries. as ps2mouseputc() only checked for ++nb == packetsize, once nb was advanced beyond the packetsize, it would continue writing beyond the buffer and corrupt memory with each mouse packet byte. solution is to initialize packetsize *before* enabling the handler, and also do a >= check in ps2mouseputc() in case the packetsize gets changed to a smaller value at runtime.
2014-09-28ndb/dns: request recursion only for local dns serverscinap_lenrek
we used to set RD flag in requests unconditionally, which is fine by the standard but some dns server administrators seem to use it as a denial of service indicator (for ther non recursive authoritative nameservers) and ignore the request. so only set the RD flag when talking to local dns servers.
2014-09-28devcons: avoid division by zero reading Qsysstatcinap_lenrek
alexchandel got the kernel to crash with divide error on qemu 2.1.2/macosx at this location. probably caused by perfticks()/tsc being wrong or accounttime() not having been called yet from timer interrupt yet for some reason.
2014-09-28games/gba: remove bogus fileaiju
2014-09-27mergeaiju
2014-09-27games/gba: slowly working (no pun intended)aiju
2014-09-27hgignore: ignore amd64 kernel and initmischief
2014-09-24pc64: enable rtl8169 driver (thanks awabimakoto for testing)mischief
2014-09-246c/8c: eleminate moves by swaping source and destination operands in ↵cinap_lenrek
peephole pass
2014-09-22acid: fix sysr1() stack corruptioncinap_lenrek
the syscall stubs (for amd64) currently have a unconditional spill of the first (register) argument to the stack. sysr1 (and _nsec) are exceptional in that they do not take any arguments, so the stub is writing unconditionally to ther first argument slot on the stack. i could avoid emiting the spill in the syscall stubs for sysr1 but that would also break truss which assumes fixed instruction sequence from stub start to the syscall number. i'm not going to complicate the syscall stubs just for sysr1 (_nsec is not used in 9front), but just add a dummy argument to sysr1 definition that can receive the bogus argument spill.
2014-09-21devip: sanity check Nchan in Fsproto()cinap_lenrek
devip can only handle Maskconv+1 conversations per protocol depending on how many bits it uses in the qid to encode the conversation number. we check this when the protocol gets registered. if we do not do this, the kernel will mysteriously panic when the conversaion numbers collide which took some time to debug.
2014-09-21sysinfo: relax regex for start of kernel boot messagescinap_lenrek
we used to look for /^Plan 9$/ for the start of kernel boot messages in /dev/kmesg. but the xen kernel prints Plan 9 (.....) on boot. so just look for line starting with /^Plan 9/ for now.
2014-09-21devip: print protocol name in garbage collection notificationcinap_lenrek
2014-09-21pc64: print "Plan 9" on boot, cleanup pccpu64 filescinap_lenrek