Similar to open firmware implementation.
This allows to load the kernel from a remote_disk_server.
IP address is recovered using LoadOptions with a syntax similar to the
Linux kernel network boot "ip" parameter. If this is not set, no network
booting is attempted, in order to not slow down normal booting by
waiting on network traffic.
Change-Id: I17738bbcde85921672965b9936a2b484f1e57c6c
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3678
Reviewed-by: waddlesplash <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
Tested-by: Commit checker robot <[email protected]>
* This condition here is "we are unaware of this filesystem
or it is not formatted"
* Since a filesystem could exist, we don't want to falsely
guide users that data doesn't exist within a partition,
when it could actually exist.
* In this case, I had a bcachefs filesystem, which showed
in DriveSetup as "Not formatted (Linux data)"
* With this change, the language adjusts to "Unknown (Linux data)"
Change-Id: Ib88fea16ee9403419d54bb5223ceee950591ce56
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7540
Reviewed-by: waddlesplash <[email protected]>
Reviewed-by: humdinger humdinger <[email protected]>
Tested-by: Commit checker robot <[email protected]>
* Update bash to a less-buggy working native build.
* Add file for python3
* Add readline for bash
* Update xz_utils to a working native build.
Change-Id: Iedfcb8277b242ea43a2fd870850057429c6b09e0
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7528
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Alex von Gluck IV <[email protected]>
* Works under a Linux "cross-compile" environment
* We can't check in compile_commands.json unforunetly because it
highly depends on your build environment
* An in-tree .clangd is a thing, but our includes are complex
and directory-spefific.
* Thanks to Pulkomandy for adding the flag to jam to do this!
Change-Id: I3be4084c43f7b822bb04ea7ec527c5fbe03d7289
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7158
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
Reviewed-by: Alex von Gluck IV <[email protected]>
* Of note, using the Linux version since this tool is
generally compiled on the host system
Change-Id: I85907a09877a97ec6ec709add6f7985b551fcad3
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7168
Reviewed-by: waddlesplash <[email protected]>
* Pointed out by clang static analysis. These are
later read while not being completely validated.
Change-Id: I4546526535d6e011aee40c74136f992962ab8cff
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7159
Reviewed-by: waddlesplash <[email protected]>
* We might as well "try as hard as we can" to get build files.
* With this setting, DNS resolution errors count as retryable
errors. wget will retry to get files up to 20 times by default.
* Should improve build relability on less-than-ideal network
connections. (aka, a brief network disconnection shouldn't stop
a local build if possible)
Change-Id: I39652fafb5eee237c463e1b777b1057ee1d53db1
* %Ld is an undocumented alias for %lld in glibc.
* muslc doesn't implement it for this reason.
* While we will likely never drop %Ld support,
lets clean house and set a better example.
Change-Id: Id46dad3104abae483e80cc5c05d1464d3ecd8030
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6636
Reviewed-by: Adrien Destugues <[email protected]>
Reviewed-by: Alex von Gluck IV <[email protected]>
Tested-by: Commit checker robot <[email protected]>
* Fills in a detection gap where HaikuPortsCross might reference
packages that no longer exist in haikuports.cross
* A handy pre-bootstrap check
Change-Id: Id397ecda731a7b7d8fc3d407a4791724494611d7
* While virtio was attaching, network connectivity
wasn't functional.
* Use usb-net for now to get things working.
* Move to a user network with dhcp for simplicity
* Forward port 5555 on the host to 22 on the guest
for debugging / testing
Change-Id: Ieac095d7272c3132c39e4eaa0ccc461a32972dd2
* This prevents haiku from "messing" with the gUART until
EFI boot services are exiting.
* The previous design meant that our loader started fiddling
with the gUART while EFI BIOS services were still being
used. On the SiFive, this broke serial output.
* Now, we guard on serial_init if EFI is unavailable, and
only fallback to direct UART usage when EFI is no longer
available.
* tldr; we're more closely managing serial across architectures
* serial_init use EFI and init it
* kernel_serial_handoff, stop using EFI
* serial_init, oh no EFI. Use gUART and Init it
* one gap is likely if no serial is available in EFI, but I
haven't seen that yet.
Change-Id: I644b51e4912272110435d288a95517d43a76740d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6200
Reviewed-by: Fredrik Holmqvist <[email protected]>
* Assists on early boot platforms to install / upgrade when
no network is available.
* Doesn't introduce any additional dependencies
* Creates shine-though directories too.
Change-Id: I11dd207b2ffbae1768bab7a118a51034df238878
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6185
Reviewed-by: Alex von Gluck IV <[email protected]>
Tested-by: Automation <[email protected]>
Reviewed-by: Fredrik Holmqvist <[email protected]>
* We depend on FDT passed to the bootloader now
from EFI or u-boot via fdt_addr_r now
* We leave an fdt path within the boot partition
(for now) to allow / encourage users to optionally
plug in their own DTB's for troubleshooting. (only
on u-boot loader)
Change-Id: I3f2d81b60d46f388f333d5caa27aa77e6e36447d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6081
Reviewed-by: Alex von Gluck IV <[email protected]>
Reviewed-by: X512 <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
Tested-by: Automation <[email protected]>
* virtio is sketchy still due to some non-architecture
specific bugs. This lets us control the VM until virtio
improves
Change-Id: I2b6805b7282f8b060fae6d831c675eb2dd2f84ef
* kputs uses the string printing functions per arch
which includes logic to detect \ n and add a \ r before it on
serial devices.
* kputchar uses the individual character printing arch code
which doesn't include this check. This results in a floating
prompt on serial kernel debugger sessions:
kdebug>
kdebug> help
Prints a command...
* Since kputchar is lower level and most would expect it to print
"a single untampered character", just convert these newline calls
to use kputs which includes the \ r check serial devices use.
Change-Id: I8389899e7670859597aeddbb6f58e9b7f7942230
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5992
Reviewed-by: Alex von Gluck IV <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
* Convert x86 direct port I/O to our standard gUART.
* sSerial is plainly EFI Serial or EFI Stdout
* gUART is plainly hardware serial now
Change-Id: I5730fbc0ce3427851e4e2d1d0aa8c55f7765e444
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5982
Reviewed-by: Alex von Gluck IV <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
* This is actually a generic Synopsys DesignWare ABP UART
which can be found on riscv boards like the StarFive as
well as ARM. Just make generic.
Change-Id: If3c047560d66ebb8a76410c55c22e216cbf5d4e2
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5978
Reviewed-by: Alex von Gluck IV <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
Reviewed-by: David Karoly <[email protected]>
Tested-by: Commit checker robot <[email protected]>
* Solves some insecure permission errors with
sshd subprocesses.
* More secure I guess not letting "anyone" write to /
Change-Id: I1bb31ff0142585639369f7b3d15cf9a2d5755598
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5962
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
Reviewed-by: Alex von Gluck IV <[email protected]>
* Left list now static in width
* Right dynamic
* Fix dynamic nature of right networkinterface info pane
Change-Id: I678a3355c95ed5c4c759b5b1e3715e5e170979fd
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4962
Reviewed-by: Adrien Destugues <[email protected]>
Tested-by: Commit checker robot <[email protected]>
* The if statements now "make sense"
* 1.4 GiB release images easily fit a "mini single layer DVD"
* Our source build is around 1.1GiB
* 200 MiB of "space" in our read-only image allows
a little room for live-media shenanigans
* Empty space is compressed anyway in release zip files
Change-Id: I5ad017e3f80d5977ca9604f5bf200684796fc7b9
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5818
Reviewed-by: Alex von Gluck IV <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
* Not perfect, but does give some nice data on what makes the most
"error noise" on boot
* We should eventually make this a ruby or python script to do
better reporting
Change-Id: I831af05520a95ffba492c068c105f93ff2c31a2d
* "egrep: warning: egrep is obsolescent; using grep -E"
* egrep on haiku is a shell script calling grep -E
* given the warnings in the latest egrep, lets get
ahead of the curve and migrate to grep -E
Change-Id: I0fc2b936c7a9c52f87caf97d8e9ac42516fee014
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5718
Reviewed-by: Adrien Destugues <[email protected]>
Tested-by: Commit checker robot <[email protected]>
* 90% of our logs start with some context on what is
generating a log message (thing:)
* Things following this logging model however do "thing [time"
which is inconsistent
* Being consistent will allow us to start scanning logs in a
smart way and try to analyze patterns of what is throwing
errors, etc in an automatic way.
aka /^(service/driver/etc)\:/
Change-Id: I1ef2df4f17f70f858a485554a4e8a3f87f1a69c8
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5568
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Oscar Lesta <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
* Better testing of the riscv64 arch by providing
more supported hardware
* Partially based on x512's research in the forums
* Example usage:
../src/tests/qemu-boot-test riscv64 \
kernel:.../u-boot.bin haiku-mmc.image
Change-Id: I9fe9d3c63bd7683818fc28fad2de64545bcd4804
* This has been floating around on trac forever. We should formalize
these steps to help future Haiku releases to be successful.
Change-Id: I5881e27a23e66a18539d04c5977593a827f8fcef
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5441
Reviewed-by: waddlesplash <[email protected]>
* Previously, any accelerants failing would cause an
app_server crash.. so we would do everything in our
power to get "something"
* After hrev56252, the app_server properly handles
accelerant failures and vesa / framebuffer accelerants
should will be used.
* Thus, if no monitors were detected (due to none being
plugged-in, or some other fault), bail and return B_ERROR
so vesa fallback can give it a try.
Change-Id: Ib9695dd7cf1914e50547ca8661c55b80152a66a4
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5442
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
Reviewed-by: Alex von Gluck IV <[email protected]>
* Also drop unused vblank semaphore storage
* Spotted by X512. These are from intel_extreme
which was used as a base *ages* ago.
Change-Id: I2a6baaa4849baeb8c8cf10e2046d0fbe10c3a356
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5389
Reviewed-by: Alex von Gluck IV <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
* This is a temporary workaround for #17468. Using the older
riscv64 icu-57 package (compiled with gcc 8.x) removes
the userspace hang on startup of Haiku.
* Thanks to X512 for the workaround.
* icu66, icu70 compiled with gcc 11.2.0 exhibits the
userspace hang at startup.
* We have a lot of bootstrap work to do, and this gives us
a riscv64 image which boots for testing + building software
in a native environment.
Change-Id: I503a1e99ff38450628c0863100450c883139a25a
* 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 <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
* I have to figure out how to do this every major
release, put here to document somewhat.
* The os images are empty files for obvious reasons
* This vagrant box is used by qemu for their automated
testing under Haiku
https://github.com/qemu/qemu/blob/master/tests/vm/haiku.x86_64
Change-Id: I8e02104063284a96e1672051e3d504a78a64cfe3
* kernel + bootloader get differing compiler flags
* Trying to reuse libroot objects makes what objects
are being built with which flags slightly confusing.
Change-Id: Ic8ac7255db99d6825ca022afc3f4fd416c57c12d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4876
Reviewed-by: Alex von Gluck IV <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
Reviewed-by: Jérôme Duval <[email protected]>
* We decided to not create our own custom define checks
and go with the standard ones for riscv64.
* clang doesn't define __RISCV64__ either, so this moves
the clang build of riscv64 a bit further
Change-Id: I2a6c3751168a898c1617b32f46055a9ba1609e2b
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4861
Reviewed-by: Alex von Gluck IV <[email protected]>
Tested-by: Commit checker robot <[email protected]>