LPC2292 SODIMM port coding style cleanup.
This commit is contained in:
		
							parent
							
								
									6bd2447ee4
								
							
						
					
					
						commit
						f8db84f132
					
				
							
								
								
									
										43
									
								
								CHANGELOG
								
								
								
								
							
							
						
						
									
										43
									
								
								CHANGELOG
								
								
								
								
							|  | @ -1,3 +1,46 @@ | ||||||
|  | commit 6bd2447ee47ee23c18d2b3c7ccd5a20f7626f5b3 | ||||||
|  | Author: Gary Jennejohn <garyj@pollux.denx.de> | ||||||
|  | Date:	Wed Jan 24 12:16:56 2007 +0100 | ||||||
|  | 
 | ||||||
|  |     Add port for the lpc2292sodimm evaluation board from EmbeddedArtists | ||||||
|  | 
 | ||||||
|  | commit 2daf046ba627f85f44195815778140039636244e | ||||||
|  | Author: Bartlomiej Sieka <tur@semihalf.com> | ||||||
|  | Date:	Tue Jan 23 17:22:06 2007 +0100 | ||||||
|  | 
 | ||||||
|  |     [iDMR] Add MTD and JFFS2 support, also add default partition definition. | ||||||
|  | 
 | ||||||
|  | commit f7db33101fbc9c8f0a10738ce87034875a17aeb9 | ||||||
|  | Author: Bartlomiej Sieka <tur@semihalf.com> | ||||||
|  | Date:	Tue Jan 23 14:21:14 2007 +0100 | ||||||
|  | 
 | ||||||
|  |     [iDMR] Flash driver on initialisation write-protects some sectors, | ||||||
|  |     currently sectors 0-3. Sector 3 does not need to be protected, though | ||||||
|  |     (U-boot occupies sectors 0-1 and the environment sector 2). This commit | ||||||
|  |     fixes this, i.e., only sectors 0-2 are protected. | ||||||
|  | 
 | ||||||
|  | commit 0ed47bb119cd2c4c16edb2548789148f9e6dc9de | ||||||
|  | Author: Bartlomiej Sieka <tur@semihalf.com> | ||||||
|  | Date:	Tue Jan 23 14:11:22 2007 +0100 | ||||||
|  | 
 | ||||||
|  |     [iDMR] Using MII-related commands on iDRM board doesn't work now (e.g., | ||||||
|  |     "mii device" results in "Unexpected exception"). Fixing this properly | ||||||
|  |     requires some clean-up in the FEC drivers infrastructure for ColdFire, so | ||||||
|  |     this commit disables MII commads for now. | ||||||
|  | 
 | ||||||
|  | commit 363d1d8f9c99b63daef81f5985cab3fc00edde5c | ||||||
|  | Author: Bartlomiej Sieka <tur@semihalf.com> | ||||||
|  | Date:	Tue Jan 23 13:25:22 2007 +0100 | ||||||
|  | 
 | ||||||
|  |     [ColdFire MCF5271 family] Add CPU detection based on the value of Chip | ||||||
|  |     Identification Register (CIR). | ||||||
|  | 
 | ||||||
|  | commit a4012396645533aef218354eeba754dff0deace8 | ||||||
|  | Author: Wolfgang Denk <wd@pollux.denx.de> | ||||||
|  | Date:	Fri Jan 19 23:08:39 2007 +0100 | ||||||
|  | 
 | ||||||
|  |     Minor code cleanup. | ||||||
|  | 
 | ||||||
| commit f539b7ba7d7ef6dd187c8209609001cb1cd95e39 | commit f539b7ba7d7ef6dd187c8209609001cb1cd95e39 | ||||||
| Author: Heiko Schocher <hs@pollux.denx.de> | Author: Heiko Schocher <hs@pollux.denx.de> | ||||||
| Date:	Fri Jan 19 19:57:10 2007 +0100 | Date:	Fri Jan 19 19:57:10 2007 +0100 | ||||||
|  |  | ||||||
|  | @ -28,4 +28,3 @@ | ||||||
| #address where u-boot will be relocated
 | #address where u-boot will be relocated
 | ||||||
| #TEXT_BASE = 0x0
 | #TEXT_BASE = 0x0
 | ||||||
| TEXT_BASE = 0x81500000 | TEXT_BASE = 0x81500000 | ||||||
| 
 |  | ||||||
|  |  | ||||||
|  | @ -283,18 +283,18 @@ | ||||||
| #define enc_cfg_spi() spi_set_cfg(0, 0, 0); spi_set_clock(8); | #define enc_cfg_spi() spi_set_cfg(0, 0, 0); spi_set_clock(8); | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| static unsigned char encReadReg(unsigned char regNo); | static unsigned char encReadReg (unsigned char regNo); | ||||||
| static void encWriteReg(unsigned char regNo, unsigned char data); | static void encWriteReg (unsigned char regNo, unsigned char data); | ||||||
| static void encWriteRegRetry(unsigned char regNo, unsigned char data, int c); | static void encWriteRegRetry (unsigned char regNo, unsigned char data, int c); | ||||||
| static void encReadBuff(unsigned short length, unsigned char *pBuff); | static void encReadBuff (unsigned short length, unsigned char *pBuff); | ||||||
| static void encWriteBuff(unsigned short length, unsigned char *pBuff); | static void encWriteBuff (unsigned short length, unsigned char *pBuff); | ||||||
| static void encBitSet(unsigned char regNo, unsigned char data); | static void encBitSet (unsigned char regNo, unsigned char data); | ||||||
| static void encBitClr(unsigned char regNo, unsigned char data); | static void encBitClr (unsigned char regNo, unsigned char data); | ||||||
| static void encReset(void); | static void encReset (void); | ||||||
| static void encInit(unsigned char *pEthAddr); | static void encInit (unsigned char *pEthAddr); | ||||||
| static unsigned short phyRead(unsigned char addr); | static unsigned short phyRead (unsigned char addr); | ||||||
| static void encPoll(void); | static void encPoll (void); | ||||||
| static void encRx(void); | static void encRx (void); | ||||||
| 
 | 
 | ||||||
| #define m_nic_read(reg) encReadReg(reg) | #define m_nic_read(reg) encReadReg(reg) | ||||||
| #define m_nic_write(reg, data) encWriteReg(reg, data) | #define m_nic_write(reg, data) encWriteReg(reg, data) | ||||||
|  | @ -314,57 +314,58 @@ static unsigned char next_pointer_msb; | ||||||
| 
 | 
 | ||||||
| static unsigned char buffer[ENC_MAX_FRM_LEN]; | static unsigned char buffer[ENC_MAX_FRM_LEN]; | ||||||
| static int rxResetCounter = 0; | static int rxResetCounter = 0; | ||||||
|  | 
 | ||||||
| #define RX_RESET_COUNTER 1000; | #define RX_RESET_COUNTER 1000; | ||||||
| 
 | 
 | ||||||
