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

Initial MIPS CPUs support #1990

Open
wants to merge 6 commits into
base: master
Choose a base branch
from
Open

Conversation

FlyGoat
Copy link
Contributor

@FlyGoat FlyGoat commented Jun 17, 2024

Hi,

This PR implemented initial support for MIPS based CPUs, it implemented bios_map hook for CPU to deal with problem mentioned in #1903, fixed AHB bus handling then added two CPUs as examples.

Please review.

Thanks

@FlyGoat
Copy link
Contributor Author

FlyGoat commented Jun 17, 2024

For Python CI test I'm not sure what's the best way to provide source to CI action, probably create pythondata package for both?

@cyyself
Copy link

cyyself commented Jun 23, 2024

Thanks for adding this!

For MIPS CPUs, there is a default memory translation (which VA =
PA + offset). BIOS needs to access memory with translated virtual
address.

Add bios_map hook and generated various address macros with _VA
suffix to allow BIOS to use virtual addresses. It is defaulted
to 1:1 mapping so it won't affect other CPUs.

Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
Use addresses with _VA suffix for memory and registers
accress.

Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
MIPS toolchains are always capable for compiling to both
endian and bitness targets, so define a single CPU_GCC_TRIPLE_MIPS
to cover them all.

Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
CQU Dual Issue Machine, Dual issue 5-stage pipeline MIPS32 CPU
capable for running Linux.

https://github.com/Maxpicca-Li/CDIM

Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
Loongson GS232 Dual issue pipeline MIPS32 CPU capable
for running Linux.

Opensourced by Loongson under 2-Clause BSD License (as
shown in verilog source).

Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
intel-lab-lkp pushed a commit to intel-lab-lkp/linux that referenced this pull request Jul 6, 2024
The LiteX framework provides a convenient and efficient infrastructure
to create FPGA Cores/SoCs.

We have implemented LiteX support for a couple of opensource MIPS
CPU cores including microAptiv UP from MIPS, GS232 from Loongson,
and CDIM from CQU.

For this platform, devicetree is generated by litex python scripts
so there is no devicetree addition necessary.

Link: enjoy-digital/litex#1990
Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
intel-lab-lkp pushed a commit to intel-lab-lkp/linux that referenced this pull request Jul 14, 2024
The LiteX framework provides a convenient and efficient infrastructure
to create FPGA Cores/SoCs.

We have implemented LiteX support for a couple of opensource MIPS
CPU cores including microAptiv UP from MIPS, GS232 from Loongson,
and CDIM from CQU.

For this platform, devicetree is generated by litex python scripts
so there is no devicetree addition necessary.

Link: enjoy-digital/litex#1990
Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
staging-kernelci-org pushed a commit to kernelci/linux that referenced this pull request Jul 16, 2024
The LiteX framework provides a convenient and efficient infrastructure
to create FPGA Cores/SoCs.

We have implemented LiteX support for a couple of opensource MIPS
CPU cores including microAptiv UP from MIPS, GS232 from Loongson,
and CDIM from CQU.

For this platform, devicetree is generated by litex python scripts
so there is no devicetree addition necessary.

Link: enjoy-digital/litex#1990
Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
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.

None yet

2 participants