diff options
| author | Harald Welte <laforge@gnumonks.org> | 2011-07-30 00:39:22 +0200 | 
|---|---|---|
| committer | Harald Welte <laforge@gnumonks.org> | 2011-07-30 00:39:55 +0200 | 
| commit | de0d7e35eed67bab478fda9eee7cb9edb1f34f04 (patch) | |
| tree | 66a877977a02a21e0b93572f41cf9356c3ce87e4 /firmware/src/simtrace/main_factory.c | |
| parent | 9f120cdf57b9dc2ca8112cbb89587f77df4facd2 (diff) | |
simtrace: add some early spi flash utility routines
This also adds a new 'main_factory' target for simtrace
Diffstat (limited to 'firmware/src/simtrace/main_factory.c')
| -rw-r--r-- | firmware/src/simtrace/main_factory.c | 80 | 
1 files changed, 80 insertions, 0 deletions
| diff --git a/firmware/src/simtrace/main_factory.c b/firmware/src/simtrace/main_factory.c new file mode 100644 index 0000000..3585fa6 --- /dev/null +++ b/firmware/src/simtrace/main_factory.c @@ -0,0 +1,80 @@ +/* SIMtrace factory programming + * (C) 2011 by Harald Welte <hwelte@hmw-consulting.de> + * + *  This program is free software; you can redistribute it and/or modify + *  it under the terms of the GNU General Public License as published by  + *  the Free Software Foundation; either version 2 of the License, or + *  (at your option) any later version. + * + *  This program is distributed in the hope that it will be useful, + *  but WITHOUT ANY WARRANTY; without even the implied warranty of + *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + *  GNU General Public License for more details. + * + *  You should have received a copy of the GNU General Public License + *  along with this program; if not, write to the Free Software + *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + * + */ + + +#include <errno.h> +#include <include/lib_AT91SAM7.h> +#include <include/openpcd.h> +#include <os/dbgu.h> +#include <os/led.h> +#include <os/pcd_enumerate.h> +#include <os/usb_handler.h> +#include "../openpcd.h" +#include "../simtrace.h" +#include <os/main.h> +#include <os/pio_irq.h> + +#include <simtrace/tc_etu.h> +#include <simtrace/iso7816_uart.h> +#include <simtrace/sim_switch.h> + +void _init_func(void) +{ +	/* low-level hardware initialization */ +	pio_irq_init(); +	spiflash_init(); + +	/* high-level protocol */ +	//opicc_usbapi_init(); +	led_switch(1, 0); +	led_switch(2, 1); +} + +static void help(void) +{ +	DEBUGPCR("f: read flash ID\r\n"); +} + +int _main_dbgu(char key) +{ +	static int i = 0; +	DEBUGPCRF("main_dbgu"); + +	switch (key) { +	case 'f': +		spiflash_id(); +		break; +	case '?': +		help(); +		break; +	} + +	return -EINVAL; +} + +void _main_func(void) +{ +	/* first we try to get rid of pending to-be-sent stuff */ +	usb_out_process(); + +	/* next we deal with incoming requests from USB EP1 (OUT) */ +	usb_in_process(); + +	udp_unthrottle(); +} | 
