From f4431ebb081b656b12485c4a4ce5f7be3b813f66 Mon Sep 17 00:00:00 2001 From: Ulf Samuelsson Date: Sun, 11 Jan 2009 21:42:07 +0000 Subject: Move AT91 patches for u-boot-2009.01-rc1 to device/Atmel/arch-arm/u-boot/2009.01-rc1 --- .../2009.01-rc1/u-boot-2009.01-rc1-007-tools.patch | 576 --------------------- 1 file changed, 576 deletions(-) delete mode 100644 target/u-boot/2009.01-rc1/u-boot-2009.01-rc1-007-tools.patch (limited to 'target/u-boot/2009.01-rc1/u-boot-2009.01-rc1-007-tools.patch') diff --git a/target/u-boot/2009.01-rc1/u-boot-2009.01-rc1-007-tools.patch b/target/u-boot/2009.01-rc1/u-boot-2009.01-rc1-007-tools.patch deleted file mode 100644 index 8f71ee043..000000000 --- a/target/u-boot/2009.01-rc1/u-boot-2009.01-rc1-007-tools.patch +++ /dev/null @@ -1,576 +0,0 @@ -diff -urN u-boot-2008.10-0rig//tools/Makefile u-boot-2008.10/tools/Makefile ---- u-boot-2008.10-0rig//tools/Makefile 2008-12-31 17:51:29.000000000 +0100 -+++ u-boot-2008.10/tools/Makefile 2008-12-31 19:38:15.000000000 +0100 -@@ -37,6 +37,11 @@ - #OBJ_FILES += mpc86x_clk.o - #endif - -+ifeq ($(VENDOR),atmel) -+BINS+= raw-at91$(SFX) sx-at91$(SFX) -+OBJS+= raw-at91.o sx-at91.o -+endif -+ - LIBFDT_OBJ_FILES = $(obj)fdt.o $(obj)fdt_ro.o $(obj)fdt_rw.o $(obj)fdt_strerror.o $(obj)fdt_wip.o - - LOGO_H = $(OBJTREE)/include/bmp_logo.h -@@ -175,6 +180,14 @@ - $(CC) $(CFLAGS) $(HOST_LDFLAGS) -o $@ $^ - $(STRIP) $@ - -+$(obj)raw-at91$(SFX): $(obj)raw-at91.o -+ $(CC) $(CFLAGS) $(HOST_LDFLAGS) -o $@ $^ -+ $(STRIP) $@ -+ -+$(obj)sx-at91$(SFX): $(obj)sx-at91.o -+ $(CC) $(CFLAGS) $(HOST_LDFLAGS) -o $@ $^ -+ $(STRIP) $@ -+ - $(obj)envcrc.o: $(src)envcrc.c - $(CC) -g $(CFLAGS) -c -o $@ $< - -@@ -223,6 +236,12 @@ - $(obj)fdt_wip.o: $(obj)fdt_wip.c - $(CC) -g $(FIT_CFLAGS) -c -o $@ $< - -+$(obj)sx-at91.o: $(src)sx-at91.c -+ $(CC) -g $(CFLAGS) -c -o $@ $< -+ -+$(obj)raw-at91.o: $(src)raw-at91.c -+ $(CC) -g $(CFLAGS) -c -o $@ $< -+ - subdirs: - ifeq ($(TOOLSUBDIRS),) - @: -diff -urN u-boot-2008.10-0rig//tools/raw-at91.c u-boot-2008.10/tools/raw-at91.c ---- u-boot-2008.10-0rig//tools/raw-at91.c 1970-01-01 01:00:00.000000000 +0100 -+++ u-boot-2008.10/tools/raw-at91.c 2008-12-31 19:26:23.000000000 +0100 -@@ -0,0 +1,225 @@ -+/* -+ * xmodem-at91.c -+ * -+ * A simple program using xmodem/1kxmode upload file to at91rm9200 based board. -+ * Created by (C) Copyright 2004 -+ * Linhang.Zhang, Jilin University of PR.China, linxing@jlu.edu.cn. -+ * -+ ************************************************************************************* -+ * -+ * Modified 01-Feb-2005 (C)Copyright 2005 -+ * Marco Cavallini, www.KoanSoftware.com - ITALY, m.cavallini@koansoftware.com -+ * - edited indentations and changed break usage in switch statement. -+ * - added "\r" to printf -+ * -+ * - build with -+ * gcc sx-at91.c -o sx-at91 -+ * -+ * - Howto use this program with minicom/xminicom and AT91 -+ * start minicom or xminicom -+ * edit Options / File transfer protocol, -+ * add a name (for example J) like the following example -+ * -+ * | Name Program Name U/D FullScr IO-Red. Multi | -+ * | A zmodem /usr/bin/sz -vv -b Y U N Y Y | -+ * | B ymodem /usr/bin/sb -vv Y U N Y Y | -+ * | C xmodem /usr/bin/sx -vv Y U N Y N | -+ * | D zmodem /usr/bin/rz -vv -b -E N D N Y Y | -+ * | E ymodem /usr/bin/rb -vv N D N Y Y | -+ * | F xmodem /usr/bin/rx -vv Y D N Y N | -+ * | G kermit /usr/bin/kermit -i -l %l -s Y U Y N N | -+ * | H kermit /usr/bin/kermit -i -l %l -r N D Y N N | -+ * | I ascii /usr/bin/ascii-xfr -dsv Y U N Y N | -+ * | J at91 /home/koan/xmodem/xs-at91 Y U Y N N | -+ * | K - | -+ * | L - | -+ * -+ * save and use it selecting at91 protocol when you start an Xmodem upload to AT91 -+ * -+ ************************************************************************************* -+ * -+ * 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 -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#define TRUE 1 -+#define FALSE 0 -+#define LINESIZE 1024 -+ -+/*********/ -+ -+#define SERIAL_DEVICE "/dev/ttyS0" -+#define MYBAUDRATE B115200 -+ -+/***************SUB PROGRAM*******/ -+ -+int Initial_SerialPort(void) -+{ -+ int fd; -+ struct termios options; -+ -+ fd = open( SERIAL_DEVICE , O_RDWR | O_NOCTTY | O_NDELAY ); -+ if ( fd == -1 ) -+ { -+ /*open error!*/ -+ perror("Can't open serial port!"); -+ return -1; -+ } -+ -+ /*Get the current options for the port...*/ -+ tcgetattr(fd, &options); -+ -+ /*Set the baud rates to BAUDRATE...*/ -+ cfsetispeed(&options,MYBAUDRATE); -+ cfsetospeed(&options,MYBAUDRATE); -+ tcsetattr(fd, TCSANOW, &options); -+ if (0 != tcgetattr(fd, &options)) -+ { -+ perror("SetupSerial 1"); -+ return -1; -+ } -+ -+ /* -+ * 8bit Data,no partity,1 stop bit... -+ */ -+ options.c_cflag &= ~PARENB; -+ options.c_cflag &= ~CSTOPB; -+ options.c_cflag &= ~CSIZE; -+ options.c_cflag |= CS8; -+ tcflush(fd,TCIFLUSH); -+ -+ /***Choosing Raw Input*/ -+ options.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG); -+ options.c_oflag &= ~OPOST; -+ -+ /* -+ * Set the new options for the port... -+ */ -+ if (0 != tcsetattr(fd, TCSANOW, &options)) -+ { -+ perror("SetupSerial error"); -+ return -1 ; -+ } -+ -+ return fd ; -+} -+ -+/******************************/ -+void ClearReceiveBuffer(int fd) -+{ -+ unsigned char tmp; -+ while ((read(fd,&tmp,1))>0); -+ -+ return; -+} -+unsigned char filebuf[ LINESIZE+2 ]; -+unsigned char outbuf[ LINESIZE+2 ]; -+FILE *datafile; -+int fd; -+ -+static unsigned int ChCnt=0; -+static unsigned int ChIx; -+unsigned char GetChar(unsigned char *ch) -+/* -+ * SUCCESS: Return TRUE -+ * FAILURE: Return FALSE -+ */ -+{ -+ -+ if(ChCnt == 0) { -+ ChCnt = fread( filebuf, sizeof(char), LINESIZE, datafile); -+ ChIx = 0; -+ } -+ if(ChCnt > 0) { -+ *ch = filebuf[ChIx++]; -+ ChCnt--; -+ return TRUE; -+ } else { -+ return FALSE; /* Reached End of File */ -+ } -+} -+ -+/********************************/ -+void delay() -+{ -+} -+ -+int main(int argc,char *argv[]) -+{ -+ char *data_file_name; -+ int len; -+ unsigned char c; -+ int complete,i,sts; -+ -+ printf("raw-at91 started...\r\n"); -+ -+ /* open serial port1 */ -+ if ( (fd = Initial_SerialPort()) == -1) -+ return -1 ; -+ -+ data_file_name = argv[1]; -+ -+ if((datafile=fopen(data_file_name,"rb"))==NULL) -+ { -+ perror ("Can't open file!"); -+ return -1 ; -+ } -+ -+ /*******************************/ -+ -+ complete = 0; -+ /* ClearReceiveBuffer(fd); */ -+ -+ /* while((read(fd,&ack_id,1))<=0);*/ -+ -+ /* printf("%c\r\n",ack_id); */ -+ while(!complete) -+ { -+ for(i=0;i < LINESIZE; i++) { /* A line more than 1024 characters will have problems...*/ -+ if((sts = GetChar(&outbuf[i]))) { -+ /* Sts = Success */ -+ if((c = outbuf[i]) == '\n') { /* Found end of Line - Start Processing*/ -+ outbuf[i+1] = '\0'; /* Terminate String*/ -+ break; -+ } -+ } else { -+ /* Sts = Failure - End of File */ -+ outbuf[i] = '\n'; -+ outbuf[i+1] = '\0'; -+ complete = 1; -+ } -+ } -+ printf("%s",outbuf); /* Inform user */ -+ len = strlen((char *)outbuf); -+ write(fd,outbuf,strlen((char *)outbuf)); -+ for(i = 0; i < 500000000; i++ ) delay(); -+ while((read(fd,&c,1))<=0) putchar(c); -+ printf(" "); -+ } -+ fclose(datafile); -+ close(fd); -+ return 0; -+} -diff -urN u-boot-2008.10-0rig//tools/sx-at91.c u-boot-2008.10/tools/sx-at91.c ---- u-boot-2008.10-0rig//tools/sx-at91.c 1970-01-01 01:00:00.000000000 +0100 -+++ u-boot-2008.10/tools/sx-at91.c 2008-12-31 19:26:23.000000000 +0100 -@@ -0,0 +1,300 @@ -+/* -+ * xmodem-at91.c -+ * -+ * A simple program using xmodem/1kxmode upload file to at91rm9200 based board. -+ * Created by (C) Copyright 2004 -+ * Linhang.Zhang, Jilin University of PR.China, linxing@jlu.edu.cn. -+ * -+ ************************************************************************************* -+ * -+ * Modified 01-Feb-2005 (C)Copyright 2005 -+ * Marco Cavallini, www.KoanSoftware.com - ITALY, m.cavallini@koansoftware.com -+ * - edited indentations and changed break usage in switch statement. -+ * - added "\r" to printf -+ * -+ * - build with -+ * gcc sx-at91.c -o sx-at91 -+ * -+ * - Howto use this program with minicom/xminicom and AT91 -+ * start minicom or xminicom -+ * edit Options / File transfer protocol, -+ * add a name (for example J) like the following example -+ * -+ * | Name Program Name U/D FullScr IO-Red. Multi | -+ * | A zmodem /usr/bin/sz -vv -b Y U N Y Y | -+ * | B ymodem /usr/bin/sb -vv Y U N Y Y | -+ * | C xmodem /usr/bin/sx -vv Y U N Y N | -+ * | D zmodem /usr/bin/rz -vv -b -E N D N Y Y | -+ * | E ymodem /usr/bin/rb -vv N D N Y Y | -+ * | F xmodem /usr/bin/rx -vv Y D N Y N | -+ * | G kermit /usr/bin/kermit -i -l %l -s Y U Y N N | -+ * | H kermit /usr/bin/kermit -i -l %l -r N D Y N N | -+ * | I ascii /usr/bin/ascii-xfr -dsv Y U N Y N | -+ * | J at91 /home/koan/xmodem/xs-at91 Y U Y N N | -+ * | K - | -+ * | L - | -+ * -+ * save and use it selecting at91 protocol when you start an Xmodem upload to AT91 -+ * -+ ************************************************************************************* -+ * -+ * 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 -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+/* -+Xmodem Frame form: <255-blk #><--128 data bytes--> -+*/ -+ -+#define XMODEM_SOH 0x01 -+#define XMODEM_STX 0x02 -+#define XMODEM_EOT 0x04 -+#define XMODEM_ACK 0x06 -+#define XMODEM_NAK 0x15 -+#define XMODEM_CRC_CHR 'C' -+#define XMODEM_CRC_SIZE 2 /* Crc_High Byte + Crc_Low Byte */ -+#define XMODEM_FRAME_ID_SIZE 2 /* Frame_Id + 255-Frame_Id */ -+#define XMODEM_DATA_SIZE_SOH 128 /* for Xmodem protocol */ -+#define XMODEM_DATA_SIZE_STX 1024 /* for 1K xmodem protocol */ -+#define USE_1K_XMODEM 0 /* 1 for use 1k_xmodem 0 for xmodem */ -+ -+#if (USE_1K_XMODEM) -+ #define XMODEM_DATA_SIZE XMODEM_DATA_SIZE_STX -+ #define XMODEM_HEAD XMODEM_STX -+#else -+ #define XMODEM_DATA_SIZE XMODEM_DATA_SIZE_SOH -+ #define XMODEM_HEAD XMODEM_SOH -+#endif -+/*********/ -+ -+#define SERIAL_DEVICE "/dev/ttyS0" -+#define MYBAUDRATE B115200 -+ -+/***************SUB PROGRAM*******/ -+unsigned short GetCrc16 ( char *ptr, unsigned short count ) -+{ -+ unsigned short crc, i; -+ -+ crc = 0; -+ while(count--) -+ { -+ crc = crc ^ (int) *ptr++ << 8; -+ -+ for(i = 0; i < 8; i++) -+ { -+ if(crc & 0x8000) -+ crc = crc << 1 ^ 0x1021; -+ else -+ crc = crc << 1; -+ } -+ } -+ -+ return (crc & 0xFFFF); -+} -+ -+/*******************************/ -+int Initial_SerialPort(void) -+{ -+ int fd; -+ struct termios options; -+ -+ fd = open( SERIAL_DEVICE , O_RDWR | O_NOCTTY | O_NDELAY ); -+ if ( fd == -1 ) -+ { -+ /*open error!*/ -+ perror("Can't open serial port!"); -+ return -1; -+ } -+ -+ /*Get the current options for the port...*/ -+ tcgetattr(fd, &options); -+ -+ /*Set the baud rates to BAUDRATE...*/ -+ cfsetispeed(&options,MYBAUDRATE); -+ cfsetospeed(&options,MYBAUDRATE); -+ tcsetattr(fd, TCSANOW, &options); -+ if (0 != tcgetattr(fd, &options)) -+ { -+ perror("SetupSerial 1"); -+ return -1; -+ } -+ -+ /* -+ * 8bit Data,no partity,1 stop bit... -+ */ -+ options.c_cflag &= ~PARENB; -+ options.c_cflag &= ~CSTOPB; -+ options.c_cflag &= ~CSIZE; -+ options.c_cflag |= CS8; -+ tcflush(fd,TCIFLUSH); -+ -+ /***Choosing Raw Input*/ -+ options.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG); -+ options.c_oflag &= ~OPOST; -+ -+ /* -+ * Set the new options for the port... -+ */ -+ if (0 != tcsetattr(fd, TCSANOW, &options)) -+ { -+ perror("SetupSerial error"); -+ return -1 ; -+ } -+ -+ return fd ; -+} -+ -+/******************************/ -+void ClearReceiveBuffer(int fd) -+{ -+ unsigned char tmp; -+ while ((read(fd,&tmp,1))>0); -+ -+ return; -+} -+ -+/********************************/ -+int main(int argc,char *argv[]) -+{ -+ int fd; -+ char *data_file_name; -+ char packet_data[ XMODEM_DATA_SIZE ]; -+ char frame_data[ XMODEM_DATA_SIZE + XMODEM_CRC_SIZE + XMODEM_FRAME_ID_SIZE + 1 ]; -+ FILE *datafile; -+ int complete,retry_num,pack_counter,read_number,write_number,i; -+ unsigned short crc_value; -+ unsigned char ack_id; -+ -+ printf("sx-at91 started...\r\n"); -+ -+ /* open serial port1 */ -+ if ( (fd = Initial_SerialPort()) == -1) -+ return -1 ; -+ -+ data_file_name = argv[1]; -+ -+ if((datafile=fopen(data_file_name,"rb"))==NULL) -+ { -+ perror ("Can't open file!"); -+ return -1 ; -+ } -+ -+ /*******************************/ -+ -+ pack_counter = 0; -+ complete = 0; -+ retry_num = 0; -+ ClearReceiveBuffer(fd); -+ -+ while((read(fd,&ack_id,1))<=0); -+ -+ printf("%c\r\n",ack_id); -+ ack_id=XMODEM_ACK; -+ while(!complete) -+ { -+ switch(ack_id) -+ { -+ case XMODEM_ACK: -+ retry_num = 0; -+ pack_counter++; -+ read_number = fread( packet_data, sizeof(char), XMODEM_DATA_SIZE, datafile); -+ if(read_number>0) -+ { -+ if(read_number> 8); -+ frame_data[XMODEM_DATA_SIZE_SOH+4]=(unsigned char)(crc_value); -+ write_number = write( fd, frame_data, XMODEM_DATA_SIZE_SOH + 5); -+ printf("waiting for ACK,%d,%d,...",pack_counter,write_number); -+ while((read(fd,&ack_id,1))<=0); -+ -+ if(ack_id == XMODEM_ACK) -+ printf("Ok!\r\n"); -+ else -+ printf("Error!\r\n"); -+ } -+ else -+ { -+ ack_id = XMODEM_EOT; -+ complete = 1; -+ printf("Waiting for complete ACK ..."); -+ -+ while(ack_id != XMODEM_ACK) -+ { -+ ack_id = XMODEM_EOT; -+ write_number=write(fd,&ack_id,1); -+ while((read(fd,&ack_id,1))<=0); -+ } -+ printf("OK\r\n"); -+ -+ printf("Sending file complete\r\n"); -+ } -+ break; -+ -+ case XMODEM_NAK: -+ if( retry_num++ > 10) -+ { -+ printf("Retry too many times,Quit!\r\n"); -+ complete = 1; -+ } -+ else -+ { -+ write_number = write(fd,frame_data,XMODEM_DATA_SIZE + 5); -+ printf("Retry for ACK,%d,%d...",pack_counter,write_number); -+ while((read(fd,&ack_id,1))<=0); -+ -+ if( ack_id == XMODEM_ACK ) -+ printf("OK\r\n"); -+ else -+ printf("Error!\r\n"); -+ } -+ break; -+ -+ default: -+ printf("Fatal Error!\r\n"); -+ complete = 1; -+ break; -+ } -+ -+ } -+ -+ fclose(datafile); -+ close(fd); -+ -+ return 0; -+} -- cgit v1.2.3