Patrick Georgi (pgeorgi(a)google.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/8372
-gerrit
commit 0f616900740ede9104dd35635de9b2096a094868
Author: Patrick Georgi <patrick(a)georgi-clan.de>
Date: Thu Feb 5 23:38:45 2015 +0100
lint: exclude nvidia submodule from file list
From git's point of view submodules are a weird third thing between file
and directory. Avoid trying to apply file handling on a directory.
Change-Id: Ibbc9c28e1657d96413c5fb08705d30e25171254d
Signed-off-by: Patrick Georgi <patrick(a)georgi-clan.de>
---
util/lint/lint-stable-003-whitespace | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/util/lint/lint-stable-003-whitespace b/util/lint/lint-stable-003-whitespace
index 22c5c3c..47853ba 100755
--- a/util/lint/lint-stable-003-whitespace
+++ b/util/lint/lint-stable-003-whitespace
@@ -19,6 +19,6 @@
# DESCR: Check for superfluous whitespace in the tree
LC_ALL=C export LC_ALL
-grep -l "[[:space:]][[:space:]]*$" `git ls-files src util |egrep -v "(^3rdparty|^src/vendorcode/|^util/kconfig/|\<COPYING\>|\<LICENSE\>|\<README\>|_shipped$|\.patch|\.bin$)"` | \
+grep -l "[[:space:]][[:space:]]*$" `git ls-files src util |egrep -v "(^3rdparty|^src/vendorcode/|^util/kconfig/|^util/nvidia/cbootimage$|\<COPYING\>|\<LICENSE\>|\<README\>|_shipped$|\.patch|\.bin$)"` | \
sed -e "s,^.*$,File & has lines ending with whitespace.,"
Patrick Georgi (pgeorgi(a)google.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/8371
-gerrit
commit 2814089fbbb41847aa41d2b768e3819632bba019
Author: Patrick Georgi <patrick(a)georgi-clan.de>
Date: Thu Feb 5 23:36:32 2015 +0100
documentation: begin documenting our use of git submodules
git submodules have some surprising behaviour, and we make full
of it. Start building a canonical resource for that so developers
can spend their time on better things than on fighting git.
Change-Id: I5aa721e9b0acb2912a057858fd23a1d59d845ed1
Signed-off-by: Patrick Georgi <patrick(a)georgi-clan.de>
---
documentation/submodules.txt | 46 ++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 46 insertions(+)
diff --git a/documentation/submodules.txt b/documentation/submodules.txt
new file mode 100644
index 0000000..07c3598
--- /dev/null
+++ b/documentation/submodules.txt
@@ -0,0 +1,46 @@
+Use of git submodules in coreboot
+=================================
+coreboot uses git submodules to keep certain parts of the tree separate,
+with two major use cases:
+
+First, we use a vendor tool by nvidia for systems based on their SoC
+and since they publish it through git, we can just import it into our
+tree using submodules.
+
+Second, lots of boards these days require binaries and we want to keep
+them separate from coreboot proper to clearly delineate shiny Open Source
+from ugly blobs.
+Since we don't want to impose blobs on users who really don't need them,
+that repository is only downloaded and checked out on explicit request.
+
+Handling submodules
+-------------------
+For the most part, submodules should be automatically checked out on the
+first execution of the coreboot Makefile.
+
+To manually fetch all repositories (eg. when you want to prepare the tree
+for archiving, or to use it without network access), run
+
+ $ git submodule update --init --checkout
+
+This also checks out the binaries below `3rdparty/`
+
+Mirroring coreboot
+------------------
+When running a coreboot mirror to checkout from, for full operating, you
+should also mirror the blobs and nvidia-cbootimage repository, and place
+them in the same directory as the coreboot repository mirror.
+
+That is, when residing in coreboot's repository, `cd ../blobs.git`
+should move you to the blobs repository.
+
+With that, no matter what the URL of your coreboot repository is, the
+git client (of a sufficiently new version) is able to pick up the other
+repositories transparently.
+
+Minimum requirements
+--------------------
+git needs to be able to handle relative paths to submodule repositories,
+and it needs to know about non-automatic submodules.
+
+For these features, we require git version 1.7.6.1 or newer.
Patrick Georgi (pgeorgi(a)google.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/8370
-gerrit
commit bdd9576b0c315fbd39a0233e85f578a375e9c4cc
Author: Patrick Georgi <patrick(a)georgi-clan.de>
Date: Thu Feb 5 23:35:41 2015 +0100
src/lib/tpm_error_messages.h: convert CRLF to LF
This matches the rest of the tree.
Change-Id: I94cb64709eca85fb327513a496f6a2dc560e5495
Signed-off-by: Patrick Georgi <patrick(a)georgi-clan.de>
---
src/lib/tpm_error_messages.h | 500 +++++++++++++++++++++----------------------
1 file changed, 250 insertions(+), 250 deletions(-)
diff --git a/src/lib/tpm_error_messages.h b/src/lib/tpm_error_messages.h
index 14cb86b..3b0f48c 100644
--- a/src/lib/tpm_error_messages.h
+++ b/src/lib/tpm_error_messages.h
@@ -1,250 +1,250 @@
-/* Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-/* TPM error codes.
- *
- * Copy-pasted and lightly edited from TCG TPM Main Part 2 TPM Structures
- * Version 1.2 Level 2 Revision 103 26 October 2006 Draft.
- */
-
-#ifndef TPM_ERROR_MESSAGES_H
-#define TPM_ERROR_MESSAGES_H
-
-#define TPM_E_BASE 0x0
-#define TPM_E_NON_FATAL 0x800
-
-typedef struct tpm_error_info {
- const char* name;
- uint32_t code;
- const char* description;
-} tpm_error_info;
-
-tpm_error_info tpm_error_table[] = {
-{ "TPM_AUTHFAIL", TPM_E_BASE + 1,
-"Authentication failed" },
-{ "TPM_BADINDEX", TPM_E_BASE + 2,
-"The index to a PCR, DIR or other register is incorrect" },
-{ "TPM_BAD_PARAMETER", TPM_E_BASE + 3,
-"One or more parameter is bad" },
-{ "TPM_AUDITFAILURE", TPM_E_BASE + 4,
-"An operation completed successfully\n\
-but the auditing of that operation failed" },
-{ "TPM_CLEAR_DISABLED", TPM_E_BASE + 5,
-"The clear disable flag is set and all clear operations now require\n\
-physical access" },
-{ "TPM_DEACTIVATED", TPM_E_BASE + 6,
-"The TPM is deactivated" },
-{ "TPM_DISABLED", TPM_E_BASE + 7,
-"The TPM is disabled" },
-{ "TPM_DISABLED_CMD", TPM_E_BASE + 8,
-"The target command has been disabled" },
-{ "TPM_FAIL", TPM_E_BASE + 9,
-"The operation failed" },
-{ "TPM_BAD_ORDINAL", TPM_E_BASE + 10,
-"The ordinal was unknown or inconsistent" },
-{ "TPM_INSTALL_DISABLED", TPM_E_BASE + 11,
-"The ability to install an owner is disabled" },
-{ "TPM_INVALID_KEYHANDLE", TPM_E_BASE + 12,
-"The key handle can not be interpreted" },
-{ "TPM_KEYNOTFOUND", TPM_E_BASE + 13,
-"The key handle points to an invalid key" },
-{ "TPM_INAPPROPRIATE_ENC", TPM_E_BASE + 14,
-"Unacceptable encryption scheme" },
-{ "TPM_MIGRATEFAIL", TPM_E_BASE + 15,
-"Migration authorization failed" },
-{ "TPM_INVALID_PCR_INFO", TPM_E_BASE + 16,
-"PCR information could not be interpreted" },
-{ "TPM_NOSPACE", TPM_E_BASE + 17,
-"No room to load key" },
-{ "TPM_NOSRK", TPM_E_BASE + 18,
-"There is no SRK set" },
-{ "TPM_NOTSEALED_BLOB", TPM_E_BASE + 19,
-"An encrypted blob is invalid or was not created by this TPM" },
-{ "TPM_OWNER_SET", TPM_E_BASE + 20,
-"There is already an Owner" },
-{ "TPM_RESOURCES", TPM_E_BASE + 21,
-"The TPM has insufficient internal resources to perform the requested action" },
-{ "TPM_SHORTRANDOM", TPM_E_BASE + 22,
-"A random string was too short" },
-{ "TPM_SIZE", TPM_E_BASE + 23,
-"The TPM does not have the space to perform the operation" },
-{ "TPM_WRONGPCRVAL", TPM_E_BASE + 24,
-"The named PCR value does not match the current PCR value" },
-{ "TPM_BAD_PARAM_SIZE", TPM_E_BASE + 25,
-"The paramSize argument to the command has the incorrect value" },
-{ "TPM_SHA_THREAD", TPM_E_BASE + 26,
-"There is no existing SHA-1 thread" },
-{ "TPM_SHA_ERROR", TPM_E_BASE + 27,
-"The calculation is unable to proceed because the existing SHA-1\n\
-thread has already encountered an error" },
-{ "TPM_FAILEDSELFTEST", TPM_E_BASE + 28,
-"Self-test has failed and the TPM has shutdown" },
-{ "TPM_AUTH2FAIL", TPM_E_BASE + 29,
-"The authorization for the second key in a 2 key function\n\
-failed authorization" },
-{ "TPM_BADTAG", TPM_E_BASE + 30,
-"The tag value sent to for a command is invalid" },
-{ "TPM_IOERROR", TPM_E_BASE + 31,
-"An IO error occurred transmitting information to the TPM" },
-{ "TPM_ENCRYPT_ERROR", TPM_E_BASE + 32,
-"The encryption process had a problem" },
-{ "TPM_DECRYPT_ERROR", TPM_E_BASE + 33,
-"The decryption process did not complete" },
-{ "TPM_INVALID_AUTHHANDLE", TPM_E_BASE + 34,
-"An invalid handle was used" },
-{ "TPM_NO_ENDORSEMENT", TPM_E_BASE + 35,
-"The TPM does not a EK installed" },
-{ "TPM_INVALID_KEYUSAGE", TPM_E_BASE + 36,
-"The usage of a key is not allowed" },
-{ "TPM_WRONG_ENTITYTYPE", TPM_E_BASE + 37,
-"The submitted entity type is not allowed" },
-{ "TPM_INVALID_POSTINIT", TPM_E_BASE + 38,
-"The command was received in the wrong sequence relative to TPM_Init\n\
-and a subsequent TPM_Startup" },
-{ "TPM_INAPPROPRIATE_SIG", TPM_E_BASE + 39,
-"Signed data cannot include additional DER information" },
-{ "TPM_BAD_KEY_PROPERTY", TPM_E_BASE + 40,
-"The key properties in TPM_KEY_PARMs are not supported by this TPM" },
-{ "TPM_BAD_MIGRATION", TPM_E_BASE + 41,
-"The migration properties of this key are incorrect" },
-{ "TPM_BAD_SCHEME", TPM_E_BASE + 42,
-"The signature or encryption scheme for this key is incorrect or not\n\
-permitted in this situation" },
-{ "TPM_BAD_DATASIZE", TPM_E_BASE + 43,
-"The size of the data (or blob) parameter is bad or inconsistent\n\
-with the referenced key" },
-{ "TPM_BAD_MODE", TPM_E_BASE + 44,
-"A mode parameter is bad, such as capArea or subCapArea for\n\
-TPM_GetCapability, physicalPresence parameter for TPM_PhysicalPresence,\n\
-or migrationType for, TPM_CreateMigrationBlob" },
-{ "TPM_BAD_PRESENCE", TPM_E_BASE + 45,
-"Either the physicalPresence or physicalPresenceLock bits\n\
-have the wrong value" },
-{ "TPM_BAD_VERSION", TPM_E_BASE + 46,
-"The TPM cannot perform this version of the capability" },
-{ "TPM_NO_WRAP_TRANSPORT", TPM_E_BASE + 47,
-"The TPM does not allow for wrapped transport sessions" },
-{ "TPM_AUDITFAIL_UNSUCCESSFUL", TPM_E_BASE + 48,
-"TPM audit construction failed and the underlying command\n\
-was returning a failure code also" },
-{ "TPM_AUDITFAIL_SUCCESSFUL", TPM_E_BASE + 49,
-"TPM audit construction failed and the underlying command\n\
-was returning success" },
-{ "TPM_NOTRESETABLE", TPM_E_BASE + 50,
-"Attempt to reset a PCR register that does not have the resettable attribute" },
-{ "TPM_NOTLOCAL", TPM_E_BASE + 51,
-"Attempt to reset a PCR register that requires locality\n\
-and locality modifier not part of command transport" },
-{ "TPM_BAD_TYPE", TPM_E_BASE + 52,
-"Make identity blob not properly typed" },
-{ "TPM_INVALID_RESOURCE", TPM_E_BASE + 53,
-"When saving context identified resource type does not match actual resource" },
-{ "TPM_NOTFIPS", TPM_E_BASE + 54,
-"The TPM is attempting to execute a command only available when in FIPS mode" },
-{ "TPM_INVALID_FAMILY", TPM_E_BASE + 55,
-"The command is attempting to use an invalid family ID" },
-{ "TPM_NO_NV_PERMISSION", TPM_E_BASE + 56,
-"The permission to manipulate the NV storage is not available" },
-{ "TPM_REQUIRES_SIGN", TPM_E_BASE + 57,
-"The operation requires a signed command" },
-{ "TPM_KEY_NOTSUPPORTED", TPM_E_BASE + 58,
-"Wrong operation to load an NV key" },
-{ "TPM_AUTH_CONFLICT", TPM_E_BASE + 59,
-"NV_LoadKey blob requires both owner and blob authorization" },
-{ "TPM_AREA_LOCKED", TPM_E_BASE + 60,
-"The NV area is locked and not writable" },
-{ "TPM_BAD_LOCALITY", TPM_E_BASE + 61,
-"The locality is incorrect for the attempted operation" },
-{ "TPM_READ_ONLY", TPM_E_BASE + 62,
-"The NV area is read only and canât be written to" },
-{ "TPM_PER_NOWRITE", TPM_E_BASE + 63,
-"There is no protection on the write to the NV area" },
-{ "TPM_FAMILYCOUNT", TPM_E_BASE + 64,
-"The family count value does not match" },
-{ "TPM_WRITE_LOCKED", TPM_E_BASE + 65,
-"The NV area has already been written to" },
-{ "TPM_BAD_ATTRIBUTES", TPM_E_BASE + 66,
-"The NV area attributes conflict" },
-{ "TPM_INVALID_STRUCTURE", TPM_E_BASE + 67,
-"The structure tag and version are invalid or inconsistent" },
-{ "TPM_KEY_OWNER_CONTROL", TPM_E_BASE + 68,
-"The key is under control of the TPM Owner and can only be evicted\n\
-by the TPM Owner" },
-{ "TPM_BAD_COUNTER", TPM_E_BASE + 69,
-"The counter handle is incorrect" },
-{ "TPM_NOT_FULLWRITE", TPM_E_BASE + 70,
-"The write is not a complete write of the area" },
-{ "TPM_CONTEXT_GAP", TPM_E_BASE + 71,
-"The gap between saved context counts is too large" },
-{ "TPM_MAXNVWRITES", TPM_E_BASE + 72,
-"The maximum number of NV writes without an owner has been exceeded" },
-{ "TPM_NOOPERATOR", TPM_E_BASE + 73,
-"No operator AuthData value is set" },
-{ "TPM_RESOURCEMISSING", TPM_E_BASE + 74,
-"The resource pointed to by context is not loaded" },
-{ "TPM_DELEGATE_LOCK", TPM_E_BASE + 75,
-"The delegate administration is locked" },
-{ "TPM_DELEGATE_FAMILY", TPM_E_BASE + 76,
-"Attempt to manage a family other then the delegated family" },
-{ "TPM_DELEGATE_ADMIN", TPM_E_BASE + 77,
-"Delegation table management not enabled" },
-{ "TPM_TRANSPORT_NOTEXCLUSIVE", TPM_E_BASE + 78,
-"There was a command executed outside of an exclusive transport session" },
-{ "TPM_OWNER_CONTROL", TPM_E_BASE + 79,
-"Attempt to context save a owner evict controlled key" },
-{ "TPM_DAA_RESOURCES", TPM_E_BASE + 80,
-"The DAA command has no resources available to execute the command" },
-{ "TPM_DAA_INPUT_DATA0", TPM_E_BASE + 81,
-"The consistency check on DAA parameter inputData0 has failed" },
-{ "TPM_DAA_INPUT_DATA1", TPM_E_BASE + 82,
-"The consistency check on DAA parameter inputData1 has failed" },
-{ "TPM_DAA_ISSUER_SETTINGS", TPM_E_BASE + 83,
-"The consistency check on DAA_issuerSettings has failed" },
-{ "TPM_DAA_TPM_SETTINGS", TPM_E_BASE + 84,
-"The consistency check on DAA_tpmSpecific has failed" },
-{ "TPM_DAA_STAGE", TPM_E_BASE + 85,
-"The atomic process indicated by the submitted DAA command is not\n\
-the expected process" },
-{ "TPM_DAA_ISSUER_VALIDITY", TPM_E_BASE + 86,
-"The issuerâs validity check has detected an inconsistency" },
-{ "TPM_DAA_WRONG_W", TPM_E_BASE + 87,
-"The consistency check on w has failed" },
-{ "TPM_BAD_HANDLE", TPM_E_BASE + 88,
-"The handle is incorrect" },
-{ "TPM_BAD_DELEGATE", TPM_E_BASE + 89,
-"Delegation is not correct" },
-{ "TPM_BADCONTEXT", TPM_E_BASE + 90,
-"The context blob is invalid" },
-{ "TPM_TOOMANYCONTEXTS", TPM_E_BASE + 91,
-"Too many contexts held by the TPM" },
-{ "TPM_MA_TICKET_SIGNATURE", TPM_E_BASE + 92,
-"Migration authority signature validation failure" },
-{ "TPM_MA_DESTINATION", TPM_E_BASE + 93,
-"Migration destination not authenticated" },
-{ "TPM_MA_SOURCE", TPM_E_BASE + 94,
-"Migration source incorrect" },
-{ "TPM_MA_AUTHORITY", TPM_E_BASE + 95,
-"Incorrect migration authority" },
-{ "TPM_PERMANENTEK", TPM_E_BASE + 97,
-"Attempt to revoke the EK and the EK is not revocable" },
-{ "TPM_BAD_SIGNATURE", TPM_E_BASE + 98,
-"Bad signature of CMK ticket" },
-{ "TPM_NOCONTEXTSPACE", TPM_E_BASE + 99,
-"There is no room in the context list for additional contexts" },
-{ "TPM_RETRY", TPM_E_BASE + TPM_E_NON_FATAL,
-"The TPM is too busy to respond to the command immediately, but\n\
-the command could be resubmitted at a later time. The TPM MAY\n\
-return TPM_RETRY for any command at any time" },
-{ "TPM_NEEDS_SELFTEST", TPM_E_BASE + TPM_E_NON_FATAL + 1,
-"TPM_ContinueSelfTest has not been run" },
-{ "TPM_DOING_SELFTEST", TPM_E_BASE + TPM_E_NON_FATAL + 2,
-"The TPM is currently executing the actions of TPM_ContinueSelfTest\n\
-because the ordinal required resources that have not been tested" },
-{ "TPM_DEFEND_LOCK_RUNNING", TPM_E_BASE + TPM_E_NON_FATAL + 3,
-"The TPM is defending against dictionary attacks and is in some\n\
-time-out period" },
- };
-
-#endif /* TPM_ERROR_MESSAGES_H */
+/* Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+/* TPM error codes.
+ *
+ * Copy-pasted and lightly edited from TCG TPM Main Part 2 TPM Structures
+ * Version 1.2 Level 2 Revision 103 26 October 2006 Draft.
+ */
+
+#ifndef TPM_ERROR_MESSAGES_H
+#define TPM_ERROR_MESSAGES_H
+
+#define TPM_E_BASE 0x0
+#define TPM_E_NON_FATAL 0x800
+
+typedef struct tpm_error_info {
+ const char* name;
+ uint32_t code;
+ const char* description;
+} tpm_error_info;
+
+tpm_error_info tpm_error_table[] = {
+{ "TPM_AUTHFAIL", TPM_E_BASE + 1,
+"Authentication failed" },
+{ "TPM_BADINDEX", TPM_E_BASE + 2,
+"The index to a PCR, DIR or other register is incorrect" },
+{ "TPM_BAD_PARAMETER", TPM_E_BASE + 3,
+"One or more parameter is bad" },
+{ "TPM_AUDITFAILURE", TPM_E_BASE + 4,
+"An operation completed successfully\n\
+but the auditing of that operation failed" },
+{ "TPM_CLEAR_DISABLED", TPM_E_BASE + 5,
+"The clear disable flag is set and all clear operations now require\n\
+physical access" },
+{ "TPM_DEACTIVATED", TPM_E_BASE + 6,
+"The TPM is deactivated" },
+{ "TPM_DISABLED", TPM_E_BASE + 7,
+"The TPM is disabled" },
+{ "TPM_DISABLED_CMD", TPM_E_BASE + 8,
+"The target command has been disabled" },
+{ "TPM_FAIL", TPM_E_BASE + 9,
+"The operation failed" },
+{ "TPM_BAD_ORDINAL", TPM_E_BASE + 10,
+"The ordinal was unknown or inconsistent" },
+{ "TPM_INSTALL_DISABLED", TPM_E_BASE + 11,
+"The ability to install an owner is disabled" },
+{ "TPM_INVALID_KEYHANDLE", TPM_E_BASE + 12,
+"The key handle can not be interpreted" },
+{ "TPM_KEYNOTFOUND", TPM_E_BASE + 13,
+"The key handle points to an invalid key" },
+{ "TPM_INAPPROPRIATE_ENC", TPM_E_BASE + 14,
+"Unacceptable encryption scheme" },
+{ "TPM_MIGRATEFAIL", TPM_E_BASE + 15,
+"Migration authorization failed" },
+{ "TPM_INVALID_PCR_INFO", TPM_E_BASE + 16,
+"PCR information could not be interpreted" },
+{ "TPM_NOSPACE", TPM_E_BASE + 17,
+"No room to load key" },
+{ "TPM_NOSRK", TPM_E_BASE + 18,
+"There is no SRK set" },
+{ "TPM_NOTSEALED_BLOB", TPM_E_BASE + 19,
+"An encrypted blob is invalid or was not created by this TPM" },
+{ "TPM_OWNER_SET", TPM_E_BASE + 20,
+"There is already an Owner" },
+{ "TPM_RESOURCES", TPM_E_BASE + 21,
+"The TPM has insufficient internal resources to perform the requested action" },
+{ "TPM_SHORTRANDOM", TPM_E_BASE + 22,
+"A random string was too short" },
+{ "TPM_SIZE", TPM_E_BASE + 23,
+"The TPM does not have the space to perform the operation" },
+{ "TPM_WRONGPCRVAL", TPM_E_BASE + 24,
+"The named PCR value does not match the current PCR value" },
+{ "TPM_BAD_PARAM_SIZE", TPM_E_BASE + 25,
+"The paramSize argument to the command has the incorrect value" },
+{ "TPM_SHA_THREAD", TPM_E_BASE + 26,
+"There is no existing SHA-1 thread" },
+{ "TPM_SHA_ERROR", TPM_E_BASE + 27,
+"The calculation is unable to proceed because the existing SHA-1\n\
+thread has already encountered an error" },
+{ "TPM_FAILEDSELFTEST", TPM_E_BASE + 28,
+"Self-test has failed and the TPM has shutdown" },
+{ "TPM_AUTH2FAIL", TPM_E_BASE + 29,
+"The authorization for the second key in a 2 key function\n\
+failed authorization" },
+{ "TPM_BADTAG", TPM_E_BASE + 30,
+"The tag value sent to for a command is invalid" },
+{ "TPM_IOERROR", TPM_E_BASE + 31,
+"An IO error occurred transmitting information to the TPM" },
+{ "TPM_ENCRYPT_ERROR", TPM_E_BASE + 32,
+"The encryption process had a problem" },
+{ "TPM_DECRYPT_ERROR", TPM_E_BASE + 33,
+"The decryption process did not complete" },
+{ "TPM_INVALID_AUTHHANDLE", TPM_E_BASE + 34,
+"An invalid handle was used" },
+{ "TPM_NO_ENDORSEMENT", TPM_E_BASE + 35,
+"The TPM does not a EK installed" },
+{ "TPM_INVALID_KEYUSAGE", TPM_E_BASE + 36,
+"The usage of a key is not allowed" },
+{ "TPM_WRONG_ENTITYTYPE", TPM_E_BASE + 37,
+"The submitted entity type is not allowed" },
+{ "TPM_INVALID_POSTINIT", TPM_E_BASE + 38,
+"The command was received in the wrong sequence relative to TPM_Init\n\
+and a subsequent TPM_Startup" },
+{ "TPM_INAPPROPRIATE_SIG", TPM_E_BASE + 39,
+"Signed data cannot include additional DER information" },
+{ "TPM_BAD_KEY_PROPERTY", TPM_E_BASE + 40,
+"The key properties in TPM_KEY_PARMs are not supported by this TPM" },
+{ "TPM_BAD_MIGRATION", TPM_E_BASE + 41,
+"The migration properties of this key are incorrect" },
+{ "TPM_BAD_SCHEME", TPM_E_BASE + 42,
+"The signature or encryption scheme for this key is incorrect or not\n\
+permitted in this situation" },
+{ "TPM_BAD_DATASIZE", TPM_E_BASE + 43,
+"The size of the data (or blob) parameter is bad or inconsistent\n\
+with the referenced key" },
+{ "TPM_BAD_MODE", TPM_E_BASE + 44,
+"A mode parameter is bad, such as capArea or subCapArea for\n\
+TPM_GetCapability, physicalPresence parameter for TPM_PhysicalPresence,\n\
+or migrationType for, TPM_CreateMigrationBlob" },
+{ "TPM_BAD_PRESENCE", TPM_E_BASE + 45,
+"Either the physicalPresence or physicalPresenceLock bits\n\
+have the wrong value" },
+{ "TPM_BAD_VERSION", TPM_E_BASE + 46,
+"The TPM cannot perform this version of the capability" },
+{ "TPM_NO_WRAP_TRANSPORT", TPM_E_BASE + 47,
+"The TPM does not allow for wrapped transport sessions" },
+{ "TPM_AUDITFAIL_UNSUCCESSFUL", TPM_E_BASE + 48,
+"TPM audit construction failed and the underlying command\n\
+was returning a failure code also" },
+{ "TPM_AUDITFAIL_SUCCESSFUL", TPM_E_BASE + 49,
+"TPM audit construction failed and the underlying command\n\
+was returning success" },
+{ "TPM_NOTRESETABLE", TPM_E_BASE + 50,
+"Attempt to reset a PCR register that does not have the resettable attribute" },
+{ "TPM_NOTLOCAL", TPM_E_BASE + 51,
+"Attempt to reset a PCR register that requires locality\n\
+and locality modifier not part of command transport" },
+{ "TPM_BAD_TYPE", TPM_E_BASE + 52,
+"Make identity blob not properly typed" },
+{ "TPM_INVALID_RESOURCE", TPM_E_BASE + 53,
+"When saving context identified resource type does not match actual resource" },
+{ "TPM_NOTFIPS", TPM_E_BASE + 54,
+"The TPM is attempting to execute a command only available when in FIPS mode" },
+{ "TPM_INVALID_FAMILY", TPM_E_BASE + 55,
+"The command is attempting to use an invalid family ID" },
+{ "TPM_NO_NV_PERMISSION", TPM_E_BASE + 56,
+"The permission to manipulate the NV storage is not available" },
+{ "TPM_REQUIRES_SIGN", TPM_E_BASE + 57,
+"The operation requires a signed command" },
+{ "TPM_KEY_NOTSUPPORTED", TPM_E_BASE + 58,
+"Wrong operation to load an NV key" },
+{ "TPM_AUTH_CONFLICT", TPM_E_BASE + 59,
+"NV_LoadKey blob requires both owner and blob authorization" },
+{ "TPM_AREA_LOCKED", TPM_E_BASE + 60,
+"The NV area is locked and not writable" },
+{ "TPM_BAD_LOCALITY", TPM_E_BASE + 61,
+"The locality is incorrect for the attempted operation" },
+{ "TPM_READ_ONLY", TPM_E_BASE + 62,
+"The NV area is read only and canât be written to" },
+{ "TPM_PER_NOWRITE", TPM_E_BASE + 63,
+"There is no protection on the write to the NV area" },
+{ "TPM_FAMILYCOUNT", TPM_E_BASE + 64,
+"The family count value does not match" },
+{ "TPM_WRITE_LOCKED", TPM_E_BASE + 65,
+"The NV area has already been written to" },
+{ "TPM_BAD_ATTRIBUTES", TPM_E_BASE + 66,
+"The NV area attributes conflict" },
+{ "TPM_INVALID_STRUCTURE", TPM_E_BASE + 67,
+"The structure tag and version are invalid or inconsistent" },
+{ "TPM_KEY_OWNER_CONTROL", TPM_E_BASE + 68,
+"The key is under control of the TPM Owner and can only be evicted\n\
+by the TPM Owner" },
+{ "TPM_BAD_COUNTER", TPM_E_BASE + 69,
+"The counter handle is incorrect" },
+{ "TPM_NOT_FULLWRITE", TPM_E_BASE + 70,
+"The write is not a complete write of the area" },
+{ "TPM_CONTEXT_GAP", TPM_E_BASE + 71,
+"The gap between saved context counts is too large" },
+{ "TPM_MAXNVWRITES", TPM_E_BASE + 72,
+"The maximum number of NV writes without an owner has been exceeded" },
+{ "TPM_NOOPERATOR", TPM_E_BASE + 73,
+"No operator AuthData value is set" },
+{ "TPM_RESOURCEMISSING", TPM_E_BASE + 74,
+"The resource pointed to by context is not loaded" },
+{ "TPM_DELEGATE_LOCK", TPM_E_BASE + 75,
+"The delegate administration is locked" },
+{ "TPM_DELEGATE_FAMILY", TPM_E_BASE + 76,
+"Attempt to manage a family other then the delegated family" },
+{ "TPM_DELEGATE_ADMIN", TPM_E_BASE + 77,
+"Delegation table management not enabled" },
+{ "TPM_TRANSPORT_NOTEXCLUSIVE", TPM_E_BASE + 78,
+"There was a command executed outside of an exclusive transport session" },
+{ "TPM_OWNER_CONTROL", TPM_E_BASE + 79,
+"Attempt to context save a owner evict controlled key" },
+{ "TPM_DAA_RESOURCES", TPM_E_BASE + 80,
+"The DAA command has no resources available to execute the command" },
+{ "TPM_DAA_INPUT_DATA0", TPM_E_BASE + 81,
+"The consistency check on DAA parameter inputData0 has failed" },
+{ "TPM_DAA_INPUT_DATA1", TPM_E_BASE + 82,
+"The consistency check on DAA parameter inputData1 has failed" },
+{ "TPM_DAA_ISSUER_SETTINGS", TPM_E_BASE + 83,
+"The consistency check on DAA_issuerSettings has failed" },
+{ "TPM_DAA_TPM_SETTINGS", TPM_E_BASE + 84,
+"The consistency check on DAA_tpmSpecific has failed" },
+{ "TPM_DAA_STAGE", TPM_E_BASE + 85,
+"The atomic process indicated by the submitted DAA command is not\n\
+the expected process" },
+{ "TPM_DAA_ISSUER_VALIDITY", TPM_E_BASE + 86,
+"The issuerâs validity check has detected an inconsistency" },
+{ "TPM_DAA_WRONG_W", TPM_E_BASE + 87,
+"The consistency check on w has failed" },
+{ "TPM_BAD_HANDLE", TPM_E_BASE + 88,
+"The handle is incorrect" },
+{ "TPM_BAD_DELEGATE", TPM_E_BASE + 89,
+"Delegation is not correct" },
+{ "TPM_BADCONTEXT", TPM_E_BASE + 90,
+"The context blob is invalid" },
+{ "TPM_TOOMANYCONTEXTS", TPM_E_BASE + 91,
+"Too many contexts held by the TPM" },
+{ "TPM_MA_TICKET_SIGNATURE", TPM_E_BASE + 92,
+"Migration authority signature validation failure" },
+{ "TPM_MA_DESTINATION", TPM_E_BASE + 93,
+"Migration destination not authenticated" },
+{ "TPM_MA_SOURCE", TPM_E_BASE + 94,
+"Migration source incorrect" },
+{ "TPM_MA_AUTHORITY", TPM_E_BASE + 95,
+"Incorrect migration authority" },
+{ "TPM_PERMANENTEK", TPM_E_BASE + 97,
+"Attempt to revoke the EK and the EK is not revocable" },
+{ "TPM_BAD_SIGNATURE", TPM_E_BASE + 98,
+"Bad signature of CMK ticket" },
+{ "TPM_NOCONTEXTSPACE", TPM_E_BASE + 99,
+"There is no room in the context list for additional contexts" },
+{ "TPM_RETRY", TPM_E_BASE + TPM_E_NON_FATAL,
+"The TPM is too busy to respond to the command immediately, but\n\
+the command could be resubmitted at a later time. The TPM MAY\n\
+return TPM_RETRY for any command at any time" },
+{ "TPM_NEEDS_SELFTEST", TPM_E_BASE + TPM_E_NON_FATAL + 1,
+"TPM_ContinueSelfTest has not been run" },
+{ "TPM_DOING_SELFTEST", TPM_E_BASE + TPM_E_NON_FATAL + 2,
+"The TPM is currently executing the actions of TPM_ContinueSelfTest\n\
+because the ordinal required resources that have not been tested" },
+{ "TPM_DEFEND_LOCK_RUNNING", TPM_E_BASE + TPM_E_NON_FATAL + 3,
+"The TPM is defending against dictionary attacks and is in some\n\
+time-out period" },
+ };
+
+#endif /* TPM_ERROR_MESSAGES_H */
Timothy Pearson (tpearson(a)raptorengineeringinc.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/8368
-gerrit
commit 005f3788913d03060f67851ab3b94f330498ca0c
Author: Timothy Pearson <tpearson(a)raptorengineeringinc.com>
Date: Thu Feb 5 10:47:40 2015 -0600
payloads/seabios: Enable SeaVGABIOS option if native text init supported
SeaVGABIOS supports both the coreboot linear framebuffer and native EGA
text mode. To use SeaBIOS interactively on standard VGA hardware a VBIOS
is needed; SeaVGABIOS is one such option.
TEST: Booted KFSN4-DRE with XGI Volari Z9s and SeaVGABIOS. Was able to
interact with SeaBIOS and comboot menu, then booted linux successfully.
VGA display was continuously usable from power on to Linux login.
Change-Id: Id4bd4cb5cece9114457633832c5f0e5280c02b47
Signed-off-by: Timothy Pearson <tpearson(a)raptorengineeringinc.com>
---
src/Kconfig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/Kconfig b/src/Kconfig
index e5dc26b..4c80f34 100644
--- a/src/Kconfig
+++ b/src/Kconfig
@@ -661,7 +661,7 @@ config SEABIOS_MALLOC_UPPERMEMORY
config SEABIOS_VGA_COREBOOT
prompt "Include generated option rom that implements legacy VGA BIOS compatibility" if PAYLOAD_SEABIOS
default n
- depends on !VGA_BIOS && MAINBOARD_DO_NATIVE_VGA_INIT
+ depends on !VGA_BIOS && (MAINBOARD_DO_NATIVE_VGA_INIT || MAINBOARD_HAS_NATIVE_VGA_INIT_TEXTMODECFG)
bool
help
Coreboot can initialize the GPU of some mainboards.
Timothy Pearson (tpearson(a)raptorengineeringinc.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/8368
-gerrit
commit 5e61d5dfeb5112e5338f580b01a92938f2bb065c
Author: Timothy Pearson <tpearson(a)raptorengineeringinc.com>
Date: Thu Feb 5 10:47:40 2015 -0600
payloads/seabios: Enable SeaVGABIOS option if native text init supported
SeaVGABIOS supports both the coreboot linear framebuffer and native EGA
text mode. To use SeaBIOS interactively on standard VGA hardware a VBIOS
is needed; SeaVGABIOS is one such option.
TEST: Booted KFSN4-DRE with XGI Volari Z9s and SeaVGABIOS. Was able to
interact with SeaBIOS and comboot menu, then booted linux successfully.
VGA display was continuously usable from power on to Linux login.
Change-Id: Id4bd4cb5cece9114457633832c5f0e5280c02b47
Signed-off-by: Timothy Pearson <tpearson(a)raptorengineeringinc.com>
---
src/Kconfig | 2 +-
src/mainboard/asus/kfsn4-dre/Kconfig | 1 +
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/Kconfig b/src/Kconfig
index e5dc26b..4c80f34 100644
--- a/src/Kconfig
+++ b/src/Kconfig
@@ -661,7 +661,7 @@ config SEABIOS_MALLOC_UPPERMEMORY
config SEABIOS_VGA_COREBOOT
prompt "Include generated option rom that implements legacy VGA BIOS compatibility" if PAYLOAD_SEABIOS
default n
- depends on !VGA_BIOS && MAINBOARD_DO_NATIVE_VGA_INIT
+ depends on !VGA_BIOS && (MAINBOARD_DO_NATIVE_VGA_INIT || MAINBOARD_HAS_NATIVE_VGA_INIT_TEXTMODECFG)
bool
help
Coreboot can initialize the GPU of some mainboards.
diff --git a/src/mainboard/asus/kfsn4-dre/Kconfig b/src/mainboard/asus/kfsn4-dre/Kconfig
index c16440d..f2530e5 100644
--- a/src/mainboard/asus/kfsn4-dre/Kconfig
+++ b/src/mainboard/asus/kfsn4-dre/Kconfig
@@ -21,6 +21,7 @@ config BOARD_SPECIFIC_OPTIONS # dummy
select MMCONF_SUPPORT_DEFAULT
select DRIVERS_XGI_Z9S
select MAINBOARD_HAS_NATIVE_VGA_INIT
+ select MAINBOARD_HAS_NATIVE_VGA_INIT_TEXTMODECFG
config MAINBOARD_DIR
string
Timothy Pearson (tpearson(a)raptorengineeringinc.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/8360
-gerrit
commit 230cbf17e1f792cb9a27241ed20ff423db5e2ef8
Author: Timothy Pearson <tpearson(a)raptorengineeringinc.com>
Date: Thu Feb 5 01:02:57 2015 -0600
drivers/xgi: Fix legacy VGA text mode initialization
TEST: Booted KFSN4-DRE with on-board XGI Volari Z9s
Initial text from coreboot appeared, and the Linux
console was displayed immediately at the start of
kernel initialization. After boot was complete
the text mode console continued to behave normally.
SeaBIOS does not currently make use of the legacy
VGA text-mode display.
Change-Id: I2177a1d00e6f07db661dd99fe0184e2c228404d1
Signed-off-by: Timothy Pearson <tpearson(a)raptorengineeringinc.com>
---
src/drivers/xgi/common/vb_init.c | 6 +++++-
src/drivers/xgi/common/xgi_coreboot.c | 27 +++++++++++++++++++--------
src/drivers/xgi/common/xgi_coreboot.h | 2 ++
3 files changed, 26 insertions(+), 9 deletions(-)
diff --git a/src/drivers/xgi/common/vb_init.c b/src/drivers/xgi/common/vb_init.c
index 2b81605..a2fbc80 100644
--- a/src/drivers/xgi/common/vb_init.c
+++ b/src/drivers/xgi/common/vb_init.c
@@ -1,8 +1,11 @@
/*
* This file is part of the coreboot project.
*
+ * Copyright (C) 2015 Timothy Pearson <tpearson(a)raptorengineeringinc.com>, Raptor Engineering
+ *
* File taken from the Linux xgifb driver (v3.18.5)
* Coreboot-specific includes added at top
+ * XGINew_SetDRAMSize_340 slightly modified for coreboot text mode
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -854,7 +857,8 @@ static void XGINew_SetDRAMSize_340(struct xgifb_video_info *xgifb_info,
pVBInfo->FBAddr = HwDeviceExtension->pjVideoMemoryAddress;
- XGISetModeNew(xgifb_info, HwDeviceExtension, 0x2e);
+ if (IS_ENABLED(CONFIG_MAINBOARD_DO_NATIVE_VGA_INIT))
+ XGISetModeNew(xgifb_info, HwDeviceExtension, 0x2e);
data = xgifb_reg_get(pVBInfo->P3c4, 0x21);
/* disable read cache */
diff --git a/src/drivers/xgi/common/xgi_coreboot.c b/src/drivers/xgi/common/xgi_coreboot.c
index 84ed81a..a4abe71 100755
--- a/src/drivers/xgi/common/xgi_coreboot.c
+++ b/src/drivers/xgi/common/xgi_coreboot.c
@@ -123,12 +123,14 @@ int xgifb_probe(struct pci_dev *pdev, struct xgifb_video_info *xgifb_info)
xgifb_info->video_size = video_size_max;
}
- /* Enable PCI_LINEAR_ADDRESSING and MMIO_ENABLE */
- xgifb_reg_or(XGISR,
- IND_SIS_PCI_ADDRESS_SET,
- (SIS_PCI_ADDR_ENABLE | SIS_MEM_MAP_IO_ENABLE));
- /* Enable 2D accelerator engine */
- xgifb_reg_or(XGISR, IND_SIS_MODULE_ENABLE, SIS_ENABLE_2D);
+ if (IS_ENABLED(CONFIG_MAINBOARD_DO_NATIVE_VGA_INIT)) {
+ /* Enable PCI_LINEAR_ADDRESSING and MMIO_ENABLE */
+ xgifb_reg_or(XGISR,
+ IND_SIS_PCI_ADDRESS_SET,
+ (SIS_PCI_ADDR_ENABLE | SIS_MEM_MAP_IO_ENABLE));
+ /* Enable 2D accelerator engine */
+ xgifb_reg_or(XGISR, IND_SIS_MODULE_ENABLE, SIS_ENABLE_2D);
+ }
hw_info->ulVideoMemorySize = xgifb_info->video_size;
@@ -265,7 +267,10 @@ int xgifb_probe(struct pci_dev *pdev, struct xgifb_video_info *xgifb_info)
xgifb_info->mode_idx =
XGIfb_GetXG21DefaultLVDSModeIdx(xgifb_info);
else
- xgifb_info->mode_idx = DEFAULT_MODE;
+ if (IS_ENABLED(CONFIG_MAINBOARD_DO_NATIVE_VGA_INIT))
+ xgifb_info->mode_idx = DEFAULT_MODE;
+ else
+ xgifb_info->mode_idx = DEFAULT_TEXT_MODE;
}
if (xgifb_info->mode_idx < 0) {
@@ -406,10 +411,16 @@ int xgifb_modeset(struct pci_dev *pdev, struct xgifb_video_info *xgifb_info)
}
#else
/* FIXME
- * Text mode does not work
+ * Text mode is slightly unstable/jittery (bad/incomplete DDR init?)
*/
+
+ /* Initialize standard VGA text mode */
vga_io_init();
vga_textmode_init();
+ printk(BIOS_INFO, "XGI VGA text mode initialized\n");
+
+ /* if we don't have console, at least print something... */
+ vga_line_write(0, "XGI VGA text mode initialized");
#endif
return 0;
diff --git a/src/drivers/xgi/common/xgi_coreboot.h b/src/drivers/xgi/common/xgi_coreboot.h
index 524615c..b616751 100644
--- a/src/drivers/xgi/common/xgi_coreboot.h
+++ b/src/drivers/xgi/common/xgi_coreboot.h
@@ -208,6 +208,8 @@ enum _SIS_LCD_TYPE {
/* End code taken from Linux kernel 3.18.5 */
+#define DEFAULT_TEXT_MODE 16 /* index for 800x600x8 */
+
/* coreboot <--> kernel code interface */
#define __iomem
#define SISIOMEMTYPE