summaryrefslogtreecommitdiff
path: root/sys/src/9/bcm
AgeCommit message (Collapse)Author
2016-12-10devmouse: change msec argument of *mousetrack() to ulongcinap_lenrek
2016-11-19link loopbackmedium and netdevmedium in bcm/pif, sgi/indy and zynq kernelscinap_lenrek
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-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-11emmc/pmmc: make all symbols staticcinap_lenrek
2015-04-07kernel: move arrow cursor definition to port/devmouse.ccinap_lenrek
2015-03-06devsd: always page align sd bufferscinap_lenrek
sdbio() tests if it can pass the buffer pointer directly to the driver when it is already in kernel memory. we also need to check if the buffer is properly aligned but alignment requirement is handled in system specific sdmalloc() and was not known to devsd. to solve this, we *always* page align sd buffers and get rid of the system specific sdmalloc() macro (was only used in bcm kernel).
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-10-30bcm: fix baudrate setting for serial console (thanks to aap and hiro)cinap_lenrek
the uartmini enable function used to override the baud register so the effecive baudrate was always set to 115200 baud. now the default baudrate of 9600 is set correctly and can be changed in the console= boot parameter. thanks aap and hiro for debugging, pizza and beer :)
2014-07-08bcm: apply richards fix for mmukmap (from /n/sources/patch/bcm-mmukmap-bug)cinap_lenrek
2014-05-16added devgpio (thanks Krystian!). Also added getrevision() to vcore which ↵Matthew Veety
allows you to get the raspberry pi board revision. I kept in the segment that allows direct access to the gpio memory
2014-04-23nusb: resolve endpoint id conflict with different input and output typescinap_lenrek
ftrvxmtrx repots devices that use the endpoint number for input and output of different types like: nusb/ether: parsedesc endpoint 5[7] 07 05 81 03 08 00 09 # ep1 in intr nusb/ether: parsedesc endpoint 5[7] 07 05 82 02 00 02 00 nusb/ether: parsedesc endpoint 5[7] 07 05 01 02 00 02 00 # ep1 out bulk the previous change tried to work arround this but had the concequence that only the lastly defined endpoint was usable. this change addresses the issue by allowing up to 32 endpoints per device (16 output + 16 input endpoints) in devusb. the hci driver will ignore the 4th bit and will only use the lower 4 bits as endpoint address when talking to the usb device. when we encounter a conflict, we map the input endpoint to the upper id range 16..31 and the output endpoint to id 0..15 so two distinct endpoints are created.
2014-03-15kernel: interpret service= boot parameter to set "cpuserver" variablecinap_lenrek
2014-03-04pc64: fix segattachcinap_lenrek
the comment about Physseg.size being in pages is wrong, change type to uintptr and correct the comment. change the length parameter of segattach() and isoverlap() to uintptr as well. segments can grow over 4GB in pc64 now and globalsegattach() in devsegment calculates len argument of isoverlap() by s->top - s->bot. note that the syscall still takes 32bit ulong argument for the length! check for integer overflow in segattach(), make sure segment goes not beyond USTKTOP. change PTEMAPMEM constant to uvlong as it is used to calculate SEGMAXSIZE.
2014-02-28bcm kernel: add *kernelpercent option for cmdline.txtstanley lieber
2014-01-12added a segment for segattach(2) that gives access to the raspberry pi's ↵Matthew Veety
gpio header.
2013-12-13god damn it forgot fucking fns.h from my last commitMatthew Veety
2013-12-13Added in /dev/cputemp for bcm kernel (Thanks Krystian!)Matthew Veety
2013-06-12ARM: kernel: add vfp emulator to bcm, teg2, omap, kwjpathy
2013-06-10ARM: kernel changes make teg2 procfork() call fpuprocfork() and acid fixes ↵jpathy
for vfp instruction
2013-06-01usbdwc: sync with sources (Raspberry Pi Model A support)cinap_lenrek
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-04-14reduce software cursor flickeringcinap_lenrek
the software cursor starts flickering and reacts bumby if a process spends most of its time with drawlock acquired because the timer interrupt thats supposed to redraw the cursor fails to acquire the lock at the time the timer fires. instead of trying to draw the cursor on the screen from a timer interrupt 30 times per second, devmouse now creates a process calling cursoron() and cursoroff() when the cursor needs to be redrawn. this allows the swcursor to schedule a redraw while holding the drawlock in swcursoravoid() and cursoron()/cursoroff() are now able to wait for a qlock (drawlock) because they get called from process context. the overall responsiveness is also improved with this change as the cursor redraw rate isnt limited to 30 times a second anymore.
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
2013-01-28removed fakertc device that confused timesync. timesync now fails trying to ↵mveety
read it and hints user to get time elsewhere
2013-01-28removed fake rtc device.mveety
2013-01-26add raspberry pi kernel (from sources)cinap_lenrek