- if ((BootType == BDS_LOADER_KERNEL_LINUX_ATAG) || (BootType == BDS_LOADER_KERNEL_LINUX_FDT)) {\r
- // Write the header\r
- WriteUnaligned32 ((UINT32 *)EfiLoadOptionPtr, ARM_BDS_OPTIONAL_DATA_SIGNATURE);\r
- WriteUnaligned32 ((UINT32 *)(EfiLoadOptionPtr + 4), BootType);\r
-\r
- // OptionalData should have been initialized by the caller of this function\r
- ASSERT (OptionalData != NULL);\r
- BootArguments = (ARM_BDS_LOADER_ARGUMENTS*)OptionalData;\r
- SrcLinuxArguments = &(BootArguments->LinuxArguments);\r
- DestLinuxArguments = &((ARM_BDS_LOADER_OPTIONAL_DATA*)EfiLoadOptionPtr)->Arguments.LinuxArguments;\r
-\r
- WriteUnaligned16 ((UINT16 *)&(DestLinuxArguments->CmdLineSize), SrcLinuxArguments->CmdLineSize);\r
- WriteUnaligned16 ((UINT16 *)&(DestLinuxArguments->InitrdSize), SrcLinuxArguments->InitrdSize);\r
-\r
- if (SrcLinuxArguments->CmdLineSize > 0) {\r
- CopyMem ((VOID*)(DestLinuxArguments + 1), (VOID*)(SrcLinuxArguments + 1), SrcLinuxArguments->CmdLineSize);\r
- }\r
-\r
- if (SrcLinuxArguments->InitrdSize > 0) {\r
- InitrdPathListPtr = (UINT8*)((UINTN)(DestLinuxArguments + 1) + SrcLinuxArguments->CmdLineSize);\r
- CopyMem (InitrdPathListPtr, (VOID*)((UINTN)(SrcLinuxArguments + 1) + SrcLinuxArguments->CmdLineSize), SrcLinuxArguments->InitrdSize);\r
- }\r
- } else {\r
- if (OptionalData != NULL) {\r
- CopyMem (BootOption->OptionalData, OptionalData, OptionalDataSize);\r
- }\r