Namespaces

Enumerations

enum TtyType
Name Value
kAny 0
kSerial 1
kAml 2
kMsm 3
kSac 4

Defined at line 17 of file ../../zircon/kernel/phys/lib/boot-shim/include/lib/boot-shim/tty.h

Records

Functions

  • MmioRange MmioRangeFrom (const devicetree::RegPropertyElement & reg)

    Defined at line 39 of file ../../zircon/kernel/phys/lib/boot-shim/include/lib/boot-shim/devicetree-boot-shim.h

  • const void * EfiGetVendorTable (const efi_system_table * systab, const efi_guid & guid, std::string_view prefix)

    Look up the given GUID in the ConfigurionTable.

    Return it only if it matches the prefix.

    Defined at line 53 of file ../../zircon/kernel/phys/lib/boot-shim/efi.cc

  • const void * EfiGetVendorTable (const efi_system_table * systab, const efi_guid & guid, std::string_view prefix)

    Look up the given GUID in the ConfigurionTable.

    Return it only if it matches the prefix.

    Defined at line 53 of file ../../zircon/kernel/phys/lib/boot-shim/efi.cc

  • zx::result<acpi_lite::AcpiParser> EfiGetAcpi (const efi_system_table * systab)

    Create an AcpiParser for the ACPI tables found in the ConfigurionTable.

    Defined at line 68 of file ../../zircon/kernel/phys/lib/boot-shim/efi.cc

  • std::optional<Tty> TtyFromCmdline (std::string_view cmdline)

    Best effort at parsing Linux-compatible `console=` command, if present.

    Defined at line 47 of file ../../zircon/kernel/phys/lib/boot-shim/tty.cc

  • std::optional<Tty> TtyFromCmdline (std::string_view cmdline)

    Best effort at parsing Linux-compatible `console=` command, if present.

    Defined at line 47 of file ../../zircon/kernel/phys/lib/boot-shim/tty.cc

  • template <typename Callback>
    bool ForEachDevicetreeMemoryReservation (const devicetree::Devicetree & fdt, std::span<const memalloc::Range> exclusions, Callback && cb)

    This routine passes each memory reservation to a provided callback,

    excluding the ranges that overlap with a select number of "exclusions". The

    The callback should return `true` if it wishes to proceed with the iteration

    and `false` if it wishes to short-circuit; in the latter case the routine

    itself will return `false`. The exclusions should be non-overlapping and in

    order.

    While contrary to the devicetree spec - which says that a memory reservation

    is memory that should not be used by the kernel - we have encountered

    bootloaders that do generate reservations for the devicetree blob and

    ramdisk. This routine works around that to ensure that such ranges do not

    end up accounted for as RESERVED.

    This logic is separate from any matcher as memory reservations are not

    encoded within a devicetree blob's tree structure, and the ramdisk - one of

    the intended exclusions - is the product itself of a 'chosen' matcher.

    Defined at line 488 of file ../../zircon/kernel/phys/lib/boot-shim/include/lib/boot-shim/devicetree.h

  • template <typename Callback>
    bool ForEachDevicetreeMemoryReservation (const devicetree::Devicetree & fdt, std::span<const memalloc::Range> exclusions, Callback && cb)

    This routine passes each memory reservation to a provided callback,

    excluding the ranges that overlap with a select number of "exclusions". The

    The callback should return `true` if it wishes to proceed with the iteration

    and `false` if it wishes to short-circuit; in the latter case the routine

    itself will return `false`. The exclusions should be non-overlapping and in

    order.

    While contrary to the devicetree spec - which says that a memory reservation

    is memory that should not be used by the kernel - we have encountered

    bootloaders that do generate reservations for the devicetree blob and

    ramdisk. This routine works around that to ensure that such ranges do not

    end up accounted for as RESERVED.

    This logic is separate from any matcher as memory reservations are not

    encoded within a devicetree blob's tree structure, and the ramdisk - one of

    the intended exclusions - is the product itself of a 'chosen' matcher.

    Defined at line 488 of file ../../zircon/kernel/phys/lib/boot-shim/include/lib/boot-shim/devicetree.h

  • template <typename Callback>
    bool ForEachDevicetreeMemoryReservation (const devicetree::Devicetree & fdt, std::span<const memalloc::Range> exclusions, Callback && cb)

    This routine passes each memory reservation to a provided callback,

    excluding the ranges that overlap with a select number of "exclusions". The

    The callback should return `true` if it wishes to proceed with the iteration

    and `false` if it wishes to short-circuit; in the latter case the routine

    itself will return `false`. The exclusions should be non-overlapping and in

    order.

    While contrary to the devicetree spec - which says that a memory reservation

    is memory that should not be used by the kernel - we have encountered

    bootloaders that do generate reservations for the devicetree blob and

    ramdisk. This routine works around that to ensure that such ranges do not

    end up accounted for as RESERVED.

    This logic is separate from any matcher as memory reservations are not

    encoded within a devicetree blob's tree structure, and the ramdisk - one of

    the intended exclusions - is the product itself of a 'chosen' matcher.

    Defined at line 488 of file ../../zircon/kernel/phys/lib/boot-shim/include/lib/boot-shim/devicetree.h

  • template <typename Callback>
    bool ForEachDevicetreeMemoryReservation (const devicetree::Devicetree & fdtstd::span<const memalloc::Range> exclusionsCallback && cb)

    This routine passes each memory reservation to a provided callback,

    excluding the ranges that overlap with a select number of "exclusions". The

    The callback should return `true` if it wishes to proceed with the iteration

    and `false` if it wishes to short-circuit; in the latter case the routine

    itself will return `false`. The exclusions should be non-overlapping and in

    order.

    While contrary to the devicetree spec - which says that a memory reservation

    is memory that should not be used by the kernel - we have encountered

    bootloaders that do generate reservations for the devicetree blob and

    ramdisk. This routine works around that to ensure that such ranges do not

    end up accounted for as RESERVED.

    This logic is separate from any matcher as memory reservations are not

    encoded within a devicetree blob's tree structure, and the ramdisk - one of

    the intended exclusions - is the product itself of a 'chosen' matcher.

    Defined at line 488 of file ../../zircon/kernel/phys/lib/boot-shim/include/lib/boot-shim/devicetree.h

