PERFORCE change 96336 for review

Warner Losh imp at FreeBSD.org
Fri Apr 28 22:58:06 UTC 2006


http://perforce.freebsd.org/chv.cgi?CH=96336

Change 96336 by imp at imp_hammer on 2006/04/28 22:57:39

	demo fpga loading progarm.

Affected files ...

.. //depot/projects/arm/src/sys/boot/arm/at91/boot0spi/main.c#8 edit

Differences ...

==== //depot/projects/arm/src/sys/boot/arm/at91/boot0spi/main.c#8 (text) ====

@@ -29,27 +29,48 @@
 #include "p_string.h"
 #include "at91rm9200_lowlevel.h"
 #include "spi_flash.h"
+#include "fpga.h"
 
+struct fpga main_fpga = 
+{
+    AT91C_BASE_PIOB, AT91C_PIO_PB0,
+    AT91C_BASE_PIOC, AT91C_PIO_PC11,
+    AT91C_BASE_PIOB, AT91C_PIO_PB2,
+    AT91C_BASE_PIOC, AT91C_PIO_PC12
+};
+
+
 int
 main(void)
 {
 	int len;
 	char *addr = (char *)SDRAM_BASE + (1 << 20); /* Load to base + 1MB */
+#if 0
 	char *addr2 = (char *)SDRAM_BASE + (2 << 20); /* Load to base + 2MB */
 	char *addr3 = (char *)SDRAM_BASE + (3 << 20); /* Load to base + 2MB */
+#endif
 
 	SPI_InitFlash();
+#if 0
 	while ((len = xmodem_rx(addr)) == -1)
 		continue;
 	printf("Downloaded %u bytes.\r\n", len);
 	p_memcpy(addr3, addr, len);
 	printf("Writing %u bytes to flash\r\n", len);
-	SPI_WriteFlash(0, addr, len);
+	SPI_WriteFlash(15 * FLASH_PAGE_SIZE, addr, len);
 	printf("Reading back %u bytes from flash\r\n", len);
-	SPI_ReadFlash(0, addr2, len);
+	SPI_ReadFlash(15 * FLASH_PAGE_SIZE, addr2, len);
 	if (p_memcmp(addr3, addr2, len) != 0)
 		printf("Readback failed\r\n");
 	else
 		printf("Readback OK\r\n");
+#else
+	len = 212482;
+	SPI_ReadFlash(15 * FLASH_PAGE_SIZE, addr, len);
+	fpga_init(&main_fpga);
+	fpga_clear(&main_fpga);
+	fpga_write_bytes(&main_fpga, addr, len);
+	fpga_done(&main_fpga);
+#endif
 	return (1);
 }


More information about the p4-projects mailing list