From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pf1-f181.google.com (mail-pf1-f181.google.com [209.85.210.181]) by mx.groups.io with SMTP id smtpd.web12.15279.1639420273377581520 for ; Mon, 13 Dec 2021 10:31:13 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@nuviainc-com.20210112.gappssmtp.com header.s=20210112 header.b=Gz9tBySb; spf=pass (domain: nuviainc.com, ip: 209.85.210.181, mailfrom: rebecca@nuviainc.com) Received: by mail-pf1-f181.google.com with SMTP id z6so15672861pfe.7 for ; Mon, 13 Dec 2021 10:31:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nuviainc-com.20210112.gappssmtp.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=6sS0BImQFeqLOmB6rPX16CyKeRMeeF0TlmW3urxFpqY=; b=Gz9tBySbMTRu5T409hRoaP6Sm1jqScDIiZYNcnZQohoyElCHBLTB2geB6TraUl6QzD rnyHo7BXIKQBbpjzzjzUFylLTZN7amQ2wXXwdk6EiVaxk/nZRnHxmnzfRNmAFAPF36zI keN3MpzHxq2T8gwJ5LtdxobbHJhrfi7z/gFX3pda9rXT/aqe8BcANiQjKVHGLP8B/ch4 50ofbbQP1QGBMuE0vbzkE8r0G7Ivez4uYwlYazT7GEVejbl0EJL1u+wIKnZLnZwVte3k 2WfGWQy2EyG3hiskdubLl4/4hyrO3XmPCdMSnS/MrK3DYkTuJYPGkINzP3S/5eWbihNc vsiw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=6sS0BImQFeqLOmB6rPX16CyKeRMeeF0TlmW3urxFpqY=; b=h2CFfxxkPBXaUNock7bBS43p0CWRh9iA87K6XdjmnY+Q2iQI/vFbv72mIE/N877yN0 Dm0OWLqVBckI8GBlh/bHCjTi1oevrqLa1oe2fSZUzU5RcMo9DxHPY9Fc+h+KVn4+VZC5 kc3kB2o0hf6JmJRf2hYwhRdNetQ2RnnY9KZ3CBHdwFCafg0hhOf3IOYDI90K62t/rI3b bGOBRuWOnylWJRIejugP/fBAIU8lhJ6otJMcgFrXOeShQ1/USivEhybT4XS1UDMRMFGE o8wMHYNpMOvUdua0UwbzRbJFgND5i6HlE3HPgNlyzU5DE2wb29dsryzsKF8a3ogLJICt Ln+w== X-Gm-Message-State: AOAM532BJBlhmjsu0ew/tfpmfU9nMtqhWOGWBYMAgKEQPdxzzzZrf1y2 EM67ft7fCknfCd3fvEAQaKNvCY9wubqOVrJctsf++LxHagkN6RIq0jHqpJMvDJ5uvbEOXz2BJ7s WYp5X++R9Y+ZHz9/XmElAu11//D9V85wSgJcehKEQcBThvwPMd9t368qotPp3CU9jK+FWhA== X-Google-Smtp-Source: ABdhPJxWYYbK8yaZXJgdlNZv8IxQwFO30Ig9fdxAuJwJEjFLWI4bZxctRIdTC4Joi/5H76jU7S4elg== X-Received: by 2002:a63:db08:: with SMTP id e8mr242974pgg.212.1639420272425; Mon, 13 Dec 2021 10:31:12 -0800 (PST) Return-Path: Received: from linbox.ba.nuviainc.com ([2601:681:4300:69e:9e7b:efff:fe2b:884c]) by smtp.gmail.com with ESMTPSA id g15sm15530529pfj.144.2021.12.13.10.31.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 13 Dec 2021 10:31:12 -0800 (PST) From: "Rebecca Cran" To: devel@edk2.groups.io, Ard Biesheuvel , Gerd Hoffmann , Samer El-Haj-Mahmoud , Leif Lindholm , nd , Sami Mujawar Cc: Rebecca Cran Subject: [PATCH v3 2/2] ArmPkg: Update SMC calls to use the new ArmCallSmc0/1/2/3 functions Date: Mon, 13 Dec 2021 11:30:56 -0700 Message-Id: <20211213183056.31444-3-rebecca@nuviainc.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20211213183056.31444-1-rebecca@nuviainc.com> References: <20211213183056.31444-1-rebecca@nuviainc.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit New SMC helper functions have been added to reduce the amount of template code. Update ArmSmcPsciResetSystemLib and Smbios/ProcessorSubClassDxe to use them. Signed-off-by: Rebecca Cran Reviewed-by: Sami Mujawar --- ArmPkg/Library/ArmSmcPsciResetSystemLib/ArmSmcPsciResetSystemLib.c | 10 +---- ArmPkg/Universal/Smbios/ProcessorSubClassDxe/SmbiosProcessorArmCommon.c | 40 ++++++++------------ 2 files changed, 18 insertions(+), 32 deletions(-) diff --git a/ArmPkg/Library/ArmSmcPsciResetSystemLib/ArmSmcPsciResetSystemLib.c b/ArmPkg/Library/ArmSmcPsciResetSystemLib/ArmSmcPsciResetSystemLib.c index 6688fca37a8b..af6738459e43 100644 --- a/ArmPkg/Library/ArmSmcPsciResetSystemLib/ArmSmcPsciResetSystemLib.c +++ b/ArmPkg/Library/ArmSmcPsciResetSystemLib/ArmSmcPsciResetSystemLib.c @@ -31,11 +31,8 @@ ResetCold ( VOID ) { - ARM_SMC_ARGS ArmSmcArgs; - // Send a PSCI 0.2 SYSTEM_RESET command - ArmSmcArgs.Arg0 = ARM_SMC_ID_PSCI_SYSTEM_RESET; - ArmCallSmc (&ArmSmcArgs); + ArmCallSmc0 (ARM_SMC_ID_PSCI_SYSTEM_RESET, NULL, NULL, NULL); } /** @@ -66,11 +63,8 @@ ResetShutdown ( VOID ) { - ARM_SMC_ARGS ArmSmcArgs; - // Send a PSCI 0.2 SYSTEM_OFF command - ArmSmcArgs.Arg0 = ARM_SMC_ID_PSCI_SYSTEM_OFF; - ArmCallSmc (&ArmSmcArgs); + ArmCallSmc0 (ARM_SMC_ID_PSCI_SYSTEM_OFF, NULL, NULL, NULL); } /** diff --git a/ArmPkg/Universal/Smbios/ProcessorSubClassDxe/SmbiosProcessorArmCommon.c b/ArmPkg/Universal/Smbios/ProcessorSubClassDxe/SmbiosProcessorArmCommon.c index 7a8c3ca56784..e0010a40e489 100644 --- a/ArmPkg/Universal/Smbios/ProcessorSubClassDxe/SmbiosProcessorArmCommon.c +++ b/ArmPkg/Universal/Smbios/ProcessorSubClassDxe/SmbiosProcessorArmCommon.c @@ -88,22 +88,18 @@ HasSmcArm64SocId ( VOID ) { - ARM_SMC_ARGS Args; - INT32 SmcCallStatus; - BOOLEAN Arm64SocIdSupported; + INT32 SmcCallStatus; + BOOLEAN Arm64SocIdSupported; + UINTN SmcParam; Arm64SocIdSupported = FALSE; - Args.Arg0 = SMCCC_VERSION; - ArmCallSmc (&Args); - SmcCallStatus = (INT32)Args.Arg0; + SmcCallStatus = ArmCallSmc0 (SMCCC_VERSION, NULL, NULL, NULL); if ((SmcCallStatus < 0) || ((SmcCallStatus >> 16) >= 1)) { - Args.Arg0 = SMCCC_ARCH_FEATURES; - Args.Arg1 = SMCCC_ARCH_SOC_ID; - ArmCallSmc (&Args); - - if (Args.Arg0 >= 0) { + SmcParam = SMCCC_ARCH_SOC_ID; + SmcCallStatus = ArmCallSmc1 (SMCCC_ARCH_FEATURES, &SmcParam, NULL, NULL); + if (SmcCallStatus >= 0) { Arm64SocIdSupported = TRUE; } } @@ -125,30 +121,26 @@ SmbiosGetSmcArm64SocId ( OUT INT32 *SocRevision ) { - ARM_SMC_ARGS Args; - INT32 SmcCallStatus; - EFI_STATUS Status; + INT32 SmcCallStatus; + EFI_STATUS Status; + UINTN SmcParam; Status = EFI_SUCCESS; - Args.Arg0 = SMCCC_ARCH_SOC_ID; - Args.Arg1 = 0; - ArmCallSmc (&Args); - SmcCallStatus = (INT32)Args.Arg0; + SmcParam = 0; + SmcCallStatus = ArmCallSmc1 (SMCCC_ARCH_SOC_ID, &SmcParam, NULL, NULL); if (SmcCallStatus >= 0) { - *Jep106Code = (INT32)Args.Arg0; + *Jep106Code = (INT32)SmcParam; } else { Status = EFI_UNSUPPORTED; } - Args.Arg0 = SMCCC_ARCH_SOC_ID; - Args.Arg1 = 1; - ArmCallSmc (&Args); - SmcCallStatus = (INT32)Args.Arg0; + SmcParam = 1; + SmcCallStatus = ArmCallSmc1 (SMCCC_ARCH_SOC_ID, &SmcParam, NULL, NULL); if (SmcCallStatus >= 0) { - *SocRevision = (INT32)Args.Arg0; + *SocRevision = (INT32)SmcParam; } else { Status = EFI_UNSUPPORTED; } -- 2.31.1