Concepts

template <typename T> WatchdogMmioHelper requires (T t, uint64_t base_addr, uint32_t contents) { { T::Read(base_addr) } -> std::convertible_to<uint64_t>; { T::Write(contents, base_addr) }; }

Defined at line 22 of file ../../zircon/kernel/phys/lib/boot-shim/include/lib/boot-shim/watchdog.h

template <typename T, typename Shim> DevicetreeItem devicetree::Matcher<T> && std::is_base_of_v<ItemBase, T> && requires (T &t, Shim shim) { { t.Init(shim) }; }

Defined at line 29 of file ../../zircon/kernel/phys/lib/boot-shim/include/lib/boot-shim/devicetree-boot-shim.h

template <typename Ttypename MmioHelper> Watchdog WatchdogMmioHelper<MmioHelper> && requires (std::decay_t<T> t, const devicetree::PropertyDecoder &decoder, const DevicetreeBootShimMmioObserver *mmio_observer) { { decltype(t)::kCompatibleDevices } -> std::ranges::range; { *decltype(t)::kCompatibleDevices.begin() } -> std::convertible_to<std::string_view>; { decltype(t)::template MaybeCreate<MmioHelper>(decoder, mmio_observer) } -> std::convertible_to<std::optional<zbi_dcfg_generic32_watchdog_t>>; }

A `Watchdog` Item must provide the following API:

Defined at line 29 of file ../../zircon/kernel/phys/lib/boot-shim/include/lib/boot-shim/watchdog.h