| /*-----------------------------------------------------------------------------
 | /*-----------------------------------------------------------------------------
 | ||||||
|  * Returns 0 when failes otherwize 1 |  * Returns 0 when failes otherwize 1 | ||||||
|  */ |  */ | ||||||
| int eth_init(bd_t *bis) | int eth_init (bd_t * bis) | ||||||
| { | { | ||||||
| 	/* configure GPIO */ | 	/* configure GPIO */ | ||||||
| 	(*((volatile unsigned long *) IO1DIR)) |= ENC_SPI_SLAVE_CS; | 	(*((volatile unsigned long *) IO1DIR)) |= ENC_SPI_SLAVE_CS; | ||||||
| 	(*((volatile unsigned long *) IO1DIR)) |= ENC_RESET; | 	(*((volatile unsigned long *) IO1DIR)) |= ENC_RESET; | ||||||
| 
 | 
 | ||||||
| 	/* CS and RESET active low */ | 	/* CS and RESET active low */ | ||||||
| 	PUT32(IO1SET, ENC_SPI_SLAVE_CS); | 	PUT32 (IO1SET, ENC_SPI_SLAVE_CS); | ||||||
| 	PUT32(IO1SET, ENC_RESET); | 	PUT32 (IO1SET, ENC_RESET); | ||||||
| 
 | 
 | ||||||
| 	spi_init(); | 	spi_init (); | ||||||
| 
 | 
 | ||||||
| 	/* initialize controller */ | 	/* initialize controller */ | ||||||
| 	encReset(); | 	encReset (); | ||||||
| 	encInit(bis->bi_enetaddr); | 	encInit (bis->bi_enetaddr); | ||||||
| 
 | 
 | ||||||
| 	m_nic_bfs(CTL_REG_ECON1, ENC_ECON1_RXEN); /* enable receive */   | 	m_nic_bfs (CTL_REG_ECON1, ENC_ECON1_RXEN);	/* enable receive */ | ||||||
| 
 | 
 | ||||||
| 	return 0; | 	return 0; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| int eth_send(volatile void *packet, int length) | int eth_send (volatile void *packet, int length) | ||||||
| { | { | ||||||
| 	/* check frame length, etc. */ | 	/* check frame length, etc. */ | ||||||
| 	/* TODO: */ | 	/* TODO: */ | ||||||
| 
 | 
 | ||||||
| 	/* switch to bank 0 */ | 	/* switch to bank 0 */ | ||||||
| 	m_nic_bfc(CTL_REG_ECON1, (ENC_ECON1_BSEL1 | ENC_ECON1_BSEL0));   | 	m_nic_bfc (CTL_REG_ECON1, (ENC_ECON1_BSEL1 | ENC_ECON1_BSEL0)); | ||||||
| 
 | 
 | ||||||
| 	/* set EWRPT */ | 	/* set EWRPT */ | ||||||
| 	m_nic_write(CTL_REG_EWRPTL, (ENC_TX_BUF_START & 0xff)); | 	m_nic_write (CTL_REG_EWRPTL, (ENC_TX_BUF_START & 0xff)); | ||||||
| 	m_nic_write(CTL_REG_EWRPTH, (ENC_TX_BUF_START >> 8)); | 	m_nic_write (CTL_REG_EWRPTH, (ENC_TX_BUF_START >> 8)); | ||||||
| 
 | 
 | ||||||
| 	/* set ETXST */ | 	/* set ETXST */ | ||||||
| 	m_nic_write(CTL_REG_ETXSTL, ENC_TX_BUF_START & 0xFF); | 	m_nic_write (CTL_REG_ETXSTL, ENC_TX_BUF_START & 0xFF); | ||||||
| 	m_nic_write(CTL_REG_ETXSTH, ENC_TX_BUF_START >> 8); | 	m_nic_write (CTL_REG_ETXSTH, ENC_TX_BUF_START >> 8); | ||||||
| 
 | 
 | ||||||
| 	/* write packet */ | 	/* write packet */ | ||||||
| 	m_nic_write_data(length, (unsigned char*)packet); | 	m_nic_write_data (length, (unsigned char *) packet); | ||||||
| 
 | 
 | ||||||
| 	/* set ETXND */ | 	/* set ETXND */ | ||||||
| 	m_nic_write(CTL_REG_ETXNDL, (length + ENC_TX_BUF_START) & 0xFF); | 	m_nic_write (CTL_REG_ETXNDL, (length + ENC_TX_BUF_START) & 0xFF); | ||||||
| 	m_nic_write(CTL_REG_ETXNDH, (length + ENC_TX_BUF_START) >> 8); | 	m_nic_write (CTL_REG_ETXNDH, (length + ENC_TX_BUF_START) >> 8); | ||||||
| 
 | 
 | ||||||
| 	/* set ECON1.TXRTS */ | 	/* set ECON1.TXRTS */ | ||||||
| 	m_nic_bfs(CTL_REG_ECON1, ENC_ECON1_TXRTS); | 	m_nic_bfs (CTL_REG_ECON1, ENC_ECON1_TXRTS); | ||||||
| 
 | 
 | ||||||
| 	return 0; | 	return 0; | ||||||
| } | } | ||||||
|  | @ -374,13 +375,13 @@ int eth_send(volatile void *packet, int length) | ||||||
|  * This function resets the receiver only. This function may be called from |  * This function resets the receiver only. This function may be called from | ||||||
|  * interrupt-context. |  * interrupt-context. | ||||||
|  */ |  */ | ||||||
| static void encReceiverReset(void) | static void encReceiverReset (void) | ||||||
| { | { | ||||||
| 	unsigned char econ1; | 	unsigned char econ1; | ||||||
| 
 | 
 | ||||||
| 	econ1 = m_nic_read(CTL_REG_ECON1); | 	econ1 = m_nic_read (CTL_REG_ECON1); | ||||||
| 	if((econ1 & ENC_ECON1_RXRST) == 0) { | 	if ((econ1 & ENC_ECON1_RXRST) == 0) { | ||||||
| 		m_nic_bfs(CTL_REG_ECON1, ENC_ECON1_RXRST); | 		m_nic_bfs (CTL_REG_ECON1, ENC_ECON1_RXRST); | ||||||
| 		rxResetCounter = RX_RESET_COUNTER; | 		rxResetCounter = RX_RESET_COUNTER; | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
|  | @ -388,85 +389,84 @@ static void encReceiverReset(void) | ||||||
| /*****************************************************************************
 | /*****************************************************************************
 | ||||||
|  * receiver reset timer |  * receiver reset timer | ||||||
|  */ |  */ | ||||||
| static void encReceiverResetCallback(void) | static void encReceiverResetCallback (void) | ||||||
| { | { | ||||||
| 	m_nic_bfc(CTL_REG_ECON1, ENC_ECON1_RXRST); | 	m_nic_bfc (CTL_REG_ECON1, ENC_ECON1_RXRST); | ||||||
| 	m_nic_bfs(CTL_REG_ECON1, ENC_ECON1_RXEN); /* enable receive */ | 	m_nic_bfs (CTL_REG_ECON1, ENC_ECON1_RXEN);	/* enable receive */ | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| /*-----------------------------------------------------------------------------
 | /*-----------------------------------------------------------------------------
 | ||||||
|  * Check for received packets. Call NetReceive for each packet. The return |  * Check for received packets. Call NetReceive for each packet. The return | ||||||
|  * value is ignored by the caller. |  * value is ignored by the caller. | ||||||
|  */ |  */ | ||||||
| int eth_rx(void) | int eth_rx (void) | ||||||
| { | { | ||||||
| 	if(rxResetCounter > 0 && --rxResetCounter == 0) | 	if (rxResetCounter > 0 && --rxResetCounter == 0) { | ||||||
| 	{ | 		encReceiverResetCallback (); | ||||||
| 		encReceiverResetCallback(); |  | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	encPoll(); | 	encPoll (); | ||||||
| 
 | 
 | ||||||
| 	return 0; | 	return 0; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void eth_halt(void) | void eth_halt (void) | ||||||
| { | { | ||||||
| 	m_nic_bfc(CTL_REG_ECON1, ENC_ECON1_RXEN); /* disable receive */ | 	m_nic_bfc (CTL_REG_ECON1, ENC_ECON1_RXEN);	/* disable receive */ | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| /*****************************************************************************/ | /*****************************************************************************/ | ||||||
| 
 | 
 | ||||||
| static void encPoll(void)  | static void encPoll (void) | ||||||
| { | { | ||||||
| 	unsigned char eir_reg; | 	unsigned char eir_reg; | ||||||
| 	volatile unsigned char estat_reg; | 	volatile unsigned char estat_reg; | ||||||
| 	unsigned char pkt_cnt; | 	unsigned char pkt_cnt; | ||||||
| 
 | 
 | ||||||
| 	/* clear global interrupt enable bit in enc28j60 */ | 	/* clear global interrupt enable bit in enc28j60 */ | ||||||
| 	m_nic_bfc(CTL_REG_EIE, ENC_EIE_INTIE); | 	m_nic_bfc (CTL_REG_EIE, ENC_EIE_INTIE); | ||||||
| 	estat_reg = m_nic_read(CTL_REG_ESTAT); | 	estat_reg = m_nic_read (CTL_REG_ESTAT); | ||||||
| 
 | 
 | ||||||
| 	eir_reg = m_nic_read(CTL_REG_EIR); | 	eir_reg = m_nic_read (CTL_REG_EIR); | ||||||
| 
 | 
 | ||||||
| 	if (eir_reg & ENC_EIR_TXIF){ | 	if (eir_reg & ENC_EIR_TXIF) { | ||||||
| 		/* clear TXIF bit in EIR */ | 		/* clear TXIF bit in EIR */ | ||||||
| 		m_nic_bfc(CTL_REG_EIR, ENC_EIR_TXIF); | 		m_nic_bfc (CTL_REG_EIR, ENC_EIR_TXIF); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	/* We have to use pktcnt and not pktif bit, see errata pt. 6 */ | 	/* We have to use pktcnt and not pktif bit, see errata pt. 6 */ | ||||||
| 
 | 
 | ||||||
| 	/* move to bank 1 */ | 	/* move to bank 1 */ | ||||||
| 	m_nic_bfc(CTL_REG_ECON1, ENC_ECON1_BSEL1); | 	m_nic_bfc (CTL_REG_ECON1, ENC_ECON1_BSEL1); | ||||||
| 	m_nic_bfs(CTL_REG_ECON1, ENC_ECON1_BSEL0); | 	m_nic_bfs (CTL_REG_ECON1, ENC_ECON1_BSEL0); | ||||||
| 
 | 
 | ||||||
| 	/* read pktcnt */ | 	/* read pktcnt */ | ||||||
| 	pkt_cnt = m_nic_read(CTL_REG_EPKTCNT); | 	pkt_cnt = m_nic_read (CTL_REG_EPKTCNT); | ||||||
| 
 | 
 | ||||||
| 	if (pkt_cnt > 0) { | 	if (pkt_cnt > 0) { | ||||||
| 		if ((eir_reg & ENC_EIR_PKTIF) == 0) { | 		if ((eir_reg & ENC_EIR_PKTIF) == 0) { | ||||||
| 			/*printf("encPoll: pkt cnt > 0, but pktif not set\n"); */ | 			/*printf("encPoll: pkt cnt > 0, but pktif not set\n"); */ | ||||||
| 		} | 		} | ||||||
| 		encRx(); | 		encRx (); | ||||||
| 		/* clear PKTIF bit in EIR, this should not need to be done but it
 | 		/* clear PKTIF bit in EIR, this should not need to be done but it
 | ||||||
| 		   seems like we get problems if we do not */ | 		   seems like we get problems if we do not */ | ||||||
| 		m_nic_bfc(CTL_REG_EIR, ENC_EIR_PKTIF); | 		m_nic_bfc (CTL_REG_EIR, ENC_EIR_PKTIF); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	if (eir_reg & ENC_EIR_RXERIF) { | 	if (eir_reg & ENC_EIR_RXERIF) { | ||||||
| 		printf("encPoll: rx error\n"); | 		printf ("encPoll: rx error\n"); | ||||||
| 		m_nic_bfc(CTL_REG_EIR, ENC_EIR_RXERIF); | 		m_nic_bfc (CTL_REG_EIR, ENC_EIR_RXERIF); | ||||||
| 	} | 	} | ||||||
| 	if (eir_reg & ENC_EIR_TXERIF) { | 	if (eir_reg & ENC_EIR_TXERIF) { | ||||||
| 		printf("encPoll: tx error\n"); | 		printf ("encPoll: tx error\n"); | ||||||
| 		m_nic_bfc(CTL_REG_EIR, ENC_EIR_TXERIF); | 		m_nic_bfc (CTL_REG_EIR, ENC_EIR_TXERIF); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	/* set global interrupt enable bit in enc28j60 */ | 	/* set global interrupt enable bit in enc28j60 */ | ||||||
| 	m_nic_bfs(CTL_REG_EIE, ENC_EIE_INTIE); | 	m_nic_bfs (CTL_REG_EIE, ENC_EIE_INTIE); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| static void encRx(void) | static void encRx (void) | ||||||
| { | { | ||||||
| 	unsigned short pkt_len; | 	unsigned short pkt_len; | ||||||
| 	unsigned short copy_len; | 	unsigned short copy_len; | ||||||
|  | @ -475,19 +475,19 @@ static void encRx(void) | ||||||
| 	unsigned char pkt_cnt = 0; | 	unsigned char pkt_cnt = 0; | ||||||
| 
 | 
 | ||||||
| 	/* switch to bank 0 */ | 	/* switch to bank 0 */ | ||||||
| 	m_nic_bfc(CTL_REG_ECON1, (ENC_ECON1_BSEL1 | ENC_ECON1_BSEL0)); | 	m_nic_bfc (CTL_REG_ECON1, (ENC_ECON1_BSEL1 | ENC_ECON1_BSEL0)); | ||||||
| 
 | 
 | ||||||
| 	m_nic_write(CTL_REG_ERDPTL, next_pointer_lsb); | 	m_nic_write (CTL_REG_ERDPTL, next_pointer_lsb); | ||||||
| 	m_nic_write(CTL_REG_ERDPTH, next_pointer_msb); | 	m_nic_write (CTL_REG_ERDPTH, next_pointer_msb); | ||||||
| 
 | 
 | ||||||
| 	do { | 	do { | ||||||
| 		m_nic_read_data(6, buffer); | 		m_nic_read_data (6, buffer); | ||||||
| 		next_pointer_lsb = buffer[0]; | 		next_pointer_lsb = buffer[0]; | ||||||
| 		next_pointer_msb = buffer[1]; | 		next_pointer_msb = buffer[1]; | ||||||
| 		pkt_len = buffer[2]; | 		pkt_len = buffer[2]; | ||||||
| 		pkt_len |= (unsigned short)buffer[3] << 8; | 		pkt_len |= (unsigned short) buffer[3] << 8; | ||||||
| 		status = buffer[4]; | 		status = buffer[4]; | ||||||
| 		status |= (unsigned short)buffer[5] << 8; | 		status |= (unsigned short) buffer[5] << 8; | ||||||
| 
 | 
 | ||||||
| 		if (pkt_len <= ENC_MAX_FRM_LEN) { | 		if (pkt_len <= ENC_MAX_FRM_LEN) { | ||||||
| 			copy_len = pkt_len; | 			copy_len = pkt_len; | ||||||
|  | @ -503,218 +503,218 @@ static void encRx(void) | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		if (copy_len > 0) { | 		if (copy_len > 0) { | ||||||
| 			m_nic_read_data(copy_len, buffer); | 			m_nic_read_data (copy_len, buffer); | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		/* advance read pointer to next pointer */ | 		/* advance read pointer to next pointer */ | ||||||
| 		m_nic_write(CTL_REG_ERDPTL, next_pointer_lsb); | 		m_nic_write (CTL_REG_ERDPTL, next_pointer_lsb); | ||||||
| 		m_nic_write(CTL_REG_ERDPTH, next_pointer_msb); | 		m_nic_write (CTL_REG_ERDPTH, next_pointer_msb); | ||||||
| 
 | 
 | ||||||
| 		/* decrease packet counter */ | 		/* decrease packet counter */ | ||||||
| 		m_nic_bfs(CTL_REG_ECON2, ENC_ECON2_PKTDEC); | 		m_nic_bfs (CTL_REG_ECON2, ENC_ECON2_PKTDEC); | ||||||
| 
 | 
 | ||||||
| 		/* move to bank 1 */ | 		/* move to bank 1 */ | ||||||
| 		m_nic_bfc(CTL_REG_ECON1, ENC_ECON1_BSEL1); | 		m_nic_bfc (CTL_REG_ECON1, ENC_ECON1_BSEL1); | ||||||
| 		m_nic_bfs(CTL_REG_ECON1, ENC_ECON1_BSEL0); | 		m_nic_bfs (CTL_REG_ECON1, ENC_ECON1_BSEL0); | ||||||
| 
 | 
 | ||||||
| 		/* read pktcnt */ | 		/* read pktcnt */ | ||||||
| 		pkt_cnt = m_nic_read(CTL_REG_EPKTCNT); | 		pkt_cnt = m_nic_read (CTL_REG_EPKTCNT); | ||||||
| 
 | 
 | ||||||
| 		/* switch to bank 0 */ | 		/* switch to bank 0 */ | ||||||
| 		m_nic_bfc(CTL_REG_ECON1, (ENC_ECON1_BSEL1 | ENC_ECON1_BSEL0));     | 		m_nic_bfc (CTL_REG_ECON1, | ||||||
|  | 			   (ENC_ECON1_BSEL1 | ENC_ECON1_BSEL0)); | ||||||
| 
 | 
 | ||||||
| 		if (copy_len == 0) { | 		if (copy_len == 0) { | ||||||
| 			eir_reg = m_nic_read(CTL_REG_EIR); | 			eir_reg = m_nic_read (CTL_REG_EIR); | ||||||
| 			encReceiverReset(); | 			encReceiverReset (); | ||||||
| 			printf("eth_rx: copy_len=0\n"); | 			printf ("eth_rx: copy_len=0\n"); | ||||||
| 			continue; | 			continue; | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		NetReceive((unsigned char *)buffer, pkt_len); | 		NetReceive ((unsigned char *) buffer, pkt_len); | ||||||
| 
 | 
 | ||||||
| 		eir_reg = m_nic_read(CTL_REG_EIR); | 		eir_reg = m_nic_read (CTL_REG_EIR); | ||||||
| 	} while (pkt_cnt);	/* Use EPKTCNT not EIR.PKTIF flag, see errata pt. 6 */ | 	} while (pkt_cnt);	/* Use EPKTCNT not EIR.PKTIF flag, see errata pt. 6 */ | ||||||
| 	m_nic_write(CTL_REG_ERXRDPTL, next_pointer_lsb); | 	m_nic_write (CTL_REG_ERXRDPTL, next_pointer_lsb); | ||||||
| 	m_nic_write(CTL_REG_ERXRDPTH, next_pointer_msb); | 	m_nic_write (CTL_REG_ERXRDPTH, next_pointer_msb); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| static void encWriteReg(unsigned char regNo, unsigned char data) | static void encWriteReg (unsigned char regNo, unsigned char data) | ||||||
| { | { | ||||||
| 	spi_lock(); | 	spi_lock (); | ||||||
| 	enc_cfg_spi(); | 	enc_cfg_spi (); | ||||||
| 	enc_enable(); | 	enc_enable (); | ||||||
| 
 | 
 | ||||||
| 	spi_write(0x40 | regNo);  /* write in regNo */ | 	spi_write (0x40 | regNo);	/* write in regNo */ | ||||||
| 	spi_write(data); | 	spi_write (data); | ||||||
| 
 | 
 | ||||||
| 	enc_disable(); | 	enc_disable (); | ||||||
| 	enc_enable(); | 	enc_enable (); | ||||||
| 
 | 
 | ||||||
| 	spi_write(0x1f);      /* write reg 0x1f */ | 	spi_write (0x1f);	/* write reg 0x1f */ | ||||||
| 
 | 
 | ||||||
| 	enc_disable(); | 	enc_disable (); | ||||||
| 	spi_unlock(); | 	spi_unlock (); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| static void encWriteRegRetry(unsigned char regNo, unsigned char data, int c) | static void encWriteRegRetry (unsigned char regNo, unsigned char data, int c) | ||||||
| { | { | ||||||
| 	unsigned char readback; | 	unsigned char readback; | ||||||
| 	int i; | 	int i; | ||||||
| 
 | 
 | ||||||
| 	spi_lock(); | 	spi_lock (); | ||||||
| 
 | 
 | ||||||
| 	for (i = 0; i < c; i++) { | 	for (i = 0; i < c; i++) { | ||||||
| 		enc_cfg_spi(); | 		enc_cfg_spi (); | ||||||
| 		enc_enable(); | 		enc_enable (); | ||||||
| 
 | 
 | ||||||
| 		spi_write(0x40 | regNo);    /* write in regNo */ | 		spi_write (0x40 | regNo);	/* write in regNo */ | ||||||
| 		spi_write(data); | 		spi_write (data); | ||||||
| 
 | 
 | ||||||
| 		enc_disable(); | 		enc_disable (); | ||||||
| 		enc_enable(); | 		enc_enable (); | ||||||
| 
 | 
 | ||||||
| 		spi_write(0x1f);        /* write reg 0x1f */ | 		spi_write (0x1f);	/* write reg 0x1f */ | ||||||
| 
 | 
 | ||||||
| 		enc_disable(); | 		enc_disable (); | ||||||
| 
 | 
 | ||||||
| 		spi_unlock();       /* we must unlock spi first */ | 		spi_unlock ();	/* we must unlock spi first */ | ||||||
| 
 | 
 | ||||||
| 		readback = encReadReg(regNo); | 		readback = encReadReg (regNo); | ||||||
| 
 | 
 | ||||||
| 		spi_lock(); | 		spi_lock (); | ||||||
| 
 | 
 | ||||||
| 		if (readback == data) | 		if (readback == data) | ||||||
| 			break; | 			break; | ||||||
| 	} | 	} | ||||||
| 	spi_unlock(); | 	spi_unlock (); | ||||||
| 
 | 
 | ||||||
| 	if (i == c) { | 	if (i == c) { | ||||||
| 		printf("enc28j60: write reg %d failed\n", regNo); | 		printf ("enc28j60: write reg %d failed\n", regNo); | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| static unsigned char encReadReg(unsigned char regNo) | static unsigned char encReadReg (unsigned char regNo) | ||||||
| { | { | ||||||
| 	unsigned char rxByte; | 	unsigned char rxByte; | ||||||
| 
 | 
 | ||||||
| 	spi_lock(); | 	spi_lock (); | ||||||
| 	enc_cfg_spi(); | 	enc_cfg_spi (); | ||||||
| 	enc_enable(); | 	enc_enable (); | ||||||
| 
 | 
 | ||||||
| 	spi_write(0x1f);      /* read reg 0x1f */ | 	spi_write (0x1f);	/* read reg 0x1f */ | ||||||
| 
 | 
 | ||||||
| 	bank = spi_read() & 0x3; | 	bank = spi_read () & 0x3; | ||||||
| 
 | 
 | ||||||
| 	enc_disable(); | 	enc_disable (); | ||||||
| 	enc_enable(); | 	enc_enable (); | ||||||
| 
 | 
 | ||||||
| 	spi_write(regNo); | 	spi_write (regNo); | ||||||
| 	rxByte = spi_read(); | 	rxByte = spi_read (); | ||||||
| 
 | 
 | ||||||
| 	/* check if MAC or MII register */ | 	/* check if MAC or MII register */ | ||||||
| 	if (((bank == 2) && (regNo <= 0x1a)) || | 	if (((bank == 2) && (regNo <= 0x1a)) || | ||||||
| 	    ((bank == 3) && (regNo <= 0x05 || regNo == 0x0a))) { | 	    ((bank == 3) && (regNo <= 0x05 || regNo == 0x0a))) { | ||||||
| 		/* ignore first byte and read another byte */ | 		/* ignore first byte and read another byte */ | ||||||
| 		rxByte = spi_read(); | 		rxByte = spi_read (); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	enc_disable(); | 	enc_disable (); | ||||||
| 	spi_unlock(); | 	spi_unlock (); | ||||||
| 
 | 
 | ||||||
| 	return rxByte; | 	return rxByte; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| static void encReadBuff(unsigned short length, unsigned char *pBuff) | static void encReadBuff (unsigned short length, unsigned char *pBuff) | ||||||
| { | { | ||||||
| 	spi_lock(); | 	spi_lock (); | ||||||
| 	enc_cfg_spi(); | 	enc_cfg_spi (); | ||||||
| 	enc_enable(); | 	enc_enable (); | ||||||
| 
 | 
 | ||||||
| 	spi_write(0x20 | 0x1a);         /* read buffer memory */ | 	spi_write (0x20 | 0x1a);	/* read buffer memory */ | ||||||
| 
 | 
 | ||||||
| 	while(length--) { | 	while (length--) { | ||||||
| 		if(pBuff != NULL) | 		if (pBuff != NULL) | ||||||
| 			*pBuff++ = spi_read(); | 			*pBuff++ = spi_read (); | ||||||
| 		else | 		else | ||||||
| 			spi_write(0); | 			spi_write (0); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	enc_disable(); | 	enc_disable (); | ||||||
| 	spi_unlock(); | 	spi_unlock (); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| static void encWriteBuff(unsigned short length,  | static void encWriteBuff (unsigned short length, unsigned char *pBuff) | ||||||
|              unsigned char *pBuff) |  | ||||||
| { | { | ||||||
| 	spi_lock(); | 	spi_lock (); | ||||||
| 	enc_cfg_spi(); | 	enc_cfg_spi (); | ||||||
| 	enc_enable(); | 	enc_enable (); | ||||||
| 
 | 
 | ||||||
| 	spi_write(0x60 | 0x1a);         /* write buffer memory */ | 	spi_write (0x60 | 0x1a);	/* write buffer memory */ | ||||||
| 
 | 
 | ||||||
| 	spi_write(0x00);      /* control byte */ | 	spi_write (0x00);	/* control byte */ | ||||||
| 
 | 
 | ||||||
| 	while(length--) | 	while (length--) | ||||||
| 		spi_write(*pBuff++); | 		spi_write (*pBuff++); | ||||||
| 
 | 
 | ||||||
| 	enc_disable(); | 	enc_disable (); | ||||||
| 	spi_unlock(); | 	spi_unlock (); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| static void encBitSet(unsigned char regNo, unsigned char data) | static void encBitSet (unsigned char regNo, unsigned char data) | ||||||
| { | { | ||||||
| 	spi_lock(); | 	spi_lock (); | ||||||
| 	enc_cfg_spi(); | 	enc_cfg_spi (); | ||||||
| 	enc_enable(); | 	enc_enable (); | ||||||
| 
 | 
 | ||||||
| 	spi_write(0x80 | regNo);  /* bit field set */ | 	spi_write (0x80 | regNo);	/* bit field set */ | ||||||
| 	spi_write(data); | 	spi_write (data); | ||||||
| 
 | 
 | ||||||
| 	enc_disable(); | 	enc_disable (); | ||||||
| 	spi_unlock(); | 	spi_unlock (); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| static void encBitClr(unsigned char regNo, unsigned char data) | static void encBitClr (unsigned char regNo, unsigned char data) | ||||||
| { | { | ||||||
| 	spi_lock(); | 	spi_lock (); | ||||||
| 	enc_cfg_spi(); | 	enc_cfg_spi (); | ||||||
| 	enc_enable(); | 	enc_enable (); | ||||||
| 
 | 
 | ||||||
| 	spi_write(0xA0 | regNo);  /* bit field clear */ | 	spi_write (0xA0 | regNo);	/* bit field clear */ | ||||||
| 	spi_write(data); | 	spi_write (data); | ||||||
| 
 | 
 | ||||||
| 	enc_disable(); | 	enc_disable (); | ||||||
| 	spi_unlock(); | 	spi_unlock (); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| static void encReset(void) | static void encReset (void) | ||||||
| { | { | ||||||
| 	spi_lock(); | 	spi_lock (); | ||||||
| 	enc_cfg_spi(); | 	enc_cfg_spi (); | ||||||
| 	enc_enable(); | 	enc_enable (); | ||||||
| 
 | 
 | ||||||
| 	spi_write(0xff);      /* soft reset */ | 	spi_write (0xff);	/* soft reset */ | ||||||
| 
 | 
 | ||||||
| 	enc_disable(); | 	enc_disable (); | ||||||
| 	spi_unlock(); | 	spi_unlock (); | ||||||
| 
 | 
 | ||||||
| 	/* sleep 1 ms. See errata pt. 2 */ | 	/* sleep 1 ms. See errata pt. 2 */ | ||||||
| 	udelay(1000); | 	udelay (1000); | ||||||
| 
 | 
 | ||||||
| #if 0 | #if 0 | ||||||
| 	(*((volatile unsigned long*)IO1CLR)) &= ENC_RESET; | 	(*((volatile unsigned long *) IO1CLR)) &= ENC_RESET; | ||||||
| 	mdelay(5); | 	mdelay (5); | ||||||
| 	(*((volatile unsigned long*)IO1SET)) &= ENC_RESET; | 	(*((volatile unsigned long *) IO1SET)) &= ENC_RESET; | ||||||
| #endif | #endif | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| static void encInit(unsigned char *pEthAddr) | static void encInit (unsigned char *pEthAddr) | ||||||
| { | { | ||||||
| 	unsigned short phid1 = 0; | 	unsigned short phid1 = 0; | ||||||
| 	unsigned short phid2 = 0; | 	unsigned short phid2 = 0; | ||||||
| 
 | 
 | ||||||
| 	/* switch to bank 0 */ | 	/* switch to bank 0 */ | ||||||
| 	m_nic_bfc(CTL_REG_ECON1, (ENC_ECON1_BSEL1 | ENC_ECON1_BSEL0)); | 	m_nic_bfc (CTL_REG_ECON1, (ENC_ECON1_BSEL1 | ENC_ECON1_BSEL0)); | ||||||
| 
 | 
 | ||||||
| 	/*
 | 	/*
 | ||||||
| 	 * Setup the buffer space. The reset values are valid for the | 	 * Setup the buffer space. The reset values are valid for the | ||||||
|  | @ -723,11 +723,11 @@ static void encInit(unsigned char *pEthAddr) | ||||||
| #if 0 | #if 0 | ||||||
| 	/* We shall not write to ERXST, see errata pt. 5. Instead we
 | 	/* We shall not write to ERXST, see errata pt. 5. Instead we
 | ||||||
| 	   have to make sure that ENC_RX_BUS_START is 0. */ | 	   have to make sure that ENC_RX_BUS_START is 0. */ | ||||||
| 	m_nic_write_retry(CTL_REG_ERXSTL, (ENC_RX_BUF_START & 0xFF), 1); | 	m_nic_write_retry (CTL_REG_ERXSTL, (ENC_RX_BUF_START & 0xFF), 1); | ||||||
| 	m_nic_write_retry(CTL_REG_ERXSTH, (ENC_RX_BUF_START >> 8), 1); | 	m_nic_write_retry (CTL_REG_ERXSTH, (ENC_RX_BUF_START >> 8), 1); | ||||||
| #endif | #endif | ||||||
| 	m_nic_write_retry(CTL_REG_ERDPTL, (ENC_RX_BUF_START & 0xFF), 1); | 	m_nic_write_retry (CTL_REG_ERDPTL, (ENC_RX_BUF_START & 0xFF), 1); | ||||||
| 	m_nic_write_retry(CTL_REG_ERDPTH, (ENC_RX_BUF_START >> 8), 1); | 	m_nic_write_retry (CTL_REG_ERDPTH, (ENC_RX_BUF_START >> 8), 1); | ||||||
| 
 | 
 | ||||||
| 	next_pointer_lsb = (ENC_RX_BUF_START & 0xFF); | 	next_pointer_lsb = (ENC_RX_BUF_START & 0xFF); | ||||||
| 	next_pointer_msb = (ENC_RX_BUF_START >> 8); | 	next_pointer_msb = (ENC_RX_BUF_START >> 8); | ||||||
|  | @ -736,37 +736,38 @@ static void encInit(unsigned char *pEthAddr) | ||||||
| 	 * For tracking purposes, the ERXRDPT registers should be programmed with | 	 * For tracking purposes, the ERXRDPT registers should be programmed with | ||||||
| 	 * the same value. This is the read pointer. | 	 * the same value. This is the read pointer. | ||||||
| 	 */ | 	 */ | ||||||
| 	m_nic_write(CTL_REG_ERXRDPTL, (ENC_RX_BUF_START & 0xFF)); | 	m_nic_write (CTL_REG_ERXRDPTL, (ENC_RX_BUF_START & 0xFF)); | ||||||
| 	m_nic_write_retry(CTL_REG_ERXRDPTH, (ENC_RX_BUF_START >> 8), 1); | 	m_nic_write_retry (CTL_REG_ERXRDPTH, (ENC_RX_BUF_START >> 8), 1); | ||||||
| 
 | 
 | ||||||
| 	/* Setup receive filters. */ | 	/* Setup receive filters. */ | ||||||
| 
 | 
 | ||||||
| 	/* move to bank 1 */ | 	/* move to bank 1 */ | ||||||
| 	m_nic_bfc(CTL_REG_ECON1, ENC_ECON1_BSEL1); | 	m_nic_bfc (CTL_REG_ECON1, ENC_ECON1_BSEL1); | ||||||
| 	m_nic_bfs(CTL_REG_ECON1, ENC_ECON1_BSEL0); | 	m_nic_bfs (CTL_REG_ECON1, ENC_ECON1_BSEL0); | ||||||
| 
 | 
 | ||||||
| 	/* OR-filtering, Unicast, CRC-check and broadcast */ | 	/* OR-filtering, Unicast, CRC-check and broadcast */ | ||||||
| 	m_nic_write_retry(CTL_REG_ERXFCON,  | 	m_nic_write_retry (CTL_REG_ERXFCON, | ||||||
| 			(ENC_RFR_UCEN|ENC_RFR_CRCEN|ENC_RFR_BCEN), 1); | 			   (ENC_RFR_UCEN | ENC_RFR_CRCEN | ENC_RFR_BCEN), 1); | ||||||
| 
 | 
 | ||||||
| 	/* Wait for Oscillator Start-up Timer (OST). */ | 	/* Wait for Oscillator Start-up Timer (OST). */ | ||||||
| 	while((m_nic_read(CTL_REG_ESTAT) & ENC_ESTAT_CLKRDY) == 0) { | 	while ((m_nic_read (CTL_REG_ESTAT) & ENC_ESTAT_CLKRDY) == 0) { | ||||||
| 		static int cnt = 0; | 		static int cnt = 0; | ||||||
| 		if(cnt++ >= 1000){ | 
 | ||||||
|  | 		if (cnt++ >= 1000) { | ||||||
| 			cnt = 0; | 			cnt = 0; | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	/* verify identification */ | 	/* verify identification */ | ||||||
| 	phid1 = phyRead(PHY_REG_PHID1); | 	phid1 = phyRead (PHY_REG_PHID1); | ||||||
| 	phid2 = phyRead(PHY_REG_PHID2); | 	phid2 = phyRead (PHY_REG_PHID2); | ||||||
| 
 | 
 | ||||||
| 	if(phid1 != ENC_PHID1_VALUE  | 	if (phid1 != ENC_PHID1_VALUE | ||||||
| 	    || (phid2 & ENC_PHID2_MASK) != ENC_PHID2_VALUE) { | 	    || (phid2 & ENC_PHID2_MASK) != ENC_PHID2_VALUE) { | ||||||
| 		printf("ERROR: failed to identify controller\n"); | 		printf ("ERROR: failed to identify controller\n"); | ||||||
| 		printf("phid1 = %x, phid2 = %x\n",  | 		printf ("phid1 = %x, phid2 = %x\n", | ||||||
| 			phid1, (phid2&ENC_PHID2_MASK)); | 			phid1, (phid2 & ENC_PHID2_MASK)); | ||||||
| 		printf("should be phid1 = %x, phid2 = %x\n",  | 		printf ("should be phid1 = %x, phid2 = %x\n", | ||||||
| 			ENC_PHID1_VALUE, ENC_PHID2_VALUE); | 			ENC_PHID1_VALUE, ENC_PHID2_VALUE); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  | @ -777,63 +778,63 @@ static void encInit(unsigned char *pEthAddr) | ||||||
| 	/* Pull MAC out of Reset */ | 	/* Pull MAC out of Reset */ | ||||||
| 
 | 
 | ||||||
| 	/* switch to bank 2 */ | 	/* switch to bank 2 */ | ||||||
| 	m_nic_bfc(CTL_REG_ECON1, ENC_ECON1_BSEL0); | 	m_nic_bfc (CTL_REG_ECON1, ENC_ECON1_BSEL0); | ||||||
| 	m_nic_bfs(CTL_REG_ECON1, ENC_ECON1_BSEL1); | 	m_nic_bfs (CTL_REG_ECON1, ENC_ECON1_BSEL1); | ||||||
| 	/* clear MAC reset bits */ | 	/* clear MAC reset bits */ | ||||||
| 	m_nic_write_retry(CTL_REG_MACON2, 0, 1); | 	m_nic_write_retry (CTL_REG_MACON2, 0, 1); | ||||||
| 
 | 
 | ||||||
| 	/* enable MAC to receive frames */ | 	/* enable MAC to receive frames */ | ||||||
| 	m_nic_write_retry(CTL_REG_MACON1, ENC_MACON1_MARXEN, 10); | 	m_nic_write_retry (CTL_REG_MACON1, ENC_MACON1_MARXEN, 10); | ||||||
| 
 | 
 | ||||||
| 	/* configure pad, tx-crc and duplex */ | 	/* configure pad, tx-crc and duplex */ | ||||||
| 	/* TODO maybe enable FRMLNEN */ | 	/* TODO maybe enable FRMLNEN */ | ||||||
| 	m_nic_write_retry(CTL_REG_MACON3, (ENC_MACON3_PADCFG0|ENC_MACON3_TXCRCEN),  | 	m_nic_write_retry (CTL_REG_MACON3, | ||||||
| 			10); | 			   (ENC_MACON3_PADCFG0 | ENC_MACON3_TXCRCEN), 10); | ||||||
| 
 | 
 | ||||||
| 	/* set maximum frame length */ | 	/* set maximum frame length */ | ||||||
| 	m_nic_write_retry(CTL_REG_MAMXFLL, (ENC_MAX_FRM_LEN & 0xff), 10); | 	m_nic_write_retry (CTL_REG_MAMXFLL, (ENC_MAX_FRM_LEN & 0xff), 10); | ||||||
| 	m_nic_write_retry(CTL_REG_MAMXFLH, (ENC_MAX_FRM_LEN >> 8), 10); | 	m_nic_write_retry (CTL_REG_MAMXFLH, (ENC_MAX_FRM_LEN >> 8), 10); | ||||||
| 
 | 
 | ||||||
| 	/*
 | 	/*
 | ||||||
| 	 * Set MAC back-to-back inter-packet gap. Recommended 0x12 for half duplex | 	 * Set MAC back-to-back inter-packet gap. Recommended 0x12 for half duplex | ||||||
| 	 * and 0x15 for full duplex. | 	 * and 0x15 for full duplex. | ||||||
| 	 */ | 	 */ | ||||||
| 	m_nic_write_retry(CTL_REG_MABBIPG, 0x12, 10); | 	m_nic_write_retry (CTL_REG_MABBIPG, 0x12, 10); | ||||||
| 
 | 
 | ||||||
| 	/* Set (low byte) Non-Back-to_Back Inter-Packet Gap. Recommended 0x12 */ | 	/* Set (low byte) Non-Back-to_Back Inter-Packet Gap. Recommended 0x12 */ | ||||||
| 	m_nic_write_retry(CTL_REG_MAIPGL, 0x12, 10); | 	m_nic_write_retry (CTL_REG_MAIPGL, 0x12, 10); | ||||||
| 
 | 
 | ||||||
| 	/*
 | 	/*
 | ||||||
| 	 * Set (high byte) Non-Back-to_Back Inter-Packet Gap. Recommended | 	 * Set (high byte) Non-Back-to_Back Inter-Packet Gap. Recommended | ||||||
| 	 * 0x0c for half-duplex. Nothing for full-duplex | 	 * 0x0c for half-duplex. Nothing for full-duplex | ||||||
| 	 */ | 	 */ | ||||||
| 	m_nic_write_retry(CTL_REG_MAIPGH, 0x0C, 10); | 	m_nic_write_retry (CTL_REG_MAIPGH, 0x0C, 10); | ||||||
| 
 | 
 | ||||||
| 	/* set MAC address */ | 	/* set MAC address */ | ||||||
| 
 | 
 | ||||||
| 	/* switch to bank 3 */ | 	/* switch to bank 3 */ | ||||||
| 	m_nic_bfs(CTL_REG_ECON1, (ENC_ECON1_BSEL0|ENC_ECON1_BSEL1)); | 	m_nic_bfs (CTL_REG_ECON1, (ENC_ECON1_BSEL0 | ENC_ECON1_BSEL1)); | ||||||
| 
 | 
 | ||||||
| 	m_nic_write_retry(CTL_REG_MAADR0, pEthAddr[5], 1); | 	m_nic_write_retry (CTL_REG_MAADR0, pEthAddr[5], 1); | ||||||
| 	m_nic_write_retry(CTL_REG_MAADR1, pEthAddr[4], 1); | 	m_nic_write_retry (CTL_REG_MAADR1, pEthAddr[4], 1); | ||||||
| 	m_nic_write_retry(CTL_REG_MAADR2, pEthAddr[3], 1); | 	m_nic_write_retry (CTL_REG_MAADR2, pEthAddr[3], 1); | ||||||
| 	m_nic_write_retry(CTL_REG_MAADR3, pEthAddr[2], 1); | 	m_nic_write_retry (CTL_REG_MAADR3, pEthAddr[2], 1); | ||||||
| 	m_nic_write_retry(CTL_REG_MAADR4, pEthAddr[1], 1); | 	m_nic_write_retry (CTL_REG_MAADR4, pEthAddr[1], 1); | ||||||
| 	m_nic_write_retry(CTL_REG_MAADR5, pEthAddr[0], 1); | 	m_nic_write_retry (CTL_REG_MAADR5, pEthAddr[0], 1); | ||||||
| 
 | 
 | ||||||
| 	/*
 | 	/*
 | ||||||
| 	 * Receive settings | 	 * Receive settings | ||||||
| 	 */ | 	 */ | ||||||
| 
 | 
 | ||||||
| 	/* auto-increment RX-pointer when reading a received packet */ | 	/* auto-increment RX-pointer when reading a received packet */ | ||||||
| 	m_nic_bfs(CTL_REG_ECON2, ENC_ECON2_AUTOINC); | 	m_nic_bfs (CTL_REG_ECON2, ENC_ECON2_AUTOINC); | ||||||
| 
 | 
 | ||||||
| 	/* enable interrupts */ | 	/* enable interrupts */ | ||||||
| 	m_nic_bfs(CTL_REG_EIE, ENC_EIE_PKTIE); | 	m_nic_bfs (CTL_REG_EIE, ENC_EIE_PKTIE); | ||||||
| 	m_nic_bfs(CTL_REG_EIE, ENC_EIE_TXIE); | 	m_nic_bfs (CTL_REG_EIE, ENC_EIE_TXIE); | ||||||
| 	m_nic_bfs(CTL_REG_EIE, ENC_EIE_RXERIE); | 	m_nic_bfs (CTL_REG_EIE, ENC_EIE_RXERIE); | ||||||
| 	m_nic_bfs(CTL_REG_EIE, ENC_EIE_TXERIE); | 	m_nic_bfs (CTL_REG_EIE, ENC_EIE_TXERIE); | ||||||
| 	m_nic_bfs(CTL_REG_EIE, ENC_EIE_INTIE); | 	m_nic_bfs (CTL_REG_EIE, ENC_EIE_INTIE); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| /*****************************************************************************
 | /*****************************************************************************
 | ||||||
|  | @ -849,25 +850,25 @@ static void encInit(unsigned char *pEthAddr) | ||||||
|  * Returns: |  * Returns: | ||||||
|  *    The value in the register |  *    The value in the register | ||||||
|  */ |  */ | ||||||
| static unsigned short phyRead(unsigned char addr) | static unsigned short phyRead (unsigned char addr) | ||||||
| { | { | ||||||
| 	unsigned short ret = 0; | 	unsigned short ret = 0; | ||||||
| 
 | 
 | ||||||
| 	/* move to bank 2 */ | 	/* move to bank 2 */ | ||||||
| 	m_nic_bfc(CTL_REG_ECON1, ENC_ECON1_BSEL0); | 	m_nic_bfc (CTL_REG_ECON1, ENC_ECON1_BSEL0); | ||||||
| 	m_nic_bfs(CTL_REG_ECON1, ENC_ECON1_BSEL1); | 	m_nic_bfs (CTL_REG_ECON1, ENC_ECON1_BSEL1); | ||||||
| 
 | 
 | ||||||
| 	/* write address to MIREGADR */ | 	/* write address to MIREGADR */ | ||||||
| 	m_nic_write(CTL_REG_MIREGADR, addr); | 	m_nic_write (CTL_REG_MIREGADR, addr); | ||||||
| 
 | 
 | ||||||
| 	/* set MICMD.MIIRD */ | 	/* set MICMD.MIIRD */ | ||||||
| 	m_nic_write(CTL_REG_MICMD, ENC_MICMD_MIIRD); | 	m_nic_write (CTL_REG_MICMD, ENC_MICMD_MIIRD); | ||||||
| 
 | 
 | ||||||
| 	/* poll MISTAT.BUSY bit until operation is complete */ | 	/* poll MISTAT.BUSY bit until operation is complete */ | ||||||
| 	while((m_nic_read(CTL_REG_MISTAT) & ENC_MISTAT_BUSY) != 0) { | 	while ((m_nic_read (CTL_REG_MISTAT) & ENC_MISTAT_BUSY) != 0) { | ||||||
| 		static int cnt = 0; | 		static int cnt = 0; | ||||||
| 
 | 
 | ||||||
| 		if(cnt++ >= 1000) { | 		if (cnt++ >= 1000) { | ||||||
| 			/* GJ - this seems extremely dangerous! */ | 			/* GJ - this seems extremely dangerous! */ | ||||||
| 			/* printf("#"); */ | 			/* printf("#"); */ | ||||||
| 			cnt = 0; | 			cnt = 0; | ||||||
|  | @ -875,10 +876,10 @@ static unsigned short phyRead(unsigned char addr) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	/* clear MICMD.MIIRD */ | 	/* clear MICMD.MIIRD */ | ||||||
| 	m_nic_write(CTL_REG_MICMD, 0); | 	m_nic_write (CTL_REG_MICMD, 0); | ||||||
| 
 | 
 | ||||||
| 	ret  = (m_nic_read(CTL_REG_MIRDH) << 8); | 	ret = (m_nic_read (CTL_REG_MIRDH) << 8); | ||||||
| 	ret |= (m_nic_read(CTL_REG_MIRDL) & 0xFF); | 	ret |= (m_nic_read (CTL_REG_MIRDL) & 0xFF); | ||||||
| 
 | 
 | ||||||
| 	return ret; | 	return ret; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -350,7 +350,6 @@ int write_buff_sst (flash_info_t * info, uchar * src, ulong addr, ulong cnt) | ||||||
| 		src_org++; | 		src_org++; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 
 |  | ||||||
| 	return ret; | 	return ret; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -79,6 +79,4 @@ static inline void spi_set_cfg(unsigned char phase, | ||||||
| 
 | 
 | ||||||
| 	PUT8(S0SPCR, v); | 	PUT8(S0SPCR, v); | ||||||
| } | } | ||||||
| 
 | #endif /* SPI_H */ | ||||||
| #endif |  | ||||||
| 
 |  | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue