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

Enabling Proxy-Kernel Execution #82

Open
wants to merge 23 commits into
base: profiling-rebase
Choose a base branch
from
Open

Conversation

farzamgl
Copy link
Collaborator

This PR makes the following changes so we can run PK programs on Zynq-Parrot:

  • Adds HTIF code that runs on PS and performs syscall handshakes with the PL.
  • Adds a block RAM at 0x10000 for tohost/fromhost handshake with HTIF code.
  • Adds a DMA backdoor to the simulation DRAM so HTIF can read memory directly in both simulation and FPGA.
  • Adds an extra PL2PS FIFO for extracting the syscall trace information.

Changes to submodules:

  • blackparrot: Adding L2 manipulation commands to cce2cache module.
  • black-parrot-subsystems: Fixing width gearboxing in bp_me_axil_master
  • basejump_stl: Adding bsg_nonsynth_axi_mem_dma

update

Adding CVA6 event metrics

Adding BP event metrics

cleanup

Ariane issue profiler

Adding more metrics

BP scoreboard fix

BP D$ fail counters

Enabling BP counter enable before NBF load

update

update 2

update

Fix to nbf_load

L2 updates
@farzamgl farzamgl added the enhancement New feature or request label Nov 12, 2023
@farzamgl farzamgl self-assigned this Nov 12, 2023
SIM_ARGS += $(NBF_FILE)
HOST_PROGRAM ?= $(abspath ../ps.cpp)
ifdef PK
HOST_PROGRAM += $(abspath $(shell find ../htif/ -name '*.cc'))
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rather than combining the .cc into the main compilation, it's better practice to compile a htif.o and link it to main

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

htif uses zpl and ps address mapping, and ps instastiates an htif object, so they're pretty intertwined and I thought it's just easier to build them together.

@@ -0,0 +1,101 @@
// See LICENSE for license details.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Where's this code from? Should put in black-parrot-sdk?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The PK part is going to go into perch. This part is not compiled into the program and runs on the host.

@@ -0,0 +1,64 @@
#include "bsg_zynq_pl.h"
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can keep in header after htif.o change

@dpetrisko
Copy link
Collaborator

Is there a PR for the subsystems change?

@farzamgl
Copy link
Collaborator Author

Is there a PR for the subsystems change?

This PR is based on the profiling PR, so I pushed the submodule changes to their profiling branch, and we can create the PRs when we want to merge to master.

@farzamgl farzamgl force-pushed the profiling-rebase branch 3 times, most recently from 1ac8298 to b91bd8e Compare March 1, 2024 19:47
@farzamgl farzamgl force-pushed the profiling-rebase branch 2 times, most recently from 8c8abfa to 4dec037 Compare March 22, 2024 21:15
@farzamgl farzamgl force-pushed the profiling-rebase branch from 4dec037 to 0bdae41 Compare May 16, 2024 19:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants