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

Stdlib board #2

Open
wants to merge 60 commits into
base: main
Choose a base branch
from
Open

Stdlib board #2

wants to merge 60 commits into from

Conversation

jasrangi
Copy link
Contributor

@jasrangi jasrangi commented Aug 4, 2022

Merge the files for the HiFive Unmatched gem5 board into main. The files for the board are in riscv-validation/newboard/hifivenew. There is a README in riscv-validation/newboard/ that documents the board's specs and instructions on how to use the board in gem5. The board is intended to model the real Unmatched board closely. A compromise was made on localHistoryTableSize parameter for the branch predictor. The official specs say that size is 3.6 KiB, but gem5 would not accept a value that is not a power of 2 for this parameter. The value used is 4 KiB.

kunpai and others added 30 commits July 22, 2022 12:16
…ged BP table size to power of 2 (required by gem5) and added U74.CPU to SimpleProcessor board integration
…oard class that inherits from base class SimpleBoard
Copy link
Collaborator

@aakahlow aakahlow left a comment

Choose a reason for hiding this comment

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

Still looking into this. But, here are a few comments

memory.set_memory_range(
[AddrRange(start=0x80000000, size=memory.get_size())])

processor = SimpleProcessor(cpu_type=CustomCPUTypes.U74, num_cores=1)
Copy link
Collaborator

Choose a reason for hiding this comment

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

Should this not be 4 cores?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

It is using the MinorCPU as the base class, which doesn't seem to allow more than 1 core. Is there any way to get around that?

BlogPost.md Outdated Show resolved Hide resolved
processor = SimpleProcessor(cpu_type=CustomCPUTypes.U74, num_cores=1)

super().__init__(
clk_freq="1.2GHz", # real system is 1.0 to 1.5 GHz
Copy link
Collaborator

Choose a reason for hiding this comment

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

Do we know the actual core freq on the board? I guess lscpu should tell us

Copy link
Contributor Author

Choose a reason for hiding this comment

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

lscpu is not listing it. We got the frequency from this datasheet:
https://sifive.cdn.prismic.io/sifive/d0556df9-55c6-47a8-b0f2-4b1521546543_hifive-unmatched-datasheet.pdf

The manual says that the recommended frequency is 1.0 GHz and up to 1.5 GHz is possible (section 7.1)
https://sifive.cdn.prismic.io/sifive/1a82e600-1f93-4f41-b2d8-86ed8b16acba_fu740-c000-manual-v1p6.pdf

newboard/README.md Outdated Show resolved Hide resolved
newboard/README.md Outdated Show resolved Hide resolved
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