Commit Graph

63757 Commits

Author SHA1 Message Date
David Karoly
fdb459132e boot/efi/x86: implement SMP detection and bootup
* move common SMP initialization code to x86/arch_smp.cpp

* factor out arch-specific SMP initialization to
  arch_smp_32.cpp resp arch_smp_64.cpp

* implement smp_trampoline for x86 32-bit EFI loader

* rename SMP trampoline for x86_64 to long_smp_trampoline

* add new argument virtKernelArgs to arch_smp_boot_other_cpus
  as the kernel args are not identity mapped on 32-bit architectures

Change-Id: I30d0bb1fa9bfb08f6784a2af34eb83d6b64afa57
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4869
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Reviewed-by: Fredrik Holmqvist <fredrik.holmqvist@gmail.com>
2022-03-01 17:39:19 +00:00
Rudolf Cornelissen
456e6f33dd intel_extreme: added more pipeC support, fixes for eDP on DDI systems 2022-02-27 22:25:04 +01:00
Zakero
11dc1393cf Minor Terminal fixes
In the Terminal settings window, the pop-up help text for
"Tab title:" had two entries for "%% - The character '%'.".
Removed one of the entries.

Fixed the spelling of some constants: kTooTip* vs kToolTip*

Changing the window title and tab title directly will now
show the same tool-tips as the Terminal settings window.

Change-Id: Ic36cc1f8af0305b757105a229203115efee870c8
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4989
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Máximo Castañeda <antiswen@yahoo.es>
2022-02-27 19:10:39 +00:00
Humdinger
7753e163c9 Mixer: Remove option to refuse format changes from audio mixer GUI
The options "Refuse in/output format changes" were meant to prevent
format changes of connections on the fly, without tearing down and
establishing a new connection.
The mixer does not support such format changes for input.

With this patch input format changes are refused - the former
default setting.
Output format changes are at least mostly implemented, so we are
allowing format changes here.

Both options get removed from the Audio mixer setup panel of the
Media preferences. The code those settings themselves is kept.

Thanks Máximo Castañeda for the investigation, see
https://www.freelists.org/post/haiku-development/Explain-the-Audio-Mixer-Setup-options-of-Media-preferences,26

Change-Id: Idb2d0674a4701014249bc5252a7e4ccedc4f532f
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4934
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
2022-02-27 06:51:38 +00:00
David Karoly
4c6e7a4bca kernel/arm: implement prefetch abort handler
Change-Id: I39c330a44ad36ede41c7727017dd733d07288be9
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4983
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Fredrik Holmqvist <fredrik.holmqvist@gmail.com>
2022-02-26 22:08:57 +00:00
David Karoly
883858e60b implement TLS for arm
Use the User Read-only Thread ID Register aka TPIDRURO to store
TLS pointer.

The User Read-only Thread ID Register is read-only in User mode,
and read/write in privileged modes.

see: ARMv7 Architecture Reference Manual,
section B3.12.46 CP15 c13 Software Thread ID registers

