OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /openrisc/trunk/bootloaders
    from Rev 389 to Rev 405
    Reverse comparison

Rev 389 → Rev 405

/orpmon/include/build.h
1,?rev1len? → ?rev2line?,?rev2len?
#define BUILD_VERSION "Fri Oct 15 13:03:37 CEST 2010"
#define BUILD_VERSION "Tue Nov 2 15:05:20 CET 2010"
/orpmon/include/eth.h
3,10 → 3,8
#define ETH_TOTAL_BD 32
#define ETH_MAXBUF_LEN 0x600
 
#define ETH_TXBD_NUM 16
#define ETH_TXBD_NUM_MASK (ETH_TXBD_NUM - 1)
#define ETH_RXBD_NUM 16
#define ETH_RXBD_NUM_MASK (ETH_RXBD_NUM - 1)
#define ETH_TXBD_NUM 8
#define ETH_RXBD_NUM 24
 
typedef unsigned int uint;
 
/orpmon/include/board.h
25,8 → 25,6
*/
#define IPCONFIG 3
 
#define SDC_CONTROLLER_BASE 0x9e000000
 
#if BOARD==0
// Nibbler on bender1
 
54,8 → 52,7
# define BOARD_DEF_NAME "marvin"
 
#elif BOARD==2
//ORSoC usbethdev board
 
//ORSoC ordb1a3pe1500
# define FLASH_BASE_ADDR 0xf0000000
# define FLASH_SIZE 0x04000000
# define FLASH_BLOCK_SIZE 0x00040000
121,8 → 118,8
#define BOARD_DEF_IMAGE_NAME "boot.img"
#define BOARD_DEF_LOAD_SPACE 0xa00000
#define ETH_MDIOPHYADDR 0x00
#define ETH_MACADDR0 0xad
#define ETH_MACADDR1 0xda
#define ETH_MACADDR0 0x00
#define ETH_MACADDR1 0x12
#define ETH_MACADDR2 0x34
#define ETH_MACADDR3 0x56
#define ETH_MACADDR4 0x78
144,17 → 141,17
#define ETH_MACADDR4 0x78
#define ETH_MACADDR5 0x9c
 
#elif IPCONFIG==3 // ORSoC LAN
#elif IPCONFIG==3 // JB ORSoC board 2
 
#define BOARD_DEF_IP 0xc0a80103 // 192.168.1.3
#define BOARD_DEF_IP 0xc0a8015a // 192.168.1.90
#define BOARD_DEF_MASK 0xffffff00 // 255.255.255.0
#define BOARD_DEF_GW 0xc0a80101 // 192.168.1.1
#define BOARD_DEF_TBOOT_SRVR 0xc0a80101 // 192.168.1.1
#define BOARD_DEF_TBOOT_SRVR 0xc0a80108 // 192.168.1.8
#define BOARD_DEF_IMAGE_NAME "boot.img"
#define BOARD_DEF_LOAD_SPACE 0xa00000
#define ETH_MDIOPHYADDR 0x00
#define ETH_MACADDR0 0xad
#define ETH_MACADDR1 0xaa
#define ETH_MACADDR0 0x00
#define ETH_MACADDR1 0x12
#define ETH_MACADDR2 0x34
#define ETH_MACADDR3 0x56
#define ETH_MACADDR4 0x78
169,17 → 166,15
#define BOARD_DEF_IMAGE_NAME "boot.img"
#define BOARD_DEF_LOAD_SPACE 0xa00000
#define ETH_MDIOPHYADDR 0x00
#define ETH_MACADDR0 0xad
#define ETH_MACADDR1 0xaa
#define ETH_MACADDR0 0x00
#define ETH_MACADDR1 0x01
#define ETH_MACADDR2 0x34
#define ETH_MACADDR3 0x56
#define ETH_MACADDR4 0x78
#define ETH_MACADDR5 0x9d
#define ETH_MACADDR5 0x9e
 
#endif
 
 
 
