Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix multicore arcsync reset #1151

Conversation

seduardof
Copy link

Since all cores within the cluster share the same reset line, lifting the reset line before the IVT is set for cores other than 0 leads to them to be stuck trying to execute at 0x00000000. This fixes this behavior.

pavelvkozlov and others added 13 commits July 26, 2024 16:39
Add several changes to load Linux on the HS4x host of the
NPU prototype platform (NPP):
include/asm/delay.h - prevent lp_conter overflow on NPP
include/asm/io.h - use uncached access to the UART during early boot
include/asm/irq.h - start external IRQs from 18 (IRQ18 for UART)
kernel/devtree.c - change HW freq for UART, for early boot.

Signed-off-by: Pavel Kozlov <pavel.kozlov@synopsys.com>
HAPS100 NPP bitfiles require 4MHz clock and work only with
9600 baud. Add special snps,haps_npp compatibility label
for HAPS DTS files to set correct freq for early console
and uart driver.

Signed-off-by: Pavel Kozlov <pavel.kozlov@synopsys.com>
Enable HAVE_DMA_CONTIGUOUS for ARC to be able to use CMA
with dma framework on ARC platform.

Signed-off-by: Pavel Kozlov <pavel.kozlov@synopsys.com>
Add the platform driver for the ARCSync v1/v2 IP which is used to
synchronize and control the VPX/NPX ARC processors. The driver provides
control functions to the accel and rproc drivers for VPX/NPX - power/
reset/run/halt/status, it controls NPX cluster groups reset/power,
handles ARCSync interrupts and allows another drivers (accel driver)
register callback for the interrupt handler.

Signed-off-by: Pavel Kozlov <pavel.kozlov@synopsys.com>
Add the driver in the remoteproc framework to setup and start VPX and
NPX processors, upload and start processors firmware. For NPX processors
the driver performs Cluster Network setup. The driver uses functions
provided by the ARCSync driver to send control commands to the VPX/NPX
cores.

Signed-off-by: Pavel Kozlov <pavel.kozlov@synopsys.com>
Add the platform driver to help user space runtime with getting access
to the kernel-space objects such as accelerator shared memory region,
ARCSync MMIO, notification interrupts. The driver also allocates memory
for DMA buffers, manages dma-bufs and implements dma-buf import/export
functionality.

Signed-off-by: Pavel Kozlov <pavel.kozlov@synopsys.com>
Add basic kernel defconfig for the NPP development platform.
Link the accelerator drivers as a part of the image.

Signed-off-by: Pavel Kozlov <pavel.kozlov@synopsys.com>
Add new kernel config for demos with dma buffers and enabled CMA.

Signed-off-by: Pavel Kozlov <pavel.kozlov@synopsys.com>
Add several examples of Device Tree Source files for the NPU prototyping
platform (NPP):
 - zebu_hs_npp.dts - basic example of platform description (for ZeBu)
 - haps_hs_npp.dts - basic example of platform description
   (for HAPS, UART baud rate 9600)
 - haps_hs_npx6_8k_vpx.dts - extended example of platform description
   (for HAPS, UART baud rate 19200)

Signed-off-by: Pavel Kozlov <pavel.kozlov@synopsys.com>
…vent counter

The driver informs the client about a new interrupt (unblocks the client) in
the ioctl SNPS_ACCEL_IOCTL_WAIT_IRQ if the interrupt counter has changed
since the last notification.
A zero value in the client context for handled_irq_event after open() could
result in a false notification (unblock) for the first ioctl
SNPS_ACCEL_IOCTL_WAIT_IRQ call, if the interrupt counter is not equal to
zero, for example if the client app starts and opens device second time.

Signed-off-by: Pavel Kozlov <pavel.kozlov@synopsys.com>
Add DMA_BUF namespace to allow building driver as module.

Signed-off-by: Pavel Kozlov <pavel.kozlov@synopsys.com>
@seduardof seduardof closed this Feb 19, 2025
@seduardof
Copy link
Author

Wrong repo picked apologies to all that got notified.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants