Felix Held has submitted this change. ( https://review.coreboot.org/c/coreboot/+/57295 )
Change subject: soc/intel/common/cse: Add argument for CSE fixed client addr
......................................................................
soc/intel/common/cse: Add argument for CSE fixed client addr
There are multiple HECI clients in the CSE. heci_send_receive() is
sending HECI messages to only the MKHI client. Add an argument to
heci_send_receive() function to provide flexibility to the caller to
select the client for which the message is intended.
With the above change heci_send() and heci_receive() functions are
no longer required to be exposed.
In the follow-up patches there will be messages sent to one other
client.
BUG=None
BRANCH=None
TEST=Build and boot brya. HECI message send and receive to MKHI client
is working. Also, MEI BUS message to disable bus is working.
Signed-off-by: Rizwan Qureshi <rizwan.qureshi(a)intel.com>
Change-Id: Icde6d0155b62472b6a7caadc5fc8ea2e2ba6eb0c
Reviewed-on: https://review.coreboot.org/c/coreboot/+/57295
Tested-by: build bot (Jenkins) <no-reply(a)coreboot.org>
Reviewed-by: Tim Wawrzynczak <twawrzynczak(a)chromium.org>
---
M src/soc/intel/apollolake/cse.c
M src/soc/intel/common/block/cse/cse.c
M src/soc/intel/common/block/cse/cse_eop.c
M src/soc/intel/common/block/cse/cse_lite.c
M src/soc/intel/common/block/include/intelblocks/cse.h
5 files changed, 38 insertions(+), 49 deletions(-)
Approvals:
build bot (Jenkins): Verified
Tim Wawrzynczak: Looks good to me, approved
diff --git a/src/soc/intel/apollolake/cse.c b/src/soc/intel/apollolake/cse.c
index 1558d38..24fb417 100644
--- a/src/soc/intel/apollolake/cse.c
+++ b/src/soc/intel/apollolake/cse.c
@@ -44,7 +44,6 @@
static int read_cse_file(const char *path, void *buff, size_t *size,
size_t offset, uint32_t flags)
{
- int res;
size_t reply_size;
struct mca_command {
@@ -77,18 +76,10 @@
msg.data_size = *size;
msg.offset = offset;
- res = heci_send(&msg, sizeof(msg), BIOS_HOST_ADDR, HECI_MKHI_ADDR);
-
- if (!res) {
- printk(BIOS_ERR, "failed to send HECI message\n");
- return 0;
- }
-
reply_size = sizeof(rmsg);
- res = heci_receive(&rmsg, &reply_size);
- if (!res) {
- printk(BIOS_ERR, "failed to receive HECI reply\n");
+ if (!heci_send_receive(&msg, sizeof(msg), &rmsg, &reply_size, HECI_MKHI_ADDR)) {
+ printk(BIOS_ERR, "HECI: Failed to read file\n");
return 0;
}
diff --git a/src/soc/intel/common/block/cse/cse.c b/src/soc/intel/common/block/cse/cse.c
index 7708c1b..1cea7d9 100644
--- a/src/soc/intel/common/block/cse/cse.c
+++ b/src/soc/intel/common/block/cse/cse.c
@@ -384,7 +384,12 @@
return pend_len;
}
-int
+/*
+ * Send message msg of size len to host from host_addr to cse_addr.
+ * Returns 1 on success and 0 otherwise.
+ * In case of error heci_reset() may be required.
+ */
+static int
heci_send(const void *msg, size_t len, uint8_t host_addr, uint8_t client_addr)
{
uint8_t retry;
@@ -487,7 +492,15 @@
return recv_len;
}
-int heci_receive(void *buff, size_t *maxlen)
+/*
+ * Receive message into buff not exceeding maxlen. Message is considered
+ * successfully received if a 'complete' indication is read from ME side
+ * and there was enough space in the buffer to fit that message. maxlen
+ * is updated with size of message that was received. Returns 0 on failure
+ * and 1 on success.
+ * In case of error heci_reset() may be required.
+ */
+static int heci_receive(void *buff, size_t *maxlen)
{
uint8_t retry;
size_t left, received;
@@ -533,9 +546,10 @@
return 0;
}
-int heci_send_receive(const void *snd_msg, size_t snd_sz, void *rcv_msg, size_t *rcv_sz)
+int heci_send_receive(const void *snd_msg, size_t snd_sz, void *rcv_msg, size_t *rcv_sz,
+ uint8_t cse_addr)
{
- if (!heci_send(snd_msg, snd_sz, BIOS_HOST_ADDR, HECI_MKHI_ADDR)) {
+ if (!heci_send(snd_msg, snd_sz, BIOS_HOST_ADDR, cse_addr)) {
printk(BIOS_ERR, "HECI: send Failed\n");
return 0;
}
@@ -663,7 +677,8 @@
if (rst_type == CSE_RESET_ONLY)
status = heci_send(&msg, sizeof(msg), BIOS_HOST_ADDR, HECI_MKHI_ADDR);
else
- status = heci_send_receive(&msg, sizeof(msg), &reply, &reply_size);
+ status = heci_send_receive(&msg, sizeof(msg), &reply, &reply_size,
+ HECI_MKHI_ADDR);
printk(BIOS_DEBUG, "HECI: Global Reset %s!\n", status ? "success" : "failure");
return status;
@@ -733,7 +748,7 @@
}
if (!heci_send_receive(&msg, sizeof(struct hmrfpo_enable_msg),
- &resp, &resp_size))
+ &resp, &resp_size, HECI_MKHI_ADDR))
return 0;
if (resp.hdr.result) {
@@ -782,7 +797,7 @@
}
if (!heci_send_receive(&msg, sizeof(struct hmrfpo_get_status_msg),
- &resp, &resp_size)) {
+ &resp, &resp_size, HECI_MKHI_ADDR)) {
printk(BIOS_ERR, "HECI: HMRFPO send/receive fail\n");
return -1;
}
@@ -847,7 +862,8 @@
heci_reset();
- if (!heci_send_receive(&fw_ver_msg, sizeof(fw_ver_msg), &resp, &resp_size))
+ if (!heci_send_receive(&fw_ver_msg, sizeof(fw_ver_msg), &resp, &resp_size,
+ HECI_MKHI_ADDR))
goto fail;
if (resp.hdr.result)
diff --git a/src/soc/intel/common/block/cse/cse_eop.c b/src/soc/intel/common/block/cse/cse_eop.c
index 6e57439..d8c6430 100644
--- a/src/soc/intel/common/block/cse/cse_eop.c
+++ b/src/soc/intel/common/block/cse/cse_eop.c
@@ -33,16 +33,10 @@
uint8_t reserved[2];
} __packed reply = {};
- /* This is sent to the MEI client endpoint, not the MKHI endpoint */
- int ret = heci_send(&msg, sizeof(msg), BIOS_HOST_ADDR, HECI_MEI_ADDR);
- if (!ret) {
- printk(BIOS_ERR, "HECI: Failed to send MEI bus disable command!\n");
- return false;
- }
-
size_t reply_sz = sizeof(reply);
- if (!heci_receive(&reply, &reply_sz)) {
- printk(BIOS_ERR, "HECI: Failed to receive a reply from CSE\n");
+
+ if (!heci_send_receive(&msg, sizeof(msg), &reply, &reply_sz, HECI_MEI_ADDR)) {
+ printk(BIOS_ERR, "HECI: Failed to Disable MEI bus\n");
return false;
}
@@ -112,7 +106,7 @@
printk(BIOS_INFO, "HECI: Sending End-of-Post\n");
- if (!heci_send_receive(&msg, sizeof(msg), &resp, &resp_size)) {
+ if (!heci_send_receive(&msg, sizeof(msg), &resp, &resp_size, HECI_MKHI_ADDR)) {
printk(BIOS_ERR, "HECI: EOP send/receive fail\n");
return CSE_EOP_RESULT_ERROR;
}
diff --git a/src/soc/intel/common/block/cse/cse_lite.c b/src/soc/intel/common/block/cse/cse_lite.c
index 15d585d..762de2a 100644
--- a/src/soc/intel/common/block/cse/cse_lite.c
+++ b/src/soc/intel/common/block/cse/cse_lite.c
@@ -202,7 +202,8 @@
size_t resp_size = sizeof(struct get_bp_info_rsp);
- if (!heci_send_receive(&info_req, sizeof(info_req), bp_info_rsp, &resp_size)) {
+ if (!heci_send_receive(&info_req, sizeof(info_req), bp_info_rsp, &resp_size,
+ HECI_MKHI_ADDR)) {
printk(BIOS_ERR, "cse_lite: Could not get partition info\n");
return false;
}
@@ -254,7 +255,8 @@
struct mkhi_hdr switch_resp;
size_t sw_resp_sz = sizeof(struct mkhi_hdr);
- if (!heci_send_receive(&switch_req, sizeof(switch_req), &switch_resp, &sw_resp_sz))
+ if (!heci_send_receive(&switch_req, sizeof(switch_req), &switch_resp, &sw_resp_sz,
+ HECI_MKHI_ADDR))
return false;
if (switch_resp.result) {
@@ -291,7 +293,7 @@
size_t data_clr_rsp_sz = sizeof(data_clr_rsp);
if (!heci_send_receive(&data_clr_rq, sizeof(data_clr_rq), &data_clr_rsp,
- &data_clr_rsp_sz)) {
+ &data_clr_rsp_sz, HECI_MKHI_ADDR)) {
return false;
}
diff --git a/src/soc/intel/common/block/include/intelblocks/cse.h b/src/soc/intel/common/block/include/intelblocks/cse.h
index 153cb22..9753798 100644
--- a/src/soc/intel/common/block/include/intelblocks/cse.h
+++ b/src/soc/intel/common/block/include/intelblocks/cse.h
@@ -130,29 +130,15 @@
/* set up device for use in early boot enviroument with temp bar */
void heci_init(uintptr_t bar);
-/*
- * Receive message into buff not exceeding maxlen. Message is considered
- * successfully received if a 'complete' indication is read from ME side
- * and there was enough space in the buffer to fit that message. maxlen
- * is updated with size of message that was received. Returns 0 on failure
- * and 1 on success.
- * In case of error heci_reset() may be requiered.
- */
-int heci_receive(void *buff, size_t *maxlen);
-/*
- * Send message msg of size len to host from host_addr to cse_addr.
- * Returns 1 on success and 0 otherwise.
- * In case of error heci_reset() may be requiered.
- */
-int
-heci_send(const void *msg, size_t len, uint8_t host_addr, uint8_t cse_addr);
/*
+ * Send message from BIOS_HOST_ADDR to cse_addr.
* Sends snd_msg of size snd_sz, and reads message into buffer pointed by
* rcv_msg of size rcv_sz
* Returns 0 on failure and 1 on success.
*/
-int heci_send_receive(const void *snd_msg, size_t snd_sz, void *rcv_msg, size_t *rcv_sz);
+int heci_send_receive(const void *snd_msg, size_t snd_sz, void *rcv_msg, size_t *rcv_sz,
+ uint8_t cse_addr);
/*
* Attempt device reset. This is useful and perhaps only thing left to do when
--
To view, visit https://review.coreboot.org/c/coreboot/+/57295
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: Icde6d0155b62472b6a7caadc5fc8ea2e2ba6eb0c
Gerrit-Change-Number: 57295
Gerrit-PatchSet: 11
Gerrit-Owner: Rizwan Qureshi <rizwan.qureshi(a)intel.com>
Gerrit-Reviewer: Andrey Petrov <andrey.petrov(a)gmail.com>
Gerrit-Reviewer: Aseda Aboagye <aaboagye(a)google.com>
Gerrit-Reviewer: Felix Held <felix-coreboot(a)felixheld.de>
Gerrit-Reviewer: Karthik Ramasubramanian <kramasub(a)google.com>
Gerrit-Reviewer: Patrick Rudolph <siro(a)das-labor.org>
Gerrit-Reviewer: Sridhar Siricilla <sridhar.siricilla(a)intel.com>
Gerrit-Reviewer: Tim Wawrzynczak <twawrzynczak(a)chromium.org>
Gerrit-Reviewer: build bot (Jenkins) <no-reply(a)coreboot.org>
Gerrit-CC: Furquan Shaikh <furquan(a)google.com>
Gerrit-CC: Paul Menzel <paulepanter(a)mailbox.org>
Gerrit-MessageType: merged
Felix Held has submitted this change. ( https://review.coreboot.org/c/coreboot/+/57310 )
Change subject: mb/google/dedede/var/gooey: Add MT53E512M32D1NP-046 as supported mem module
......................................................................
mb/google/dedede/var/gooey: Add MT53E512M32D1NP-046 as supported mem module
Add MT53E512M32D1NP-046 WT:B supported memory part in the
mem_parts_used.txt and generate the SPD ID for the part. Manufacturer
is Micron, and the memory part is 1anm Tech, difference to 1xnm Tech
on MT53E512M32D2NP-046.
BUG=b:194223174
BRANCH=dedede
TEST=Build the gooey board.
Change-Id: I7b83126a2bf98bb9d0ca05d397c288e0d99ed781
Signed-off-by: Stanley Wu <stanley1.wu(a)lcfc.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/57310
Reviewed-by: Paul Fagerburg <pfagerburg(a)chromium.org>
Reviewed-by: Paul Menzel <paulepanter(a)mailbox.org>
Tested-by: build bot (Jenkins) <no-reply(a)coreboot.org>
---
M src/mainboard/google/dedede/variants/gooey/memory/Makefile.inc
M src/mainboard/google/dedede/variants/gooey/memory/dram_id.generated.txt
M src/mainboard/google/dedede/variants/gooey/memory/mem_list_variant.txt
3 files changed, 3 insertions(+), 1 deletion(-)
Approvals:
build bot (Jenkins): Verified
Paul Menzel: Looks good to me, but someone else must approve
Paul Fagerburg: Looks good to me, approved
diff --git a/src/mainboard/google/dedede/variants/gooey/memory/Makefile.inc b/src/mainboard/google/dedede/variants/gooey/memory/Makefile.inc
index d0960c7..c0c0902 100644
--- a/src/mainboard/google/dedede/variants/gooey/memory/Makefile.inc
+++ b/src/mainboard/google/dedede/variants/gooey/memory/Makefile.inc
@@ -2,4 +2,4 @@
## This is an auto-generated file. Do not edit!!
SPD_SOURCES =
-SPD_SOURCES += lp4x-spd-1.hex # ID = 0(0b0000) Parts = MT53E512M32D2NP-046 WT:E, K4U6E3S4AA-MGCR, H9HCNNNBKMMLXR-NEE
+SPD_SOURCES += lp4x-spd-1.hex # ID = 0(0b0000) Parts = MT53E512M32D2NP-046 WT:E, K4U6E3S4AA-MGCR, H9HCNNNBKMMLXR-NEE, MT53E512M32D1NP-046 WT:B
diff --git a/src/mainboard/google/dedede/variants/gooey/memory/dram_id.generated.txt b/src/mainboard/google/dedede/variants/gooey/memory/dram_id.generated.txt
index 0df7bfc..7576d17 100644
--- a/src/mainboard/google/dedede/variants/gooey/memory/dram_id.generated.txt
+++ b/src/mainboard/google/dedede/variants/gooey/memory/dram_id.generated.txt
@@ -2,3 +2,4 @@
MT53E512M32D2NP-046 WT:E 0 (0000)
K4U6E3S4AA-MGCR 0 (0000)
H9HCNNNBKMMLXR-NEE 0 (0000)
+MT53E512M32D1NP-046 WT:B 0 (0000)
diff --git a/src/mainboard/google/dedede/variants/gooey/memory/mem_list_variant.txt b/src/mainboard/google/dedede/variants/gooey/memory/mem_list_variant.txt
index 47159f8..04f01b3 100644
--- a/src/mainboard/google/dedede/variants/gooey/memory/mem_list_variant.txt
+++ b/src/mainboard/google/dedede/variants/gooey/memory/mem_list_variant.txt
@@ -1,3 +1,4 @@
MT53E512M32D2NP-046 WT:E
K4U6E3S4AA-MGCR
H9HCNNNBKMMLXR-NEE
+MT53E512M32D1NP-046 WT:B
2 is the latest approved patch-set.
No files were changed between the latest approved patch-set and the submitted one.
--
To view, visit https://review.coreboot.org/c/coreboot/+/57310
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: I7b83126a2bf98bb9d0ca05d397c288e0d99ed781
Gerrit-Change-Number: 57310
Gerrit-PatchSet: 4
Gerrit-Owner: Stanley Wu <stanley1.wu(a)lcfc.corp-partner.google.com>
Gerrit-Reviewer: Felix Held <felix-coreboot(a)felixheld.de>
Gerrit-Reviewer: Henry Sun <henrysun(a)google.com>
Gerrit-Reviewer: Karthik Ramasubramanian <kramasub(a)google.com>
Gerrit-Reviewer: Paul Fagerburg <pfagerburg(a)chromium.org>
Gerrit-Reviewer: Paul Menzel <paulepanter(a)mailbox.org>
Gerrit-Reviewer: build bot (Jenkins) <no-reply(a)coreboot.org>
Gerrit-CC: Jerry2 Huang <jerry2.huang(a)lcfc.corp-partner.google.com>
Gerrit-CC: Sunshine Chao <sunshine.chao(a)lcfc.corp-partner.google.com>
Gerrit-MessageType: merged
Felix Held has submitted this change. ( https://review.coreboot.org/c/coreboot/+/57201 )
Change subject: soc/intel/jasperlake: Utilize vbt data size Kconfig option
......................................................................
soc/intel/jasperlake: Utilize vbt data size Kconfig option
Currently maximum VBT data size for Jasper Lake is 8KB, but Bugzzy
would use VBT data over 8KB. This change makes use of Kconfig option to
increase the maximum VBT data size to 9KB for Jasper Lake.
BUG=b:194029827
BRANCH=dedede
TEST=build and boot bugzzy and verify fw screen is loaded
Change-Id: I0abe1ba5609b48a8a8b15f88bec28342ce26c78f
Signed-off-by: Seunghwan Kim <sh_.kim(a)samsung.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/57201
Reviewed-by: Karthik Ramasubramanian <kramasub(a)google.com>
Tested-by: build bot (Jenkins) <no-reply(a)coreboot.org>
---
M src/soc/intel/jasperlake/Kconfig
1 file changed, 4 insertions(+), 0 deletions(-)
Approvals:
build bot (Jenkins): Verified
Karthik Ramasubramanian: Looks good to me, approved
diff --git a/src/soc/intel/jasperlake/Kconfig b/src/soc/intel/jasperlake/Kconfig
index fa26a54..c40c153 100644
--- a/src/soc/intel/jasperlake/Kconfig
+++ b/src/soc/intel/jasperlake/Kconfig
@@ -174,6 +174,10 @@
hex
default 0xc35
+config VBT_DATA_SIZE_KB
+ int
+ default 9
+
config VBOOT
select VBOOT_SEPARATE_VERSTAGE
select VBOOT_MUST_REQUEST_DISPLAY
--
To view, visit https://review.coreboot.org/c/coreboot/+/57201
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: I0abe1ba5609b48a8a8b15f88bec28342ce26c78f
Gerrit-Change-Number: 57201
Gerrit-PatchSet: 10
Gerrit-Owner: shkim <sh_.kim(a)samsung.com>
Gerrit-Reviewer: Felix Held <felix-coreboot(a)felixheld.de>
Gerrit-Reviewer: Jamie Chen <jamie.chen(a)intel.corp-partner.google.com>
Gerrit-Reviewer: Karthik Ramasubramanian <kramasub(a)google.com>
Gerrit-Reviewer: Patrick Rudolph <siro(a)das-labor.org>
Gerrit-Reviewer: SH Kim <sh_.kim(a)samsung.corp-partner.google.com>
Gerrit-Reviewer: build bot (Jenkins) <no-reply(a)coreboot.org>
Gerrit-CC: Paul Menzel <paulepanter(a)mailbox.org>
Gerrit-MessageType: merged