#define UART_BAUD_RATE 115200
 
#define TICKS_PER_SEC 100
213,6 → 208,8
#define KBD_BASE_ADD 0x94000000
#define KBD_IRQ 5
 
#define SDC_CONTROLLER_BASE 0x9e000000
 
#define SANCHO_BASE_ADD 0x98000000
/* Address for ETH_DATA */
#define ETH_DATA_BASE (SDRAM_SIZE - (0x600 * 128))
/orpmon/services/net.c
122,7 → 122,7
int
NetLoop(proto_t protocol)
{
#if 1
 
if (!NetTxPacket) {
int i;
printf("NetTxPacket begin setup\n");
264,7 → 264,7
return 0;
}
}
#endif
 
}
 
/**********************************************************************/
460,11 → 460,11
printf("Got IP\n");
#endif
if (len < IP_HDR_SIZE) {
debug ("len bad %d < %d\n", len, IP_HDR_SIZE);
debug ("ip header len bad %d < %d\n", len, IP_HDR_SIZE);
return;
}
if (len < SWAP16(ip->ip_len)) {
printf("len bad %d < %d\n", len, SWAP16(ip->ip_len));
printf("ip header (swap) len bad %d < %d\n", len, SWAP16(ip->ip_len));
return;
}
len = SWAP16(ip->ip_len);
/orpmon/services/tftp.c
268,6 → 268,7
TftpServerPort = src;
TftpLastBlock = 0;
 
 
if (TftpBlock != 1) { /* Assertion */
printf ("\nTFTP error: "
"First block is not block 1 (%d)\n"
277,8 → 278,11
break;
}
}
 
if (TftpBlock == TftpLastBlock) {
#ifdef ET_DEBUG
printf("block %d - repeated\n",TftpLastBlock);
#endif
/*
* Same block again; resend ack (maybe got lost last time)
*/
287,6 → 291,9
}
else
{
#ifdef ET_DEBUG
printf("block %d - OK\n",TftpLastBlock);
#endif
TftpLastBlock = TftpBlock;
NetSetTimeout (TIMEOUT * TICKS_PER_SEC, TftpTimeout);
/orpmon/drivers/eth.c
10,6 → 10,7
 
//#define PRINT_PACKETS
//#define ETHPHY_10MBPS
//#define ETHPHY_RESET_ON_INIT
 
extern int printf (const char *fmt, ...);
extern void lolev_ie(void);
31,8 → 32,25
static void
print_packet(unsigned long add, int len)
{
int truncate = (len > 256);
int length_to_print = truncate ? 256 : len;
 
int i;
printf("\nipacket: add = %lx len = %d\n", add, len);
for(i = 0; i < length_to_print; i++) {
if(!(i % 8))
printf(" ");
if(!(i % 16))
printf("\n");
printf(" %.2x", *(((unsigned char *)add) + i));
 
}
printf("\n");
 
if (truncate)
printf("\ttruncated....\n");
/*
int i;
printf("ipacket: add = %lx len = %d\n", add, len);
for(i = 0; i < len; i++) {
if(!(i % 16)) printf("\n");
40,6 → 58,7
printf(" %.2x", *(((unsigned char *)add) + i));
}
printf("\n");
*/
}
 
void init_tx_bd_pool(void)
213,8 → 232,20
REG32(ETH_REG_BASE + ETH_MODER) = ETH_MODER_RST; /* Reset ON */
REG32(ETH_REG_BASE + ETH_MODER) &= ~ETH_MODER_RST; /* Reset OFF */
 
/* Setting TX BD number */
REG32(ETH_REG_BASE + ETH_TX_BD_NUM) = ETH_TXBD_NUM;
#ifdef ETHPHY_RESET_ON_INIT
REG32(ETH_REG_BASE + ETH_MIIADDRESS) = 0<<8; // BMCR reg
REG32(ETH_REG_BASE + ETH_MIITX_DATA) = 0x8000; // RESET bit
REG32(ETH_REG_BASE + ETH_MIICOMMAND) = ETH_MIICOMMAND_WCTRLDATA;
while(REG32(ETH_REG_BASE + ETH_MIISTATUS) & ETH_MIISTATUS_BUSY);
 
while(1){
REG32(ETH_REG_BASE + ETH_MIIADDRESS) = 1<<8;
REG32(ETH_REG_BASE + ETH_MIICOMMAND) = ETH_MIICOMMAND_RSTAT;
while(REG32(ETH_REG_BASE + ETH_MIISTATUS) & ETH_MIISTATUS_BUSY);
if(REG32(ETH_REG_BASE + ETH_MIIRX_DATA) & 0x04)
break;
}
#endif
#ifdef ETHPHY_10MBPS
// Set PHY to 10 Mbps full duplex
233,6 → 264,10
#endif
 
 
/* Setting TX BD number */
REG32(ETH_REG_BASE + ETH_TX_BD_NUM) = ETH_TXBD_NUM;
 
/* Set min/max packet length */
REG32(ETH_REG_BASE + ETH_PACKETLEN) = 0x00400600;
 
265,6 → 300,8
 
/* Initialize rx pointers */
rx_next = 0;
 
/* Assign receive function pointer to what we were passed */
receive = rec;
 
/* Set local MAC address */
278,6 → 315,9
/* Clear all pending interrupts */
REG32(ETH_REG_BASE + ETH_INT) = 0xffffffff;
 
/* Register interrupt handler */
int_add (ETH_IRQ, eth_int);
 
/* Promisc, IFG, CRCEn */
REG32(ETH_REG_BASE + ETH_MODER) |= ETH_MODER_PAD | ETH_MODER_IFG | ETH_MODER_CRCEN;
 
300,8 → 340,6
/* Enable receiver and transmiter */
REG32(ETH_REG_BASE + ETH_MODER) |= ETH_MODER_RXEN | ETH_MODER_TXEN;
 
/* Register interrupt handler */
int_add (ETH_IRQ, eth_int);
}
 
