- Feb 22, 2024
-
-
Nam Cao authored
The current code gets the I2C offset address using the device tree node name: it get the I2C device index from the 4th character in the node name (for example, "i2c5" -> i2c device 5). However, the device tree node's name in U-Boot is actually just "i2c" without the number, so the current code cannot be used with the device tree from U-Boot. Get the I2C offset address from the "clocks" property instead. Signed-off-by:
Nam Cao <namcao@linutronix.de> Reviewed-by:
Minda Chen <minda.chen@starfivetech.com> Tested-by:
Minda Chen <minda.chen@starfivetech.com> Reviewed-by:
Anup Patel <anup@brainfault.org>
-
Nam Cao authored
Starfive names the system clock device tree node "starfive,jh7110-clkgen" in all their git repositories. However, a different name is used in upstream U-Boot (and also Linux): "starfive,jh7110-syscrg". Since OpenSBI gets the device tree from U-Boot, this inconsistency leads the problem that OpenSBI doesn't know the system clock device exists. Correct this name to keep the consistency. Signed-off-by:
Nam Cao <namcao@linutronix.de> Acked-by:
Minda Chen <minda.chen@starfivetech.com> Tested-by:
Minda Chen <minda.chen@starfivetech.com> Reviewed-by:
Anup Patel <anup@brainfault.org>
-
- Feb 20, 2024
-
-
yang.zhang authored
If trap earlier before sbi_pmu_init done, some path would call sbi_pmu_ctr_incr_fw, then it would go wrong: 1. if phs_ptr_offset is zero, then it get a wrong pmu state ptr 2. if phs_ptr_offset is ok, but we didn't call pmu_set_hart_state_ptr it would be NULL POINT Of course, the above situation will not occur at present, but it is reasonable to check before using. Signed-off-by:
yang.zhang <yang.zhang@hexintek.com> Reviewed-by:
Anup Patel <anup@brainfault.org>
-
Cheng Yang authored
This patch move documentation of "system-suspend-test" from docs/domain_support.md to docs/opensbi_config.md Signed-off-by:
Cheng Yang <yangcheng.work@foxmail.com> Reviewed-by:
Anup Patel <anup@brainfault.org>
-
Cheng Yang authored
This patch update generic_domains_init() so that "system-suspend-test" is parsed from "/chosen/opensbi-config" DT node. Signed-off-by:
Cheng Yang <yangcheng.work@foxmail.com> Reviewed-by:
Anup Patel <anup@brainfault.org>
-
Cheng Yang authored
This patch add docs/opensbi_config.md which describes the "/chosen/opensbi-config" DT node and properties Signed-off-by:
Cheng Yang <yangcheng.work@foxmail.com> Reviewed-by:
Anup Patel <anup@brainfault.org>
-
Cheng Yang authored
Added support for the generic platform to specify the set of coldboot hart in DT. If not specified in DT, all harts are allowed to coldboot as before. The functions related to sbi_hartmask are not available before coldboot, so I used bitmap, and added a new bitmap_test() function to test whether a certain bit of the bitmap is set. Signed-off-by:
Cheng Yang <yangcheng.work@foxmail.com> Reviewed-by:
Anup Patel <anup@brainfault.org>
-
- Feb 06, 2024
-
-
Xiang W authored
_runtime_offset is a variable not used elsewhere, so remove it. Signed-off-by:
Xiang W <wxjstz@126.com> Reviewed-by:
Anup Patel <anup@brainfault.org>
-
Xiang W authored
lwu exists under the current rv64 and should also exist under the rv128 in the future, so I modified the conditions of conditional compilation so that it can adapt to the future situation Signed-off-by:
Xiang W <wxjstz@126.com> Reviewed-by:
Anup Patel <anup@brainfault.org>
-
- Feb 05, 2024
-
-
Leon M. Busch-George authored
With a bare-metal linkers (e.g. riscv64-elf-ld), there exists no dynsym section. The dynsym section is not used by OpenSBI but discarding it makes linkers with dynamic library support unhappy. Signed-off-by:
Leon M. Busch-George <leon@georgemail.eu> Reviewed-by:
Anup Patel <anup@brainfault.org>
-
Leon M. Busch-George authored
While writing to the dynsym is futile, the --exclude-libs options is not recognized by all linkers (e.g. riscv64-elf-ld.bfd). Signed-off-by:
Leon M. Busch-George <leon@georgemail.eu> Reviewed-by:
Anup Patel <anup@brainfault.org>
-
Kalle Wachsmuth authored
Support for that option will be added in LLVM 18: https://github.com/llvm/llvm-project/commit/23ce5368409c760f3dd49d0f17f34772b0b869d8 Clang 17.0.6, however, will error when passed the `-mstrict-align` flag. We should only use the flag if it is supported. Signed-off-by:
Kalle Wachsmuth <kalle.wachsmuth@gmail.com> Reviewed-by:
Anup Patel <anup@brainfault.org> Reviewed-by:
Xiang W <wxjstz@126.com>
-
Zhang Runmin authored
When calling '_reset_regs', it'll reset all registers except some specific registers (ra, a0, a1, and a2). Both boot HART and non-boot HARTs will execute the '_start_warm' function. Therefore, when '_reset_regs' is called in '_start_warm', it will reset all registers except some specific registers (ra, a0, a1 and a2) for both boot HART and non-boot HARTs. Signed-off-by:
Zhang Runmin <fmrt19zrmin@163.com> Reviewed-by:
Anup Patel <anup@brainfault.org>
-
Himanshu Chauhan authored
The trigger allocation function uses bit shift instead of mask to check the mapped status of the triggers. This causes index 0 to be return always. As a result, the older triggers are overwritten. Use the mask for MAPPED field in state word to check if the trigger is mapped. Fixes: 97f234f1 ("lib: sbi: Introduce the SBI debug triggers extension support") Signed-off-by:
Himanshu Chauhan <hchauhan@ventanamicro.com> Reviewed-by:
Anup Patel <anup@brainfault.org>
-
- Jan 10, 2024
-
-
Himanshu Chauhan authored
Print the total number of triggers found on the boot hart. Signed-off-by:
Himanshu Chauhan <hchauhan@ventanamicro.com> Reviewed-by:
Anup Patel <anup@brainfault.org>
-
Himanshu Chauhan authored
This patch adds functions to register ecalls for debug triggers and handler to handle the debug trigger function IDs. Signed-off-by:
Himanshu Chauhan <hchauhan@ventanamicro.com> Reviewed-by:
Anup Patel <anup@brainfault.org>
-
Himanshu Chauhan authored
This patch adds defines for SBI debug trigger extension and function IDs to access the extension. Signed-off-by:
Himanshu Chauhan <hchauhan@ventanamicro.com> Reviewed-by:
Anup Patel <anup@brainfault.org>
-
Himanshu Chauhan authored
RISC-V Debug specification includes Sdtrig ISA extension which describes Trigger Module. Triggers can cause a breakpoint exception or trace action without execution of a special instruction. They can be used to implement hardware breakpoints and watchpoints for native debugging. The SBI Debut Trigger extension (Draft v6) can be found at: https://lists.riscv.org/g/tech-debug/topic/99825362#1302 This patch is an initial implementation of SBI Debug Trigger Extension (Draft v6) in OpenSBI. The following features are supported: * mcontrol, mcontrol6 triggers * Breakpoint and trace actions NOTE: Chained triggers are not supported Signed-off-by:
Himanshu Chauhan <hchauhan@ventanamicro.com> Reviewed-by:
Anup Patel <anup@brainfault.org>
-
Himanshu Chauhan authored
Detect if debug triggers, sdtrig extension, is supported by the CPU. The support is detected by access traps and ISA string parsing. Signed-off-by:
Himanshu Chauhan <hchauhan@ventanamicro.com> Reviewed-by:
Anup Patel <anup@brainfault.org>
-
Himanshu Chauhan authored
This patch introduces Mcontrol and M6 control register encodings along with macros to manipulate them. Signed-off-by:
Himanshu Chauhan <hchauhan@ventanamicro.com> Reviewed-by:
Anup Patel <anup@brainfault.org>
-
Himanshu Chauhan authored
Add the missing TINFO debug trigger CSR. Signed-off-by:
Himanshu Chauhan <hchauhan@ventanamicro.com> Reviewed-by:
Anup Patel <anup@brainfault.org>
-
Himanshu Chauhan authored
Introduce cpu_to_lle and lle_to_cpu macros which invoke correct word length cpu_to_le<64/32> conversion based on __riscv_xlen. Signed-off-by:
Himanshu Chauhan <hchauhan@ventanamicro.com> Reviewed-by:
Anup Patel <anup@brainfault.org>
-
- Dec 27, 2023
-
-
Anup Patel authored
This patch updates OpenSBI version to 1.4 as part of release preparation. Signed-off-by:
Anup Patel <apatel@ventanamicro.com> Signed-off-by:
Anup Patel <anup@brainfault.org>
-
Anup Patel authored
OpenSBI uses time CSR if Zicntr extension present which causes it to crash on an older QEMU because QEMU generates Zicntr in the ISA string for unleashed machine which only has CYCLE and INSTRET counters. Fixes: 776770d2 ("lib: sbi: Using one array to define the name of extensions") Signed-off-by:
Anup Patel <apatel@ventanamicro.com> Signed-off-by:
Anup Patel <anup@brainfault.org>
-
Inochi Amaoto authored
The parser will fail if the timer is clint timer and has regname property. As the regname is only meaningful for aclint, it is more robust to only check regname for aclint timer. Fixes: 6112d584 ("lib: utils/fdt: Allow to use reg-names when parsing ACLINT") Signed-off-by:
Inochi Amaoto <inochiama@outlook.com> Reviewed-by:
Anup Patel <anup@brainfault.org>
-
- Dec 26, 2023
-
-
Xiang W authored
There is a problem with judging whether the current hart belongs to hmask. If cur_hartid minus hbase is greater than BITS_PER_LONG, the previous hmask will also have a bit cleared incorrectly, which will cause some harts to lose ipi. Signed-off-by:
Xiang W <wxjstz@126.com> Reviewed-by:
Anup Patel <anup@brainfault.org>
-
- Dec 19, 2023
-
-
Anup Patel authored
On platforms with Smepmp, the previous booting stage must enter OpenSBI with mseccfg.MML == 0. This allows OpenSBI to configure it's own M-mode only regions without depending on the previous booting stage. Signed-off-by:Anup Patel <apatel@ventanamicro.com>
-
Anup Patel authored
The SBI_ETRAP error code was introduced only for doing trap redirection in generic sbi_ecall_handler(). Now the trap redirection is moved into sbi_ecall_legacy.c and SBI_ETRAP error code is only used in this source file so let us remove it. Signed-off-by:Anup Patel <apatel@ventanamicro.com>
-
Anup Patel authored
Some of the upcoming SBI extensions (such as SSE) will directly update register state so improve the prototype of ecall handler to accommodate this. Further, this flexibility allows us to push the trap redirection from sbi_ecall_handler() to the sbi_ecall_legacy_handler(). Signed-off-by:Anup Patel <apatel@ventanamicro.com>
-
Anup Patel authored
On platforms with Smepmp, the MMIO regions accessed by M-mode need to be explicitly marked with M-mode only read/write or shared (both (M-mode and S-mode) read/write permission. If the above is not done then runtime PLIC access from M-mode on platforms with Smepmp will result in access fault when further results in CPU hotplug not working. Signed-off-by:Anup Patel <apatel@ventanamicro.com>
-
Anup Patel authored
Let's use SBI_TLB_INFO_SIZE instead of hard-coded 0x40 in fw_platform_calculate_heap_size() to fine tune the heap size required for per-hart TLB fifos. Signed-off-by:Anup Patel <apatel@ventanamicro.com>
-
Anup Patel authored
Let us reduce the size of struct sbi_tlb_info by doing the following: 1) Change the data type of asid and vmid fields to uint16_t 2) Replace local_fn() function pointer with an enum Based on the above, the size of struct sbi_tlb_info is reduced by 16 bytes on RV64 and 4 bytes on RV32. Signed-off-by:Anup Patel <apatel@ventanamicro.com>
-
Yong-Xuan Wang authored
Enable access to some extensions through menvcfg and show them in "Boot HART ISA Extensions" if they are present in the device tree. Signed-off-by:
Yong-Xuan Wang <yongxuan.wang@sifive.com> Reviewed-by:
Anup Patel <anup@brainfault.org>
-
Yong-Xuan Wang authored
Define an array sbi_hart_ext to map extension ID and name , and use it for ISA parsing and printing out the supported extensions. Signed-off-by:
Yong-Xuan Wang <yongxuan.wang@sifive.com> Reviewed-by:
Anup Patel <anup@brainfault.org>
-
Yong-Xuan Wang authored
Use 1 variable to store the value of menvcfg. Signed-off-by:
Yong-Xuan Wang <yongxuan.wang@sifive.com> Reviewed-by:
Anup Patel <anup@brainfault.org>
-
Yong-Xuan Wang authored
We can enhance the code by creating 2 unified interface with macro for privilege mode and extensions detection, which relies on supported privilege modes and CSRs. Signed-off-by:
Yong-Xuan Wang <yongxuan.wang@sifive.com> Reviewed-by:
Anup Patel <anup@brainfault.org>
-
- Dec 18, 2023
-
-
Xiang W authored
The original code has multiple conversions between hartid and hartindex. Can call sbi_hartmask_set_hartindex directly to avoid conversion. Signed-off-by:
Xiang W <wxjstz@126.com> Reviewed-by:
Anup Patel <anup@brainfault.org>
-
Samuel Holland authored
sbi_ipi_event_create() disallows registering an IPI event with a NULL .process callback, so the function pointer will never be NULL here. Signed-off-by:
Samuel Holland <samuel.holland@sifive.com> Reviewed-by:
Anup Patel <anup@brainfault.org> Reviewed-by:
Xiang W <wxjstz@126.com>
-
Samuel Holland authored
An IPI sent to the local hart can be processed directly instead of triggering the IPI device. This is more efficient, and it avoids a deadlock when the .sync callback is defined. Since interrupts are disabled while handling an ecall, the IPI would not get delivered until the next mret, but sbi_ipi_sync() is called before then. Signed-off-by:
Samuel Holland <samuel.holland@sifive.com> Reviewed-by:
Anup Patel <anup@brainfault.org> Reviewed-by:
Xiang W <wxjstz@126.com>
-
Samuel Holland authored
Currently, failures in sbi_ipi_send() are silently ignored, which makes them difficult to debug. Instead, abort sending the IPI and pass back the error, but still synchronize any IPIs already sent. Signed-off-by:
Samuel Holland <samuel.holland@sifive.com> Signed-off-by:
Anup Patel <anup@brainfault.org>
-