PERFORCE change 119941 for review
Warner Losh
imp at FreeBSD.org
Wed May 16 23:13:31 UTC 2007
http://perforce.freebsd.org/chv.cgi?CH=119941
Change 119941 by imp at imp_lighthouse on 2007/05/16 23:13:28
Revert.
Affected files ...
.. //depot/projects/arm/src/sys/boot/arm/at91/boot2/tsc_board.c#9 edit
Differences ...
==== //depot/projects/arm/src/sys/boot/arm/at91/boot2/tsc_board.c#9 (text+ko) ====
@@ -11,6 +11,10 @@
unsigned char mac[6] = { 0x42, 0x53, 0x44, 0, 0, 1 };
+#define KLUDGE_STRAP
+#define TSC_FPGA
+
+#ifdef TSC_FPGA
#include "at91rm9200.h"
#include "spi_flash.h"
#include "fpga.h"
@@ -34,7 +38,6 @@
int len, off, i, offset;
char *addr = buffer;
- printf("Loading fpga...");
len = FPGA_LEN;
offset = FPGA_OFFSET;
for (i = 0; i < len; i+= FLASH_PAGE_SIZE) {
@@ -45,40 +48,92 @@
fpga_clear(&main_fpga);
fpga_write_bytes(&main_fpga, addr, len);
fpga_done(&main_fpga);
- printf("done\n");
}
+#endif
static void
MacFromEE()
{
+#if 0
uint32_t sig;
+#ifdef KLUDGE_STRAP
+ uint8_t euid64[8] = { 0x00, 0x30, 0x96, 0x20,
+ 0x00, 0x00, 0x00, 0x03 };
+#endif
+#ifdef KLUDGE_STRAP
+ printf("writing...\n");
+ sig = 0xaa55aa55;
+ EEWrite(0, (uint8_t *)&sig, sizeof(sig));
+ printf("euid64\n");
+ EEWrite(48, euid64, sizeof(euid64));
+ printf("done\n");
+#endif
sig = 0;
EERead(0, (uint8_t *)&sig, sizeof(sig));
if (sig != 0xaa55aa55)
return;
EERead(48, mac, 3);
EERead(48+5, mac+3, 3);
+#else
+ mac[0] = 0;
+ mac[1] = 0x30;
+ mac[2] = 0x96;
+ mac[3] = 0;
+ mac[4] = 0;
+ mac[5] = 3;
+#endif
printf("MAC %x:%x:%x:%x:%x:%x\n", mac[0],
mac[1], mac[2], mac[3], mac[4], mac[5]);
}
+#ifdef XMODEM_DL
+#define FLASH_OFFSET (0 * FLASH_PAGE_SIZE)
+#define FPGA_OFFSET (15 * FLASH_PAGE_SIZE)
+#define FPGA_LEN (212608)
+#define KERNEL_OFFSET (220 * FLASH_PAGE_SIZE)
+#define KERNEL_LEN (6 * 1024 * FLASH_PAGE_SIZE)
+
+static void
+UpdateFlash(int offset)
+{
+ char *addr = (char *)0x20000000 + (1 << 20); /* Load to base + 1MB */
+ int len, i, off;
+
+ while ((len = xmodem_rx(addr)) == -1)
+ continue;
+ printf("\nDownloaded %u bytes.\n", len);
+ for (i = 0; i < len; i+= FLASH_PAGE_SIZE) {
+ off = i + offset;
+ SPI_WriteFlash(off, addr + i, FLASH_PAGE_SIZE);
+ }
+}
void
Update(void)
{
+ UpdateFlash(FLASH_OFFSET);
}
+#else
+void
+Update(void)
+{
+}
+#endif
+
void
board_init(void)
{
- while (!sdcard_init())
- printf("Probing for SD card...\n");
- SPI_InitFlash();
- fpga_load();
- EEInit();
- MacFromEE();
- EMAC_Init();
- EMAC_SetMACAddress(mac);
+#ifdef TSC_FPGA
+ SPI_InitFlash();
+ fpga_load();
+#endif
+ EEInit();
+ MacFromEE();
+ EMAC_Init();
+ sdcard_init();
+ EMAC_SetMACAddress(mac);
+
}
#include "../bootspi/ee.c"
More information about the p4-projects
mailing list