Change-Id: I7bff2fd66f41d7bf1a8a247151bcd02b32733c1b
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4994
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Fredrik Holmqvist <fredrik.holmqvist@gmail.com>
2022-02-26 11:41:40 +00:00
Autocomitter
8a2698fe28 Update translations from Pootle 2022-02-26 08:07:32 +00:00
Augustin Cavalier
0463bae558 realtekwifi/rtwn: Synchronize with FreeBSD trunk as of today.
A few changes ommitted (e.g. NET_EPOCH) as they are not needed.
Adds support for a variety of USB devices and one PCI device.
2022-02-25 15:37:50 -05:00
Augustin Cavalier
4e02cb0d87 freebsd_network: Add stub epoch.h.
We don't have a need for these APIs, so we can leave them as dummies.
2022-02-25 15:36:56 -05:00
Augustin Cavalier
9467237d25 freebsd_network: Update usbdevs. 2022-02-25 15:36:09 -05:00
David Karoly
1b895c8371 kernel/arm: implement syscall handler
Change-Id: I75f2fb7808f55a460835276ca66cce8a26e8403d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4980
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: X512 <danger_mail@list.ru>
Reviewed-by: Fredrik Holmqvist <fredrik.holmqvist@gmail.com>
2022-02-25 15:35:50 +00:00
Augustin Cavalier
a40b421ac7 freebsd_network: Restore include of sys/pcpu.h in sys/mutex.h.
Fixes some build failures in a few WiFi drivers.
2022-02-24 21:49:26 -05:00
Augustin Cavalier
711ff0cf42 freebsd_network: Fix undefined reference caused by incorrect includes. 2022-02-24 21:23:41 -05:00
Augustin Cavalier
05216554a4 realtekwifi: Compile with USB support and expose the necessary structures.
Tested with an 8821AU. It works, hurrah!
2022-02-24 21:15:44 -05:00
Augustin Cavalier
423ee7c669 freebsd_network: Adjust and rewrite attach code for USB support.
init_hardware now takes 2 devices arrays: one for PCI and one for USB
drivers, respectively.

The few drivers that have their own __haiku_handle_fbsd_drivers_list
are also adjusted at the same time.
2022-02-24 21:15:10 -05:00
Augustin Cavalier
2e9f01f60d freebsd_network: Introduce USB-handling code.
It is not yet wired in to the rest of the compatibilit layer;
that will happen in the next commits.

The bulk of the implementation is in usb.cpp; most of the
rest of the new files are copied from FreeBSD to varying degrees.
2022-02-24 21:12:28 -05:00
Augustin Cavalier
a8523a21b5 freebsd_network: PCI handling cleanup in preparation for USB support.
Should not have any functional change.
2022-02-24 21:10:24 -05:00
Augustin Cavalier
d6e2a3156a freebsd_network: Mutex handling cleanup.
* Add support for mtx_assert.
 * Move MTX_SPIN handling to dedicated functions like FreeBSD does.

Tested with ipro1000 and realtekwifi.
2022-02-24 21:07:50 -05:00
Augustin Cavalier
ba641651b4 freebsd_network: Implement cv_destroy. 2022-02-24 21:06:58 -05:00
Augustin Cavalier
eeec7ed477 USB: Change from an instant to an unlimited timeout in ControlPipe::SendRequest.
Otherwise we have a race (or worse): in the case where the transfer
has completed or is in the process of completion between CancelQueued
and here, the callback can still be invoked after we returned and
cause corruption.

Discovered while working on USB support in the FreeBSD compatibility
layer: a lock inversion problem meant these timeouts always occurred
but then the callback would be invoked later and corrupt stack.

With this change, such problems will instead cause deadlocks.
That's not an ideal situation to be in, but we should detect
such problems elsewhere and make them into asserts; deadlocks
are assuredly better than random memory corruption.
2022-02-24 21:06:08 -05:00
Augustin Cavalier
7c97a7846f XHCI: Handle fragmented transfers failing to submit the next fragment.
Previously they would just get "lost" and never signal completion.
(Considering how rare fragmented transfers are, this may not fix
any real problems.)
2022-02-24 21:05:54 -05:00
Augustin Cavalier
6711786ccc XHCI: Fix a TRACE statement.
Disabled by default anyway.
2022-02-24 21:05:35 -05:00
Alexander von Gluck IV
f1b2d3ba95 kernel/x86: Fix and modernize tracing of timer code; no functional change
* Fixes functionality of TRACE statements on 64-bit platforms.