/* Returns pointer to next free buffer; NULL if none available */
320,11 → 358,15
 
add = bd[tx_next].addr;
 
tx_next = (tx_next + 1) & ETH_TXBD_NUM_MASK;
tx_next++;
 
if(tx_next == tx_last)
tx_full = 1;
if (tx_next == ETH_TXBD_NUM)
tx_next = 0;
 
// Disabled for now - highly unlikely we'll ever run out of TX buffer spots
//if(tx_next == tx_last)
//tx_full = 1;
 
return (void *)add;
}
 
335,7 → 377,7
int i;
 
#ifdef PRINT_PACKETS
printf("transmitted packet:\t");
printf("transmitted packet txbd %d:\t", tx_last);
print_packet(buf, len);
#endif
 
361,13 → 403,18
goto retry_eth_send;
}
*/
tx_last = (tx_last + 1) & ETH_TXBD_NUM_MASK;
tx_last++;
 
if (tx_last == ETH_TXBD_NUM)
tx_last = 0;
 
tx_full = 0;
 
}
 
/* Waits for packet and pass it to the upper layers */
unsigned long eth_rx (void)
unsigned long
eth_rx (void)
{
eth_bd *bd;
unsigned long len = 0;
413,7 → 460,7
 
if(!bad) {
#ifdef PRINT_PACKETS
printf("received packet:\t");
printf("received packet: rxbd %d\t",rx_next);
print_packet(bd[rx_next].addr, bd[rx_next].len_status >> 16);
#endif
 
424,7 → 471,10
bd[rx_next].len_status &= ~ETH_RX_BD_STATS;
bd[rx_next].len_status |= ETH_RX_BD_EMPTY;
 
rx_next = (rx_next + 1) & ETH_RXBD_NUM_MASK;
rx_next++;
 
if (rx_next == ETH_RXBD_NUM)
rx_next = 0;
}
}
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.