Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 15 Sep 2006 20:34:37 GMT
From:      Warner Losh <imp@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 106172 for review
Message-ID:  <200609152034.k8FKYbOm036359@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=106172

Change 106172 by imp@imp_lighthouse on 2006/09/15 20:33:45

	checkpoint

Affected files ...

.. //depot/projects/arm/src/sys/boot/arm/at91/Makefile.inc#21 edit
.. //depot/projects/arm/src/sys/boot/arm/at91/bootspi/arm_init.S#8 edit
.. //depot/projects/arm/src/sys/boot/arm/at91/bootspi/loader_prompt.c#22 edit
.. //depot/projects/arm/src/sys/boot/arm/at91/libat91/emac.c#33 edit

Differences ...

==== //depot/projects/arm/src/sys/boot/arm/at91/Makefile.inc#21 (text+ko) ====

@@ -5,7 +5,7 @@
 
 __at91_boot_Makefile.inc__:
 
-CFLAGS=-Os -mcpu=arm9 -ffreestanding \
+CFLAGS=-O2 -mcpu=arm9 -ffreestanding \
 	-I${.CURDIR}/../libat91 \
 	-I${.CURDIR}/../../../.. \
 	-I${.CURDIR}/../../../../arm \

==== //depot/projects/arm/src/sys/boot/arm/at91/bootspi/arm_init.S#8 (text+ko) ====

@@ -109,7 +109,7 @@
 	.string "e 0x10000000                           "
 	.string "                 "
 #else
-#if 0
+#if 1
 	.string "Bootloader for KB9202 Evaluation Board."
 	.string "m 42 53 44 0 0 1                       "
 	.string "ip 206 168 13 194                      "

==== //depot/projects/arm/src/sys/boot/arm/at91/bootspi/loader_prompt.c#22 (text+ko) ====

@@ -280,6 +280,7 @@
 		// set mac address using 6 byte values
 		unsigned char mac[6];
 
+	printf("Set MAC %d\n", argc);
 		if (argc > 6) {
 			for (i = 0; i < 6; i++)
 				mac[i] = p_ASCIIToHex(argv[i + 1]);

==== //depot/projects/arm/src/sys/boot/arm/at91/libat91/emac.c#33 (text+ko) ====

@@ -31,8 +31,8 @@
 
 /* ********************** PRIVATE FUNCTIONS/DATA ******************************/
 
-static receive_descriptor_t *p_rxBD = (receive_descriptor_t*)RX_BUFFER_START;
-static unsigned short localPort = SWAP16(0x8002);
+static receive_descriptor_t *p_rxBD;
+static unsigned short localPort;
 static unsigned short serverPort;
 static unsigned serverMACSet;
 static unsigned localIPSet, serverIPSet;
@@ -249,7 +249,6 @@
 		
 	if (!process)
 		return (0);
-						
 	process = i;
 		
 	pFrameType = (unsigned short *)((p_rxBD[i].address & 0xFFFFFFFC) + 12);
@@ -260,16 +259,17 @@
 	case SWAP16(PROTOCOL_ARP):
 		p_ARP = (arp_header_t*)pData;
 		if (p_ARP->operation == SWAP16(ARP_REPLY)) {
+				printf("R");
 			// check if new server info is available
 			if ((!serverMACSet) &&
 				(!(p_memcmp((char*)p_ARP->sender_ip,
 					(char*)serverIPAddr, 4)))) {
 
 				serverMACSet = 1;
-
 				memcpy(serverMACAddr, p_ARP->sender_mac, 6);
 			}
 		} else if (p_ARP->operation == SWAP16(ARP_REQUEST)) {
+				printf("r");
 			// ARP REPLY operation
 			p_ARP->operation =  SWAP16(ARP_REPLY);
 
@@ -297,6 +297,7 @@
 		}
 		break;
 	case SWAP16(PROTOCOL_IP):
+	    printf("i");
 		pIpHeader = (ip_header_t*)(pData + 14);			
 		memcpy(pHeader, pIpHeader, sizeof(ip_header_t));
 		
@@ -304,24 +305,33 @@
 			udp_header_t	*udpHdr;
 			tftp_header_t	*tftpHdr;
 
+			printf("u");
 			udpHdr = (udp_header_t*)((char*)pIpHeader+20);
 			tftpHdr = (tftp_header_t*)((char*)udpHdr + 8);
 
-			if (udpHdr->dst_port != localPort)
-				break;
+			if (udpHdr->dst_port != localPort) {
+			    printf("@ %x %x\n", udpHdr->dst_port, localPort);
+			    break;
+			}
 
-			if (tftpHdr->opcode != TFTP_DATA_OPCODE)
-				break;
+			if (tftpHdr->opcode != TFTP_DATA_OPCODE) {
+			    printf("#");
+			    break;
+			}
 
 			if (ackBlock == -1) {
-				if (tftpHdr->block_num != SWAP16(1))
-					break;
+				if (tftpHdr->block_num != SWAP16(1)) {
+				    printf("%");
+				    break;
+				}
 				serverPort = udpHdr->src_port;
 				ackBlock = 0;
 			}
 
-			if (serverPort != udpHdr->src_port)
-				break;
+			if (serverPort != udpHdr->src_port) {
+			    printf("$");
+			    break;
+			}
 
 			TFTP_ACK_Data(tftpHdr->data,
 			    SWAP16(tftpHdr->block_num),
@@ -442,6 +452,9 @@
 	char		*pRxPacket = (char*)RX_DATA_START;
 	AT91PS_EMAC	pEmac = AT91C_BASE_EMAC;
 
+	p_rxBD = (receive_descriptor_t*)RX_BUFFER_START;
+	localPort = SWAP16(0x8002);
+
 	for (i = 0; i < MAX_RX_PACKETS; ++i) {
 
 		p_rxBD[i].address = (unsigned)pRxPacket;
@@ -539,9 +552,11 @@
 		if (CheckForNewPacket(&IpHeader)) {
 			if (ackBlock == -2)
 				break;
+			printf("P");
 			timeout = 10;
 			thisSeconds = GetSeconds() + 1;
 		} else if (GetSeconds() > thisSeconds) {
+		    printf(".");
 			--timeout;
 			thisSeconds = GetSeconds() + 1;
 			if (!serverMACSet)



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200609152034.k8FKYbOm036359>