From owner-p4-projects@FreeBSD.ORG Wed May 16 23:13:30 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A30E516A406; Wed, 16 May 2007 23:13:30 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 8125316A404 for ; Wed, 16 May 2007 23:13:30 +0000 (UTC) (envelope-from imp@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 7261313C455 for ; Wed, 16 May 2007 23:13:30 +0000 (UTC) (envelope-from imp@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l4GNDUe6060676 for ; Wed, 16 May 2007 23:13:30 GMT (envelope-from imp@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l4GNDU0X060665 for perforce@freebsd.org; Wed, 16 May 2007 23:13:30 GMT (envelope-from imp@freebsd.org) Date: Wed, 16 May 2007 23:13:30 GMT Message-Id: <200705162313.l4GNDU0X060665@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to imp@freebsd.org using -f From: Warner Losh To: Perforce Change Reviews Cc: Subject: PERFORCE change 119941 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 16 May 2007 23:13:31 -0000 http://perforce.freebsd.org/chv.cgi?CH=119941 Change 119941 by imp@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"