xref: /OK3568_Linux_fs/kernel/Documentation/powerpc/elfnote.rst (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun==========================
2*4882a593SmuzhiyunELF Note PowerPC Namespace
3*4882a593Smuzhiyun==========================
4*4882a593Smuzhiyun
5*4882a593SmuzhiyunThe PowerPC namespace in an ELF Note of the kernel binary is used to store
6*4882a593Smuzhiyuncapabilities and information which can be used by a bootloader or userland.
7*4882a593Smuzhiyun
8*4882a593SmuzhiyunTypes and Descriptors
9*4882a593Smuzhiyun---------------------
10*4882a593Smuzhiyun
11*4882a593SmuzhiyunThe types to be used with the "PowerPC" namesapce are defined in [#f1]_.
12*4882a593Smuzhiyun
13*4882a593Smuzhiyun	1) PPC_ELFNOTE_CAPABILITIES
14*4882a593Smuzhiyun
15*4882a593SmuzhiyunDefine the capabilities supported/required by the kernel. This type uses a
16*4882a593Smuzhiyunbitmap as "descriptor" field. Each bit is described below:
17*4882a593Smuzhiyun
18*4882a593Smuzhiyun- Ultravisor-capable bit (PowerNV only).
19*4882a593Smuzhiyun
20*4882a593Smuzhiyun.. code-block:: c
21*4882a593Smuzhiyun
22*4882a593Smuzhiyun	#define PPCCAP_ULTRAVISOR_BIT (1 << 0)
23*4882a593Smuzhiyun
24*4882a593SmuzhiyunIndicate that the powerpc kernel binary knows how to run in an
25*4882a593Smuzhiyunultravisor-enabled system.
26*4882a593Smuzhiyun
27*4882a593SmuzhiyunIn an ultravisor-enabled system, some machine resources are now controlled
28*4882a593Smuzhiyunby the ultravisor. If the kernel is not ultravisor-capable, but it ends up
29*4882a593Smuzhiyunbeing run on a machine with ultravisor, the kernel will probably crash
30*4882a593Smuzhiyuntrying to access ultravisor resources. For instance, it may crash in early
31*4882a593Smuzhiyunboot trying to set the partition table entry 0.
32*4882a593Smuzhiyun
33*4882a593SmuzhiyunIn an ultravisor-enabled system, a bootloader could warn the user or prevent
34*4882a593Smuzhiyunthe kernel from being run if the PowerPC ultravisor capability doesn't exist
35*4882a593Smuzhiyunor the Ultravisor-capable bit is not set.
36*4882a593Smuzhiyun
37*4882a593SmuzhiyunReferences
38*4882a593Smuzhiyun----------
39*4882a593Smuzhiyun
40*4882a593Smuzhiyun.. [#f1] arch/powerpc/include/asm/elfnote.h
41*4882a593Smuzhiyun
42