Loading arch/arm64/include/asm/rsi.h +2 −0 Original line number Diff line number Diff line Loading @@ -10,6 +10,8 @@ #include <linux/jump_label.h> #include <asm/rsi_cmds.h> #define RSI_PDEV_NAME "arm-cca-dev" DECLARE_STATIC_KEY_FALSE(rsi_present); void __init arm64_rsi_init(void); Loading arch/arm64/kernel/rsi.c +15 −0 Original line number Diff line number Diff line Loading @@ -8,6 +8,7 @@ #include <linux/psci.h> #include <linux/swiotlb.h> #include <linux/cc_platform.h> #include <linux/platform_device.h> #include <asm/io.h> #include <asm/mem_encrypt.h> Loading Loading @@ -140,3 +141,17 @@ void __init arm64_rsi_init(void) static_branch_enable(&rsi_present); } static struct platform_device rsi_dev = { .name = RSI_PDEV_NAME, .id = PLATFORM_DEVID_NONE }; static int __init arm64_create_dummy_rsi_dev(void) { if (is_realm_world() && platform_device_register(&rsi_dev)) pr_err("failed to register rsi platform device\n"); return 0; } arch_initcall(arm64_create_dummy_rsi_dev) drivers/virt/coco/arm-cca-guest/arm-cca-guest.c +8 −0 Original line number Diff line number Diff line Loading @@ -6,6 +6,7 @@ #include <linux/arm-smccc.h> #include <linux/cc_platform.h> #include <linux/kernel.h> #include <linux/mod_devicetable.h> #include <linux/module.h> #include <linux/smp.h> #include <linux/tsm.h> Loading Loading @@ -219,6 +220,13 @@ static void __exit arm_cca_guest_exit(void) } module_exit(arm_cca_guest_exit); /* modalias, so userspace can autoload this module when RSI is available */ static const struct platform_device_id arm_cca_match[] __maybe_unused = { { RSI_PDEV_NAME, 0}, { } }; MODULE_DEVICE_TABLE(platform, arm_cca_match); MODULE_AUTHOR("Sami Mujawar <sami.mujawar@arm.com>"); MODULE_DESCRIPTION("Arm CCA Guest TSM Driver"); MODULE_LICENSE("GPL"); Loading
arch/arm64/include/asm/rsi.h +2 −0 Original line number Diff line number Diff line Loading @@ -10,6 +10,8 @@ #include <linux/jump_label.h> #include <asm/rsi_cmds.h> #define RSI_PDEV_NAME "arm-cca-dev" DECLARE_STATIC_KEY_FALSE(rsi_present); void __init arm64_rsi_init(void); Loading
arch/arm64/kernel/rsi.c +15 −0 Original line number Diff line number Diff line Loading @@ -8,6 +8,7 @@ #include <linux/psci.h> #include <linux/swiotlb.h> #include <linux/cc_platform.h> #include <linux/platform_device.h> #include <asm/io.h> #include <asm/mem_encrypt.h> Loading Loading @@ -140,3 +141,17 @@ void __init arm64_rsi_init(void) static_branch_enable(&rsi_present); } static struct platform_device rsi_dev = { .name = RSI_PDEV_NAME, .id = PLATFORM_DEVID_NONE }; static int __init arm64_create_dummy_rsi_dev(void) { if (is_realm_world() && platform_device_register(&rsi_dev)) pr_err("failed to register rsi platform device\n"); return 0; } arch_initcall(arm64_create_dummy_rsi_dev)
drivers/virt/coco/arm-cca-guest/arm-cca-guest.c +8 −0 Original line number Diff line number Diff line Loading @@ -6,6 +6,7 @@ #include <linux/arm-smccc.h> #include <linux/cc_platform.h> #include <linux/kernel.h> #include <linux/mod_devicetable.h> #include <linux/module.h> #include <linux/smp.h> #include <linux/tsm.h> Loading Loading @@ -219,6 +220,13 @@ static void __exit arm_cca_guest_exit(void) } module_exit(arm_cca_guest_exit); /* modalias, so userspace can autoload this module when RSI is available */ static const struct platform_device_id arm_cca_match[] __maybe_unused = { { RSI_PDEV_NAME, 0}, { } }; MODULE_DEVICE_TABLE(platform, arm_cca_match); MODULE_AUTHOR("Sami Mujawar <sami.mujawar@arm.com>"); MODULE_DESCRIPTION("Arm CCA Guest TSM Driver"); MODULE_LICENSE("GPL");