sifive / freedom

Source files for SiFive's Freedom platforms
Apache License 2.0
1.11k stars 284 forks source link

Changed the Configuration of the E300 Core #146

Closed Tim453 closed 4 years ago

Tim453 commented 4 years ago

The configuration of the TinyCore which is used in the TinyConfig, does not match with the Configuration, that is described in the FE310 Manual. The TinyCore has no branch target predictor and only a 4kb direct-mapped I-Cache.

This commit adds a btp and changes the I-Cache to a 16kb 2-way I-Cache

erikdanie commented 4 years ago

Hi, thanks for the contribution!

I tend to think that the reduced config was used because of area limitations on the Arty35 fpga. Have you tested this and had it fit fine?

Tim453 commented 4 years ago

Yes i have tested it, it works fine.

This is the utilization of the system with the TinyCore: TinyCore

and this with the changes i have made: E31

mwachs5 commented 4 years ago

The values may have changed between FE310-G000 and FE310-G002.

Tim453 commented 4 years ago

The values may have changed between FE310-G000 and FE310-G002.

Actually not, the manual says both Versions have a 16kb I-Cache and a btp. Even the device tree of the SDK says it has a 16kb I-Cache.

erikdanie commented 4 years ago

In that case, I'm okay making this change, though I have a few requests to clean up the code a bit

erikdanie commented 4 years ago

Looks good. Just to confirm, this configuration as is now fits fine on the arty?

Tim453 commented 4 years ago

Yeah, I tried, it fits.