On 08/09/2022 17:43, Padmarao Begari wrote:
+++ b/bsps/riscv/riscv/clock/clockdrv.c
@@ -93,7 +93,7 @@ static void riscv_clock_at_tick(riscv_timecounter *tc)
  {
    volatile RISCV_CLINT_regs *clint;
    uint64_t value;
-  uint32_t cpu = rtems_scheduler_get_processor();
+  uint32_t cpu = rtems_scheduler_get_processor() + RTEMS_BOOT_HARTID;

Defines and functions starting with RTEMS_ or rtems_ should belong to the architecture-independent RTEMS API. This is specific to RISC-V, so it should be RISCV_BOOT_HARDID. I am not sure if your approach is correct.

The numbers returned by rtems_scheduler_get_processor() (also known as _CPU_SMP_Get_current_processor()) should range from 0 to the configured (and available) processor count minus one. If your SoC has four processors then the valid numbers are 0, 1, 2, and 3. If the HARDIDs of your SoC range from 1 to n, then you have to map these HARDID numbers so that they start with 0 in _CPU_SMP_Get_current_processor().

Another issue is if you boot from a processor other than 0 (as returned by _CPU_SMP_Get_current_processor()).

--
embedded brains GmbH
Herr Sebastian HUBER
Dornierstr. 4
82178 Puchheim
Germany
email: sebastian.hu...@embedded-brains.de
phone: +49-89-18 94 741 - 16
fax:   +49-89-18 94 741 - 08

Registergericht: Amtsgericht München
Registernummer: HRB 157899
Vertretungsberechtigte Geschäftsführer: Peter Rasmussen, Thomas Dörfler
Unsere Datenschutzerklärung finden Sie hier:
https://embedded-brains.de/datenschutzerklaerung/
_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Reply via email to