From 9ee52be785cf91fc6a3c6aa27d484873f8270b72 Mon Sep 17 00:00:00 2001 From: "Allen, John" <John.Allen@amd.com> Date: Wed, 13 Feb 2019 18:41:48 +0000 Subject: [PATCH] linux-firmware: Add AMD SEV firmware Add AMD Secure Encrypted Virtualization (SEV) firmware to allow for the updating of the SEV firmware outside of BIOS releases. Naming convention and directory structure follows the convention defined in the kernel driver in drivers/crypto/ccp/psp-dev.c SEV firmware files are to be placed in the "amd" directory and names should follow the pattern: amd_sev_fam<FAMILY>h_model<MODEL>h.sbin where FAMILY is the two-digit hexadecimal value of the target processor family (e.g. 17) where MODEL is the two-digit hexadecimal value of the target processor model (e.g. 01) or where the least significant nibble of the two-digit hexadecimal value can be an 'x' to indicate a range of models (e.g. 0x for 00 to of). The firmware provided is version 0.17 build 11 and is for AMD family 17h processors with models in the range 00h to 0fh. Signed-off-by: John Allen <john.allen@amd.com> Signed-off-by: Josh Boyer <jwboyer@kernel.org> --- LICENSE.amd-sev | 64 +++++++++++++++++++++++++++++++ WHENCE | 9 +++++ amd/amd_sev_fam17h_model0xh.sbin | Bin 0 -> 32000 bytes 3 files changed, 73 insertions(+) create mode 100644 LICENSE.amd-sev create mode 100644 amd/amd_sev_fam17h_model0xh.sbin diff --git a/LICENSE.amd-sev b/LICENSE.amd-sev new file mode 100644 index 00000000..de4d9481 --- /dev/null +++ b/LICENSE.amd-sev @@ -0,0 +1,64 @@ +Copyright (C) 2015-2019 Advanced Micro Devices, Inc., All rights reserved. + +Permission is hereby granted by Advanced Micro Devices, Inc. ("AMD"), +free of any license fees, to any person obtaining a copy of this +microcode in binary form (the "Software") ("You"), to install, +reproduce, copy and distribute copies of the Software and to permit +persons to whom the Software is provided to do the same, subject to +the following terms and conditions. Your use of any portion of the +Software shall constitute Your acceptance of the following terms and +conditions. If You do not agree to the following terms and conditions, +do not use, retain or redistribute any portion of the Software. + +If You redistribute this Software, You must reproduce the above +copyright notice and this license with the Software. +Without specific, prior, written permission from AMD, You may not +reference AMD or AMD products in the promotion of any product derived +from or incorporating this Software in any manner that implies that +AMD endorses or has certified such product derived from or +incorporating this Software. + +You may not reverse engineer, decompile, or disassemble this Software +or any portion thereof. + +THE SOFTWARE IS PROVIDED "AS IS" WITHOUT ANY EXPRESS OR IMPLIED +WARRANTY OF ANY KIND, INCLUDING BUT NOT LIMITED TO WARRANTIES OF +MERCHANTABILITY, NONINFRINGEMENT, TITLE, FITNESS FOR ANY PARTICULAR +PURPOSE, OR WARRANTIES ARISING FROM CONDUCT, COURSE OF DEALING, OR +USAGE OF TRADE. IN NO EVENT SHALL AMD OR ITS LICENSORS BE LIABLE FOR +ANY DAMAGES WHATSOEVER (INCLUDING, WITHOUT LIMITATION, DAMAGES FOR +LOSS OF PROFITS, BUSINESS INTERRUPTION, OR LOSS OF DATA OR +INFORMATION) ARISING OUT OF AMD'S NEGLIGENCE, GROSS NEGLIGENCE, THE +USE OF OR INABILITY TO USE THE SOFTWARE, EVEN IF AMD HAS BEEN ADVISED +OF THE POSSIBILITY OF SUCH DAMAGES. BECAUSE SOME JURISDICTIONS +PROHIBIT THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR +INCIDENTAL DAMAGES OR THE EXCLUSION OF IMPLIED WARRANTIES, THE ABOVE +LIMITATION MAY NOT APPLY TO YOU. + +Without limiting the foregoing, the Software may implement third party +technologies for which You must obtain licenses from parties other +than AMD. You agree that AMD has not obtained or conveyed to You, and +that You shall be responsible for obtaining the rights to use and/or +distribute the applicable underlying intellectual property rights +related to the third party technologies. These third party +technologies are not licensed hereunder. + +If You use the Software (in whole or in part), You shall adhere to all +applicable U.S., European, and other export laws, including but not +limited to the U.S. Export Administration Regulations ("EAR"), (15 +C.F.R. Sections 730 through 774), and E.U. Council Regulation (EC) No +1334/2000 of 22 June 2000. Further, pursuant to Section 740.6 of the +EAR, You hereby certify that, except pursuant to a license granted by +the United States Department of Commerce Bureau of Industry and +Security or as otherwise permitted pursuant to a License Exception +under the U.S. Export Administration Regulations ("EAR"), You will not +(1) export, re-export or release to a national of a country in Country +Groups D:1, E:1 or E:2 any restricted technology, software, or source +code You receive hereunder, or (2) export to Country Groups D:1, E:1 +or E:2 the direct product of such technology or software, if such +foreign produced direct product is subject to national security +controls as identified on the Commerce Control List (currently found +in Supplement 1 to Part 774 of EAR). For the most current Country +Group listings, or for additional information about the EAR or Your +obligations under those regulations, please refer to the U.S. Bureau +of Industry and Security’s website at ttp://www.bis.doc.gov/. diff --git a/WHENCE b/WHENCE index 853990b5..0c485f34 100644 --- a/WHENCE +++ b/WHENCE @@ -3311,6 +3311,15 @@ Licence: Redistributable. See LICENCE.go7007 for details -------------------------------------------------------------------------- +Driver: ccp - Platform Security Processor (PSP) device + +File: amd/amd_sev_fam17h_model0xh.sbin +Version: 2019-02-13 + +License: Redistributable. See LICENSE.amd-sev for details + +-------------------------------------------------------------------------- + Driver: microcode_amd - AMD CPU Microcode Update Driver for Linux File: amd-ucode/microcode_amd.bin diff --git a/amd/amd_sev_fam17h_model0xh.sbin b/amd/amd_sev_fam17h_model0xh.sbin new file mode 100644 index 0000000000000000000000000000000000000000..1f75b7d744c3998d9c10ce6ed559f8cf78e7c8e9 GIT binary patch literal 32000 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 aPOcz#^Wu5EiN#y}KPYEjik|r4PyP)ubE4D$ literal 0 HcmV?d00001 -- GitLab