Stefan Reinauer has uploaded this change for review. ( https://review.coreboot.org/c/em100/+/45538 )
Change subject: em100: Always install signal handler
......................................................................
em100: Always install signal handler
Always catch SIGINT, because we don't want the tool to be interrupted
half way through operations. This might leave the EM100Pro in a bad state
that requires physically reconnecting the device. This renders the tool
virtually unusable for lab setups.
Signed-off-by: Stefan Reinauer <stefan.reinauer(a)coreboot.org>
Change-Id: I649dc491f68f764fdb1352599ff17b36e3d39fd8
---
M em100.c
1 file changed, 13 insertions(+), 6 deletions(-)
git pull ssh://review.coreboot.org:29418/em100 refs/changes/38/45538/1
diff --git a/em100.c b/em100.c
index 49d0d1e..580290a 100644
--- a/em100.c
+++ b/em100.c
@@ -840,6 +840,7 @@
unsigned long address_offset = 0;
unsigned int spi_start_address = 0;
const char *voltage = NULL;
+ struct sigaction signal_action;
while ((opt = getopt_long(argc, argv, "c:d:a:m:u:rsvtO:F:f:g:S:V:p:DCx:lUhT",
longopts, &idx)) != -1) {
@@ -936,6 +937,18 @@
if (desiredchip && !chip)
return 1;
+ /* Set up signal handler. This is used for two reasons:
+ * 1) to create a way to cleanly exit trace mode.
+ * 2) to make sure that the em100 is not left in an improper state
+ * when receiving SIGINT for other reasons during operation. In
+ * this second case, we just ignore SIGINT until em100 naturally
+ * terminates or receives a second signal. This is OK because the
+ * utility is short-running in nature.
+ */
+ signal_action.sa_handler = exit_handler;
+ signal_action.sa_flags = 0;
+ sigemptyset(&signal_action.sa_mask);
+ sigaction(SIGINT, &signal_action, NULL);
if (em100.hwversion == HWVERSION_EM100PRO || em100.hwversion == HWVERSION_EM100PRO_EARLY) {
printf("MCU version: %d.%02d\n", em100.mcu >> 8, em100.mcu & 0xff);
@@ -1177,8 +1190,6 @@
}
if (trace || terminal) {
- struct sigaction signal_action;
-
if ((holdpin == NULL) && (!set_hold_pin_state(&em100, 3))) {
printf("Error: Failed to set EM100 to input\n");
return 1;
@@ -1200,10 +1211,6 @@
}
printf(". Press CTL-C to exit.\n\n");
- signal_action.sa_handler = exit_handler;
- signal_action.sa_flags = 0;
- sigemptyset(&signal_action.sa_mask);
- sigaction(SIGINT, &signal_action, NULL);
while (!do_exit_flag) {
if (trace)
--
To view, visit https://review.coreboot.org/c/em100/+/45538
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: em100
Gerrit-Branch: master
Gerrit-Change-Id: I649dc491f68f764fdb1352599ff17b36e3d39fd8
Gerrit-Change-Number: 45538
Gerrit-PatchSet: 1
Gerrit-Owner: Stefan Reinauer <stefan.reinauer(a)coreboot.org>
Gerrit-MessageType: newchange
Hung-Te Lin has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/41503 )
Change subject: mb/google/kukui: Change AP ADC channel 4 to be high bits of RAM code
......................................................................
mb/google/kukui: Change AP ADC channel 4 to be high bits of RAM code
Kukui (eMCP, discrete) and Jacuzzi (discrete) are currently sharing same
memory code table with only one ADC (12 levels) and we are running out
of RAM IDs.
Considering there may be lots of requests of adding new second source
DRAM in future, we decided to increase the RAM code mapping table
instead of doing model-specific table. Now both ADC 2 and 4 will be RAM
code, and SKU straps will be moved from AP (ADC 2) to EC.
All existing devices should have grounded both AP SKU and EC SKU (e.g.,
0) so there should be no backward compatible issues.
BUG=b:156691665
TEST=make; boots on Kukui
BRANCH=kukui
Change-Id: Ib4f4866aa26fd9ea797c1b74b6b59349f1898ccd
Signed-off-by: Hung-Te Lin <hungte(a)chromium.org>
---
M src/mainboard/google/kukui/boardid.c
1 file changed, 9 insertions(+), 8 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/03/41503/1
diff --git a/src/mainboard/google/kukui/boardid.c b/src/mainboard/google/kukui/boardid.c
index 1b610ed..a2487b4 100644
--- a/src/mainboard/google/kukui/boardid.c
+++ b/src/mainboard/google/kukui/boardid.c
@@ -26,8 +26,8 @@
enum {
LCM_ID_CHANNEL = 2, /* ID of LCD Module on schematics. */
- RAM_ID_CHANNEL = 3,
- SKU_ID_CHANNEL = 4,
+ RAM_L_ID_CHANNEL = 3, /* Low 4 bits of RAM code */
+ RAM_H_ID_CHANNEL = 4, /* High 4 bits of RAM code */
};
static const int ram_voltages[ADC_LEVELS] = {
@@ -64,8 +64,8 @@
static const int *adc_voltages[] = {
[LCM_ID_CHANNEL] = lcm_voltages,
- [RAM_ID_CHANNEL] = ram_voltages,
- [SKU_ID_CHANNEL] = ram_voltages, /* SKU ID is sharing RAM voltages. */
+ [RAM_L_ID_CHANNEL] = ram_voltages,
+ [RAM_H_ID_CHANNEL] = ram_voltages,
};
static uint32_t get_adc_index(unsigned int channel)
@@ -101,7 +101,7 @@
return cached_sku_id;
}
- /* Quirk for Kukui: All Rev1/Sku0 had incorrectly set SKU_ID=1. */
+ /* Quirk for Kukui: All Rev1/Sku0 had incorrectly set SKU ID=1. */
if (CONFIG(BOARD_GOOGLE_KUKUI)) {
if (board_id() == 1) {
cached_sku_id = 0;
@@ -112,10 +112,10 @@
/*
* The SKU (later used for device tree matching) is combined from:
* ADC2[4bit/H] = straps on LCD module (type of panel).
- * ADC4[4bit/L] = SKU ID from board straps.
+ * EC [4bit/L] = straps on EC SKU ID straps.
*/
cached_sku_id = (get_adc_index(LCM_ID_CHANNEL) << 4 |
- get_adc_index(SKU_ID_CHANNEL));
+ google_chromeec_get_sku_id());
return cached_sku_id;
}
@@ -124,6 +124,7 @@
static uint32_t cached_ram_code = BOARD_ID_INIT;
if (cached_ram_code == BOARD_ID_INIT)
- cached_ram_code = get_adc_index(RAM_ID_CHANNEL);
+ cached_ram_code = (get_adc_index(RAM_H_ID_CHANNEL) << 4 |
+ get_adc_index(RAM_L_ID_CHANNEL));
return cached_ram_code;
}
--
To view, visit https://review.coreboot.org/c/coreboot/+/41503
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: Ib4f4866aa26fd9ea797c1b74b6b59349f1898ccd
Gerrit-Change-Number: 41503
Gerrit-PatchSet: 1
Gerrit-Owner: Hung-Te Lin <hungte(a)chromium.org>
Gerrit-MessageType: newchange
Stefan Reinauer has uploaded this change for review. ( https://review.coreboot.org/c/em100/+/45537 )
Change subject: Update to use upstream version 4.3.10
......................................................................
Update to use upstream version 4.3.10
Upstream 4.3.10 is using a different download slot, adjusting
the makechips.sh script.
Signed-off-by: Stefan Reinauer <stefan.reinauer(a)coreboot.org>
Change-Id: I740885e4773dcbd236d1a645e03b6896bf39c0d1
---
M makechips.sh
1 file changed, 1 insertion(+), 1 deletion(-)
git pull ssh://review.coreboot.org:29418/em100 refs/changes/37/45537/1
diff --git a/makechips.sh b/makechips.sh
index fcf0070..8a2d901 100755
--- a/makechips.sh
+++ b/makechips.sh
@@ -12,7 +12,7 @@
# GNU General Public License for more details.
#
-URL="https://www.dediprog.com/download/save/78.msi"
+URL="https://www.dediprog.com/download/save/1145.msi"
VURL="https://www.dediprog.com/download?productCategory=SPI+Flash+Solution&produc…"
if ! which curl > /dev/null; then
--
To view, visit https://review.coreboot.org/c/em100/+/45537
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: em100
Gerrit-Branch: master
Gerrit-Change-Id: I740885e4773dcbd236d1a645e03b6896bf39c0d1
Gerrit-Change-Number: 45537
Gerrit-PatchSet: 1
Gerrit-Owner: Stefan Reinauer <stefan.reinauer(a)coreboot.org>
Gerrit-MessageType: newchange
Angel Pons has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/45534 )
Change subject: nb/intel/haswell: Only hide PEG devices if ONBOARD_VGA_IS_PRIMARY
......................................................................
nb/intel/haswell: Only hide PEG devices if ONBOARD_VGA_IS_PRIMARY
The MRC will perform PCI enumeration, and if it detects a VGA
device in a PEG slot, it will disable the IGD and not reserve
any memory for it. Since the memory map is locked by the time
MRC finishes, the IGD can't be enabled afterwards. Wonderful.
If we are supposed to enable the onboard VGA as primary, hide
all PEG devices during MRC execution. This will trick the MRC
into thinking there aren't any, and will enable the IGD. Note
that PEG AFE settings will not be programmed, which may cause
stability problems at higher PCIe link speeds. The most ideal
way to fix this problem for good is to implement native init.
Change-Id: I4d825b1c41d8705bfafe28d8ecb0a511788901f0
Signed-off-by: Angel Pons <th3fanbus(a)gmail.com>
---
M src/northbridge/intel/haswell/early_init.c
1 file changed, 17 insertions(+), 6 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/34/45534/1
diff --git a/src/northbridge/intel/haswell/early_init.c b/src/northbridge/intel/haswell/early_init.c
index 9db6a9d..d3d511e 100644
--- a/src/northbridge/intel/haswell/early_init.c
+++ b/src/northbridge/intel/haswell/early_init.c
@@ -84,13 +84,24 @@
printk(BIOS_DEBUG, "Started PEG1%d link training.\n", PCI_FUNC(PCI_DEV2DEVFN(dev)));
/*
- * Hide the PEG device while the MRC runs. This is because the MRC makes
- * configurations that are not ideal if it sees a VGA device in a PEG slot,
- * and it locks registers preventing changes to these configurations.
+ * The MRC will perform PCI enumeration, and if it detects a VGA
+ * device in a PEG slot, it will disable the IGD and not reserve
+ * any memory for it. Since the memory map is locked by the time
+ * MRC finishes, the IGD can't be enabled afterwards. Wonderful.
+ *
+ * If we are supposed to enable the onboard VGA as primary, hide
+ * all PEG devices during MRC execution. This will trick the MRC
+ * into thinking there aren't any, and will enable the IGD. Note
+ * that PEG AFE settings will not be programmed, which may cause
+ * stability problems at higher PCIe link speeds. The most ideal
+ * way to fix this problem for good is to implement native init.
*/
- pci_update_config32(HOST_BRIDGE, DEVEN, ~mask, 0);
- peg_hidden[PCI_FUNC(PCI_DEV2DEVFN(dev))] = true;
- printk(BIOS_DEBUG, "Temporarily hiding PEG1%d.\n", PCI_FUNC(PCI_DEV2DEVFN(dev)));
+ if (CONFIG(ONBOARD_VGA_IS_PRIMARY)) {
+ pci_update_config32(HOST_BRIDGE, DEVEN, ~mask, 0);
+ peg_hidden[PCI_FUNC(PCI_DEV2DEVFN(dev))] = true;
+ printk(BIOS_DEBUG, "Temporarily hiding PEG1%d.\n",
+ PCI_FUNC(PCI_DEV2DEVFN(dev)));
+ }
}
void haswell_unhide_peg(void)
--
To view, visit https://review.coreboot.org/c/coreboot/+/45534
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: I4d825b1c41d8705bfafe28d8ecb0a511788901f0
Gerrit-Change-Number: 45534
Gerrit-PatchSet: 1
Gerrit-Owner: Angel Pons <th3fanbus(a)gmail.com>
Gerrit-MessageType: newchange
Hello Martin Roth, Marc Jones, Johnny Lin, Angel Pons,
I'd like you to do a code review. Please visit
https://review.coreboot.org/c/coreboot/+/45771
to review the following change.
Change subject: [RFC] console/init: Drop get_console_loglevel() API
......................................................................
[RFC] console/init: Drop get_console_loglevel() API
It's not used anymore. We keep the CONSOLE_OVERRIDE_LOGLEVEL Kconfig,
though, as it provides some user Kconfig comfort (we can hide unneces-
sary prompts).
Change-Id: Id6dd54534267c5419cbe81ee4b66f7b753a6e6cf
Signed-off-by: Nico Huber <nico.h(a)gmx.de>
---
M src/console/Kconfig
M src/console/init.c
M src/include/console/console.h
3 files changed, 4 insertions(+), 15 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/71/45771/1
diff --git a/src/console/Kconfig b/src/console/Kconfig
index bad6c56..57b932d 100644
--- a/src/console/Kconfig
+++ b/src/console/Kconfig
@@ -312,8 +312,9 @@
config CONSOLE_OVERRIDE_LOGLEVEL
bool
help
- Set to "y" when the platform overrides the loglevel by providing
- a get_console_loglevel routine.
+ Set to "y" when the platform unconditionally overrides the
+ loglevel default. Then we don't need to present the choice
+ below.
if !CONSOLE_OVERRIDE_LOGLEVEL
diff --git a/src/console/init.c b/src/console/init.c
index 9776e2a..2be2e5a 100644
--- a/src/console/init.c
+++ b/src/console/init.c
@@ -21,7 +21,7 @@
static void init_log_level(void)
{
- int debug_level = get_console_loglevel();
+ int debug_level = CONFIG_DEFAULT_CONSOLE_LOGLEVEL;
get_option(&debug_level, "debug_level");
diff --git a/src/include/console/console.h b/src/include/console/console.h
index a96eb15..bb19cb7 100644
--- a/src/include/console/console.h
+++ b/src/include/console/console.h
@@ -49,18 +49,6 @@
enum { CONSOLE_LOG_NONE = 0, CONSOLE_LOG_FAST, CONSOLE_LOG_ALL };
-#if CONFIG(CONSOLE_OVERRIDE_LOGLEVEL)
-/*
- * This function should be implemented at mainboard level.
- * The returned value will _replace_ the loglevel value;
- */
-int get_console_loglevel(void);
-#else
-static inline int get_console_loglevel(void)
-{
- return CONFIG_DEFAULT_CONSOLE_LOGLEVEL;
-}
-#endif
#else
static inline void console_init(void) {}
static inline int console_log_level(int msg_level) { return 0; }
--
To view, visit https://review.coreboot.org/c/coreboot/+/45771
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: Id6dd54534267c5419cbe81ee4b66f7b753a6e6cf
Gerrit-Change-Number: 45771
Gerrit-PatchSet: 1
Gerrit-Owner: Nico Huber <nico.h(a)gmx.de>
Gerrit-Reviewer: Angel Pons <th3fanbus(a)gmail.com>
Gerrit-Reviewer: Johnny Lin <Johnny_Lin(a)wiwynn.com>
Gerrit-Reviewer: Marc Jones <marc.jones(a)amd.corp-partner.google.com>
Gerrit-Reviewer: Martin Roth <martinroth(a)google.com>
Gerrit-MessageType: newchange