puts("\r\n");
if (ftr & SYS_REG_INFO_HAS_SPI_FLASH) {
- // speed up the QSPI to at least a sane level
- crank_up_qspi_level1();
- // run at saner level
- host_spi_flash_init();
-
puts("SPI Offset: ");
spi_offs = readl(SYSCON_BASE + SYS_REG_SPI_INFO);
uart_writeuint32(spi_offs);
if ((i & 0x7) == 0x7) puts("\r\n");
}
puts("\r\n");
+
+ // speed up the QSPI to at least a sane level
+ crank_up_qspi_level1();
+ // run at saner level
+ host_spi_flash_init();
+
+ puts("SPI Offset: ");
+ spi_offs = readl(SYSCON_BASE + SYS_REG_SPI_INFO);
+ uart_writeuint32(spi_offs);
+ puts("\r\n");
+
/*
for (i=0;i<256;i++) {
tmp = readb((unsigned long)&(qspi_bytes[i]));
// Released under the terms of the GPL v3
// See the LICENSE file for full details
-uint32_t micron_n25q_spi_device_ids[] = { 0x20ba2010, 0x20ba2110 };
+uint32_t micron_n25q_spi_device_ids[] = { 0x20ba2010, 0x20ba2110,
+ 0x20ba1810 };
-const char *micron_n25q_spi_device_names[] = { "Micron N25Q 512Mb", "Micron N25Q 1024Mb" };
+const char *micron_n25q_spi_device_names[] = { "Micron N25Q 512Mb",
+ "Micron N25Q 1024Mb",
+ "Micron N25Q 128Mb" };
#define MICRON_N25Q_SPI_FAST_READ_DUMMY_CLOCK_CYCLES 10
clk_freq = 50e6
dram_clk_freq = 100e6
if fpga == 'arty_a7':
- clk_freq = 23.0e6 # urrr "working" with the QSPI core (25 mhz does not)
+ clk_freq = 25.0e6 # urrr "working" with the QSPI core (25 mhz does not)
if fpga == 'ulx3s':
clk_freq = 40.0e6
if fpga == 'orangecrab':
if toolchain == 'yosys_nextpnr':
# add --seed 2 to arty a7 compile-time options
- os.environ['NMIGEN_nextpnr_opts'] = '--seed 6'
+ os.environ['NMIGEN_nextpnr_opts'] = '--seed 1'
if platform is not None:
# build and upload it