From owner-p4-projects@FreeBSD.ORG Tue Sep 5 22:34:45 2006 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 949B516A4E6; Tue, 5 Sep 2006 22:34:45 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 715AB16A4E0 for ; Tue, 5 Sep 2006 22:34:45 +0000 (UTC) (envelope-from imp@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id D5E3743D76 for ; Tue, 5 Sep 2006 22:34:44 +0000 (GMT) (envelope-from imp@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id k85MYiWK020388 for ; Tue, 5 Sep 2006 22:34:44 GMT (envelope-from imp@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id k85MYiFW020384 for perforce@freebsd.org; Tue, 5 Sep 2006 22:34:44 GMT (envelope-from imp@freebsd.org) Date: Tue, 5 Sep 2006 22:34:44 GMT Message-Id: <200609052234.k85MYiFW020384@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 105703 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: Tue, 05 Sep 2006 22:34:45 -0000 http://perforce.freebsd.org/chv.cgi?CH=105703 Change 105703 by imp@imp_lighthouse on 2006/09/05 22:34:21 Load that thar FPGA Affected files ... .. //depot/projects/arm/src/sys/boot/arm/at91/boot2/boot2.c#11 edit Differences ... ==== //depot/projects/arm/src/sys/boot/arm/at91/boot2/boot2.c#11 (text+ko) ==== @@ -186,6 +186,47 @@ } } +#ifdef BOOT_TSC +#define TSC_FPGA +#endif + +#ifdef TSC_FPGA +#include "at91rm9200.h" +#include "spi_flash.h" +#include "fpga.h" + +#define FPGA_OFFSET (15 * FLASH_PAGE_SIZE) +#define FPGA_LEN (212608) + +char buffer[FPGA_LEN]; + +const 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 +}; + +void +fpga_load(void) +{ + int len, off, i, offset; + char *addr = buffer; + + len = FPGA_LEN; + offset = FPGA_OFFSET; + for (i = 0; i < len; i+= FLASH_PAGE_SIZE) { + off = i + offset; + SPI_ReadFlash(off, addr + i, FLASH_PAGE_SIZE); + } + fpga_init(&main_fpga); + fpga_clear(&main_fpga); + fpga_write_bytes(&main_fpga, addr, len); + fpga_done(&main_fpga); +} +#endif + int main(void) { @@ -195,6 +236,12 @@ if (kname[0]) printf("bss not zero\r\n"); +#ifdef TSC_FPGA + SPI_InitFlash(); + printf("Loading FPGA..."); + fpga_load(); + printf("done\r\n"); +#endif EMAC_Init(); sdcard_init(); EMAC_SetMACAddress(mac);