Change-Id: Iaba8f8b2d49ec1acda3fc2d51e24a207c5bcc97a
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4992
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>
Reviewed-by: Fredrik Holmqvist <fredrik.holmqvist@gmail.com>
2022-02-24 20:37:17 +00:00
David Karoly
0fea9fec6f Update gcc_bootstrap package for ARM
Change-Id: Ica8b714252925460c612f934cc2a7300a397ec47
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4993
Reviewed-by: Fredrik Holmqvist <fredrik.holmqvist@gmail.com>
2022-02-24 20:23:06 +00:00
David Karoly
b22c6f6f29 kernel/arch/arm: swap TTBR on thread context switch
Change-Id: Ie85742d077866c10ba57b46848d5acaef932615e
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4982
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Reviewed-by: X512 <danger_mail@list.ru>
Reviewed-by: Fredrik Holmqvist <fredrik.holmqvist@gmail.com>
2022-02-24 16:49:58 +00:00
David Karoly
f06e0279a5 implement glue for arm
Change-Id: I2752fb8b1c8843e8344a10295caf82e9603ed5e2
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4973
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Fredrik Holmqvist <fredrik.holmqvist@gmail.com>
2022-02-24 16:39:15 +00:00
David Karoly
4ddef6e701 kernel/arm: detect read/write access in data abort handler
Use Data Fault Status Register's bit 11 to initialize isWrite.

see: ARMv7 Architecture Reference Manual,section B3.9.5
Distinguishing read and write accesses on Data Abort exceptions

Change-Id: I7da6702fc0e9579e5cb09cba3c5c89f004ec268a
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4972
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2022-02-23 22:42:02 +00:00
David Karoly
24b174f4f9 runtimer_loader/arm: implement relocations
Change-Id: Ibda978e37d6dbdaf33ac054adbbda70768fe0d97
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4975
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2022-02-23 22:41:26 +00:00
David Karoly
f98f9bccb8 libroot/arm: implement syscalls
Change-Id: Id9b37d29b802b7f469fb109054ec6446f93511b5
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4979
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: X512 <danger_mail@list.ru>
Reviewed-by: Fredrik Holmqvist <fredrik.holmqvist@gmail.com>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2022-02-23 22:40:31 +00:00
Alexander von Gluck IV
526669de6f system/kernel: Increase MAX_PROCESS_ARGS_SIZE; fixes #17612
* Resolves an issue compiling icu70
* FreeBSD is 262,144
* Linux is 2,097,152
* Haiku was 131,072

This roughly doubles the maximum args length, and makes us
function inline with FreeBSD today.  If we're the shortest
straw, we're going to find a lot of things broken (such
as ICU 70.1) Matching FreeBSD means any limitations we see
will also be seen on FreeBSD, making fewer "Haiku issues".

Change-Id: I677c0523a2f27c9e9901fda4180445bcb6da31b2
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4991
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
2022-02-23 17:36:54 +00:00
Zakero
4e151bc309 UserSetupEnvironment.sample: Correct comment instructions
"settings" was missing from the documented path.

Change-Id: I555322f69478e8bf92fa7524814f3236c4403bfe
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4990
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
2022-02-22 07:57:00 +00:00
Jérôme Duval
da6065015f intel_extreme: enable power on init
could be necessary on laptop with multiple graphics cards

Change-Id: I38040a4d83be62904b0154d75890ef00b2a878b0
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4978
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
2022-02-21 07:42:57 +00:00
Máximo Castañeda
20b50a5cb4 app_server: update list of default ignorable code points
Update as per Unicode 14 (and draft 15)
Include the noncharacters. We don't really want the .notdef glyph for
them, except for U+FDD1 which we have reserved internally to force it
from webkit.

Fixes #17593

Change-Id: I5a62bf0e7753adacc81ea19b3351deb58d5c0653
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4984
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2022-02-20 08:36:19 +00:00
Jérôme Duval
50507c9527 PCI/x86: try ACPI Root pointer from boot loader
to find the RSDP, also try to find it in the EBDA area.
Fix trace build.

Change-Id: I94c3fbec9ea97b9187bf6b2c634298f6ae5b413c
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4981
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2022-02-19 19:59:54 +00:00
David Karoly
acb424c8b7 boot/arm: move system_time and spin to platform
Add fake implementation for system_time()
Implement spin() using EFI boot services

