Luke Kenneth Casson Leighton [Sun, 27 Mar 2022 11:07:50 +0000 (12:07 +0100)]
set upper CSns on HyperRAM to zero and set reset_n HI
fix CSn pin-pad names
Luke Kenneth Casson Leighton [Sat, 26 Mar 2022 22:40:47 +0000 (22:40 +0000)]
add clock output on hyperram sim
Luke Kenneth Casson Leighton [Sat, 26 Mar 2022 22:40:33 +0000 (22:40 +0000)]
add all 4 CSn lines for Quad HyperRAM PMOD
Luke Kenneth Casson Leighton [Sat, 26 Mar 2022 22:18:15 +0000 (22:18 +0000)]
grr
Luke Kenneth Casson Leighton [Sat, 26 Mar 2022 22:16:27 +0000 (22:16 +0000)]
reduce power-on-delay bits to 2 for icarus sim ecp5
Luke Kenneth Casson Leighton [Sat, 26 Mar 2022 21:49:14 +0000 (21:49 +0000)]
remove switches from hyperram iverilog test
Luke Kenneth Casson Leighton [Sat, 26 Mar 2022 21:39:58 +0000 (21:39 +0000)]
remove unneeded model variable
Luke Kenneth Casson Leighton [Sat, 26 Mar 2022 21:36:59 +0000 (21:36 +0000)]
add missing ECP5 model OBZ.v and rename testbench
Luke Kenneth Casson Leighton [Sat, 26 Mar 2022 21:21:48 +0000 (21:21 +0000)]
sort out platform IO pads for iverilog hyperram sim
Luke Kenneth Casson Leighton [Sat, 26 Mar 2022 20:58:45 +0000 (20:58 +0000)]
add hyperram iverilog runner including s27kl0641.v model
Luke Kenneth Casson Leighton [Fri, 25 Mar 2022 14:55:03 +0000 (14:55 +0000)]
rename ECP5 CRG, move source, remove duplicate version
Luke Kenneth Casson Leighton [Fri, 25 Mar 2022 14:53:14 +0000 (14:53 +0000)]
up arty a7 frequency to 40 mhz
Luke Kenneth Casson Leighton [Fri, 25 Mar 2022 14:53:01 +0000 (14:53 +0000)]
increase time for power-on-delay to 2^25 in ECP5
Luke Kenneth Casson Leighton [Fri, 25 Mar 2022 14:50:22 +0000 (14:50 +0000)]
loop-test on hyperram read/write which needs carriage-return to activate
Luke Kenneth Casson Leighton [Thu, 24 Mar 2022 22:13:13 +0000 (22:13 +0000)]
increase delay on ECP5 ulx3s
Luke Kenneth Casson Leighton [Thu, 24 Mar 2022 20:35:46 +0000 (20:35 +0000)]
check ulx3s, add CRG support for ulx3s
Luke Kenneth Casson Leighton [Thu, 24 Mar 2022 13:28:12 +0000 (13:28 +0000)]
establish power-on reset stabilisation for Arty A7 and ECP5
Luke Kenneth Casson Leighton [Tue, 22 Mar 2022 17:00:39 +0000 (17:00 +0000)]
add hack to modify VERSA_ECP5 85F platform to speed grade 7
Luke Kenneth Casson Leighton [Tue, 22 Mar 2022 16:59:31 +0000 (16:59 +0000)]
adding hyperram for arty a7 and also adding a workaround for some stupid issues
Luke Kenneth Casson Leighton [Sun, 20 Mar 2022 13:40:58 +0000 (13:40 +0000)]
add microwatt hello_world source
Luke Kenneth Casson Leighton [Sun, 20 Mar 2022 13:40:47 +0000 (13:40 +0000)]
crank A7 FPGA speed down to experiment
Luke Kenneth Casson Leighton [Sun, 20 Mar 2022 13:19:14 +0000 (13:19 +0000)]
code-comments
Luke Kenneth Casson Leighton [Sun, 20 Mar 2022 13:18:21 +0000 (13:18 +0000)]
fix Arty A7-100t PLL with quick demo
Luke Kenneth Casson Leighton [Sun, 20 Mar 2022 11:34:42 +0000 (11:34 +0000)]
first cut at Arty A7 Clock-Reset-Generator with S7 PLL
Luke Kenneth Casson Leighton [Sun, 20 Mar 2022 09:56:46 +0000 (09:56 +0000)]
beginnings of arty a7 clock-reset-generator
Luke Kenneth Casson Leighton [Sat, 19 Mar 2022 22:44:36 +0000 (22:44 +0000)]
add VERSA_ECP5 85F custom board
Luke Kenneth Casson Leighton [Sat, 19 Mar 2022 20:46:31 +0000 (20:46 +0000)]
move quick read/write test for hyperram in coldboot.c
Luke Kenneth Casson Leighton [Sat, 19 Mar 2022 19:00:19 +0000 (19:00 +0000)]
set IO_TYPE 3.3v attribute on HyperRAM not IOSTANDARD
disable DDR3 temporarily with a hack on versa_ecp5 platform
Luke Kenneth Casson Leighton [Sat, 19 Mar 2022 14:04:57 +0000 (14:04 +0000)]
correct pin names for HyperRAMResource, indent spi0 core
Luke Kenneth Casson Leighton [Sat, 19 Mar 2022 12:37:33 +0000 (12:37 +0000)]
fixed hyperram pin names which was stopping verilator (and pretty much
everything) from working. HyperRAMResource had a name "clk" as a pin
which was obviously getting merged with sys_clk, sigh
Luke Kenneth Casson Leighton [Sat, 19 Mar 2022 11:48:37 +0000 (11:48 +0000)]
disable hyperram for now (under investigation)
Luke Kenneth Casson Leighton [Sat, 19 Mar 2022 11:28:37 +0000 (11:28 +0000)]
adding in hyperram peripheral
Luke Kenneth Casson Leighton [Fri, 18 Mar 2022 12:32:42 +0000 (12:32 +0000)]
whitespace / module-import / comments / tidyup
Luke Kenneth Casson Leighton [Fri, 18 Mar 2022 10:51:55 +0000 (10:51 +0000)]
beginning to add hyperram module
Luke Kenneth Casson Leighton [Fri, 18 Mar 2022 09:26:46 +0000 (09:26 +0000)]
whitespace cleanup and make SPI core (temporarily) optional
based on arctic tern fpga board. TODO: add arctic tern fpga board to
nmigen_boards
Luke Kenneth Casson Leighton [Thu, 17 Mar 2022 13:40:09 +0000 (13:40 +0000)]
work-in-progress on DDR3 firmware. sigh
Luke Kenneth Casson Leighton [Thu, 17 Mar 2022 12:57:05 +0000 (12:57 +0000)]
comment about icarus verilog to speed up simulations
Raptor Engineering Development Team [Mon, 14 Mar 2022 00:33:24 +0000 (19:33 -0500)]
Add initial Tercel SPI controller
NOTE: Still needs testing on physical hardware,
waiting for Arctic Tern support.
Luke Kenneth Casson Leighton [Thu, 10 Mar 2022 12:41:09 +0000 (12:41 +0000)]
sigh gramWishbone is not WB4-pipeline-burst-compliant
compensate for this with the "usual" WB3 classic trick stall=cyc&~ack;
Luke Kenneth Casson Leighton [Wed, 9 Mar 2022 19:44:13 +0000 (19:44 +0000)]
fix WB6to32 downconverter with stall signalling
Luke Kenneth Casson Leighton [Wed, 9 Mar 2022 12:12:51 +0000 (12:12 +0000)]
add stall signal to arbiter, assume nmigen-soc takes
care of adaptation from WB4-pipeline-burst to WB3-classic
Luke Kenneth Casson Leighton [Fri, 4 Mar 2022 14:58:28 +0000 (14:58 +0000)]
add experimental stall-capable 64-to-32 wishbone converter
based on microwatt soc.vhdl
Luke Kenneth Casson Leighton [Wed, 2 Mar 2022 13:59:26 +0000 (13:59 +0000)]
lots of comments in the yosys script file
Luke Kenneth Casson Leighton [Wed, 2 Mar 2022 13:56:55 +0000 (13:56 +0000)]
invert reset and chip-select on dram, and initialise uart input
in iverilog sim
Luke Kenneth Casson Leighton [Wed, 2 Mar 2022 13:56:15 +0000 (13:56 +0000)]
forgot to include firmware in build for new icarus sim platform
Luke Kenneth Casson Leighton [Tue, 1 Mar 2022 17:09:07 +0000 (17:09 +0000)]
add new icarus-versa-ecp5 platform in ls2.py
Luke Kenneth Casson Leighton [Mon, 28 Feb 2022 21:51:56 +0000 (21:51 +0000)]
increase timescale of icarus simulation
to cover the period for coldboot.bin to initialise DRAM and perform
read/write tests
Luke Kenneth Casson Leighton [Mon, 28 Feb 2022 18:12:16 +0000 (18:12 +0000)]
fix undefined uart_tx in icarus simulation, icarus is damn smart,
it respects undefined values and propagates them. kinda cool
Luke Kenneth Casson Leighton [Mon, 28 Feb 2022 18:10:57 +0000 (18:10 +0000)]
use a slightly different yosys initialisation sequence for memory
Luke Kenneth Casson Leighton [Mon, 28 Feb 2022 17:43:59 +0000 (17:43 +0000)]
fix memory issue in yosys synth for icarus
Luke Kenneth Casson Leighton [Mon, 28 Feb 2022 17:25:04 +0000 (17:25 +0000)]
add icarus simulation of ls2 with DDR3 and ECP5 models
Luke Kenneth Casson Leighton [Wed, 23 Feb 2022 14:14:53 +0000 (14:14 +0000)]
invert CRG reset on PLL see if it makes any difference
also reduce power-on-reset delay
Luke Kenneth Casson Leighton [Wed, 23 Feb 2022 13:14:52 +0000 (13:14 +0000)]
add comments about DRAM sync clock being identical to main clock
Luke Kenneth Casson Leighton [Tue, 22 Feb 2022 10:54:11 +0000 (10:54 +0000)]
xdr=4 missing on ddr3 platform request for VERSA_ECP5
Luke Kenneth Casson Leighton [Mon, 21 Feb 2022 22:05:07 +0000 (22:05 +0000)]
lengthen cdelay pauses by a factor of 10
Luke Kenneth Casson Leighton [Mon, 21 Feb 2022 18:40:25 +0000 (18:40 +0000)]
* use readl and writel for accessing memory
* add #defines for timer loops to make it possible to shorten
time taken in simulations when running firmware in verilator
* try pulling DRAM DFII reset HI under software control
* split out DomainRenamer for DRAM Core
* add strange-looking way to expose DFII pads on FakePHY (simulated PH)
which ensures that, under simulation, a batch of HDL does not get
deleted: the clk_en, reset and odt parameters deep in the DFII
interface connected to CSRs are *not* actually connected to anything
"real" and consequently get deleted... oh and anything connecting
to them)
* add some firmware debug print statements that need to go some time
Luke Kenneth Casson Leighton [Mon, 21 Feb 2022 18:34:13 +0000 (18:34 +0000)]
use microwatt mmu powerpc.lds with better stack space
Luke Kenneth Casson Leighton [Sun, 20 Feb 2022 13:55:32 +0000 (13:55 +0000)]
fix dfi initialisation and calibration to use
microwatt memory-io read/write (stwcix/lwzcix)
Luke Kenneth Casson Leighton [Sun, 20 Feb 2022 13:54:03 +0000 (13:54 +0000)]
set RAM base to #defined DRAM_BASE not hard-coded value
Luke Kenneth Casson Leighton [Sun, 20 Feb 2022 00:06:56 +0000 (00:06 +0000)]
for simulatio keep the simulated dram in the
same clock domain as the main sim, for now
Luke Kenneth Casson Leighton [Sun, 20 Feb 2022 00:00:01 +0000 (00:00 +0000)]
add fake (sim) DRAM from gram library
Luke Kenneth Casson Leighton [Sat, 19 Feb 2022 15:54:05 +0000 (15:54 +0000)]
match up dram initialisation parameters
Luke Kenneth Casson Leighton [Sat, 19 Feb 2022 15:32:17 +0000 (15:32 +0000)]
put together coldboot startup firmware
Luke Kenneth Casson Leighton [Sat, 19 Feb 2022 15:07:48 +0000 (15:07 +0000)]
hm -abc9 seems to be working, and without -nowidelut
Luke Kenneth Casson Leighton [Fri, 18 Feb 2022 21:01:51 +0000 (21:01 +0000)]
add DRAM class to DDR3Soc
Luke Kenneth Casson Leighton [Fri, 18 Feb 2022 21:01:11 +0000 (21:01 +0000)]
add FPGA argument to DDR3SoC
Luke Kenneth Casson Leighton [Fri, 18 Feb 2022 20:11:35 +0000 (20:11 +0000)]
add microwatt console lib and #includes
Luke Kenneth Casson Leighton [Fri, 18 Feb 2022 13:43:55 +0000 (13:43 +0000)]
make cpu optional (test purposes), make bios optional,
start on adding SDRAM
Luke Kenneth Casson Leighton [Wed, 16 Feb 2022 14:20:19 +0000 (14:20 +0000)]
remove minerva cpu
Luke Kenneth Casson Leighton [Wed, 16 Feb 2022 14:16:18 +0000 (14:16 +0000)]
drop clock frequency to 25 mhz and disable abc9 (it fails to build)
Luke Kenneth Casson Leighton [Wed, 16 Feb 2022 14:15:58 +0000 (14:15 +0000)]
add openocd load command for ecp5
Luke Kenneth Casson Leighton [Wed, 16 Feb 2022 13:16:10 +0000 (13:16 +0000)]
wildcards never ok. update comments
Luke Kenneth Casson Leighton [Wed, 16 Feb 2022 13:12:59 +0000 (13:12 +0000)]
add copyright notices
Luke Kenneth Casson Leighton [Wed, 16 Feb 2022 12:30:20 +0000 (12:30 +0000)]
update ECP5 PLL to accept parameters for setting arbitrary clock frequencies
Luke Kenneth Casson Leighton [Wed, 16 Feb 2022 01:24:15 +0000 (01:24 +0000)]
add start of README as reminder
Luke Kenneth Casson Leighton [Wed, 16 Feb 2022 01:23:13 +0000 (01:23 +0000)]
* add uart_pins to UART16550 peripheral so they get connected
* add yosys -abc9 option
* correct path to external_core_top.v
Luke Kenneth Casson Leighton [Wed, 16 Feb 2022 00:54:26 +0000 (00:54 +0000)]
* disable DDR3 for now
* reduce bootrom size
* add external_core_top.v when building for VERSA_ECP5
Luke Kenneth Casson Leighton [Tue, 15 Feb 2022 20:10:05 +0000 (20:10 +0000)]
connect up stall signals (fake) for WB Classic compliance
Luke Kenneth Casson Leighton [Tue, 15 Feb 2022 15:57:58 +0000 (15:57 +0000)]
alternative uart wishbone mapping which just takes 8-bit data and
drops it onto 32-bit bus
Luke Kenneth Casson Leighton [Tue, 15 Feb 2022 15:43:30 +0000 (15:43 +0000)]
attempt to do 8-bit downconvert on wishbone bus for uart,
but it is probably actually 8-bit data aligned to 32-bit
(see soc.vhdl in microwatt)
also set CTS,DSR,RI, DCD to default values
Luke Kenneth Casson Leighton [Tue, 15 Feb 2022 15:04:58 +0000 (15:04 +0000)]
correct syscon bus address to 0xC000_0000
Luke Kenneth Casson Leighton [Tue, 15 Feb 2022 13:55:15 +0000 (13:55 +0000)]
add microwatt SYSCON peripheral at 0xc000_0000
this is for (Sys)tem (Con)figuration info
Luke Kenneth Casson Leighton [Tue, 15 Feb 2022 01:35:25 +0000 (01:35 +0000)]
increase size of bootmem
Luke Kenneth Casson Leighton [Tue, 15 Feb 2022 00:41:59 +0000 (00:41 +0000)]
add interrupt controller module, remove stall feature from CPU buses
Luke Kenneth Casson Leighton [Tue, 15 Feb 2022 00:41:12 +0000 (00:41 +0000)]
FLGA_TARGET=verilator not uppercase
Luke Kenneth Casson Leighton [Mon, 14 Feb 2022 14:03:11 +0000 (14:03 +0000)]
add external cpu
Luke Kenneth Casson Leighton [Mon, 14 Feb 2022 11:47:42 +0000 (11:47 +0000)]
convert boot rom to bootmem and get first hello_world firmware loaded
Luke Kenneth Casson Leighton [Mon, 14 Feb 2022 11:36:01 +0000 (11:36 +0000)]
add IBM microwatt CC4 license and copyright notices
Luke Kenneth Casson Leighton [Mon, 14 Feb 2022 11:33:20 +0000 (11:33 +0000)]
add first cut of verilator simulation, over from microwatt
Luke Kenneth Casson Leighton [Mon, 14 Feb 2022 10:34:48 +0000 (10:34 +0000)]
add verilog build option, make DDR3 PHY optional, add UART pins
Luke Kenneth Casson Leighton [Sun, 13 Feb 2022 15:33:58 +0000 (15:33 +0000)]
add future sim option (needs Simulated DDR PHY)
Luke Kenneth Casson Leighton [Sun, 13 Feb 2022 14:26:29 +0000 (14:26 +0000)]
add build to gitignore
Luke Kenneth Casson Leighton [Sun, 13 Feb 2022 14:26:07 +0000 (14:26 +0000)]
rename examples to src
Luke Kenneth Casson Leighton [Sun, 13 Feb 2022 14:25:44 +0000 (14:25 +0000)]
not for any good reason, separate adding the uart16550 verilog source
Luke Kenneth Casson Leighton [Sun, 13 Feb 2022 14:13:51 +0000 (14:13 +0000)]
add MemoryMap to UART16550 (TODO, put that into UART16550 class)
Luke Kenneth Casson Leighton [Sun, 13 Feb 2022 14:03:30 +0000 (14:03 +0000)]
start adding uart16550
Luke Kenneth Casson Leighton [Sun, 13 Feb 2022 12:53:08 +0000 (12:53 +0000)]
select a firmware file
Luke Kenneth Casson Leighton [Sun, 13 Feb 2022 12:48:51 +0000 (12:48 +0000)]
allow selection of alternative FPGAs at commandline
Luke Kenneth Casson Leighton [Sun, 13 Feb 2022 12:42:14 +0000 (12:42 +0000)]
add blinky lights so we know FPGA is alive
Luke Kenneth Casson Leighton [Sun, 13 Feb 2022 12:39:11 +0000 (12:39 +0000)]
make firmware and cpu optional for now to get a basic compile