Skip to content

Commit

Permalink
CMake: use params for DefineCAmkESVMFileServer()
Browse files Browse the repository at this point in the history
Signed-off-by: Axel Heider <[email protected]>
  • Loading branch information
Axel Heider committed Mar 23, 2023
1 parent 1e71adf commit 26ea104
Show file tree
Hide file tree
Showing 7 changed files with 81 additions and 60 deletions.
14 changes: 8 additions & 6 deletions apps/Arm/odroid_vm/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,6 @@ add_subdirectory(components/spi)
add_subdirectory(components/clk)
add_subdirectory(components/timer)

set(linux_binary_name "${CAMKES_ARM_LINUX_DIR}/linux")

# Different device tree if compiling with VmVUSB
if(VmVUSB)
set(device_tree_src "linux-secure-vusb-dtb")
Expand All @@ -51,10 +49,14 @@ add_custom_command(
# Create custom target for setting the dtb
add_custom_target(set_dtb DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/linux/linux-dtb")

# Add Linux VM images into file server
AddToFileServer("linux" "${linux_binary_name}")
AddToFileServer("linux-dtb" "${CMAKE_CURRENT_BINARY_DIR}/linux/linux-dtb" DEPENDS set_dtb)
DefineCAmkESVMFileServer()
# Create file server with Add Linux VM images
DefineCAmkESVMFileServer(
FILES
"linux:${CAMKES_ARM_LINUX_DIR}/linux"
"linux-dtb:${CMAKE_CURRENT_BINARY_DIR}/linux/linux-dtb"
DEPENDS
set_dtb
)

# Declare odroid root server
DeclareCAmkESRootserver(
Expand Down
11 changes: 7 additions & 4 deletions apps/Arm/vm_cross_connector/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,6 @@ elseif("${KernelARMPlatform}" STREQUAL "qemu-arm-virt")
endif()
endif()

AddToFileServer("linux" "${CAMKES_VM_IMAGES_DIR}/${KernelARMPlatform}/linux")

if(BUILD_CROSSVM)
set(rootfs_file "${CAMKES_VM_IMAGES_DIR}/${KernelARMPlatform}/rootfs.cpio.gz")
# Checkout and configure linux to build crossvm module
Expand Down Expand Up @@ -205,7 +203,6 @@ AddOverlayDirToRootfs(
rootfs_target
GZIP
)
AddToFileServer("linux-initrd" ${output_overlayed_rootfs_location} DEPENDS rootfs_target)

AddCamkesCPPFlag(
cpp_flags
Expand All @@ -218,7 +215,13 @@ AddCamkesCPPFlag(
VmVirtioNetVirtqueue
)

DefineCAmkESVMFileServer()
DefineCAmkESVMFileServer(
FILES
"linux:${CAMKES_VM_IMAGES_DIR}/${KernelARMPlatform}/linux"
"linux-initrd:${output_overlayed_rootfs_location}"
DEPENDS
rootfs_target
)

CAmkESAddImportPath(${KernelARMPlatform})

Expand Down
12 changes: 7 additions & 5 deletions apps/Arm/vm_introspect/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -54,8 +54,6 @@ elseif("${KernelARMPlatform}" STREQUAL "qemu-arm-virt")

endif()

AddToFileServer("linux" "${CAMKES_VM_IMAGES_DIR}/${KernelARMPlatform}/linux")

set(rootfs_file "${CAMKES_VM_IMAGES_DIR}/${KernelARMPlatform}/rootfs_crossvm.cpio.gz")

ExternalProject_Add(
Expand Down Expand Up @@ -108,8 +106,6 @@ AddOverlayDirToRootfs(
GZIP
)

AddToFileServer("linux-initrd" ${output_overlayed_rootfs_location} DEPENDS rootfs_target)

AddCamkesCPPFlag(
cpp_flags
CONFIG_VARS
Expand All @@ -121,7 +117,13 @@ AddCamkesCPPFlag(
VmVirtioNetVirtqueue
)

DefineCAmkESVMFileServer()
DefineCAmkESVMFileServer(
FILES
"linux:${CAMKES_VM_IMAGES_DIR}/${KernelARMPlatform}/linux"
"linux-initrd:${output_overlayed_rootfs_location}"
DEPENDS
rootfs_target
)

CAmkESAddImportPath(${KernelARMPlatform})

Expand Down
55 changes: 33 additions & 22 deletions apps/Arm/vm_minimal/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,10 @@ project(camkes-arm-tk1-vm C)

include(${CAMKES_ARM_VM_HELPERS_PATH})

# On some platforms, there is no dedicated rootfs, because it's part of the
# Linux kernel image.
set(rootfs_file "")

# Create our CPP Flags based on ARM VM config variables
if("${KernelARMPlatform}" STREQUAL "tk1")
set(cpp_flags "-DKERNELARMPLATFORM_TK1")
Expand All @@ -21,10 +25,11 @@ if("${KernelARMPlatform}" STREQUAL "tk1")
set(device_tree_src "${CAMKES_ARM_LINUX_DIR}/linux-tk1-secure.dts")
endif()

# kernel image contains rootfs
if(VmTk1InitrdRootfs)
set(linux_binary_name "linux-tk1-initrd")
set(linux_image "${CAMKES_ARM_LINUX_DIR}/linux-tk1-initrd")
else()
set(linux_binary_name "linux-tk1-debian")
set(linux_image "${CAMKES_ARM_LINUX_DIR}/linux-tk1-debian")
endif()
set(output_dtb_location "linux/linux-dtb")
add_custom_command(
Expand All @@ -35,27 +40,28 @@ if("${KernelARMPlatform}" STREQUAL "tk1")
DEPENDS ${device_tree_src}
)
# Create custom target for setting the dtb
add_custom_target(set_dtb DEPENDS "${output_dtb_location}")

# Add Linux VM images into file server
AddToFileServer("linux" "${CAMKES_ARM_LINUX_DIR}/${linux_binary_name}")
AddToFileServer("linux-dtb" "${CMAKE_CURRENT_BINARY_DIR}/linux/linux-dtb" DEPENDS set_dtb)
add_custom_target(dtb_gen_target DEPENDS "${output_dtb_location}")

elseif("${KernelARMPlatform}" STREQUAL "tx1")
set(cpp_flags "-DKERNELARMPLATFORM_TX1")

AddToFileServer("linux" "${CAMKES_VM_IMAGES_DIR}/tx1/linux")
AddToFileServer("linux-dtb" "${CAMKES_VM_IMAGES_DIR}/tx1/linux-dtb")
# kernel image contains rootfs
set(linux_image "${CAMKES_VM_IMAGES_DIR}/tx1/linux")

# There is no need to generate or modify a DTB, so we just have a dummy
# target here. The target is depends on the (existing) DTB file, so we get a
# nice error here in case it is missing.
set(output_dtb_location "${CAMKES_VM_IMAGES_DIR}/tx1/linux-dtb")
add_custom_target(dtb_gen_target DEPENDS "${output_dtb_location}")

elseif("${KernelARMPlatform}" STREQUAL "exynos5422")
find_package(camkes-vm-linux REQUIRED)
include(${CAMKES_VM_LINUX_HELPERS_PATH})
set(cpp_flags "-DKERNELARMPLATFORM_EXYNOS5422")

AddToFileServer("linux" "${CAMKES_VM_IMAGES_DIR}/exynos5422/linux")
set(linux_image "${CAMKES_VM_IMAGES_DIR}/exynos5422/linux")
# Generate overlayed rootfs
set(rootfs_file "${CAMKES_VM_IMAGES_DIR}/exynos5422/rootfs.cpio.gz")
AddToFileServer("linux-initrd" ${rootfs_file})
# Updated dtb based on initrd
UpdateDtbFromInitrd(
"${CAMKES_VM_IMAGES_DIR}/exynos5422/linux-dtb"
Expand All @@ -64,16 +70,14 @@ elseif("${KernelARMPlatform}" STREQUAL "exynos5422")
dtb_gen_target
output_dtb_location
)
AddToFileServer("linux-dtb" "${output_dtb_location}" DEPENDS dtb_gen_target)

elseif("${KernelARMPlatform}" STREQUAL "tx2")
find_package(camkes-vm-linux REQUIRED)
include(${CAMKES_VM_LINUX_HELPERS_PATH})
set(cpp_flags "-DKERNELARMPLATFORM_TX2")

AddToFileServer("linux" "${CAMKES_VM_IMAGES_DIR}/tx2/linux")
set(linux_image "${CAMKES_VM_IMAGES_DIR}/tx2/linux")
set(rootfs_file "${CAMKES_VM_IMAGES_DIR}/tx2/rootfs.cpio.gz")
AddToFileServer("linux-initrd" ${rootfs_file})
# Updated dtb based on initrd
UpdateDtbFromInitrd(
"${CAMKES_VM_IMAGES_DIR}/tx2/linux-dtb"
Expand All @@ -82,16 +86,14 @@ elseif("${KernelARMPlatform}" STREQUAL "tx2")
dtb_gen_target
output_dtb_location
)
AddToFileServer("linux-dtb" "${output_dtb_location}" DEPENDS dtb_gen_target)

elseif("${KernelARMPlatform}" STREQUAL "qemu-arm-virt")
find_package(camkes-vm-linux REQUIRED)
include(${CAMKES_VM_LINUX_HELPERS_PATH})
set(cpp_flags "-DKERNELARMPLATFORM_QEMU-ARM-VIRT")

AddToFileServer("linux" "${CAMKES_VM_IMAGES_DIR}/qemu-arm-virt/linux")
set(linux_image "${CAMKES_VM_IMAGES_DIR}/qemu-arm-virt/linux")
set(rootfs_file "${CAMKES_VM_IMAGES_DIR}/qemu-arm-virt/rootfs.cpio.gz")
AddToFileServer("linux-initrd" ${rootfs_file})
# Updated dtb based on initrd
UpdateDtbFromInitrd(
"${CAMKES_VM_IMAGES_DIR}/qemu-arm-virt/linux-dtb"
Expand All @@ -100,7 +102,6 @@ elseif("${KernelARMPlatform}" STREQUAL "qemu-arm-virt")
dtb_gen_target
output_dtb_location
)
AddToFileServer("linux-dtb" "${output_dtb_location}" DEPENDS dtb_gen_target)
include(simulation)
set(SIMULATION ON CACHE BOOL "Generate simulation script to run qemu with the proper arguments")
if(SIMULATION)
Expand All @@ -116,9 +117,8 @@ elseif("${KernelARMPlatform}" STREQUAL "odroidc2")
CAMKES_ROOT_DTB_FILE_PATH "${CAMKES_VM_IMAGES_DIR}/odroidc2/camkes-linux-dtb"
CACHE STRING ""
)
AddToFileServer("linux" "${CAMKES_VM_IMAGES_DIR}/odroidc2/linux")
set(linux_image "${CAMKES_VM_IMAGES_DIR}/odroidc2/linux")
set(rootfs_file "${CAMKES_VM_IMAGES_DIR}/odroidc2/rootfs.cpio.gz")
AddToFileServer("linux-initrd" ${rootfs_file})
# Updated dtb based on initrd
UpdateDtbFromInitrd(
"${CAMKES_VM_IMAGES_DIR}/odroidc2/linux-dtb"
Expand All @@ -127,12 +127,23 @@ elseif("${KernelARMPlatform}" STREQUAL "odroidc2")
dtb_gen_target
output_dtb_location
)
AddToFileServer("linux-dtb" "${output_dtb_location}" DEPENDS dtb_gen_target)
endif()

AddCamkesCPPFlag(cpp_flags CONFIG_VARS VmEmmc2NoDMA VmVUSB Tk1DeviceFwd Tk1Insecure)

DefineCAmkESVMFileServer()
# Some platform don't have an an explicit file here.
if(rootfs_file)
set(rootfs_file "linux-initrd:${rootfs_file}")
endif()

DefineCAmkESVMFileServer(
FILES
"linux:${linux_image}"
"${rootfs_file}" # might be empty
"linux-dtb:${output_dtb_location}"
DEPENDS
dtb_gen_target
)

CAmkESAddImportPath(${KernelARMPlatform})

Expand Down
21 changes: 7 additions & 14 deletions apps/Arm/vm_multi/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -73,25 +73,18 @@ AddOverlayDirToRootfs(
GZIP
)

AddToFileServer(
"linux-initrd-vm0"
"${vm0_output_overlayed_rootfs_location}"
AddCamkesCPPFlag(cpp_flags CONFIG_VARS VmEmmc2NoDMA VmVUSB VmVchan Tk1DeviceFwd Tk1Insecure)

DefineCAmkESVMFileServer(
FILES
"linux-initrd-vm0:${vm0_output_overlayed_rootfs_location}"
"linux-initrd-vm-client:${client_output_overlayed_rootfs_location}"
"linux:${CAMKES_VM_IMAGES_DIR}/${KernelARMPlatform}/linux"
DEPENDS
rootfs_target_vm0
)
AddToFileServer(
"linux-initrd-vm-client"
"${client_output_overlayed_rootfs_location}"
DEPENDS
rootfs_target_client_vm
)

AddToFileServer("linux" "${CAMKES_VM_IMAGES_DIR}/${KernelARMPlatform}/linux")

AddCamkesCPPFlag(cpp_flags CONFIG_VARS VmEmmc2NoDMA VmVUSB VmVchan Tk1DeviceFwd Tk1Insecure)

DefineCAmkESVMFileServer()

CAmkESAddImportPath(${KernelARMPlatform})

# Declare root server
Expand Down
14 changes: 10 additions & 4 deletions apps/Arm/vm_serial_server/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ include(${CAMKES_VM_LINUX_HELPERS_PATH})
# Create our CPP Flags based on ARM VM config variables
set(cpp_flags "-DKERNELARMPLATFORM_EXYNOS5422")

AddToFileServer("linux" "${CAMKES_VM_IMAGES_DIR}/exynos5422/linux")
# Generate overlayed rootfs
set(rootfs_file "${CAMKES_VM_IMAGES_DIR}/exynos5422/rootfs.cpio.gz")
AddFileToOverlayDir(
Expand All @@ -35,7 +34,7 @@ AddOverlayDirToRootfs(
rootfs_target
GZIP
)
AddToFileServer("linux-initrd" ${output_overlayed_rootfs_location} DEPENDS rootfs_target)

# Updated dtb based on generated initrd
UpdateDtbFromInitrd(
"${CAMKES_VM_IMAGES_DIR}/exynos5422/linux-dtb-virtcon"
Expand All @@ -46,11 +45,18 @@ UpdateDtbFromInitrd(
DEPENDS
rootfs_target
)
AddToFileServer("linux-dtb" "${output_dtb_location}" DEPENDS dtb_gen_target)

AddCamkesCPPFlag(cpp_flags CONFIG_VARS VmEmmc2NoDMA VmVUSB Tk1DeviceFwd Tk1Insecure)

DefineCAmkESVMFileServer()
DefineCAmkESVMFileServer(
FILES
"linux:${CAMKES_VM_IMAGES_DIR}/exynos5422/linux"
"linux-initrd:${output_overlayed_rootfs_location}"
"linux-dtb:${output_dtb_location}"
DEPENDS
rootfs_target
dtb_gen_target
)

CAmkESAddImportPath(exynos5422)

Expand Down
14 changes: 9 additions & 5 deletions apps/Arm/vm_virtio_net/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -73,10 +73,6 @@ UpdateDtbFromInitrd(
rootfs_target
)

AddToFileServer("linux-dtb" "${output_dtb_location}" DEPENDS dtb_gen_target)
AddToFileServer("linux-initrd" ${output_overlayed_rootfs_location} DEPENDS rootfs_target)
AddToFileServer("linux" "${CAMKES_VM_IMAGES_DIR}/${KernelARMPlatform}/linux")

AddCamkesCPPFlag(
cpp_flags
CONFIG_VARS
Expand All @@ -87,7 +83,15 @@ AddCamkesCPPFlag(
VmVirtioNetVirtqueue
)

DefineCAmkESVMFileServer()
DefineCAmkESVMFileServer(
FILES
"linux:${CAMKES_VM_IMAGES_DIR}/${KernelARMPlatform}/linux"
"linux-initrd:${output_overlayed_rootfs_location}"
"linux-dtb:${output_dtb_location}"
DEPENDS
rootfs_target
dtb_gen_target
)

CAmkESAddImportPath(${KernelARMPlatform})

Expand Down

0 comments on commit 26ea104

Please sign in to comment.