Commit graph

7186 commits

Author SHA1 Message Date
cinap_lenrek
9920ecc04b libc: initial arm64 support 2019-05-03 20:57:30 +02:00
cinap_lenrek
59ff04ddb1 7l: add missing AFMOVD with EXT/AUTO/LOREG operands to optab 2019-05-01 13:11:20 +02:00
cinap_lenrek
fe594760eb kernel: get rid of checkpagerefs() debugging
was only implemented by the pc kernel. does not
account pages used by the mount cache.
2019-05-01 12:40:27 +02:00
cinap_lenrek
b452f8857f kernel: export freepages() function so it can be used in mmurelease() 2019-05-01 10:07:39 +02:00
cinap_lenrek
a6ee23a739 kernel: include lock pointer in error report, stop spamming lockloop prints when we are panicing 2019-05-01 09:39:02 +02:00
cinap_lenrek
54562b6ac2 kernel: insert memory barrier in the scheduler before setting up->mach = nil
we have to ensure that all stores saving the process state
have completed before setting up->mach = nil in the scheduler.
otherwise, another cpu could observe up->mach == nil while
the stores such as the processes p->sched label have not finnished.
2019-05-01 09:35:51 +02:00
cinap_lenrek
97a2f14b1c [5678vq]c: fix .safe node type for *FUNC() = *FUNC() sugen 2019-05-01 08:55:24 +02:00
cinap_lenrek
aa52d3b13d vmx: build vmx only for 386 or amd64
vmx uses non portable word unpacking macros, breaking
the build for arm64. vmx only works on a pc anyway.
this forces objtype to 386 on these machines, similar
to what the kernel mkfiles do.
2019-05-01 08:19:29 +02:00
cinap_lenrek
2f884a5116 ether8169: fix thinkpad A485 ethernet (thanks mischief)
attached is a patch to fix receive in the 8169 chip on my thinkpad
A485. i'm not sure why, but the same thing was done in 3d56a0fc4645
for Macv45.

nick
2019-04-27 21:55:16 +02:00
cinap_lenrek
3fe9730645 7c: don't emit SXTW for non-register source operand 2019-04-25 19:44:16 +02:00
cinap_lenrek
0c964838a1 distproto: add /lib/news/ (thanks lyndon) 2019-04-23 15:15:26 +02:00
cinap_lenrek
bd510d7fb0 7l: there is no BIC* $bimm variant 2019-04-22 03:05:51 +02:00
cinap_lenrek
a0da5b973f usbxhci: make stuck usb transactions interruptable.
some control transactions can confuse the xhci controller so
much that it even fails to respond to command abort or STOPEP
control command. with no way for us to abort the transaction
but a full controller reset.

we give the controller 5 seconds to abort our initial
transaction and if that fails we wake the recover process
to reset the controller.

thanks mischief for testing.
2019-04-19 23:39:47 +02:00
cinap_lenrek
6bceabbc79 distproto: add /lib/ndb/dhcp/ directory (thanks lyndon) 2019-04-19 23:31:24 +02:00
mischief
83ab780783 nusb/usbd: stop sending port enable commands
from what i can tell, sending port enable is a spec violation.

this fixes a hang during hub enumeration in the ASMedia
xhci controller when i plug in my IBM UltraNav SK-8845.

also, send unsuspend when port is suspended instead of enable.

from the USB 2 specification:

11.24.2.7.1.2 PORT_ENABLE
...
This bit may be set only as a result of a SetPortFeature(PORT_ENABLE).
...
The hub response to a SetPortFeature(PORT_ENABLE) request is not specified.
2019-04-18 02:48:35 -07:00
cinap_lenrek
8c95a221b0 7l: deal with huge (negative or > 24bit) register offsets, fix LACON, avoid DWORD in constant pool when we can sign extend 2019-04-17 23:43:59 +02:00
cinap_lenrek
15c3f45e5f 7c: fix long to vlong/pointer conversion, avoid negative immediate offsets
we have to explicitely convert to vlong by sign or
zero extending as not every operation leaves a proper
zero/sign extended result in the register. for example
NEGW will zero extend, breaking negative int offsets
on pointers.

we explicitely insert SXTW or MOVWU instructions which
the peephole optimizer takes out again when it is safe
todo so.

when promoting constant offsets to immediate offsets,
make sure the offset will be in range. otherwise the
linker will produce not so optimal pointer arithmetic
instructions to calculate the offset.
2019-04-17 23:38:00 +02:00
cinap_lenrek
b44440bd16 devsd: fix sddelpart() AGAIN
the previous "fix" missed to advance pp so after
we hit a invalid partition all following partitions
would be ignored.
2019-04-16 16:25:33 +02:00
cinap_lenrek
7c33bdd2d3 awk: fix nextfile crash (thanks leetspete)
to reproduce the bug:

term% awk 'BEGIN{nextfile; nextfile;}'
sys: trap: fault read addr=0x10 pc=0x00019a3a
awk 6584: suicide: sys: trap: fault read addr=0x10 pc=0x00019a3a
2019-04-16 16:13:30 +02:00
BurnZeZ
75ee3b3081 devsd: fix panic when using "delpart" to remove a partition that was already removed 2019-04-15 19:48:03 +00:00
mischief
82438139d6 pc: audiohda: recognize AMD Family 17h hd audio controller 2019-04-13 23:11:19 -07:00
mischief
79e24f5ee5 pc: devarch: recognize AMD Ryzen model 2019-04-13 23:08:26 -07:00
mischief
7accf11170 pc: pci: add AMD FCH LPC bridge to southbridges 2019-04-13 23:07:57 -07:00
mischief
07674f6e8d nusb/usbd: fix dump %U formatter 2019-04-13 22:37:52 -07:00
BurnZeZ
71397d51d0 ip(3): document TCP ctl close command 2019-04-14 04:50:55 +00:00
cinap_lenrek
83c7a727e0 devip: reject bad numeric ports (such as 9fs -> 9) 2019-04-14 03:22:05 +02:00
cinap_lenrek
810aed76a5 bcm: move CONFADDR parsing into bootargs.c, simplify initcode start() args handling 2019-04-11 19:10:47 +02:00
cinap_lenrek
6aff58df75 bcm: don't use PADDR() to convert bus address to physical in vcore 2019-04-11 17:12:20 +02:00
cinap_lenrek
9ae99fb5ad kernel: get rid of KSTKSIZE alias for KSTACK 2019-04-11 14:05:23 +02:00
cinap_lenrek
f4f19cdf1a merge 2019-04-11 13:54:03 +02:00
cinap_lenrek
37d36fdd7f kernel: get rid of PTR2UINT() and UINT2PTR() macros 2019-04-11 13:51:38 +02:00
cinap_lenrek
753fa51b77 bcm: dont assume PHYSDRAM 0 in dmaaddr(), fix dmaioaddr() 2019-04-11 13:49:41 +02:00
cinap_lenrek
6a3a3d69c6 bcm: add pl011 uart driver
the raspi has two uarts, the pl011 and the mini. only one
can be used at a time due to pin muxing. the bcm kernel
uses the mini by default.
2019-04-11 13:21:06 +02:00
cinap_lenrek
fe34e52d19 bcm: move okay() from uartmini.c to devarch.c 2019-04-10 15:06:56 +02:00
cinap_lenrek
f00aa6b92a bcm: add irq.c to mkfile 2019-04-10 15:06:24 +02:00
cinap_lenrek
55a3964517 bcm: move interrupt handling out of trap.c into irq.c 2019-04-10 15:04:59 +02:00
BurnZeZ
424424fe50 fix bad function declarations in manpages 2019-04-09 18:34:17 +00:00
BurnZeZ
7b10062669 thread(2): threadsetname takes a fmt string 2019-04-08 22:18:15 +00:00
cinap_lenrek
3e65a15ae0 audiohda: add support for Gemini-Lake audio in Intel NUC nuc7pjyh (thanks sam-d) 2019-04-08 15:50:13 +02:00
cinap_lenrek
b56ba6210f 7l: fix vlong constants in literal pool for non-MOV instructions 2019-04-08 14:15:39 +02:00
cinap_lenrek
12fc1c7d3e 7l: fix bitcon instruction selection and encoding
the possible bitmasks generated depend on the data width
of the instruction, so we introduce C_BITCON32 and C_BITCON64
operand types to keep them apart.

the encoding of the bitcon operation was wrong.
2019-04-08 14:12:01 +02:00
cinap_lenrek
d8d4802f80 7l: add arm64 linker (initial sync) 2019-04-08 14:05:27 +02:00
cinap_lenrek
394d095ee0 7a: fix indexreg operations 2019-04-08 13:53:41 +02:00
cinap_lenrek
275fbc93fd 7a: fix post increment operands 2019-04-08 13:50:11 +02:00
cinap_lenrek
14c7edf96e 7c: fix registerization of vlong constants 2019-04-08 13:47:45 +02:00
cinap_lenrek
b29d5ac7b1 add arm64 c compiler and assembler (thanks charles forsyth)
this is the the initial sync of charles forsyths plan9 c
compiler suite from http://bitbucket.org/plan9-from-bell-labs/9-cc
at changeset version 54:65fb8bb56c59
2019-04-08 13:45:49 +02:00
cinap_lenrek
e897df33e6 rootstub: create arm64 directories 2019-04-08 13:07:18 +02:00
BurnZeZ
ec8ad3ab84 uptime: rewrite in awk 2019-04-07 17:09:52 +00:00
cinap_lenrek
d5a81af7be libauthsrv: authdial smprint() out of memory autism 2019-04-06 20:23:00 +02:00
cinap_lenrek
6540a9a21a sgi: remove obsolete TSTKTOP constant 2019-04-04 15:28:04 +02:00