Closed micprog closed 3 years ago
Small update: in my most recent tests building pulpissimo with this pulp_soc
, I encountered an issue with two different definitions of FLL_BUS
due to updating apb_fll_if
, now fixed with the latest commit.
Hi @meggiman @bluewww,
With the most recent changes, hwpe-mac-engine
and riscv
should no longer point to my personal repository. I had some challenges with cv32e40p
, as the repository is now named differently this may cause confusion, but this only refers to the directory name with IPApproX, and the repository link.
Please let me know if any further changes are needed. I have not yet tested the bender build, as I am currently working with pulp, not pulpissimo, and I believe the integration there is not yet complete, but can look into it if desired.
The commit id of Ibex in this PR seems to be invalid or the commit doesn't exist anymore. Could you please update this?
Also I just noticed that there are many version conflicts when trying a bender checkout. If possible we should have the master branch in a state, where version conflicts do not have to be resolved manually or with an override file. This will probably require a lot of version bumping to align the repositories version requirements...
The commit id of Ibex in this PR seems to be invalid or the commit doesn't exist anymore. Could you please update this?
The pulpissimo branch in ibex has been moved to a newer version of ibex, referenced in #47. There are a few options to fix this, depends on what you would prefer.
pulpissimo-v6.0.1
tag). pulpissimo-v6.0.0
, which is the version previously used, however does not include updates for bender and minor bugfixes. I personally would prefer option 4. Merging this PR should yield a working Bender flow which would not work with option 2.
Also I just noticed that there are many version conflicts when trying a bender checkout. If possible we should have the master branch in a state, where version conflicts do not have to be resolved manually or with an override file. This will probably require a lot of version bumping to align the repositories version requirements...
While behavior would definitely be improved, these updates are not always that easy. For specifics:
tech_cells_generic
: requires update of udma_sdio
, udma_i2c
, udma_camera
, udma_qspi
, cv32e40p
, common_cells
, apb_adv_timer
(if identical versions between ips_list.yml and bender.yml are desired, a new tag would also be needed)common_verification
: requires update of common_cells
, axi
axi
: requires update of register_interface
, and likely the removal of axi_slice_dc
I will start with these updates, but strongly suggest the use of a Bender.local file for overrides in the main pulpissimo and pulp repositories, as certain mismatches seem to be prevalent in pulp.
I personally would prefer option 4. Merging this PR should yield a working Bender flow which would not work with option 2.
Done, I will update the dependencies in this PR once #47 is merged
Thanks for reworking #47 @micprog this is the cleanest solution.
Can you also add the override file to this pr you use to the bender checkout? This would allow users to get a working state of this project withouth having to tell bender which ip version to use. I believe this is a good short term solution.
@micprog Regarding the version alignment issues of all the dependencies I can see the dificulty, although using an override file kind of defeats the purpose of Benders semantic versioning resolution. In order to finally bring bender support to pulp_soc without further delays I would thus suggest that we temporarily add a bender.local file with the necessary overrides and later on remove it step by step once the other IPs become aligned. Otherwise requiring less experienced pulp user to decide which version to check out is a fool proof way to completely overwhelm ourselves with support requests once we point to the newest pulp_soc version in PULPissimo and pulp-open. What do you think?
@bluewww @meggiman Based on some quick tests, the bender config file used for overrides can currently only be placed in the top-level repository, i.e. the PULPissimo or pulp-open repositories, not this repo. This would also make sense to keep all overrides in one central location. I agree that users should not be required to choose dependency versions, unless they are working on dependency updates, so integrating Bender to the top repositories will require adding a config file to those PRs, but unfortunately adding one here will not make a difference. Is this an acceptable approach?
Ok thats fine by me.
Do you want me to put a rev
tag onto the cv32e40p branch?
Do you want me to put a
rev
tag onto the cv32e40p branch?
Would probably be cleanest, just know that dependency resolution will not work the same as with version
tags. The benefits are limited to persistence within the repository, and legibility, which I think both is worth it.
Ok I created a tag.
Added
Bender.yml
file and bump dependencies for compatibility to bender. Updatedtech_cells_generic
, changed deprecatedgeneric_memory
totc_sram
.@bluewww @meggiman Please let me know if any other changes are required Replaces https://github.com/pulp-platform/pulp_soc/pull/33