2019-08-29 23:50:21 +08:00
|
|
|
==========================
|
|
|
|
ELF Note PowerPC Namespace
|
|
|
|
==========================
|
|
|
|
|
|
|
|
The PowerPC namespace in an ELF Note of the kernel binary is used to store
|
|
|
|
capabilities and information which can be used by a bootloader or userland.
|
|
|
|
|
|
|
|
Types and Descriptors
|
|
|
|
---------------------
|
|
|
|
|
2021-03-26 18:08:53 +08:00
|
|
|
The types to be used with the "PowerPC" namespace are defined in [#f1]_.
|
2019-08-29 23:50:21 +08:00
|
|
|
|
|
|
|
1) PPC_ELFNOTE_CAPABILITIES
|
|
|
|
|
|
|
|
Define the capabilities supported/required by the kernel. This type uses a
|
|
|
|
bitmap as "descriptor" field. Each bit is described below:
|
|
|
|
|
|
|
|
- Ultravisor-capable bit (PowerNV only).
|
|
|
|
|
2019-09-15 13:29:05 +08:00
|
|
|
.. code-block:: c
|
|
|
|
|
2019-08-29 23:50:21 +08:00
|
|
|
#define PPCCAP_ULTRAVISOR_BIT (1 << 0)
|
|
|
|
|
2019-09-15 13:29:05 +08:00
|
|
|
Indicate that the powerpc kernel binary knows how to run in an
|
|
|
|
ultravisor-enabled system.
|
2019-08-29 23:50:21 +08:00
|
|
|
|
2019-09-15 13:29:05 +08:00
|
|
|
In an ultravisor-enabled system, some machine resources are now controlled
|
|
|
|
by the ultravisor. If the kernel is not ultravisor-capable, but it ends up
|
|
|
|
being run on a machine with ultravisor, the kernel will probably crash
|
|
|
|
trying to access ultravisor resources. For instance, it may crash in early
|
|
|
|
boot trying to set the partition table entry 0.
|
2019-08-29 23:50:21 +08:00
|
|
|
|
2019-09-15 13:29:05 +08:00
|
|
|
In an ultravisor-enabled system, a bootloader could warn the user or prevent
|
|
|
|
the kernel from being run if the PowerPC ultravisor capability doesn't exist
|
|
|
|
or the Ultravisor-capable bit is not set.
|
2019-08-29 23:50:21 +08:00
|
|
|
|
|
|
|
References
|
|
|
|
----------
|
|
|
|
|
2019-09-15 13:29:05 +08:00
|
|
|
.. [#f1] arch/powerpc/include/asm/elfnote.h
|
2019-08-29 23:50:21 +08:00
|
|
|
|