summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2019-05-15bcm64: fix mmu0clear() mistake from previous commitcinap_lenrek
2019-05-14nusb(2): remove startdevs() reference, document getdev() (thanks BurnZeZ)cinap_lenrek
2019-05-13bcm: add cache invalidate before accessing prop buffercinap_lenrek
2019-05-13bcm64: implement reboot supportcinap_lenrek
2019-05-13bcm, bcm64: preserve memsize across reboots, avoid trashing atags while ↵cinap_lenrek
parsing cmdline we override atag memory on reboot, so preserve the memsize learned from atag as *maxmem plan9 variable. the global memsize variable is not needed anymore. avoid trashing the following atag when zero terminating the cmdline string. zero memory after plan9.ini variables.
2019-05-12devip: do not lock selftab in ipselftabread(), remove unused fields from Ipselfcinap_lenrek
the Ipselftab is designed to not require locking on read operation. locking the selftab in ipselftabread() risks deadlock when accessing the user buffer creates a fault. remove unused fields from the Ipself struct.
2019-05-11memdraw(2): remove references to iprint()BurnZeZ
2019-05-11devip: reset speed and delay on bind, adjust burst on mtu change, ifc->m nil ↵cinap_lenrek
check, consistent error strings initialize the rate limits when the device gets bound, not when it is created. so that the rate limtis get reset to default when the ifc is reused. adjust the burst delay when the mtu is changed. this is to make sure that we allow at least one full sized packet burst. make a local copy of ifc->m before doing nil check as it can change under us when we do not have the ifc locked. specify Ebound[] and Eunbound[] error strings and use them consistently.
2019-05-11devip: make sure ifc is bound in add6 ctl commandcinap_lenrek
2019-05-11devip: remove unused c->car qlock, avoid potential deadlock in ↵cinap_lenrek
ipifcregisterproxy() remove references to the unused Conv.car qlock. ipifcregisterproxy() is called with the proxy ifc wlock'd, which means we cannot acquire the rwlock of the interfaces that will proxy for us because it is allowed to rlock() multiple ifc's in any order. to get arround this, we use canrlock() and skip the interface when we cannot acquire the lock. the ifc should get wlock'd only when we are about to modify the ifc or its lifc chain. that is when adding or removing addresses. wlock is not required when we addresses to the selfcache, which has its own qlock.
2019-05-11devip: avoid media bind/unbind kproc reader startup race, simplify etherbindcinap_lenrek
mark reader process pointers with (void*)-1 to mean not started yet. this avoids the race condition when media unbind happens before the kproc has set its Proc* pointer. then we would not post the note and the reader would continue running after unbind. etherbind can be simplified by reading the #lX/addr file to get the mac address, avoiding the temporary buffer.
2019-05-11timezones: add India (thanks joe9)23hiro
2019-05-10bcm64: use exclusive monitor on nrdy to wake up idlehands()cinap_lenrek
when the exclusive monitor is cleared, a event is generated which we can use to wake up idlehands. that way we do not need to wait for the next timer interrupt until a cpu takes work from the run queue.
2019-05-10ape: fix malloc to deal with more than 4GB of memory on 64 bit systemscinap_lenrek
2019-05-09libc: fix return value for arm64 memset() and memove()cinap_lenrek
2019-05-09libc: use MOVP instruction for arm64 memmove() and memset()cinap_lenrek
2019-05-09bcm64: use MOVP instruction for saving and restoring registerscinap_lenrek
2019-05-09libmach: remove newlinecinap_lenrek
2019-05-09libmach: support for MOVP instruction disassembly for arm64cinap_lenrek
2019-05-097l: implement MOVP instructioncinap_lenrek
2019-05-09libc: provide arm64 assembly versions for memmove() and memset()cinap_lenrek
just a first approximation, uses unaligned 8 byte loads and stores. MOVP not yet implemented by the linker. no ZVA cache magic yet.
2019-05-09bcm64: map framebuffer write-through to allow unaligned accesscinap_lenrek
2019-05-07wadfs: avoid comma operator after PBIT32() macroscinap_lenrek
2019-05-07plan9.ini(8), boot(8): clarify the use of $rootdir and $rootspeccinap_lenrek
2019-05-07nusb/usbd: work around devices that ignore the high byte of wLength in ↵cinap_lenrek
control transfer reads there appear to be devices out there such as Realtek RTL2838UHIDIR SDR that do not process control transfers correctly, ignoring the high byte of the wLength field. to work around this, we specify an odd number of bytes for read sizes >= 256 which keeps the low byte 0xFF.
2019-05-06Sand edges down on GBIT64()/PBIT64() macros.Ori Bernstein
Now, you can safely use them in unbraced if statements, and with char*s.
2019-05-06mergecinap_lenrek
2019-05-06dist/mkfile: add *.pi3.img target for ARM64 raspberry pi3cinap_lenrek
2019-05-05lib: update pci databasemischief
2019-05-05bootrc: fix $rootdir and $rootspec handling (thanks lucio)cinap_lenrek
we did not interpret the $rootdir and $rootspec environment variables right. $rootdir is what gets bound to / (usually /root) and $rootspec is the mountspec of /root.
2019-05-05bcm: make sure fiq is on enabled on cpu0cinap_lenrek
2019-05-05bcm64: provide idlehands() functioncinap_lenrek
2019-05-05bcm64: get rid of usb workaround delaycinap_lenrek
2019-05-05usbdwc: enable Slowbuilkin workarround, improve split transaction timing, ↵cinap_lenrek
handle erroring sleep(), debugging i'v been seeing the error condition described above in the Slowbulkin comment. so i'm enabling the work arround which seems to fix the lockup. in the split transaction case where we want to start the transaction at frame start, acquire the ctlr lock *before* checking if we are in the right frame number. so the start will happen atomically. checking the software ctlr->sofchan instead of checking the interrupt mask register seems to be quicker. setting the haint mask bit for the chan under ctlr lock in chanio() instead of chanwait() avoids needing to acquire the ctlr lock twice. mask wakechan bits with busychan bitmap in interrupt handlers so we will not try to wake up released chans by accident. sleep() and tsleep() might get interrupted so we have to release the split qlock in the split transaction case and in all cases, make sure to halt the channel before release. add some common debug functions to dump channel and controller registers.
2019-05-05libc: fix NaN check precedence bug in modf() (thanks BurnZeZ)cinap_lenrek
2019-05-04acid: add arm64 supportcinap_lenrek
2019-05-03rootstub: add /sys/lib/dist/ndb/dhcp/cinap_lenrek
2019-05-03pc kernel: remove countpagerefs() (thanks BurnZeZ)cinap_lenrek
forgot to commit this...
2019-05-03kernel: exec support for arm64 binariescinap_lenrek
2019-05-03bcm64: add experimental work in progress arm64 kernel for raspberry pi 3cinap_lenrek
2019-05-03bcm: don't call nil on PADDR() in dmaaddr(), return busdram dummy addresscinap_lenrek
2019-05-03bcm: move fiq saved pc adjust into lexception.s so it can be shared with arm64cinap_lenrek
2019-05-03uartpl011: dont touch line control while uart is enabledcinap_lenrek
2019-05-03ktrace: arm64 supportcinap_lenrek
2019-05-03arm64: add mkfilecinap_lenrek
2019-05-03python: arm64 supportcinap_lenrek
2019-05-03gs: arm64 supportcinap_lenrek
2019-05-03gs: avoid stupid shifts by casting to uint64_tcinap_lenrek
2019-05-03ape: initial support for arm64cinap_lenrek
2019-05-03libthread: initial support for arm64cinap_lenrek