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

[DRAFT] Darjeeling DV bring up #26088

Draft
wants to merge 8 commits into
base: master
Choose a base branch
from
Draft

Conversation

alees24
Copy link
Contributor

@alees24 alees24 commented Jan 31, 2025

This DRAFT PR - DO NOT MERGE - ports the DV environment from integrated_dev onto master and makes sufficient changes to permit the CPU to start up and execute code from the first stage boot ROM.

There are a number of tidy ups still required:

  • make appropriate changes to the other top-level DV vseqs to allow them at least to build; the majority are excluded from the build for the interim.
  • resolve the fact that the build system (Bazel and scramble_image.py) presently scramble the ROM images using Earl Grey keys (temporary change applied to hw/top_darjeeling/templates/toplevel.sv.tpl)
  • software is still Earl Grey-specific; work is underway on another branch within the software team, so it would be pointless to replicate that effort for DV bring up.

A temporary modification in the final commit to the test_rom startup code is sufficient to permit the following test to complete successfully on Darjeeling, demonstrating that the rom_ctrls and soc_dbg_ctrl have granted permission for the Ibex core to proceed, and the CPU is receiving correctly-unscrambled, valid code. It simply writes the SwTestStatus<> values into the DV sim window, producing a test pass.

util/dvsim/dvsim.py hw/top_darjeeling/dv/chip_sim_cfg.hjson -i chip_sw_uart_smoketest --tool xcelium -v m --fi 1

Please also note that this PR depends upon and presently includes the changes in PR #26081 that permits Darjeeling in the absence of any flash memory/controller.

Aside from the final commit with its temporary modification of the test_rom boot code, the changes in this PR should have zero impact upon Earl Grey.

@Razer6 for awareness; no need to review presently. @pamaury in case this is helpful for the ongoing multi-top software work.

Separate flash support into another package so that designs
such as Darjeeling can employ mem_bkdr_util without depending
upon the flash controller/package.

Signed-off-by: Adrian Lees <[email protected]>
Sensor control is not present in Darjeeling.
Modifications to support RAM DFT.

Signed-off-by: Adrian Lees <[email protected]>
Changes to support modified OTP controller and memory backdoor
utility (no flash controller present in Darjeeling).

AST/Calibration signaling changes and wire up soc_dbg_ctrl.

Signed-off-by: Adrian Lees <[email protected]>
The build flow presently creates ROM images only using Earl Grey
scrambling keys (read from top_earlgrey.gen.hjson), so in order
to unscramble the ROM images successfully and execute software,
temporarily modify the templated top_level for Darjeeling only
to use fixed keys.

Note that this only works for the standard build seed that we
employ, and that this is a temporary measure to avoid conflicting
with/replicating the work on multitop support in sw/building.

Signed-off-by: Adrian Lees <[email protected]>
Temporary change to the test_rom to report status codes in DV simulation
and yield a passing test; demonstration that very simple software is
running.

Signed-off-by: Adrian Lees <[email protected]>
@alees24 alees24 changed the title [DRAFT] [DRAFT] Darjeeling DV bring up Jan 31, 2025
@vogelpi
Copy link
Contributor

vogelpi commented Jan 31, 2025

Thanks for doing this and sharing the PR @alees24 !

@pamaury
Copy link
Contributor

pamaury commented Feb 1, 2025

For reference, the multitop work is now partially merged in master, the last remaining part is in #26038

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