History log of /haiku/src/system/boot/platform/efi/devices.cpp
Revision Date Author Comments
# e1b41d44 13-Jun-2010 Andreas Faerber <andreas.faerber@web.de>

boot loader: Wire up net_stack_cleanup()

Add a platform cleanup hook before starting the kernel. The openfirmware
and PXE loaders clean up their network stack there, while the other
loaders currently do nothing.

This closes ticket #6166

Change-Id: I34765892dfd9b2310c6af97c9ff7d414afae49e5
Reviewed-on: https://review.haiku-os.org/c/50
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# f5997212 04-May-2018 Jessica Hamilton <jessica.l.hamilton@gmail.com>

bootloader/efi: remove partition before adding to new list.

* A Node/Partition cannot be member of two lists at once. This
resolves an issue where a partition cannot be found later
due to corruption of a NodeList.


# e8882171 13-May-2017 Jessica Hamilton <jessica.l.hamilton@gmail.com>

loader: fetch all potential boot partitions for boot device.

This allows the loader to skip BFS partitions that don't contain
a bootable system. Useful when you have a BFS data partition that
comes before the system partition when iterated over.

Currently, only the UEFI loader actually returns more than one
possible partition.


# 6b4cbec0 06-Jan-2017 Jessica Hamilton <jessica.l.hamilton@gmail.com>

UEFI: identify the boot partition to check that it's valid.

* Also modified EFI::Header to return the efi_table_header so
that we can compare it to boot device partition table.


# 42e718f0 06-Jan-2017 Jessica Hamilton <jessica.l.hamilton@gmail.com>

UEFI: improve boot support in devices.cpp

* Maintain a list of all MESSAGING_DEVICE_PATH and
MEDIA_DEVICE_PATH handles, so we can avoid adding devices
multiple times.
* Split up platform_add_boot_device() into separate functions
for better readability (add_cd_devices, add_boot_device_for_image,
etc.).


# 1d830665 06-Jan-2017 Fredrik Holmqvist <fredrik.holmqvist@gmail.com>

Rewrote device handling in EFI boot-loader

This allows me to find and boot disks and cds(*)
platform_add_boot_device tries to find the disk of the EFI partition
As on other platforms if boot disk isn't found platform_add_block_devices
will be called.
platform_add_block_devices will find all block devices that arn't partitions as
they are handled by Haiku already.
Currently first found suitable partition will be selected.

TODO:
* pass in partition UUID's as boot-loader arg to setup boot for
any partition.
* Better cd detection
* Better disk_identifier

*) vfs_boot.cpp is very restrictive when it comes to booting cds.
It either do very Anyboot check where boot partition should be at offset 0,
which isn't true for EFI. In my case it's not even on that disk.
Or it only allow data session partition types.
This is currently failing as the Anyboot partition type is BFS.


# 2da1cb75 30-Aug-2016 Jessica Hamilton <jessica.l.hamilton@gmail.com>

EFI: device support for anyboot CDs.

I have tried to get normal ISOs working, but the bootloader doesn't
seem to detect any bootable partitions.


# e2e1558a 20-Apr-2016 Jessica Hamilton <jessica.l.hamilton@gmail.com>

EFI: stub functions so we can call loader's main() function.