Raul Rangel has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/56351 )
Change subject: lib/thread: Make thread_run not block the current state
......................................................................
lib/thread: Make thread_run not block the current state
If a thread wants to block a state transition it can use
thread_run_until. Otherwise just let the thread run. `thread_join` can
be used to block on the thread. Boot states are also a ramstage concept.
If we want to use this API in any other stage, we need a way of starting
a thread without talking about stages.
BUG=b:179699789
TEST=verify thread_run no longer blocks the current state
Signed-off-by: Raul E Rangel <rrangel(a)chromium.org>
Change-Id: I3e5b0aed70385ddcd23ffcf7b063f8ccb547fc05
---
M src/include/thread.h
M src/lib/thread.c
2 files changed, 3 insertions(+), 16 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/51/56351/1
diff --git a/src/include/thread.h b/src/include/thread.h
index ff3212b..aa1531d 100644
--- a/src/include/thread.h
+++ b/src/include/thread.h
@@ -46,9 +46,8 @@
*/
void *arch_get_thread_stackbase(void);
/* Run func(arrg) on a new thread. Return 0 on successful start of thread, < 0
- * when thread could not be started. Note that the thread will block the
- * current state in the boot state machine until it is complete. The thread
- * handle if populated, will reflect the state and return code of the thread.
+ * when thread could not be started. The thread handle if populated, will
+ * reflect the state and return code of the thread.
*/
int thread_run(struct thread_handle *handle, enum cb_err (*func)(void *), void *arg);
/* thread_run_until is the same as thread_run() except that it blocks state
diff --git a/src/lib/thread.c b/src/lib/thread.c
index 5ac740a..a1d06b8 100644
--- a/src/lib/thread.c
+++ b/src/lib/thread.c
@@ -161,18 +161,6 @@
terminate_thread(current, error);
}
-/* Block the current state transitions until thread is complete. */
-static void asmlinkage call_wrapper_block_current(void *unused)
-{
- struct thread *current = current_thread();
- enum cb_err error;
-
- boot_state_current_block();
- error = current->entry(current->entry_arg);
- boot_state_current_unblock();
- terminate_thread(current, error);
-}
-
struct block_boot_state {
boot_state_t state;
boot_state_sequence_t seq;
@@ -310,7 +298,7 @@
return -1;
}
- prepare_thread(t, handle, func, arg, call_wrapper_block_current, NULL);
+ prepare_thread(t, handle, func, arg, call_wrapper, NULL);
schedule(t);
return 0;
--
To view, visit https://review.coreboot.org/c/coreboot/+/56351
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: I3e5b0aed70385ddcd23ffcf7b063f8ccb547fc05
Gerrit-Change-Number: 56351
Gerrit-PatchSet: 1
Gerrit-Owner: Raul Rangel <rrangel(a)chromium.org>
Gerrit-MessageType: newchange
Raul Rangel has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/56350 )
Change subject: lib/thread: Allow nesting thread_cooperate and thread_prevent_coop
......................................................................
lib/thread: Allow nesting thread_cooperate and thread_prevent_coop
This change allows nesting critical sections, and frees the caller from
having to keep track of whether the thread has coop enabled.
I also removed the `thread_cooperate` inside of `idle_thread_init` since
it was really setting up the BSP thread and had nothing to do with the
idle thread.
BUG=b:179699789
TEST=Boot guybrush with SPI DMA
Suggested-by: Julius Werner <jwerner(a)chromium.org>
Signed-off-by: Raul E Rangel <rrangel(a)chromium.org>
Change-Id: I325ab6181b17c5c084ca1e2c181b4df235020557
---
M src/include/thread.h
M src/lib/thread.c
2 files changed, 17 insertions(+), 9 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/50/56350/1
diff --git a/src/include/thread.h b/src/include/thread.h
index 6df9d7e..8f12343 100644
--- a/src/include/thread.h
+++ b/src/include/thread.h
@@ -43,8 +43,13 @@
/* Allow and prevent thread cooperation on current running thread. By default
* all threads are marked to be cooperative. That means a thread can yield
- * to another thread at a pre-determined switch point. Current there is
- * only a single place where switching may occur: a call to udelay(). */
+ * to another thread at a pre-determined switch point. i.e., udelay,
+ * thread_yield, or thread_yield_microseconds.
+ *
+ * These method should be used to guard critical sections so a dead lock does
+ * not occur. The critical sections can be nested. Just make sure the methods
+ * are used in pairs.
+ */
void thread_cooperate(void);
void thread_prevent_coop(void);
diff --git a/src/lib/thread.c b/src/lib/thread.c
index a8c0772c..db70b17 100644
--- a/src/lib/thread.c
+++ b/src/lib/thread.c
@@ -31,7 +31,7 @@
static inline int thread_can_yield(const struct thread *t)
{
- return (t != NULL && t->can_yield);
+ return (t != NULL && t->can_yield > 0);
}
/* Assumes current CPU info can switch. */
@@ -213,8 +213,6 @@
/* Queue idle thread to run once all other threads have yielded. */
prepare_thread(t, idle_thread, NULL, call_wrapper, NULL);
push_runnable(t);
- /* Mark the currently executing thread to cooperate. */
- thread_cooperate();
}
/* Don't inline this function so the timeout_callback won't have its storage
@@ -260,6 +258,7 @@
ci->thread = t;
t->stack_orig = (uintptr_t)ci;
t->id = 0;
+ t->can_yield = 1;
stack_top = &thread_stacks[CONFIG_STACK_SIZE] - sizeof(struct cpu_info);
for (i = 1; i < TOTAL_NUM_THREADS; i++) {
@@ -359,8 +358,10 @@
current = current_thread();
- if (current != NULL)
- current->can_yield = 1;
+ if (current == NULL)
+ return;
+
+ current->can_yield++;
}
void thread_prevent_coop(void)
@@ -369,6 +370,8 @@
current = current_thread();
- if (current != NULL)
- current->can_yield = 0;
+ if (current == NULL)
+ return;
+
+ current->can_yield--;
}
--
To view, visit https://review.coreboot.org/c/coreboot/+/56350
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: I325ab6181b17c5c084ca1e2c181b4df235020557
Gerrit-Change-Number: 56350
Gerrit-PatchSet: 1
Gerrit-Owner: Raul Rangel <rrangel(a)chromium.org>
Gerrit-MessageType: newchange
Raul Rangel has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/56349 )
Change subject: lib/thread: Add thread_yield helper method
......................................................................
lib/thread: Add thread_yield helper method
This helper method is just a shorthand for
`thread_yield_microseconds(0)`. I think it makes it clear that we want
to yield a thread without delaying.
BUG=b:179699789
TEST=build test
Suggested-by: Julius Werner <jwerner(a)chromium.org>
Signed-off-by: Raul E Rangel <rrangel(a)chromium.org>
Change-Id: Id8b60c35b183cff6871d7ba70b36eb33b136c735
---
M src/include/thread.h
M src/lib/thread.c
2 files changed, 13 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/49/56349/1
diff --git a/src/include/thread.h b/src/include/thread.h
index da8ed72..6df9d7e 100644
--- a/src/include/thread.h
+++ b/src/include/thread.h
@@ -33,6 +33,10 @@
* machine. */
int thread_run_until(void (*func)(void *), void *arg,
boot_state_t state, boot_state_sequence_t seq);
+
+/* Return 0 on successful yield, < 0 when thread did not yield. */
+int thread_yield(void);
+
/* Return 0 on successful yield for the given amount of time, < 0 when thread
* did not yield. */
int thread_yield_microseconds(unsigned int microsecs);
@@ -64,6 +68,10 @@
{
return -1;
}
+static inline int thread_yield(void)
+{
+ return -1;
+}
static inline int thread_yield_microseconds(unsigned int microsecs)
{
return -1;
diff --git a/src/lib/thread.c b/src/lib/thread.c
index 782a63e..a8c0772c 100644
--- a/src/lib/thread.c
+++ b/src/lib/thread.c
@@ -332,6 +332,11 @@
return 0;
}
+int thread_yield(void)
+{
+ return thread_yield_microseconds(0);
+}
+
int thread_yield_microseconds(unsigned int microsecs)
{
struct thread *current;
--
To view, visit https://review.coreboot.org/c/coreboot/+/56349
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: Id8b60c35b183cff6871d7ba70b36eb33b136c735
Gerrit-Change-Number: 56349
Gerrit-PatchSet: 1
Gerrit-Owner: Raul Rangel <rrangel(a)chromium.org>
Gerrit-MessageType: newchange
Attention is currently required from: Jason Glenesk, Marshall Dawson, Julius Werner, Felix Held.
Raul Rangel has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/56232 )
Change subject: soc/amd/common/apob: Add support for asynchronously reading APOB_NV
......................................................................
Patch Set 7:
(3 comments)
File src/soc/amd/common/block/apob/apob_cache.c:
https://review.coreboot.org/c/coreboot/+/56232/comment/22162587_def00a80
PS6, Line 71: if (fmap_locate_area(DEFAULT_MRC_CACHE, r) < 0) {
> off-topic, but I'd really advise against juggling raw regions like this. […]
I think the reason we do this is because we start with the ro rdev, and if we need to update the SPI, then we switch to the rw rdev.
https://review.coreboot.org/c/coreboot/+/56232/comment/7ef8606d_c483593a
PS6, Line 79: struct apob_thread_context {
> Should be static.
Done
https://review.coreboot.org/c/coreboot/+/56232/comment/1e743ffe_09a5e9b6
PS6, Line 135: if (wait_for_thread(&global_apob_thread.handle) == CB_SUCCESS) {
> I think this should be guarded by COOP_MULTITASKING, it looks weird if you just rely on this returni […]
Done
--
To view, visit https://review.coreboot.org/c/coreboot/+/56232
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: I930d58b76eb4558bc4f48ed928c4d6538fefb1e5
Gerrit-Change-Number: 56232
Gerrit-PatchSet: 7
Gerrit-Owner: Raul Rangel <rrangel(a)chromium.org>
Gerrit-Reviewer: Eric Peers <epeers(a)google.com>
Gerrit-Reviewer: Felix Held <felix-coreboot(a)felixheld.de>
Gerrit-Reviewer: Jason Glenesk <jason.glenesk(a)gmail.com>
Gerrit-Reviewer: Marshall Dawson <marshalldawson3rd(a)gmail.com>
Gerrit-Reviewer: build bot (Jenkins) <no-reply(a)coreboot.org>
Gerrit-CC: Julius Werner <jwerner(a)chromium.org>
Gerrit-CC: Paul Menzel <paulepanter(a)mailbox.org>
Gerrit-Attention: Jason Glenesk <jason.glenesk(a)gmail.com>
Gerrit-Attention: Marshall Dawson <marshalldawson3rd(a)gmail.com>
Gerrit-Attention: Julius Werner <jwerner(a)chromium.org>
Gerrit-Attention: Felix Held <felix-coreboot(a)felixheld.de>
Gerrit-Comment-Date: Thu, 15 Jul 2021 21:56:36 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: Julius Werner <jwerner(a)chromium.org>
Gerrit-MessageType: comment
Attention is currently required from: Jason Glenesk, Marshall Dawson, Julius Werner, Felix Held.
Hello build bot (Jenkins), Jason Glenesk, Marshall Dawson, Eric Peers, Felix Held,
I'd like you to reexamine a change. Please visit
https://review.coreboot.org/c/coreboot/+/56232
to look at the new patch set (#7).
Change subject: soc/amd/common/apob: Add support for asynchronously reading APOB_NV
......................................................................
soc/amd/common/apob: Add support for asynchronously reading APOB_NV
This CL adds a method that can start the processes of reading the APOB
from SPI. It does require more RAM in ramstage since we no longer mmap
the buffer in the happy path. This will allow us to reduce our
boot time by ~10ms. The SoC code will need to be updated to call
start_apob_cache_read at a point where it makes sense.
BUG=b:179699789
TEST=With this and the patches above I can see a 10 ms reduction in
boot time on guybrush.
Signed-off-by: Raul E Rangel <rrangel(a)chromium.org>
Change-Id: I930d58b76eb4558bc4f48ed928c4d6538fefb1e5
---
M src/soc/amd/common/block/apob/apob_cache.c
M src/soc/amd/common/block/include/amdblocks/apob_cache.h
2 files changed, 66 insertions(+), 1 deletion(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/32/56232/7
--
To view, visit https://review.coreboot.org/c/coreboot/+/56232
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: I930d58b76eb4558bc4f48ed928c4d6538fefb1e5
Gerrit-Change-Number: 56232
Gerrit-PatchSet: 7
Gerrit-Owner: Raul Rangel <rrangel(a)chromium.org>
Gerrit-Reviewer: Eric Peers <epeers(a)google.com>
Gerrit-Reviewer: Felix Held <felix-coreboot(a)felixheld.de>
Gerrit-Reviewer: Jason Glenesk <jason.glenesk(a)gmail.com>
Gerrit-Reviewer: Marshall Dawson <marshalldawson3rd(a)gmail.com>
Gerrit-Reviewer: build bot (Jenkins) <no-reply(a)coreboot.org>
Gerrit-CC: Julius Werner <jwerner(a)chromium.org>
Gerrit-CC: Paul Menzel <paulepanter(a)mailbox.org>
Gerrit-Attention: Jason Glenesk <jason.glenesk(a)gmail.com>
Gerrit-Attention: Marshall Dawson <marshalldawson3rd(a)gmail.com>
Gerrit-Attention: Julius Werner <jwerner(a)chromium.org>
Gerrit-Attention: Felix Held <felix-coreboot(a)felixheld.de>
Gerrit-MessageType: newpatchset
Attention is currently required from: Julius Werner, Eric Peers, Felix Held.
Raul Rangel has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/56229 )
Change subject: lib/thread: Add thread_handle
......................................................................
Patch Set 6:
(4 comments)
File src/include/thread.h:
https://review.coreboot.org/c/coreboot/+/56229/comment/530ca211_4ff36673
PS5, Line 69: wait_for_thread
> nit: thread_wait() to keep with the namespace prefix?
I went with thread_join to match the terminology used by other languages/APIs.
https://review.coreboot.org/c/coreboot/+/56229/comment/0995183b_d6c879c5
PS5, Line 111: return CB_ERR;
> Could probably be dead_code()?
I moved it out of the #if guards. This will result in a linker error. It will require we guard calls to `wait_for_thread` with `if (CONFIG(COOP_MULTITASKING))`, but as you pointed out in the APOB CL, that helps with readability.
File src/lib/thread.c:
https://review.coreboot.org/c/coreboot/+/56229/comment/5c3f5304_8982fd55
PS5, Line 408: printk(BIOS_DEBUG, "waiting for thread\n");
> Same as with the mutex, I'm not sure these are super useful. […]
I think they are helpful in ensuring that we don't block unexpectedly:
e.g.,
> BS: BS_PAYLOAD_LOAD entry times (exec / console): 18 / 0 ms
> waiting for thread
> took 0 us
I went ahead and made it BIOS_SPEW to reduce the noise.
https://review.coreboot.org/c/coreboot/+/56229/comment/8fb008f4_7095c58d
PS5, Line 411: thread_yield_microseconds(10);
> Why not 0?
Switches it to thread_yield which uses 0.
--
To view, visit https://review.coreboot.org/c/coreboot/+/56229
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: Ie6f64d0c5a5acad4431a605f0b0b5100dc5358ff
Gerrit-Change-Number: 56229
Gerrit-PatchSet: 6
Gerrit-Owner: Raul Rangel <rrangel(a)chromium.org>
Gerrit-Reviewer: Felix Held <felix-coreboot(a)felixheld.de>
Gerrit-Reviewer: Julius Werner <jwerner(a)chromium.org>
Gerrit-Reviewer: build bot (Jenkins) <no-reply(a)coreboot.org>
Gerrit-CC: Eric Peers <epeers(a)google.com>
Gerrit-CC: Paul Menzel <paulepanter(a)mailbox.org>
Gerrit-Attention: Julius Werner <jwerner(a)chromium.org>
Gerrit-Attention: Eric Peers <epeers(a)google.com>
Gerrit-Attention: Felix Held <felix-coreboot(a)felixheld.de>
Gerrit-Comment-Date: Thu, 15 Jul 2021 21:56:36 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: Julius Werner <jwerner(a)chromium.org>
Gerrit-MessageType: comment
Attention is currently required from: Julius Werner, Eric Peers, Felix Held.
Hello build bot (Jenkins), Julius Werner, Felix Held,
I'd like you to reexamine a change. Please visit
https://review.coreboot.org/c/coreboot/+/56229
to look at the new patch set (#6).
Change subject: lib/thread: Add thread_handle
......................................................................
lib/thread: Add thread_handle
The thread_handle can be used to wait for a thread to exit. I also added
a return value to the thread function that will be stored on the handle
after it completes. This makes it easy for the callers to check if the
thread completed successfully or had an error. The thread_join
method uses the handle to block until the thread completes.
BUG=b:179699789
TEST=See thread_handle state update and see error code set correctly.
Signed-off-by: Raul E Rangel <rrangel(a)chromium.org>
Change-Id: Ie6f64d0c5a5acad4431a605f0b0b5100dc5358ff
---
M src/include/thread.h
M src/lib/thread.c
2 files changed, 81 insertions(+), 24 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/29/56229/6
--
To view, visit https://review.coreboot.org/c/coreboot/+/56229
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: Ie6f64d0c5a5acad4431a605f0b0b5100dc5358ff
Gerrit-Change-Number: 56229
Gerrit-PatchSet: 6
Gerrit-Owner: Raul Rangel <rrangel(a)chromium.org>
Gerrit-Reviewer: Felix Held <felix-coreboot(a)felixheld.de>
Gerrit-Reviewer: Julius Werner <jwerner(a)chromium.org>
Gerrit-Reviewer: build bot (Jenkins) <no-reply(a)coreboot.org>
Gerrit-CC: Eric Peers <epeers(a)google.com>
Gerrit-CC: Paul Menzel <paulepanter(a)mailbox.org>
Gerrit-Attention: Julius Werner <jwerner(a)chromium.org>
Gerrit-Attention: Eric Peers <epeers(a)google.com>
Gerrit-Attention: Felix Held <felix-coreboot(a)felixheld.de>
Gerrit-MessageType: newpatchset
Attention is currently required from: Jason Glenesk, Marshall Dawson, Julius Werner, Felix Held.
Raul Rangel has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/56321 )
Change subject: soc/amd/common/block/lpc/spi_dma: Yield after completing transaction
......................................................................
Patch Set 2:
(1 comment)
File src/soc/amd/common/block/lpc/spi_dma.c:
https://review.coreboot.org/c/coreboot/+/56321/comment/e04c6314_09d663f6
PS1, Line 187: udelay(0);
> I think you should use thread_yield_microseconds(0) instead of udelay(0) if you want to just explici […]
Done. I kept the comment so it's clear.
--
To view, visit https://review.coreboot.org/c/coreboot/+/56321
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: I9c1272bde46c3e0c15305b76c2ea7a6dde5ed0b0
Gerrit-Change-Number: 56321
Gerrit-PatchSet: 2
Gerrit-Owner: Raul Rangel <rrangel(a)chromium.org>
Gerrit-Reviewer: Felix Held <felix-coreboot(a)felixheld.de>
Gerrit-Reviewer: Jason Glenesk <jason.glenesk(a)gmail.com>
Gerrit-Reviewer: Marshall Dawson <marshalldawson3rd(a)gmail.com>
Gerrit-Reviewer: build bot (Jenkins) <no-reply(a)coreboot.org>
Gerrit-CC: Julius Werner <jwerner(a)chromium.org>
Gerrit-Attention: Jason Glenesk <jason.glenesk(a)gmail.com>
Gerrit-Attention: Marshall Dawson <marshalldawson3rd(a)gmail.com>
Gerrit-Attention: Julius Werner <jwerner(a)chromium.org>
Gerrit-Attention: Felix Held <felix-coreboot(a)felixheld.de>
Gerrit-Comment-Date: Thu, 15 Jul 2021 21:56:36 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: Julius Werner <jwerner(a)chromium.org>
Gerrit-MessageType: comment
Attention is currently required from: Jason Glenesk, Marshall Dawson, Julius Werner, Felix Held.
Hello build bot (Jenkins), Jason Glenesk, Marshall Dawson, Felix Held,
I'd like you to reexamine a change. Please visit
https://review.coreboot.org/c/coreboot/+/56321
to look at the new patch set (#2).
Change subject: soc/amd/common/block/lpc/spi_dma: Yield after completing transaction
......................................................................
soc/amd/common/block/lpc/spi_dma: Yield after completing transaction
There is no telling when the next udelay will be, so explicitly call
`thread_yield()` after completing a transaction. This will allow any
pending transactions to immediately start.
BUG=b:179699789
TEST=Verify new transaction is enqueued right after another.
Signed-off-by: Raul E Rangel <rrangel(a)chromium.org>
Change-Id: I9c1272bde46c3e0c15305b76c2ea7a6dde5ed0b0
---
M src/soc/amd/common/block/lpc/spi_dma.c
1 file changed, 3 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/21/56321/2
--
To view, visit https://review.coreboot.org/c/coreboot/+/56321
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: I9c1272bde46c3e0c15305b76c2ea7a6dde5ed0b0
Gerrit-Change-Number: 56321
Gerrit-PatchSet: 2
Gerrit-Owner: Raul Rangel <rrangel(a)chromium.org>
Gerrit-Reviewer: Felix Held <felix-coreboot(a)felixheld.de>
Gerrit-Reviewer: Jason Glenesk <jason.glenesk(a)gmail.com>
Gerrit-Reviewer: Marshall Dawson <marshalldawson3rd(a)gmail.com>
Gerrit-Reviewer: build bot (Jenkins) <no-reply(a)coreboot.org>
Gerrit-CC: Julius Werner <jwerner(a)chromium.org>
Gerrit-Attention: Jason Glenesk <jason.glenesk(a)gmail.com>
Gerrit-Attention: Marshall Dawson <marshalldawson3rd(a)gmail.com>
Gerrit-Attention: Julius Werner <jwerner(a)chromium.org>
Gerrit-Attention: Felix Held <felix-coreboot(a)felixheld.de>
Gerrit-MessageType: newpatchset
Attention is currently required from: Jason Glenesk, Marshall Dawson, Eric Peers, Felix Held.
Hello build bot (Jenkins), Jason Glenesk, Marshall Dawson, Felix Held,
I'd like you to reexamine a change. Please visit
https://review.coreboot.org/c/coreboot/+/56231
to look at the new patch set (#6).
Change subject: soc/amd/common/block/lpc/spi_dma: Use mutex to protect DMA registers
......................................................................
soc/amd/common/block/lpc/spi_dma: Use mutex to protect DMA registers
Once we enable COOP_MULTITASKING, we need to guarantee that we don't
have multiple threads trying to access the DMA hardware.
BUG=b:179699789
TEST=Boot guybrush with APOB patches.
Signed-off-by: Raul E Rangel <rrangel(a)chromium.org>
Change-Id: Ibb8e31c95d6722521425772f4210af45626c8e09
---
M src/soc/amd/common/block/lpc/spi_dma.c
1 file changed, 7 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/31/56231/6
--
To view, visit https://review.coreboot.org/c/coreboot/+/56231
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: Ibb8e31c95d6722521425772f4210af45626c8e09
Gerrit-Change-Number: 56231
Gerrit-PatchSet: 6
Gerrit-Owner: Raul Rangel <rrangel(a)chromium.org>
Gerrit-Reviewer: Felix Held <felix-coreboot(a)felixheld.de>
Gerrit-Reviewer: Jason Glenesk <jason.glenesk(a)gmail.com>
Gerrit-Reviewer: Marshall Dawson <marshalldawson3rd(a)gmail.com>
Gerrit-Reviewer: build bot (Jenkins) <no-reply(a)coreboot.org>
Gerrit-CC: Eric Peers <epeers(a)google.com>
Gerrit-CC: Paul Menzel <paulepanter(a)mailbox.org>
Gerrit-Attention: Jason Glenesk <jason.glenesk(a)gmail.com>
Gerrit-Attention: Marshall Dawson <marshalldawson3rd(a)gmail.com>
Gerrit-Attention: Eric Peers <epeers(a)google.com>
Gerrit-Attention: Felix Held <felix-coreboot(a)felixheld.de>
Gerrit-MessageType: newpatchset