- 08 4月, 2019 4 次提交
-
-
由 Rick Chen 提交于
The Platform-Level Interrupt Controller (PLIC) block holds memory-mapped claim and pending registers associated with software interrupt. It is required for handling IPI. Signed-off-by: NRick Chen <rick@andestech.com> Cc: Greentime Hu <greentime@andestech.com> Reviewed-by: NBin Meng <bmeng.cn@gmail.com> Reviewed-by: NLukas Auer <lukas.auer@aisec.fraunhofer.de>
-
由 Lukas Auer 提交于
On RISC-V, all harts boot independently. To be able to run on a multi-hart system, U-Boot must be extended with the functionality to manage all harts in the system. All harts entering U-Boot are registered in the available_harts mask stored in global data. A hart lottery system as used in the Linux kernel selects the hart U-Boot runs on. All other harts are halted. U-Boot can delegate functions to them using smp_call_function(). Every hart has a valid pointer to the global data structure and a 8KiB stack by default. The stack size is set with CONFIG_STACK_SIZE_SHIFT. Signed-off-by: NLukas Auer <lukas.auer@aisec.fraunhofer.de> Reviewed-by: NAnup Patel <anup.patel@wdc.com> Reviewed-by: NBin Meng <bmeng.cn@gmail.com> Tested-by: NBin Meng <bmeng.cn@gmail.com>
-
由 Lukas Auer 提交于
The supervisor binary interface (SBI) provides the necessary functions to implement the platform IPI functions riscv_send_ipi() and riscv_clear_ipi(). Use it to implement them. This adds support for inter-processor interrupts (IPIs) on RISC-V CPUs running in supervisor mode. Support for machine mode is already available for CPUs that include the SiFive CLINT. Signed-off-by: NLukas Auer <lukas.auer@aisec.fraunhofer.de> Reviewed-by: NAnup Patel <anup.patel@wdc.com> Reviewed-by: NBin Meng <bmeng.cn@gmail.com> Reviewed-by: NAtish Patra <atish.patra@wdc.com> Tested-by: NBin Meng <bmeng.cn@gmail.com>
-
由 Lukas Auer 提交于
Harts on RISC-V boot independently, U-Boot is responsible for managing them. Functions are called on other harts with smp_call_function(), which sends inter-processor interrupts (IPIs) to all other available harts. Available harts are those marked as available in the device tree and present in the available_harts mask stored in global data. The available_harts mask is used to register all harts that have entered U-Boot. Functions are specified with their address and two function arguments (argument 2 and 3). The first function argument is always the hart ID of the hart calling the function. On the other harts, the IPI interrupt handler handle_ipi() must be called on software interrupts to handle the request and call the specified function. Functions are stored in the ipi_data data structure. Every hart has its own data structure in global data. While this is not required at the moment (all harts are expected to boot Linux), this does allow future expansion, where other harts may be used for monitoring or other tasks. Signed-off-by: NLukas Auer <lukas.auer@aisec.fraunhofer.de> Reviewed-by: NAnup Patel <anup.patel@wdc.com> Reviewed-by: NBin Meng <bmeng.cn@gmail.com> Tested-by: NBin Meng <bmeng.cn@gmail.com>
-
- 27 2月, 2019 2 次提交
-
-
由 Anup Patel 提交于
This patch adds SiFive FU540 board support. For now, only SiFive serial, SiFive PRCI, and Cadance MACB drivers are only enabled. The SiFive FU540 defconfig by default builds U-Boot for S-Mode because U-Boot on SiFive FU540 will run in S-Mode as payload of BBL or OpenSBI. Signed-off-by: NAtish Patra <atish.patra@wdc.com> Signed-off-by: NAnup Patel <anup.patel@wdc.com> Reviewed-by: NAlexander Graf <agraf@suse.de> Reviewed-by: NLukas Auer <lukas.auer@aisec.fraunhofer.de> Reviewed-by: NBin Meng <bmeng.cn@gmail.com>
-
由 Anup Patel 提交于
The QEMU CPU support under arch/riscv is pretty much generic and works fine for SiFive Unleashed as well. In fact, there will be quite a few RISC-V SOCs for which QEMU CPU support will work fine. This patch renames cpu/qemu to cpu/generic to indicate the above fact. If there are SOC specific errata workarounds required in cpu/generic then those can be done at runtime in cpu/generic based on CPU vendor specific DT compatible string. Signed-off-by: NAnup Patel <anup.patel@wdc.com> Reviewed-by: NAlexander Graf <agraf@suse.de> Reviewed-by: NLukas Auer <lukas.auer@aisec.fraunhofer.de> Reviewed-by: NBin Meng <bmeng.cn@gmail.com>
-
- 18 12月, 2018 6 次提交
-
-
由 Bin Meng 提交于
Increase the heap size for the pre-relocation stage, so that CPU driver can be loaded. Signed-off-by: NBin Meng <bmeng.cn@gmail.com> Reviewed-by: NLukas Auer <lukas.auer@aisec.fraunhofer.de> Reviewed-by: NAnup Patel <anup@brainfault.org>
-
由 Bin Meng 提交于
Add the QEMU RISC-V platform-specific Kconfig options, to include CPU and timer drivers. Signed-off-by: NBin Meng <bmeng.cn@gmail.com> Reviewed-by: NLukas Auer <lukas.auer@aisec.fraunhofer.de> Reviewed-by: NAnup Patel <anup@brainfault.org>
-
由 Anup Patel 提交于
This adds an implementation of riscv_get_time() API that is using rdtime instruction. This is the case for S-mode U-Boot, and is useful for processors that support rdtime in M-mode too. Signed-off-by: NAnup Patel <anup@brainfault.org> Signed-off-by: NBin Meng <bmeng.cn@gmail.com> Reviewed-by: NLukas Auer <lukas.auer@aisec.fraunhofer.de>
-
由 Bin Meng 提交于
This adds U-Boot syscon driver for SiFive's Core Local Interruptor (CLINT). The CLINT block holds memory-mapped control and status registers associated with software and timer interrupts. This driver implements the riscv_get_time() API as required by the generic RISC-V timer driver, as well as some other APIs that are needed for handling IPI. Signed-off-by: NBin Meng <bmeng.cn@gmail.com> Reviewed-by: NLukas Auer <lukas.auer@aisec.fraunhofer.de> Reviewed-by: NAnup Patel <anup@brainfault.org>
-
由 Anup Patel 提交于
So far we have a Kconfig option for supervisor mode. This adds an option for the machine mode. Signed-off-by: NAnup Patel <anup@brainfault.org> Signed-off-by: NBin Meng <bmeng.cn@gmail.com> Reviewed-by: NLukas Auer <lukas.auer@aisec.fraunhofer.de>
-
由 Lukas Auer 提交于
RISC-V has two code models, medium low (medlow) and medium any (medany). Medlow limits addressable memory to a single 2 GiB range between the absolute addresses -2 GiB and +2 GiB. Medany limits addressable memory to any single 2 GiB address range. By default, medlow is selected for U-Boot on both 32-bit and 64-bit systems. The -mcmodel compiler flag is selected according to the Kconfig configuration. Signed-off-by: NLukas Auer <lukas.auer@aisec.fraunhofer.de> [bmeng: adjust to make medlow the default code model for U-Boot] Signed-off-by: NBin Meng <bmeng.cn@gmail.com> Reviewed-by: NAnup Patel <anup@brainfault.org>
-
- 05 12月, 2018 1 次提交
-
-
由 Anup Patel 提交于
This patch adds kconfig option RISCV_SMODE to run U-Boot in S-mode. When this opition is enabled we use s<xyz> CSRs instead of m<xyz> CSRs. It is important to note that there is no equivalent S-mode CSR for misa and mhartid CSRs so we expect M-mode runtime firmware (BBL or equivalent) to emulate misa and mhartid CSR read. In-future, we will have more patches to avoid accessing misa and mhartid CSRs from S-mode. Signed-off-by: NAnup Patel <anup@brainfault.org> Reviewed-by: NBin Meng <bmeng.cn@gmail.com> Tested-by: NBin Meng <bmeng.cn@gmail.com> Reviewed-by: NLukas Auer <lukas.auer@aisec.fraunhofer.de>
-
- 26 11月, 2018 4 次提交
-
-
由 Rick Chen 提交于
AndeStar RISC-V(V5) provide mcache_ctl register which can configure I/D cache as enabled or disabled. This CSR will be encapsulated by CONFIG_RISCV_NDS. If you want to configure cache on AndeStar V5 AE350 platform. YOu can enable [*] AndeStar V5 ISA support by make menuconfig. This approach also provide the expansion when the vender specific features are going to join in. Signed-off-by: NRick Chen <rick@andestech.com> Cc: Greentime Hu <greentime@andestech.com>
-
由 Lukas Auer 提交于
Add Kconfig entries for the C (compressed instructions) and A (atomic instructions) ISA extensions. Only the C ISA extension is selectable. This matches the configuration in Linux. The Kconfig entries are not used yet. A follow-up patch will select the appropriate compiler flags based on the Kconfig configuration. Signed-off-by: NLukas Auer <lukas.auer@aisec.fraunhofer.de> Reviewed-by: NBin Meng <bmeng.cn@gmail.com>
-
由 Lukas Auer 提交于
CONFIG_PHYS_64BIT should be enabled on RV64I systems. Select it. Signed-off-by: NLukas Auer <lukas.auer@aisec.fraunhofer.de> Reviewed-by: NBin Meng <bmeng.cn@gmail.com> Reviewed-by: NRick Chen <rick@andestech.com>
-
由 Lukas Auer 提交于
RISC-V defines the base integer instruction sets as RV32I and RV64I. Rename CPU_RISCV_32 and CPU_RISCV_64 to ARCH_RV32I and ARCH_RV64I to match this convention. Signed-off-by: NLukas Auer <lukas.auer@aisec.fraunhofer.de> Reviewed-by: NBin Meng <bmeng.cn@gmail.com> Reviewed-by: NRick Chen <rick@andestech.com>
-
- 03 10月, 2018 2 次提交
-
-
由 Bin Meng 提交于
This adds QEMU RISC-V 'virt' board target support, with the hope of helping people easily test U-Boot on RISC-V. The QEMU virt machine models a generic RISC-V virtual machine with support for the VirtIO standard networking and block storage devices. It has CLINT, PLIC, 16550A UART devices in addition to VirtIO and it also uses device-tree to pass configuration information to guest software. It implements RISC-V privileged architecture spec v1.10. Both 32-bit and 64-bit builds are supported. Support is pretty much preliminary, only booting to U-Boot shell with the UART driver on a single core. Booting Linux is not supported yet. Signed-off-by: NBin Meng <bmeng.cn@gmail.com> Reviewed-by: NLukas Auer <lukas.auer@aisec.fraunhofer.de>
-
由 Bin Meng 提交于
It's RISC-V that is the official name, not RISCV. Signed-off-by: NBin Meng <bmeng.cn@gmail.com> Reviewed-by: NLukas Auer <lukas.auer@aisec.fraunhofer.de> Reviewed-by: NRick Chen <rick@andestech.com>
-
- 29 5月, 2018 1 次提交
-
-
由 Rick Chen 提交于
Andes has rearranged the product combinations. nx25 and ax25 both are RISC-V architecture cpu core. But ax25 has MMU unit inside, and nx25 is not. Cpu nx25 and platform ae250 are arranged in pairs. Cpu ax25 and platform ae350 are arranged in pairs. This patch will rename nx25 as ax25 ae250 as ae350 nx25-ae250 as ax25-ae350 including filename, variable, string and definition. Then u-boot can boot linux kernel in ae350 platform reasonably. Signed-off-by: NRick Chen <rick@andestech.com> Signed-off-by: NRick Chen <rickchen36@gmail.com> Cc: Greentime Hu <green.hu@gmail.com>
-
- 12 1月, 2018 1 次提交
-
-
由 Rick Chen 提交于
Add Kconfig and makefile for RISC-V Also modify MAINTAINERS for it. Signed-off-by: NRick Chen <rick@andestech.com> Signed-off-by: NRick Chen <rickchen36@gmail.com> Signed-off-by: NGreentime Hu <green.hu@gmail.com> Cc: Padmarao Begari <Padmarao.Begari@microsemi.com>
-