From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sean Anderson Date: Mon, 7 Sep 2020 14:16:52 -0400 Subject: [PATCH 0/7] riscv: Correctly handle IPIs already pending upon boot Message-ID: <20200907181659.92449-1-seanga2@gmail.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On the K210, the prior stage bootloader does not clear IPIs. This presents a problem, because U-Boot up until this point assumes (with one exception) that IPIs are cleared when it starts. This series attempts to fix this in a robust manner, and fix several concurrency bugs I noticed while fixing these other areas. Heinrich previously submitted a patch addressing part of this problem in [1]. [1] https://patchwork.ozlabs.org/project/uboot/patch/20200811035648.3284-1-xypron.glpk at gmx.de/ Sean Anderson (7): Revert "riscv: Clear pending interrupts before enabling IPIs" riscv: Match memory barriers between send_ipi_many and handle_ipi riscv: Use NULL as a sentinel value for smp_call_function riscv: Clear pending IPIs on initialization riscv: Add fence to available_harts_lock riscv: Ensure gp is NULL or points to valid data riscv: Add some comments to start.S arch/riscv/cpu/cpu.c | 18 ++++++++++++++ arch/riscv/cpu/start.S | 47 +++++++++++++++++++++++++++++-------- arch/riscv/lib/interrupts.c | 3 ++- arch/riscv/lib/smp.c | 26 +++++++++++++++++--- 4 files changed, 80 insertions(+), 14 deletions(-) -- 2.28.0