mail.coreboot.org
Sign In
Sign Up
Sign In
Sign Up
Manage this list
×
Keyboard Shortcuts
Thread View
j
: Next unread message
k
: Previous unread message
j a
: Jump to all threads
j l
: Jump to MailingList overview
2024
November
October
September
August
July
June
May
April
March
February
January
2023
December
November
October
September
August
July
June
May
April
March
February
January
2022
December
November
October
September
August
July
June
May
April
March
February
January
2021
December
November
October
September
August
July
June
May
April
March
February
January
2020
December
November
October
September
August
July
June
May
April
March
February
January
2019
December
November
October
September
August
July
June
May
April
March
February
January
2018
December
November
October
September
August
July
June
May
April
March
February
January
2017
December
November
October
September
August
July
June
May
April
March
February
January
2016
December
November
October
September
August
July
June
May
April
March
February
January
2015
December
November
October
September
August
July
June
May
April
March
February
January
2014
December
November
October
September
August
July
June
May
April
March
February
January
2013
December
November
October
September
August
July
June
May
April
March
List overview
Download
coreboot-gerrit
December 2017
----- 2024 -----
November 2024
October 2024
September 2024
August 2024
July 2024
June 2024
May 2024
April 2024
March 2024
February 2024
January 2024
----- 2023 -----
December 2023
November 2023
October 2023
September 2023
August 2023
July 2023
June 2023
May 2023
April 2023
March 2023
February 2023
January 2023
----- 2022 -----
December 2022
November 2022
October 2022
September 2022
August 2022
July 2022
June 2022
May 2022
April 2022
March 2022
February 2022
January 2022
----- 2021 -----
December 2021
November 2021
October 2021
September 2021
August 2021
July 2021
June 2021
May 2021
April 2021
March 2021
February 2021
January 2021
----- 2020 -----
December 2020
November 2020
October 2020
September 2020
August 2020
July 2020
June 2020
May 2020
April 2020
March 2020
February 2020
January 2020
----- 2019 -----
December 2019
November 2019
October 2019
September 2019
August 2019
July 2019
June 2019
May 2019
April 2019
March 2019
February 2019
January 2019
----- 2018 -----
December 2018
November 2018
October 2018
September 2018
August 2018
July 2018
June 2018
May 2018
April 2018
March 2018
February 2018
January 2018
----- 2017 -----
December 2017
November 2017
October 2017
September 2017
August 2017
July 2017
June 2017
May 2017
April 2017
March 2017
February 2017
January 2017
----- 2016 -----
December 2016
November 2016
October 2016
September 2016
August 2016
July 2016
June 2016
May 2016
April 2016
March 2016
February 2016
January 2016
----- 2015 -----
December 2015
November 2015
October 2015
September 2015
August 2015
July 2015
June 2015
May 2015
April 2015
March 2015
February 2015
January 2015
----- 2014 -----
December 2014
November 2014
October 2014
September 2014
August 2014
July 2014
June 2014
May 2014
April 2014
March 2014
February 2014
January 2014
----- 2013 -----
December 2013
November 2013
October 2013
September 2013
August 2013
July 2013
June 2013
May 2013
April 2013
March 2013
coreboot-gerrit@coreboot.org
1 participants
1557 discussions
Start a n
N
ew thread
Change in coreboot[master]: security/tpm: Add TPM measurement code
by build bot (Jenkins) (Code Review)
14 Dec '17
14 Dec '17
build bot (Jenkins) has posted comments on this change. (
https://review.coreboot.org/22867
) Change subject: security/tpm: Add TPM measurement code ...................................................................... Patch Set 1: Verified-1 Build Failed
https://qa.coreboot.org/job/coreboot-gerrit/64510/
: ABORTED
https://qa.coreboot.org/job/coreboot-checkpatch/19302/
: SUCCESS -- To view, visit
https://review.coreboot.org/22867
To unsubscribe, visit
https://review.coreboot.org/settings
Gerrit-Project: coreboot Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I0a52494f647d21e2587231af26ed13d62b3a72f5 Gerrit-Change-Number: 22867 Gerrit-PatchSet: 1 Gerrit-Owner: Philipp Deppenwiese <zaolin.daisuki(a)gmail.com> Gerrit-Reviewer: build bot (Jenkins) <no-reply(a)coreboot.org> Gerrit-Comment-Date: Thu, 14 Dec 2017 14:52:57 +0000 Gerrit-HasComments: No
1
0
0
0
Change in coreboot[master]: security/tpm: Add TPM measurement code
by Philipp Deppenwiese (Code Review)
14 Dec '17
14 Dec '17
Philipp Deppenwiese has uploaded a new patch set (#2). (
https://review.coreboot.org/22867
) Change subject: security/tpm: Add TPM measurement code ...................................................................... security/tpm: Add TPM measurement code * Adapt TPM hash_complete * Add TCPA ACPI logging functionality * Add TSPI functions for measuring and hashing data * Fix small coding style issues Change-Id: I0a52494f647d21e2587231af26ed13d62b3a72f5 Signed-off-by: Philipp Deppenwiese <zaolin(a)das-labor.org> --- M src/security/tpm/tspi.h M src/security/tpm/tspi/tspi.c M src/security/tpm/tss.h M src/security/tpm/tss/tcg-1.2/tss.c M src/security/tpm/tss/tcg-1.2/tss_structures.h M src/security/tpm/tss/tcg-2.0/tss.c 6 files changed, 196 insertions(+), 18 deletions(-) git pull ssh://review.coreboot.org:29418/coreboot refs/changes/67/22867/2 -- To view, visit
https://review.coreboot.org/22867
To unsubscribe, visit
https://review.coreboot.org/settings
Gerrit-Project: coreboot Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I0a52494f647d21e2587231af26ed13d62b3a72f5 Gerrit-Change-Number: 22867 Gerrit-PatchSet: 2 Gerrit-Owner: Philipp Deppenwiese <zaolin.daisuki(a)gmail.com>
1
0
0
0
Change in coreboot[master]: security/tpm: Add TPM measurement code
by Philipp Deppenwiese (Code Review)
14 Dec '17
14 Dec '17
Philipp Deppenwiese has uploaded this change for review. (
https://review.coreboot.org/22867
Change subject: security/tpm: Add TPM measurement code ...................................................................... security/tpm: Add TPM measurement code * Add TPM hash_{start,update,complete} functionality * Add TCPA ACPI logging functionality * Add TSPI functions for measuring and hashing data Change-Id: I0a52494f647d21e2587231af26ed13d62b3a72f5 Signed-off-by: Philipp Deppenwiese <zaolin(a)das-labor.org> --- M src/security/tpm/tspi.h M src/security/tpm/tspi/tspi.c M src/security/tpm/tss.h M src/security/tpm/tss/tcg-1.2/tss.c M src/security/tpm/tss/tcg-1.2/tss_structures.h M src/security/tpm/tss/tcg-2.0/tss.c 6 files changed, 196 insertions(+), 18 deletions(-) git pull ssh://review.coreboot.org:29418/coreboot refs/changes/67/22867/1 diff --git a/src/security/tpm/tspi.h b/src/security/tpm/tspi.h index de3849a..1a84c62 100644 --- a/src/security/tpm/tspi.h +++ b/src/security/tpm/tspi.h @@ -18,6 +18,20 @@ #include <security/tpm/tss.h> +#define TPM_PCR_MAX_LENGTH 64 + +/** + * TPM measurement with acpi log functionality based on binary data. + */ +uint32_t tpm_measure_data(int pcr, const uint8_t *data, uint32_t data_length, + const char *name); + +/** + * TPM hash binary data. + */ +uint32_t tpm_hash(const uint8_t *data, size_t data_length, uint8_t **digest, + uint32_t *digest_length); + /** * Ask vboot for a digest and extend a TPM PCR with it. */ @@ -33,5 +47,4 @@ */ uint32_t tpm_setup(int s3flag); - -#endif /* TSPI_H_ */ +#endif /* TSPI_H_ */ diff --git a/src/security/tpm/tspi/tspi.c b/src/security/tpm/tspi/tspi.c index 9969cd3..891cc6a 100644 --- a/src/security/tpm/tspi/tspi.c +++ b/src/security/tpm/tspi/tspi.c @@ -14,13 +14,13 @@ * GNU General Public License for more details. */ +#include <console/cbmem_console.h> +#include <console/console.h> +#include <reset.h> +#include <security/tpm/tspi.h> +#include <security/tpm/tss.h> #include <stdlib.h> #include <string.h> -#include <security/tpm/tss.h> -#include <security/tpm/tspi.h> -#include <console/console.h> -#include <console/cbmem_console.h> -#include <reset.h> /* * SetupTPM starts the TPM and establishes the root of trust for the @@ -79,13 +79,16 @@ */ result = tlcl_physical_presence_cmd_enable(); if (result != TPM_SUCCESS) { - printk(BIOS_ERR, "TPM: Can't enable physical presence command.\n"); + printk( + BIOS_ERR, + "TPM: Can't enable physical presence command.\n"); return result; } result = tlcl_assert_physical_presence(); if (result != TPM_SUCCESS) { - printk(BIOS_ERR, "TPM: Can't assert physical presence.\n"); + printk(BIOS_ERR, + "TPM: Can't assert physical presence.\n"); return result; } } @@ -98,8 +101,9 @@ } if (disable || deactivated) { - printk(BIOS_INFO, "TPM: disabled (%d) or deactivated (%d). Fixing...\n", - disable, deactivated); + printk(BIOS_INFO, + "TPM: disabled (%d) or deactivated (%d). Fixing...\n", + disable, deactivated); result = tlcl_set_enable(); if (result != TPM_SUCCESS) { @@ -130,7 +134,7 @@ uint32_t result = __tpm_setup(s3flag); if (IS_ENABLED(CONFIG_TPM_INIT_FAILURE_IS_FATAL) && - result != TPM_SUCCESS) { + result != TPM_SUCCESS) { printk(BIOS_ERR, "Hard reset!\n"); post_code(POST_TPM_FAILURE); if (IS_ENABLED(CONFIG_CONSOLE_CBMEM_DUMP_TO_UART)) @@ -181,3 +185,72 @@ return tlcl_extend(pcr, digest, NULL); } + +uint32_t tpm_hash(const uint8_t *data, size_t data_length, uint8_t **digest, + uint32_t *digest_length) +{ + uint32_t data_max_length = 0; + uint32_t result; + size_t i, hash_rounds = 0; + + result = tlcl_hash_start(&data_max_length); + if (result != TPM_SUCCESS) { + printk(BIOS_ERR, "TPM: Start hash routine.\n"); + return result; + } + + hash_rounds = (size_t)(data_max_length / data_length); + for (i = 0; i < hash_rounds; i++) { + result = tlcl_hash_update(data + (i * data_max_length), + data_max_length); + if (result != TPM_SUCCESS) { + printk(BIOS_ERR, "TPM: Update hash routine.\n"); + return result; + } + } + + if (data_max_length % data_length == 0) { + result = tlcl_hash_complete(NULL, 0, digest, digest_length); + } else { + result = tlcl_hash_complete( + data + (hash_rounds * data_max_length), + data_max_length % data_length, digest, digest_length); + } + + if (result != TPM_SUCCESS) { + printk(BIOS_ERR, "TPM: Complete hash routine.\n"); + return result; + } + + return result; +} + +uint32_t tpm_measure_data(int pcr, const uint8_t *data, uint32_t data_length, + const char *name) +{ + uint8_t digest[TPM_PCR_MAX_LENGTH]; + uint32_t digest_length = 0; + uint32_t result; + + result = + tpm_hash(data, data_length, (uint8_t **)&digest, &digest_length); + if (result != TPM_SUCCESS && digest != NULL) { + printk(BIOS_ERR, "TPM: Hashing data failed.\n"); + return result; + } + + result = tlcl_extend(pcr, digest, NULL); + if (result != TPM_SUCCESS) { + printk(BIOS_ERR, "TPM: Extending hash into PCR failed.\n"); + return result; + } + + result = tlcl_tcpa_log(pcr, digest, digest_length, name); + if (result != TPM_SUCCESS) { + printk(BIOS_ERR, + "TPM: Writing measurement meta information failed.\n"); + return result; + } + + return result; +} diff --git a/src/security/tpm/tss.h b/src/security/tpm/tss.h index 612df0f..a423e41 100644 --- a/src/security/tpm/tss.h +++ b/src/security/tpm/tss.h @@ -179,7 +179,13 @@ * */ uint32_t tlcl_hash_complete(const void *message, uint32_t message_length, - uint8_t **digest); + uint8_t **digest, uint32_t *digest_length); + +/** + * TCPA ACPI log + */ +uint32_t tlcl_tcpa_log(int pcr, uint8_t *digest, uint32_t digest_length, + const char *name); /** * CR50 specific tpm command to enable nvmem commits before internal timeout @@ -199,4 +205,4 @@ uint32_t tlcl_cr50_enable_update(uint16_t timeout_ms, uint8_t *num_restored_headers); -#endif /* TSS_H_ */ +#endif /* TSS_H_ */ diff --git a/src/security/tpm/tss/tcg-1.2/tss.c b/src/security/tpm/tss/tcg-1.2/tss.c index 2bb2269..3fa31bb 100644 --- a/src/security/tpm/tss/tcg-1.2/tss.c +++ b/src/security/tpm/tss/tcg-1.2/tss.c @@ -1,4 +1,5 @@ /* Copyright (c) 2012 The Chromium OS Authors. All rights reserved. + * Copyright 2017 Facebook Inc. * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ @@ -16,6 +17,7 @@ #include <arch/early_variables.h> #include <assert.h> +#include <cbmem.h> #include <security/tpm/tis.h> #include <security/tpm/tss.h> #include <string.h> @@ -386,7 +388,7 @@ } uint32_t tlcl_hash_complete(const void *message, uint32_t message_length, - uint8_t **digest) + uint8_t **digest, uint32_t *digest_length) { struct s_tpm_sha1_complete_cmd cmd; uint8_t response[TPM_LARGE_ENOUGH_COMMAND_SIZE]; @@ -405,9 +407,11 @@ message_length); result = tlcl_send_receive(cmd.buffer, response, sizeof(response)); - if (result == TPM_SUCCESS) + if (result == TPM_SUCCESS) { memcpy(*digest, response + kTpmResponseHeaderLength, kPcrDigestLength); + *digest_length = TPM_PCR_DIGEST; + } return result; } @@ -424,7 +428,67 @@ result = tlcl_send_receive(cmd.buffer, response, sizeof(response)); if (result == TPM_SUCCESS) memcpy(out_digest, response + kTpmResponseHeaderLength, - kPcrDigestLength); + kPcrDigestLength); return result; } + +uint32_t tlcl_tcpa_log(int pcr, uint8_t *digest, uint32_t digest_length, + const char *name) +{ + const struct cbmem_entry *ce; + TPM_PCR_EVENT tcpa_event; + TPM_DIGEST pcr_digest; + void *lasa; + uint8_t *ptr; + size_t size; + + if (name == NULL) { + printk(BIOS_ERR, "TCPA log message is NULL\n"); + return 1; + } + + if (strlen(name) >= TPM_EVENT_DATA_SIZE) { + printk(BIOS_ERR, "TCPA log message is too big\n"); + return 1; + } + + memcpy(pcr_digest.digest, digest, digest_length); + + tcpa_event.PCRIndex = pcr; + tcpa_event.EventType = 5; // ACTION type for linux kernel. + tcpa_event.Digest = pcr_digest; + tcpa_event.EventSize = TPM_EVENT_DATA_SIZE; + + memset(tcpa_event.Event, 0, TPM_EVENT_DATA_SIZE); + memcpy(tcpa_event.Event, name, strlen(name)); + + ce = cbmem_entry_find(CBMEM_ID_TCPA_LOG); + if (ce) { + lasa = cbmem_entry_start(ce); + + ptr = (lasa + TCPA_LOG_CBEM_SIZE - 1); + size = sizeof(TPM_PCR_EVENT) * (*ptr); + if (size >= (TCPA_LOG_CBEM_SIZE - sizeof(TPM_PCR_EVENT))) { + printk(BIOS_ERR, "TCPA log is full\n"); + return 1; + } + + lasa += size; + *ptr += 1; + } else { + lasa = cbmem_add(CBMEM_ID_TCPA_LOG, TCPA_LOG_CBEM_SIZE); + if (!lasa) { + printk(BIOS_ERR, "TCPA log creation failed\n"); + return 1; + } + } + + memset(lasa, 0, TCPA_LOG_CBEM_SIZE); + ptr = (lasa + TCPA_LOG_CBEM_SIZE - 1); + *ptr += 1; + + memcpy(lasa, &tcpa_event, sizeof(TPM_PCR_EVENT)); + + return 0; +} diff --git a/src/security/tpm/tss/tcg-1.2/tss_structures.h b/src/security/tpm/tss/tcg-1.2/tss_structures.h index c06bbf7..37ff3b7 100644 --- a/src/security/tpm/tss/tcg-1.2/tss_structures.h +++ b/src/security/tpm/tss/tcg-1.2/tss_structures.h @@ -14,6 +14,9 @@ #define TPM_LARGE_ENOUGH_COMMAND_SIZE 256 /* saves space in the firmware */ #define TPM_PUBEK_SIZE 256 #define TPM_PCR_DIGEST 20 +#define TPM_EVENT_DATA_SIZE 25 +#define MAX_EVENT_STRUCT_SIZE 100 +#define TCPA_LOG_CBEM_SIZE 2000 #define TPM_E_NON_FATAL 0x800 @@ -64,6 +67,8 @@ typedef uint8_t TSS_BOOL; typedef uint16_t TPM_STRUCTURE_TAG; +typedef uint32_t TSS_EVENTTYPE; +typedef uint32_t TSS_PCRINDEX; typedef struct tdTPM_PERMANENT_FLAGS { TPM_STRUCTURE_TAG tag; @@ -98,4 +103,16 @@ TSS_BOOL bGlobalLock; } TPM_STCLEAR_FLAGS; +typedef struct tdTPM_DIGEST { + uint8_t digest[TPM_PCR_DIGEST]; +} TPM_DIGEST; + +typedef struct tdTPM_PCR_EVENT { + TSS_PCRINDEX PCRIndex; //PCRIndex event extended to + TSS_EVENTTYPE EventType; //See Table 7-1, below + TPM_DIGEST Digest; //Value extended into PCRIndex + uint32_t EventSize; //Size of the event data + uint8_t Event[TPM_EVENT_DATA_SIZE]; //The event data +} TPM_PCR_EVENT; + #endif /* TCG_TSS_STRUCTURES_H_ */ diff --git a/src/security/tpm/tss/tcg-2.0/tss.c b/src/security/tpm/tss/tcg-2.0/tss.c index 0bee09b..d31028f 100644 --- a/src/security/tpm/tss/tcg-2.0/tss.c +++ b/src/security/tpm/tss/tcg-2.0/tss.c @@ -412,7 +412,7 @@ } uint32_t tlcl_hash_complete(const void *message, uint32_t message_length, - uint8_t **digest) + uint8_t **digest, uint32_t *digest_length) { return TPM_SUCCESS; } @@ -421,3 +421,8 @@ { return TPM_SUCCESS; } + +uint32_t tlcl_tcpa_log(int pcr, const uint8_t *digest, const char *name) +{ + return TPM_SUCCESS; +} -- To view, visit
https://review.coreboot.org/22867
To unsubscribe, visit
https://review.coreboot.org/settings
Gerrit-Project: coreboot Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I0a52494f647d21e2587231af26ed13d62b3a72f5 Gerrit-Change-Number: 22867 Gerrit-PatchSet: 1 Gerrit-Owner: Philipp Deppenwiese <zaolin.daisuki(a)gmail.com>
1
0
0
0
Change in libgfxinit[master]: Add Start_X and Start_Y offsets for framebuffer panning
by Nico Huber (Code Review)
14 Dec '17
14 Dec '17
Nico Huber has uploaded this change for review. (
https://review.coreboot.org/22866
Change subject: Add Start_X and Start_Y offsets for framebuffer panning ...................................................................... Add Start_X and Start_Y offsets for framebuffer panning For tiled modes, the offsets add to the stride. To keep things simple, we always assume that they are accounted for (even in linear mode). To make the panning visible, the offsets are added in `gfx_test` and the test image is drawn larger by two times the offsets. Also add the new parameters to Dump_Configs() along with the forgotten tiling and rotation parameters. Change-Id: I5d1e1f2ed8b1872a2b82be23a6a622d948f7831f Signed-off-by: Nico Huber <nico.h(a)gmx.de> --- M common/hw-gfx-gma-config_helpers.ads M common/hw-gfx-gma-pipe_setup.adb M common/hw-gfx-gma-pipe_setup.ads M common/hw-gfx-gma.adb M common/hw-gfx-gma.ads M common/hw-gfx.ads M gfxtest/hw-gfx-gma-gfx_test.adb 7 files changed, 86 insertions(+), 33 deletions(-) git pull ssh://review.coreboot.org:29418/libgfxinit refs/changes/66/22866/1 diff --git a/common/hw-gfx-gma-config_helpers.ads b/common/hw-gfx-gma-config_helpers.ads index e684f22..1dc2390 100644 --- a/common/hw-gfx-gma-config_helpers.ads +++ b/common/hw-gfx-gma-config_helpers.ads @@ -50,6 +50,6 @@ Rotated_Width (FB) <= Port_Cfg.Mode.H_Visible and Rotated_Height (FB) <= Port_Cfg.Mode.V_Visible and (FB.Offset = VGA_PLANE_FRAMEBUFFER_OFFSET or - FB.Height <= FB.V_Stride)); + FB.Height + FB.Start_Y <= FB.V_Stride)); end HW.GFX.GMA.Config_Helpers; diff --git a/common/hw-gfx-gma-pipe_setup.adb b/common/hw-gfx-gma-pipe_setup.adb index 4dc6e2b..e64edc9 100644 --- a/common/hw-gfx-gma-pipe_setup.adb +++ b/common/hw-gfx-gma-pipe_setup.adb @@ -157,7 +157,7 @@ (Registers.Register_State, Controller, FB)), - Pre => FB.Height <= FB.V_Stride + Pre => FB.Height + FB.Start_Y <= FB.V_Stride is -- FIXME: setup correct format, based on framebuffer RGB format Format : constant Word32 := 6 * 2 ** 26; @@ -172,11 +172,13 @@ Height : constant Pos16 := Rotated_Height (FB); begin if Rotation_90 (FB) then - Stride := Word32 (FB_Pitch (FB.V_Stride, FB)); - Offset := Word32 (FB.V_Stride - FB.Height); + Stride := Word32 (FB_Pitch (FB.V_Stride, FB)); + Offset := Shift_Left (Word32 (FB.Start_X), 16) or + Word32 (FB.V_Stride - FB.Height - FB.Start_Y); else - Stride := Word32 (FB_Pitch (FB.Stride, FB)); - Offset := 0; + Stride := Word32 (FB_Pitch (FB.Stride, FB)); + Offset := Shift_Left (Word32 (FB.Start_Y), 16) or + Word32 (FB.Start_X); end if; Registers.Write (Register => Controller.PLANE_CTL, @@ -208,7 +210,10 @@ if Config.Has_DSP_Linoff then Registers.Write (Controller.DSPLINOFF, 0); end if; - Registers.Write (Controller.DSPTILEOFF, 0); + Registers.Write + (Register => Controller.DSPTILEOFF, + Value => Shift_Left (Word32 (FB.Start_Y), 16) or + Word32 (FB.Start_X)); end if; end Setup_Hires_Plane; @@ -232,7 +237,7 @@ (Framebuffer)), Pre => Framebuffer.Offset = VGA_PLANE_FRAMEBUFFER_OFFSET or - Framebuffer.Height <= Framebuffer.V_Stride + Framebuffer.Height + Framebuffer.Start_Y <= Framebuffer.V_Stride is use type Word8; diff --git a/common/hw-gfx-gma-pipe_setup.ads b/common/hw-gfx-gma-pipe_setup.ads index 35d9e87..3ef5dcf 100644 --- a/common/hw-gfx-gma-pipe_setup.ads +++ b/common/hw-gfx-gma-pipe_setup.ads @@ -28,7 +28,7 @@ Rotated_Width (Framebuffer) <= Port_Cfg.Mode.H_Visible and Rotated_Height (Framebuffer) <= Port_Cfg.Mode.V_Visible and (Framebuffer.Offset = VGA_PLANE_FRAMEBUFFER_OFFSET or - Framebuffer.Height <= Framebuffer.V_Stride); + Framebuffer.Height + Framebuffer.Start_Y <= Framebuffer.V_Stride); procedure Off (Pipe : Pipe_Index); diff --git a/common/hw-gfx-gma.adb b/common/hw-gfx-gma.adb index b325000..420c1a3 100644 --- a/common/hw-gfx-gma.adb +++ b/common/hw-gfx-gma.adb @@ -721,6 +721,21 @@ (Primary => "Primary ", Secondary => "Secondary", Tertiary => "Tertiary "); + + subtype Tiling_Name is String (1 .. 7); + type Tiling_Name_Array is array (Tiling_Type) of Tiling_Name; + Tilings : constant Tiling_Name_Array := + (Linear => "Linear ", + X_Tiled => "X_Tiled", + Y_Tiled => "Y_Tiled"); + + subtype Rotation_Name is String (1 .. 11); + type Rotation_Name_Array is array (Rotation_Type) of Rotation_Name; + Rotations : constant Rotation_Name_Array := + (No_Rotation => "No_Rotation", + Rotated_90 => "Rotated_90 ", + Rotated_180 => "Rotated_180", + Rotated_270 => "Rotated_270"); begin Debug.New_Line; Debug.Put_Line ("CONFIG =>"); @@ -734,15 +749,28 @@ Debug.Put_Line (" (Port => " & Port_Names (Configs (Pipe).Port) & ","); Debug.Put_Line (" Framebuffer =>"); - Debug.Put (" (Width => "); + Debug.Put (" (Width => "); Debug.Put_Int32 (Configs (Pipe).Framebuffer.Width); Debug.Put_Line (","); - Debug.Put (" Height => "); + Debug.Put (" Height => "); Debug.Put_Int32 (Configs (Pipe).Framebuffer.Height); Debug.Put_Line (","); - Debug.Put (" Stride => "); + Debug.Put (" Start_X => "); + Debug.Put_Int32 (Configs (Pipe).Framebuffer.Start_X); + Debug.Put_Line (","); + Debug.Put (" Start_Y => "); + Debug.Put_Int32 (Configs (Pipe).Framebuffer.Start_Y); + Debug.Put_Line (","); + Debug.Put (" Stride => "); Debug.Put_Int32 (Configs (Pipe).Framebuffer.Stride); Debug.Put_Line (","); + Debug.Put (" V_Stride => "); + Debug.Put_Int32 (Configs (Pipe).Framebuffer.V_Stride); + Debug.Put_Line (","); + Debug.Put (" Tiling => "); + Debug.Put_Line (Tilings (Configs (Pipe).Framebuffer.Tiling) & ","); + Debug.Put (" Rotation => "); + Debug.Put_Line (Rotations (Configs (Pipe).Framebuffer.Rotation) & ","); Debug.Put (" Offset => "); Debug.Put_Word32 (Configs (Pipe).Framebuffer.Offset); Debug.Put_Line (","); diff --git a/common/hw-gfx-gma.ads b/common/hw-gfx-gma.ads index c59b392..77536d4 100644 --- a/common/hw-gfx-gma.ads +++ b/common/hw-gfx-gma.ads @@ -180,9 +180,9 @@ (Pixel_To_Bytes (Px, FB), Tile_Width (FB.Tiling) * 4))); function Valid_Stride (FB : Framebuffer_Type) return Boolean is - (FB.Width <= FB.Stride and + (FB.Width + FB.Start_X <= FB.Stride and Pixel_To_Bytes (FB.Stride, FB) mod (Tile_Width (FB.Tiling) * 4) = 0 and - FB.Height <= FB.V_Stride and + FB.Height + FB.Start_Y <= FB.V_Stride and FB.V_Stride mod Tile_Rows (FB.Tiling) = 0); end HW.GFX.GMA; diff --git a/common/hw-gfx.ads b/common/hw-gfx.ads index 5d8ae59..30e6e56 100644 --- a/common/hw-gfx.ads +++ b/common/hw-gfx.ads @@ -26,6 +26,7 @@ -- Allow same range for width and height (for rotated framebuffers) subtype Width_Type is Pos32 range 1 .. 8192; subtype Height_Type is Pos32 range 1 .. 8192; + subtype Pos_Type is Int32 range 0 .. 4095; Auto_BPC : constant := 5; subtype BPC_Type is Int64 range Auto_BPC .. 16; @@ -39,6 +40,8 @@ record Width : Width_Type; Height : Height_Type; + Start_X : Pos_Type; + Start_Y : Pos_Type; BPC : BPC_Type; Stride : Width_Type; V_Stride : Height_Type; @@ -63,6 +66,8 @@ Default_FB : constant Framebuffer_Type := Framebuffer_Type' (Width => 1, Height => 1, + Start_X => 0, + Start_Y => 0, BPC => 8, Stride => 1, V_Stride => 1, diff --git a/gfxtest/hw-gfx-gma-gfx_test.adb b/gfxtest/hw-gfx-gma-gfx_test.adb index cb09c63..833240f 100644 --- a/gfxtest/hw-gfx-gma-gfx_test.adb +++ b/gfxtest/hw-gfx-gma-gfx_test.adb @@ -14,6 +14,9 @@ is pragma Disable_Atomic_Synchronization; + Start_X : constant := 0; + Start_Y : constant := 0; + package Dev is new PCI.Dev (PCI.Address'(0, 2, 0)); type GTT_PTE_Type is mod 2 ** (Config.GTT_PTE_Size * 8); @@ -105,6 +108,12 @@ end loop; end Restore_Screen; + function Drawing_Width (FB : Framebuffer_Type) return Natural is + (Natural (FB.Width + 2 * Start_X)); + + function Drawing_Height (FB : Framebuffer_Type) return Natural is + (Natural (FB.Height + 2 * Start_Y)); + function Corner_Fill (X, Y : Natural; FB : Framebuffer_Type; @@ -112,9 +121,9 @@ return Pixel_Type is Xrel : constant Integer := - (if X < 32 then X else X - (Natural (FB.Width) - 32)); + (if X < 32 then X else X - (Drawing_Width (FB) - 32)); Yrel : constant Integer := - (if Y < 32 then Y else Y - (Natural (FB.Height) - 32)); + (if Y < 32 then Y else Y - (Drawing_Height (FB) - 32)); function Color (Idx : Natural) return Pixel_Type is (case (Idx + Pipe_Index'Pos (Pipe)) mod 4 is @@ -138,8 +147,8 @@ is use type HW.Byte; - Xp : constant Natural := X * 256 / Natural (Framebuffer.Width); - Yp : constant Natural := Y * 256 / Natural (Framebuffer.Height); + Xp : constant Natural := X * 256 / Drawing_Width (Framebuffer); + Yp : constant Natural := Y * 256 / Drawing_Height (Framebuffer); Xn : constant Natural := 255 - Xp; Yn : constant Natural := 255 - Yp; @@ -166,22 +175,22 @@ function Top_Test (X, Y : Natural) return Boolean is - C : constant Natural := Natural (Framebuffer.Width) / 2; - S_Y : constant Natural := 3 * Y / 2; + C : constant Natural := Drawing_Width (Framebuffer) / 2; + S_Y : constant Natural := 3 * (Y - Start_Y) / 2; Left : constant Integer := X - C + S_Y; Right : constant Integer := X - C - S_Y; begin return - Y < 12 and + (Y - Start_Y) < 12 and ((-1 <= Left and Left <= 0) or (0 <= Right and Right <= 1)); end Top_Test; begin - for Y in 0 .. Natural (Framebuffer.Height) - 1 loop + for Y in 0 .. Drawing_Height (Framebuffer) - 1 loop Offset := Offset_Y; - for X in 0 .. Natural (Framebuffer.Width) - 1 loop - if (X < 32 or X >= Natural (Framebuffer.Width) - 32) and - (Y < 32 or Y >= Natural (Framebuffer.Height) - 32) + for X in 0 .. Drawing_Width (Framebuffer) - 1 loop + if (X < 32 or X >= Drawing_Width (Framebuffer) - 32) and + (Y < 32 or Y >= Drawing_Height (Framebuffer) - 32) then P := Corner_Fill (X, Y, Framebuffer, Pipe); elsif Framebuffer.Rotation /= No_Rotation and then @@ -206,25 +215,31 @@ Rotation : in Rotation_Type; Offset : in out Word32) is + Width : constant Width_Type := Width_Type (Mode.H_Visible); + Height : constant Height_Type := Height_Type (Mode.V_Visible); begin Offset := (Offset + FB_Align - 1) and not (FB_Align - 1); if Rotation = Rotated_90 or Rotation = Rotated_270 then FB := - (Width => Width_Type (Mode.V_Visible), - Height => Height_Type (Mode.H_Visible), + (Width => Width_Type (Height), + Height => Height_Type (Width), + Start_X => Start_X, + Start_Y => Start_Y, BPC => 8, - Stride => Div_Round_Up (Pos32 (Mode.V_Visible), 32) * 32, - V_Stride => Div_Round_Up (Pos32 (Mode.H_Visible), 32) * 32, + Stride => Div_Round_Up (Pos32 (Height + 2 * Start_X), 32) * 32, + V_Stride => Div_Round_Up (Pos32 (Width + 2 * Start_Y), 32) * 32, Tiling => Y_Tiled, Rotation => Rotation, Offset => Offset + Word32 (GTT_Rotation_Offset) * GTT_Page_Size); else FB := - (Width => Width_Type (Mode.H_Visible), - Height => Width_Type (Mode.V_Visible), + (Width => Width, + Height => Height, + Start_X => Start_X, + Start_Y => Start_Y, BPC => 8, - Stride => Div_Round_Up (Pos32 (Mode.H_Visible), 16) * 16, - V_Stride => Height_Type (Mode.V_Visible), + Stride => Div_Round_Up (Width + 2 * Start_X, 16) * 16, + V_Stride => Height + 2 * Start_Y, Tiling => Linear, Rotation => Rotation, Offset => Offset); -- To view, visit
https://review.coreboot.org/22866
To unsubscribe, visit
https://review.coreboot.org/settings
Gerrit-Project: libgfxinit Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I5d1e1f2ed8b1872a2b82be23a6a622d948f7831f Gerrit-Change-Number: 22866 Gerrit-PatchSet: 1 Gerrit-Owner: Nico Huber <nico.h(a)gmx.de>
1
0
0
0
Change in coreboot[master]: soc/amd/common: Update agesawrapper_call.h
by build bot (Jenkins) (Code Review)
14 Dec '17
14 Dec '17
build bot (Jenkins) has posted comments on this change. (
https://review.coreboot.org/22850
) Change subject: soc/amd/common: Update agesawrapper_call.h ...................................................................... Patch Set 3: Verified+1 Build Successful
https://qa.coreboot.org/job/coreboot-checkpatch/19301/
: SUCCESS
https://qa.coreboot.org/job/coreboot-gerrit/64509/
: SUCCESS -- To view, visit
https://review.coreboot.org/22850
To unsubscribe, visit
https://review.coreboot.org/settings
Gerrit-Project: coreboot Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ic51917d3961a51d4e725ff45b04f45eefe149855 Gerrit-Change-Number: 22850 Gerrit-PatchSet: 3 Gerrit-Owner: Richard Spiegel <richard.spiegel(a)silverbackltd.com> Gerrit-Reviewer: Aaron Durbin <adurbin(a)chromium.org> Gerrit-Reviewer: Marc Jones <marc(a)marcjonesconsulting.com> Gerrit-Reviewer: Marshall Dawson <marshalldawson3rd(a)gmail.com> Gerrit-Reviewer: Martin Roth <martinroth(a)google.com> Gerrit-Reviewer: Paul Menzel <paulepanter(a)users.sourceforge.net> Gerrit-Reviewer: Richard Spiegel <richard.spiegel(a)silverbackltd.com> Gerrit-Reviewer: build bot (Jenkins) <no-reply(a)coreboot.org> Gerrit-Comment-Date: Thu, 14 Dec 2017 14:13:26 +0000 Gerrit-HasComments: No
1
0
0
0
Change in coreboot[master]: google/chromeec: Enable unified host event programming interface
by build bot (Jenkins) (Code Review)
14 Dec '17
14 Dec '17
build bot (Jenkins) has posted comments on this change. (
https://review.coreboot.org/21085
) Change subject: google/chromeec: Enable unified host event programming interface ...................................................................... Patch Set 7: Verified+1 Build Successful
https://qa.coreboot.org/job/coreboot-checkpatch/19300/
: SUCCESS
https://qa.coreboot.org/job/coreboot-gerrit/64507/
: SUCCESS -- To view, visit
https://review.coreboot.org/21085
To unsubscribe, visit
https://review.coreboot.org/settings
Gerrit-Project: coreboot Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I4917a222c79b6aaecb71d7704ffde57bf3bc99d9 Gerrit-Change-Number: 21085 Gerrit-PatchSet: 7 Gerrit-Owner: Jenny Tc <jenny.tc(a)intel.com> Gerrit-Reviewer: Aaron Durbin <adurbin(a)chromium.org> Gerrit-Reviewer: Furquan Shaikh <furquan(a)google.com> Gerrit-Reviewer: Jenny Tc <jenny.tc(a)intel.com> Gerrit-Reviewer: Paul Menzel <paulepanter(a)users.sourceforge.net> Gerrit-Reviewer: Rizwan Qureshi <rizwan.qureshi(a)intel.com> Gerrit-Reviewer: Shamile Khan <shamile.khan(a)intel.com> Gerrit-Reviewer: Sumeet R Pawnikar <sumeet.r.pawnikar(a)intel.com> Gerrit-Reviewer: build bot (Jenkins) <no-reply(a)coreboot.org> Gerrit-Comment-Date: Thu, 14 Dec 2017 11:11:27 +0000 Gerrit-HasComments: No
1
0
0
0
Change in libgfxinit[master]: gma: Reverse meaning of GTT_Rotation_Offset
by Nico Huber (Code Review)
14 Dec '17
14 Dec '17
Nico Huber has uploaded this change for review. (
https://review.coreboot.org/22864
Change subject: gma: Reverse meaning of GTT_Rotation_Offset ...................................................................... gma: Reverse meaning of GTT_Rotation_Offset We used to add the second mapping for a 90 degree rotated frame- buffer at `FB.Offset + GTT_Rotation_Offset` and patched the offset when configuring the pipe. Instead, we expect the final offset in `FB.Offset` (which should include `GTT_Rotation_Offset` when using the default framebuffer setup. Change-Id: I321a3db3af4b21eefbfc1bf0c2a7005feaf83c7a Signed-off-by: Nico Huber <nico.h(a)gmx.de> --- M common/hw-gfx-gma-pipe_setup.adb M common/hw-gfx-gma.adb M common/hw-gfx-gma.ads M gfxtest/hw-gfx-gma-gfx_test.adb 4 files changed, 33 insertions(+), 17 deletions(-) git pull ssh://review.coreboot.org:29418/libgfxinit refs/changes/64/22864/1 diff --git a/common/hw-gfx-gma-pipe_setup.adb b/common/hw-gfx-gma-pipe_setup.adb index e1ff835..4dc6e2b 100644 --- a/common/hw-gfx-gma-pipe_setup.adb +++ b/common/hw-gfx-gma-pipe_setup.adb @@ -167,19 +167,16 @@ if Config.Has_Plane_Control then declare - Stride, Offset, GTT_Addr : Word32; + Stride, Offset : Word32; Width : constant Pos16 := Rotated_Width (FB); Height : constant Pos16 := Rotated_Height (FB); begin if Rotation_90 (FB) then Stride := Word32 (FB_Pitch (FB.V_Stride, FB)); Offset := Word32 (FB.V_Stride - FB.Height); - GTT_Addr := - FB.Offset + Word32 (GTT_Rotation_Offset) * GTT_Page_Size; else Stride := Word32 (FB_Pitch (FB.Stride, FB)); Offset := 0; - GTT_Addr := FB.Offset; end if; Registers.Write (Register => Controller.PLANE_CTL, @@ -192,7 +189,7 @@ Registers.Write (Controller.PLANE_SIZE, Encode (Width, Height)); Registers.Write (Controller.PLANE_STRIDE, Stride); Registers.Write (Controller.PLANE_POS, 16#0000_0000#); - Registers.Write (Controller.PLANE_SURF, GTT_Addr and 16#ffff_f000#); + Registers.Write (Controller.PLANE_SURF, FB.Offset and 16#ffff_f000#); end; else if Config.Disable_Trickle_Feed then diff --git a/common/hw-gfx-gma.adb b/common/hw-gfx-gma.adb index d8438ab..b325000 100644 --- a/common/hw-gfx-gma.adb +++ b/common/hw-gfx-gma.adb @@ -471,22 +471,29 @@ ---------------------------------------------------------------------------- function FB_First_Page (FB : Framebuffer_Type) return Natural is - (Natural (FB.Offset / GTT_Page_Size)); + (Natural (Phys_Offset (FB) / GTT_Page_Size)); function FB_Pages (FB : Framebuffer_Type) return Natural is (Natural (Div_Round_Up (FB_Size (FB), GTT_Page_Size))); function FB_Last_Page (FB : Framebuffer_Type) return Natural is (FB_First_Page (FB) + FB_Pages (FB) - 1); - -- Check basics and that it fits in GTT + -- Check basics and that it fits in GTT. For 90 degree rotations, + -- the Offset should be above GTT_Rotation_Offset. The latter will + -- be subtracted for the aperture mapping. function Valid_FB (FB : Framebuffer_Type) return Boolean is - (Valid_Stride (FB) and FB_Last_Page (FB) < GTT_Rotation_Offset); + (Valid_Stride (FB) and + FB_First_Page (FB) in GTT_Range and + FB_Last_Page (FB) in GTT_Range and + (not Rotation_90 (FB) or + (FB_Last_Page (FB) + GTT_Rotation_Offset in GTT_Range and + FB.Offset >= Word32 (GTT_Rotation_Offset) * GTT_Page_Size))); -- Also check that we don't overflow the GTT's 39-bit space -- (always true with a 32-bit base) function Valid_Phys_FB (FB : Framebuffer_Type; Phys_Base : Word32) return Boolean is (Valid_FB (FB) and - Int64 (Phys_Base) + Int64 (FB.Offset) + Int64 (FB_Size (FB)) <= + Int64 (Phys_Base) + Int64 (Phys_Offset (FB)) + Int64 (FB_Size (FB)) <= Int64 (GTT_Address_Type'Last)) with Ghost; @@ -505,7 +512,7 @@ Pre => Is_Initialized and Valid_Phys_FB (FB, Phys_Base) is Phys_Addr : GTT_Address_Type := - GTT_Address_Type (Phys_Base) + GTT_Address_Type (FB.Offset); + GTT_Address_Type (Phys_Base) + GTT_Address_Type (Phys_Offset (FB)); begin for Idx in FB_First_Page (FB) .. FB_Last_Page (FB) loop Registers.Write_GTT @@ -522,7 +529,7 @@ GTT_Address_Type (Pixel_To_Bytes (32 * FB.Stride, FB)); begin Phys_Addr := GTT_Address_Type (Phys_Base) + - GTT_Address_Type (FB.Offset) + + GTT_Address_Type (Phys_Offset (FB)) + GTT_Address_Type (FB_Size (FB)); for Page in FB_First_Page (FB) .. FB_Last_Page (FB) loop Phys_Addr := Phys_Addr - Bytes_Per_Row; @@ -627,7 +634,7 @@ FB_Last_Page (FB) < GTT_Size / Config.GTT_PTE_Size and FB_Last_Page (FB) < Natural (Stolen_Size / GTT_Page_Size) and FB_Last_Page (FB) < Aperture_Size / GTT_Page_Size; - pragma Debug (not Valid, Debug.Put + pragma Debug (not Valid, Debug.Put_Line ("Stolen memory too small to hold framebuffer.")); end if; end Validate_FB; @@ -699,7 +706,7 @@ if Linear_FB_Base /= 0 then Validate_FB (FB, Valid); if Valid then - Linear_FB := Linear_FB_Base + Word64 (FB.Offset); + Linear_FB := Linear_FB_Base + Word64 (Phys_Offset (FB)); end if; end if; end Map_Linear_FB; diff --git a/common/hw-gfx-gma.ads b/common/hw-gfx-gma.ads index 50a76a0..c59b392 100644 --- a/common/hw-gfx-gma.ads +++ b/common/hw-gfx-gma.ads @@ -102,6 +102,15 @@ Device_Address : GTT_Address_Type; Valid : Boolean); + -- For the default framebuffer setup (see below) with 90 degree rotations, + -- we expect the offset which is used for the final scanout to be above + -- `GTT_Rotation_Offset`. So we can use `Offset - GTT_Rotation_Offset` for + -- the physical memory location and aperture mapping. + function Phys_Offset (FB : Framebuffer_Type) return Word32 is + (if Rotation_90 (FB) + then FB.Offset - Word32 (GTT_Rotation_Offset) * GTT_Page_Size + else FB.Offset); + procedure Setup_Default_FB (FB : in Framebuffer_Type; Clear : in Boolean := True; diff --git a/gfxtest/hw-gfx-gma-gfx_test.adb b/gfxtest/hw-gfx-gma-gfx_test.adb index 514e60f..cb09c63 100644 --- a/gfxtest/hw-gfx-gma-gfx_test.adb +++ b/gfxtest/hw-gfx-gma-gfx_test.adb @@ -78,13 +78,16 @@ 0 .. 3 * (Max_W * Max_H + FB_Align / 4) - 1; type Screen_Type is array (Screen_Index) of Word32; + function Screen_Offset (FB : Framebuffer_Type) return Natural is + (Natural (Phys_Offset (FB) / 4)); + package Screen is new MMIO_Range (0, Word32, Screen_Index, Screen_Type); Screen_Backup : Screen_Type; procedure Backup_Screen (FB : Framebuffer_Type) is - First : constant Screen_Index := Natural (FB.Offset) / 4; + First : constant Screen_Index := Screen_Offset (FB); Last : constant Screen_Index := First + Natural (FB_Size (FB)) / 4 - 1; begin for Idx in Screen_Index range First .. Last loop @@ -94,7 +97,7 @@ procedure Restore_Screen (FB : Framebuffer_Type) is - First : constant Screen_Index := Natural (FB.Offset) / 4; + First : constant Screen_Index := Screen_Offset (FB); Last : constant Screen_Index := First + Natural (FB_Size (FB)) / 4 - 1; begin for Idx in Screen_Index range First .. Last loop @@ -158,7 +161,7 @@ is P : Pixel_Type; -- We have pixel offset wheras the framebuffer has a byte offset - Offset_Y : Natural := Natural (Framebuffer.Offset / 4); + Offset_Y : Natural := Screen_Offset (Framebuffer); Offset : Natural; function Top_Test (X, Y : Natural) return Boolean @@ -214,7 +217,7 @@ V_Stride => Div_Round_Up (Pos32 (Mode.H_Visible), 32) * 32, Tiling => Y_Tiled, Rotation => Rotation, - Offset => Offset); + Offset => Offset + Word32 (GTT_Rotation_Offset) * GTT_Page_Size); else FB := (Width => Width_Type (Mode.H_Visible), -- To view, visit
https://review.coreboot.org/22864
To unsubscribe, visit
https://review.coreboot.org/settings
Gerrit-Project: libgfxinit Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I321a3db3af4b21eefbfc1bf0c2a7005feaf83c7a Gerrit-Change-Number: 22864 Gerrit-PatchSet: 1 Gerrit-Owner: Nico Huber <nico.h(a)gmx.de>
1
0
0
0
Change in coreboot[master]: mb/google/poppy: Enable speaker and codec for nami
by build bot (Jenkins) (Code Review)
14 Dec '17
14 Dec '17
build bot (Jenkins) has posted comments on this change. (
https://review.coreboot.org/22861
) Change subject: mb/google/poppy: Enable speaker and codec for nami ...................................................................... Patch Set 4: Verified+1 Build Successful
https://qa.coreboot.org/job/coreboot-checkpatch/19299/
: SUCCESS
https://qa.coreboot.org/job/coreboot-gerrit/64506/
: SUCCESS -- To view, visit
https://review.coreboot.org/22861
To unsubscribe, visit
https://review.coreboot.org/settings
Gerrit-Project: coreboot Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Iecf4059f8ea3d5e34f33f0be227897a8cca636fa Gerrit-Change-Number: 22861 Gerrit-PatchSet: 4 Gerrit-Owner: Gaggery Tsai <gaggery.tsai(a)intel.com> Gerrit-Reviewer: Gaggery Tsai <gaggery.tsai(a)intel.com> Gerrit-Reviewer: Gaggery Tsai <gaggery.tsai(a)intel.corp-partner.google.com> Gerrit-Reviewer: Kane Chen <kane.chen(a)intel.com> Gerrit-Reviewer: Marx Wang <marx.wang(a)intel.com> Gerrit-Reviewer: Paul Menzel <paulepanter(a)users.sourceforge.net> Gerrit-Reviewer: build bot (Jenkins) <no-reply(a)coreboot.org> Gerrit-Comment-Date: Thu, 14 Dec 2017 09:50:36 +0000 Gerrit-HasComments: No
1
0
0
0
Change in coreboot[master]: mb/google/nami: Revise speaker enable pin from A22 to A23
by build bot (Jenkins) (Code Review)
14 Dec '17
14 Dec '17
build bot (Jenkins) has posted comments on this change. (
https://review.coreboot.org/22863
) Change subject: mb/google/nami: Revise speaker enable pin from A22 to A23 ...................................................................... Patch Set 1: Verified+1 Build Successful
https://qa.coreboot.org/job/coreboot-checkpatch/19298/
: SUCCESS
https://qa.coreboot.org/job/coreboot-gerrit/64505/
: SUCCESS -- To view, visit
https://review.coreboot.org/22863
To unsubscribe, visit
https://review.coreboot.org/settings
Gerrit-Project: coreboot Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I4661749d0852f25e855d84f9416db67867545cb4 Gerrit-Change-Number: 22863 Gerrit-PatchSet: 1 Gerrit-Owner: Gaggery Tsai <gaggery.tsai(a)intel.com> Gerrit-Reviewer: build bot (Jenkins) <no-reply(a)coreboot.org> Gerrit-Comment-Date: Thu, 14 Dec 2017 09:26:43 +0000 Gerrit-HasComments: No
1
0
0
0
Change in coreboot[master]: mb/google/poppy: Enable speaker and codec for nami
by build bot (Jenkins) (Code Review)
14 Dec '17
14 Dec '17
build bot (Jenkins) has posted comments on this change. (
https://review.coreboot.org/22861
) Change subject: mb/google/poppy: Enable speaker and codec for nami ...................................................................... Patch Set 3: Verified+1 Build Successful
https://qa.coreboot.org/job/coreboot-checkpatch/19297/
: SUCCESS
https://qa.coreboot.org/job/coreboot-gerrit/64504/
: SUCCESS -- To view, visit
https://review.coreboot.org/22861
To unsubscribe, visit
https://review.coreboot.org/settings
Gerrit-Project: coreboot Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Iecf4059f8ea3d5e34f33f0be227897a8cca636fa Gerrit-Change-Number: 22861 Gerrit-PatchSet: 3 Gerrit-Owner: Gaggery Tsai <gaggery.tsai(a)intel.com> Gerrit-Reviewer: Gaggery Tsai <gaggery.tsai(a)intel.com> Gerrit-Reviewer: Gaggery Tsai <gaggery.tsai(a)intel.corp-partner.google.com> Gerrit-Reviewer: Kane Chen <kane.chen(a)intel.com> Gerrit-Reviewer: Marx Wang <marx.wang(a)intel.com> Gerrit-Reviewer: Paul Menzel <paulepanter(a)users.sourceforge.net> Gerrit-Reviewer: build bot (Jenkins) <no-reply(a)coreboot.org> Gerrit-Comment-Date: Thu, 14 Dec 2017 09:23:27 +0000 Gerrit-HasComments: No
1
0
0
0
← Newer
1
...
74
75
76
77
78
79
80
...
156
Older →
Jump to page:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
Results per page:
10
25
50
100
200