Change-Id: Ib69b851780bd03624ce4e19d725dd319f6640601
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4964
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Fredrik Holmqvist <fredrik.holmqvist@gmail.com>
2022-02-19 15:35:21 +00:00
Jérôme Duval
b50868d0d6 hda: enable power on init
Change-Id: I96b6084a40270aa8007b916a35e54b1fc3b26b39
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4977
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2022-02-19 08:19:24 +00:00
Jérôme Duval
cba67843b0 pci: add set_powerstate and get_powerstate legacy hooks
Change-Id: I827112ffb1a65ada99605671b112d8fd0e6db4b5
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4976
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2022-02-19 08:19:24 +00:00
Autocomitter
2d0d5cb55e Update translations from Pootle 2022-02-19 08:08:47 +00:00
Augustin Cavalier
7afe4385ee freebsd_network: Add generic machine headers.
These can be used on platforms that only support memory spaces
and have no other general restrictions. riscv is one such for now,
so this finally commits support for RISC-V in the FreeBSD compat layer.
2022-02-18 21:36:39 -05:00
Augustin Cavalier
fc6ea2ef78 freebsd_network: Cleanup bustag handling.
* Add an enum with general BUS_SPACE_TAG values for use across platforms.
 * Add proper entries for generic IRQs and MSIs and make use of them.
2022-02-18 21:35:38 -05:00
Augustin Cavalier
843a8ad7a7 freebsd_network: Break bus macros out into a separate header.
Now copied directly from FreeBSD.

Also change copyright info of the main file, as the remaining parts have
almost entirely been written by me at this point.
2022-02-18 21:03:23 -05:00
Augustin Cavalier
38d00b8d33 freebsd_network: Change powerstate during busmaster if necessary.
It seems FreeBSD does the same (and drivers used to do this individually
but have not for some time.)

May help with quite a number of initialization-failed WiFi/ethernet tickets.
2022-02-18 20:29:15 -05:00
Augustin Cavalier
462fb495fa freebsd_network: Clean up and break PCI methods out of bus.cpp. 2022-02-18 20:23:36 -05:00
Augustin Cavalier
ccb7655078 UDF: Reduce logging messages.
No need to print things if there is no reason to suspect the storage
is UDF and we do not have general tracing enabled.
2022-02-18 19:47:02 -05:00
Augustin Cavalier
d556224730 HaikuDepot: Cleanup and release references early.
So that we do not destroy things in the wrong order and trigger
the reference-counting assertions.

Fixes #17579.
2022-02-18 18:39:32 -05:00
Augustin Cavalier
1e7094566a HaikuDepot: Fix typo. 2022-02-18 18:38:59 -05:00
Augustin Cavalier
a90d5c6d48 kernel/disk_device_manager: Improve tracing code.
* Use the standard TRACE{|_ALWAYS|_ERROR} setup.

 * Put DBG(OUT... code as TRACE.

Makes syslog output from this module significantly less verbose
in default builds.
2022-02-18 17:45:18 -05:00
Augustin Cavalier
589b419c5b kernel/team: Handle setpigd() being invoked for exiting teams.
In the case the team has already been removed from its process group,
this means we are far enough into teardown that we cannot change it.
Simply check for NULL and then return an error if so.

Fixes #17448.
2022-02-18 17:39:42 -05:00
Alexander von Gluck IV
705ee4bf53 preflet/network: Convert ServiceView to BGroupView
* Mostly just to be consistent with everything else

Change-Id: I468ce0a20fb918ec6e696bbc9e961dbc4386d7ff
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4963
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2022-02-18 21:37:03 +00:00
Alexander von Gluck IV
31f27c4d39 boot/efi: Optionally sign our EFI bootloader
* The private keys are in possession of Haiku, Inc.

Change-Id: I3b5b004e1dce0102f8a65f6d682f7e428845efe8
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4936
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2022-02-18 21:32:56 +00:00