1 # This file is Copyright (c) 2015-2020 Florent Kermarrec <florent@enjoy-digital.fr>
2 # This file is Copyright (c) 2017-2018 Tim 'mithro' Ansell <me@mith.ro>
7 # CPU ----------------------------------------------------------------------------------------------
17 linker_output_format
= None
23 def __init__(self
, *args
, **kwargs
):
27 variants
= ["standard"]
30 reset_address
= 0x00000000
31 io_regions
= {0x00000000: 0x100000000} # origin, length
34 mem_map
= {"csr": 0x00000000}
36 CPU_GCC_TRIPLE_RISCV32
= (
37 "riscv64-unknown-elf",
38 "riscv32-unknown-elf",
43 "riscv64-linux-gnu-gcc",
48 CPU_GCC_TRIPLE_RISCV64
= (
49 "riscv64-unknown-elf",
52 "riscv64-linux-gnu-gcc",
57 # CPUS ---------------------------------------------------------------------------------------------
60 from litex
.soc
.cores
.cpu
.lm32
import LM32
63 from litex
.soc
.cores
.cpu
.mor1kx
import MOR1KX
66 from litex
.soc
.cores
.cpu
.microwatt
import Microwatt
69 from litex
.soc
.cores
.cpu
.serv
import SERV
70 from litex
.soc
.cores
.cpu
.picorv32
import PicoRV32
71 from litex
.soc
.cores
.cpu
.minerva
import Minerva
72 from litex
.soc
.cores
.cpu
.vexriscv
import VexRiscv
73 from litex
.soc
.cores
.cpu
.vexriscv_smp
import VexRiscvSMP
74 from litex
.soc
.cores
.cpu
.cv32e40p
import CV32E40P
77 from litex
.soc
.cores
.cpu
.rocket
import RocketRV64
78 from litex
.soc
.cores
.cpu
.blackparrot
import BlackParrotRV64
81 from litex
.soc
.cores
.cpu
.zynq7000
import Zynq7000
88 # External (CPU class provided externally by design/user)
98 "microwatt" : Microwatt
,
102 "picorv32" : PicoRV32
,
104 "vexriscv" : VexRiscv
,
105 "vexriscv_smp": VexRiscvSMP
,
106 "cv32e40p" : CV32E40P
,
109 "rocket" : RocketRV64
,
110 "blackparrot" : BlackParrotRV64
,
113 "zynq7000" : Zynq7000
,