18c2ecf20Sopenharmony_ci==========================
28c2ecf20Sopenharmony_ciELF Note PowerPC Namespace
38c2ecf20Sopenharmony_ci==========================
48c2ecf20Sopenharmony_ci
58c2ecf20Sopenharmony_ciThe PowerPC namespace in an ELF Note of the kernel binary is used to store
68c2ecf20Sopenharmony_cicapabilities and information which can be used by a bootloader or userland.
78c2ecf20Sopenharmony_ci
88c2ecf20Sopenharmony_ciTypes and Descriptors
98c2ecf20Sopenharmony_ci---------------------
108c2ecf20Sopenharmony_ci
118c2ecf20Sopenharmony_ciThe types to be used with the "PowerPC" namesapce are defined in [#f1]_.
128c2ecf20Sopenharmony_ci
138c2ecf20Sopenharmony_ci	1) PPC_ELFNOTE_CAPABILITIES
148c2ecf20Sopenharmony_ci
158c2ecf20Sopenharmony_ciDefine the capabilities supported/required by the kernel. This type uses a
168c2ecf20Sopenharmony_cibitmap as "descriptor" field. Each bit is described below:
178c2ecf20Sopenharmony_ci
188c2ecf20Sopenharmony_ci- Ultravisor-capable bit (PowerNV only).
198c2ecf20Sopenharmony_ci
208c2ecf20Sopenharmony_ci.. code-block:: c
218c2ecf20Sopenharmony_ci
228c2ecf20Sopenharmony_ci	#define PPCCAP_ULTRAVISOR_BIT (1 << 0)
238c2ecf20Sopenharmony_ci
248c2ecf20Sopenharmony_ciIndicate that the powerpc kernel binary knows how to run in an
258c2ecf20Sopenharmony_ciultravisor-enabled system.
268c2ecf20Sopenharmony_ci
278c2ecf20Sopenharmony_ciIn an ultravisor-enabled system, some machine resources are now controlled
288c2ecf20Sopenharmony_ciby the ultravisor. If the kernel is not ultravisor-capable, but it ends up
298c2ecf20Sopenharmony_cibeing run on a machine with ultravisor, the kernel will probably crash
308c2ecf20Sopenharmony_citrying to access ultravisor resources. For instance, it may crash in early
318c2ecf20Sopenharmony_ciboot trying to set the partition table entry 0.
328c2ecf20Sopenharmony_ci
338c2ecf20Sopenharmony_ciIn an ultravisor-enabled system, a bootloader could warn the user or prevent
348c2ecf20Sopenharmony_cithe kernel from being run if the PowerPC ultravisor capability doesn't exist
358c2ecf20Sopenharmony_cior the Ultravisor-capable bit is not set.
368c2ecf20Sopenharmony_ci
378c2ecf20Sopenharmony_ciReferences
388c2ecf20Sopenharmony_ci----------
398c2ecf20Sopenharmony_ci
408c2ecf20Sopenharmony_ci.. [#f1] arch/powerpc/include/asm/elfnote.h
418c2ecf20Sopenharmony_ci
42