[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Commit-gnuradio] r7103 - in usrp2/trunk/firmware: apps lib
From: |
eb |
Subject: |
[Commit-gnuradio] r7103 - in usrp2/trunk/firmware: apps lib |
Date: |
Mon, 10 Dec 2007 20:52:02 -0700 (MST) |
Author: eb
Date: 2007-12-10 20:52:02 -0700 (Mon, 10 Dec 2007)
New Revision: 7103
Modified:
usrp2/trunk/firmware/apps/blink_leds2.c
usrp2/trunk/firmware/apps/gen_eth_packets.c
usrp2/trunk/firmware/lib/eth_mac.c
usrp2/trunk/firmware/lib/hal_io.c
usrp2/trunk/firmware/lib/hal_io.h
usrp2/trunk/firmware/lib/u2_init.c
Log:
src mac address insertion is now working
Modified: usrp2/trunk/firmware/apps/blink_leds2.c
===================================================================
--- usrp2/trunk/firmware/apps/blink_leds2.c 2007-12-11 01:48:34 UTC (rev
7102)
+++ usrp2/trunk/firmware/apps/blink_leds2.c 2007-12-11 03:52:02 UTC (rev
7103)
@@ -23,17 +23,15 @@
#include "pic.h"
-// #define DELTA_T 50000000 // 0.5s (10ns per tick)
-#define DELTA_T 500 // 5 us (10ns per tick)
+#define DELTA_T (MASTER_CLK_RATE/2) // 0.5s (10ns per tick)
+//#define DELTA_T 500 // 5 us (10ns per tick)
-static int led_state_1 = 0;
-volatile static int led_state_2 = 0;
void
timer_handler(unsigned irq)
{
hal_set_timeout(DELTA_T); // schedule next timeout
- led_state_2 ^= 0x2;
+ hal_toggle_leds(0x2);
}
int
@@ -46,8 +44,7 @@
hal_set_timeout(DELTA_T); // schedule next timeout
while(1){
- led_state_1 ^= 0x1;
- output_regs->leds = led_state_1 | led_state_2;
+ hal_toggle_leds(0x1);
}
return 0;
Modified: usrp2/trunk/firmware/apps/gen_eth_packets.c
===================================================================
--- usrp2/trunk/firmware/apps/gen_eth_packets.c 2007-12-11 01:48:34 UTC (rev
7102)
+++ usrp2/trunk/firmware/apps/gen_eth_packets.c 2007-12-11 03:52:02 UTC (rev
7103)
@@ -93,6 +93,8 @@
hal_gpio_set_tx(v, LS_MASK); /* set debug bits on d'board */
+ hal_set_leds(link_is_up ? 0x2 : 0x0, 0x2);
+
putstr("\neth link changed: speed = ");
puthex16_nl(speed);
}
@@ -136,17 +138,18 @@
for (i = 0; i < 6; i++){
pkt.ehdr.dst_addr[i] = dst_mac_addr[i];
- pkt.ehdr.src_addr[i] = 0; // filled in by mac
+ pkt.ehdr.src_addr[i] = 0x44; // filled in by mac
}
pkt.ehdr.ethertype = U2_ETHERTYPE;
+ pkt.ehdr._pad = 0x5555;
+ pkt.payload.word0 = 0x01234567;
+ pkt.payload.timestamp = 0xffffffff;
// fill ALL buffers for debugging
for (i = 0; i < 8; i++)
init_packet((void *)buffer_ram(i), &pkt, i);
}
-static int led_counter = 0;
-
int
main(void)
{
@@ -159,7 +162,7 @@
putstr("\ngen_eth_packets\n");
// Control LEDs
- output_regs->leds = 0x00;
+ hal_set_leds(0x0, 0x3);
init_packets();
@@ -187,7 +190,7 @@
;
bp_clear_buf(0);
- output_regs->leds = ((++led_counter) & 0x1) | (link_is_up ? 0x2 : 0x0);
+ hal_toggle_leds(0x1);
}
}
Modified: usrp2/trunk/firmware/lib/eth_mac.c
===================================================================
--- usrp2/trunk/firmware/lib/eth_mac.c 2007-12-11 01:48:34 UTC (rev 7102)
+++ usrp2/trunk/firmware/lib/eth_mac.c 2007-12-11 03:52:02 UTC (rev 7103)
@@ -20,7 +20,9 @@
#include "memory_map.h"
#include "bool.h"
#include "eth_phy.h" // for simulation constants
+#include "mdelay.h"
+
#define PHY_ADDR 1
void
@@ -38,20 +40,26 @@
eth_mac->miimoder = 16; // divider from CPU clock (33MHz / 16 ~= 2MHz)
// tell mac our source address and enable automatic insertion on Tx.
+ eth_mac->mac_tx_add_prom_wr = 0; // just in case
for (i = 0; i < 6; i++){
eth_mac->mac_tx_add_prom_add = i;
eth_mac->mac_tx_add_prom_data = src_mac_addr[i];
eth_mac->mac_tx_add_prom_wr = 1;
+ mdelay(1);
eth_mac->mac_tx_add_prom_wr = 0;
+ mdelay(1);
}
eth_mac->mac_tx_add_en = 1; // overwrite pkt src addr field with this stuff
// set up receive destination address filter
+ eth_mac->mac_rx_add_prom_wr = 0; // just in case
for (i = 0; i < 6; i++){
eth_mac->mac_rx_add_prom_add = i;
eth_mac->mac_rx_add_prom_data = src_mac_addr[i];
eth_mac->mac_rx_add_prom_wr = 1;
+ mdelay(1);
eth_mac->mac_rx_add_prom_wr = 0;
+ mdelay(1);
}
// eth_mac->mac_rx_add_chk_en = 1; // FIXME enable when everything's working
Modified: usrp2/trunk/firmware/lib/hal_io.c
===================================================================
--- usrp2/trunk/firmware/lib/hal_io.c 2007-12-11 01:48:34 UTC (rev 7102)
+++ usrp2/trunk/firmware/lib/hal_io.c 2007-12-11 03:52:02 UTC (rev 7103)
@@ -80,6 +80,27 @@
hal_restore_ints(ei);
}
+static unsigned long leds_shadow = 0;
+
+void
+hal_set_leds(int value, int mask)
+{
+ int ei = hal_disable_ints();
+ leds_shadow = (leds_shadow & ~mask) | (value & mask);
+ output_regs->leds = leds_shadow;
+ hal_restore_ints(ei);
+}
+
+void
+hal_toggle_leds(int mask)
+{
+ int ei = hal_disable_ints();
+ leds_shadow ^= mask;
+ output_regs->leds = leds_shadow;
+ hal_restore_ints(ei);
+}
+
+
// ================================================================
// primitives
// ================================================================
Modified: usrp2/trunk/firmware/lib/hal_io.h
===================================================================
--- usrp2/trunk/firmware/lib/hal_io.h 2007-12-11 01:48:34 UTC (rev 7102)
+++ usrp2/trunk/firmware/lib/hal_io.h 2007-12-11 03:52:02 UTC (rev 7103)
@@ -31,6 +31,10 @@
void hal_gpio_set_tx(int value, int mask);
void hal_gpio_set_rx(int value, int mask);
+void hal_set_leds(int value, int mask);
+void hal_toggle_leds(int mask);
+
+
static inline void
hal_set_timeout(int delta_ticks)
{
Modified: usrp2/trunk/firmware/lib/u2_init.c
===================================================================
--- usrp2/trunk/firmware/lib/u2_init.c 2007-12-11 01:48:34 UTC (rev 7102)
+++ usrp2/trunk/firmware/lib/u2_init.c 2007-12-11 03:52:02 UTC (rev 7103)
@@ -83,11 +83,12 @@
hal_enable_ints();
// flash both leds to let us know board is alive
- output_regs->leds = 0x0;
+ hal_set_leds(0x0, 0x3);
mdelay(100);
- output_regs->leds = 0x3;
+ hal_set_leds(0x3, 0x3);
mdelay(100);
- output_regs->leds = 0x0;
+ hal_set_leds(0x0, 0x3);
+ mdelay(100);
return true;
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Commit-gnuradio] r7103 - in usrp2/trunk/firmware: apps lib,
eb <=