NVIDIA DRIVE OS Linux API Reference

5.1.3.0 Release

 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
bootkernel.h File Reference

Detailed Description

NVIDIA Quickboot Interface: Kernel Boot

Description: This file declares APIs and data structures required for kernel booting.

Definition in file bootkernel.h.

Go to the source code of this file.

Macros

#define KERNEL_CMDLINE_SIZE   (2 * KB)
 
#define IMAGE_MAGIC   "BOOT_IMAGE!"
 
#define IMAGE_MAGIC_SIZE   12
 
#define CMDLINE_BUF_SIZE   40
 
#define NATIVE_BOOT   1
 
#define VIRTUALIZED_BOOT   2
 
#define RECOVERY_KERNEL_BIT   (1 << 31)
 
#define UPDATE_KERNEL_BIT   (1 << 29)
 

Enumerations

enum  BootImageType {
  BootImageType_Linux = 1,
  BootImageType_Qnx = 2,
  BootImageType_Android = 3,
  BootImageType_Integrity = 4,
  BootImageType_Mods = 5,
  BootImageType_Ramdisk = 6,
  BootImageType_Hypervisor = 7,
  BootImageType_Force = 0x7FFFFFFF
}
 
enum  BootImage_Compression {
  BootImage_CompressionNone = 0,
  BootImage_CompressionLz4 = 3,
  BootImage_Force = 0x7FFFFFFF
}
 
enum  BootImageStreamValidation {
  BootImageStreamValidation_No = 0,
  BootImageStreamValidation_Yes = 1,
  BootImageStreamValidation_Force = 0x7FFFFFFF
}
 
enum  BootImageLoading {
  BootImageLoading_NoCompression_NoStreamValidation,
  BootImageLoading_NoCompression_StreamValidation,
  BootImageLoading_CompressionLz4_NoStreamValidation,
  BootImageLoading_CompressionLz4_StreamValidation,
  BootImageLoading_Force = 0x7FFFFFFF
}
 
enum  BootGuidType {
  BootGuidType_Windows = 0,
  BootGuidType_Linux,
  BootGuidType_Qnx
}
 

Functions

NvError QbLoadAndBootKernel (const NvS8 *pKernelPartName, const NvS8 *pRamdiskPartName, const NvS8 *pDtbPartName)
 (Top-level function) Loads the kernel image from a specific partition. More...
 
NvError QbLoadBootImages (const NvS8 *pKernName, const NvS8 *pRamdiskName, const NvS8 *pDtbPartName, NvUPtr *pBootAddrVirt, NvUPtr *pRamDiskAddrVirt, NvUPtr **pDtAddrVirt, NvU32 *pKernelUnCompressSize, NvU32 *pRamdiskUncompressSize)
 Internal function invoked by QbLoadAndBootKernel to load the images from storage in case of cold boot and from RAM in case of RCM boot. More...
 
void KernelCmdLine (NvU32 RatchetFuseBurnStatus)
 Prepares the kernel command line to be passed to the kernel. More...
 
void KernelDT (void)
 Updates the device tree with architecture-specific and board-specific changes. More...
 
void AppendBoardDT (void)
 Appends the board-specific DT support. More...
 
NvError QbDefaultLoadAndBootKernel (void)
 Adds a default boot policy. More...
 
NvError QbBoardLoadAndBootKernel (void)
 Adds board-specific boot policy. More...
 
NvError QbGetSerialNum (NvU8 **pSerialNum, NvU32 *DataSize)
 Gets the serial number of the board. More...
 
NvBool QbIsHypervisorBoot (void)
 Determines whether hypervisor is to be booted. More...
 
NvBool QbIsAndroidBoot (void)
 Determines whether android is to be booted. More...
 
static void AdjustPointers (NvS32 *pRemains, NvS8 **pPtr, NvS32 len)
 Adjusts pointers in a buffer to process appending new string to the buffer. More...
 
NvError QbQueryMemInfo (NvU8 **pData, NvU32 *pDataSize, NvU64 ReserveMemSize)
 Queries memory info to be passed to kernel. More...
 
void QbPerformHandOff (NvUPtr *pKernelRegs, NvU32 NumKernelRegs, NvUPtr KernelStartAddr)
 Performs any necessary operations before kernel handoff. More...
 

Variables

BootImageType s_g_BootImageType
 

Variable Documentation

BootImageType s_g_BootImageType