bootloader issueshttps://gitlab.redox-os.org/redox-os/bootloader/-/issues2024-02-13T17:44:35Zhttps://gitlab.redox-os.org/redox-os/bootloader/-/issues/8(Feature request) Save the default resolution in a configuration file, like GRUB2024-02-13T17:44:35ZRibbon(Feature request) Save the default resolution in a configuration file, like GRUBAdd a variable option in the configuration file to set a default resolution and ignore the resolution picker dialog.Add a variable option in the configuration file to set a default resolution and ignore the resolution picker dialog.https://gitlab.redox-os.org/redox-os/bootloader/-/issues/7UEFI bootloader not respecting spec when calling `ExitBootServices()`2023-11-18T01:54:50ZArthur BrainvilleUEFI bootloader not respecting spec when calling `ExitBootServices()`Hello, it is my first time here!
I am encountering the following issue trying to boot Redox in UEFI mode on some laptop: When calling `ExitBootServices` from the UEFI system map, this function *may* return an InvalidParameter error. Wh...Hello, it is my first time here!
I am encountering the following issue trying to boot Redox in UEFI mode on some laptop: When calling `ExitBootServices` from the UEFI system map, this function *may* return an InvalidParameter error. When this happens, currently, the Redox bootloader simply panics away.
However, this is not supposed to be a fatal error. See the relevant specification which is located here: https://uefi.org/specs/UEFI/2.9_A/07_Services_Boot_Services.html?highlight=exitbootservices#efi-boot-services-exitbootservices
As far as I can tell, what should happen when this error code is returned is reloading the memory map. (obtaining a new handle for it). And then calling that function again so the firmware actually relinquishes the memory allocated for boot time services.
I have only gotten the bad behavior on a laptop from 2012. Not sure how many dragons lie in the "early days of UEFI" in the consumer market... :rofl:
One interesting thing is I think allocating memory via the UEFI facilities actually invalidates the memory map. (I have not double-checked that against the specification, but there's [a random comment about it in some Linux code](https://github.com/torvalds/linux/blob/3ca112b71f35dd5d99fc4571a56b5fc6f0c15814/drivers/firmware/efi/libstub/efi-stub-helper.c#L407).
With the current design of the `MemoryMapIter`, its construction does create a Vec, call `GetMemoryMap`, then resize the vec, and then return the struct. Rust is still a bit new to me (coming from C++... But I am pretty sure truncating the Vec should reallocate an array of the exact size for the data and move it there?)
Also, I have not yet familiarized myself with where this `Vec` implementation actually comes from (I see we have a crate somewhere that is a global UEFI allocator? That a thread to pull on).
So far, I have played with the code a bit, and tried (in case of error) to implement the retry behavior, with no allocations between `GetMemoryMap` and `ExitBootServices` once the error occurs.
The problem is that then it hangs the bootloader on that specific machine inside the 2nd call to `ExitBootServices` So that was not very successful. :sweat_smile:
The next thing I may try is to attempt rewriting the memory map so it does not need to do the realoc in the first place... To see if that unstuck me.
In all cases, at the very least the error from that call should be handled gracefully (at least one retry, and not just expecting it away). I may try to propose that patch soon. So that call actually follows what is stated in the UEFI specification.https://gitlab.redox-os.org/redox-os/bootloader/-/issues/6Redox would not boot after installing with fs password.2023-10-14T15:26:02ZRon WilliamsRedox would not boot after installing with fs password.User reported that Redox would not boot after installing with fs password. No password prompt was displayed.
https://matrix.to/#/!VRFarxUZgQhGPZpROi:matrix.org/$6oB9BNYbUVG7Wmj4ZT-u1NIofMClVG7i4KB9WHcrD9I?via=matrix.org&via=mozilla.org&v...User reported that Redox would not boot after installing with fs password. No password prompt was displayed.
https://matrix.to/#/!VRFarxUZgQhGPZpROi:matrix.org/$6oB9BNYbUVG7Wmj4ZT-u1NIofMClVG7i4KB9WHcrD9I?via=matrix.org&via=mozilla.org&via=westwork.orghttps://gitlab.redox-os.org/redox-os/bootloader/-/issues/5typeof bootloader x86_64 startup-i386.asm2023-07-02T15:01:57Zstardusttypeof bootloader x86_64 startup-i386.asmIs the assembly is NASM?Is the assembly is NASM?https://gitlab.redox-os.org/redox-os/bootloader/-/issues/4License violation spotted - another organization stole your project2018-07-08T02:59:11ZHaruka MaLicense violation spotted - another organization stole your projectThe project, https://github.com/benchlab/benOS-Bootloaders, copied your project without proper attribution and violated your license by claiming the author. Note that their attributions does included some of Redox projects, bootloader is...The project, https://github.com/benchlab/benOS-Bootloaders, copied your project without proper attribution and violated your license by claiming the author. Note that their attributions does included some of Redox projects, bootloader is not in it.
I've done a diff between the projects which could be found at https://pastebin.com/c89v7tpd, if you want to take a look at.
I'd suggest you talk to the project directly or report it to GitHub to takedown the violating repository.https://gitlab.redox-os.org/redox-os/bootloader/-/issues/3[MacOS] bootloader/x86_64/disk.asm:1: error: parser: instruction expected2023-09-24T09:25:24ZJeremy Soller[MacOS] bootloader/x86_64/disk.asm:1: error: parser: instruction expected*Created by: csi-adziahel*
Repro:
1. check out recent sources, install dependencies, usual yada-yada.
2. run `make build/bootloader`
Expected: build succeeds
Instead: build fails reporting following error
```
~/s/r/redox (master|✔) ...*Created by: csi-adziahel*
Repro:
1. check out recent sources, install dependencies, usual yada-yada.
2. run `make build/bootloader`
Expected: build succeeds
Instead: build fails reporting following error
```
~/s/r/redox (master|✔) $ make build/bootloader
mkdir -p build
nasm -f bin -o build/bootloader -D ARCH_x86_64 -ibootloader/x86_64/ bootloader/x86_64/disk.asm
bootloader/x86_64/disk.asm:1: error: parser: instruction expected
startup-x86_64.asm:126: warning: numeric constant 0xFFFFFF0000080000 does not fit in 32 bits
startup-x86_64.asm:157: warning: numeric constant 0xFFFFFFFFFFFFFFF0 does not fit in 32 bits
make: *** [build/bootloader] Error 1
```
Environment: Mac OS X 10.13.3 x64 on Intel(R) Core(TM) i5-4308U CPU @ 2.80GHz (Mac mini).https://gitlab.redox-os.org/redox-os/bootloader/-/issues/1Misleading documentation2018-06-16T15:58:02ZJeremy SollerMisleading documentation*Created by: povilasb*
See: https://github.com/redox-os/bootloader/blob/master/x86_64/print16.asm
```asm
; print a string and a newline
; IN
; si: points at zero-terminated String
; CLOBBER
; ax
print_line:
mov al, 13
...*Created by: povilasb*
See: https://github.com/redox-os/bootloader/blob/master/x86_64/print16.asm
```asm
; print a string and a newline
; IN
; si: points at zero-terminated String
; CLOBBER
; ax
print_line:
mov al, 13
call print_char
mov al, 10
jmp print_char
```
This function ignores documented parameter `si`
> si: points at zero-terminated String
and prints new line only.