@@ -62,8 +62,10 @@ impl EphyReg {
62
62
}
63
63
}
64
64
65
+ const ETHERNET_MTU : usize = 1500 ;
65
66
const NUM_TX_DESCRIPTORS : usize = 2 ;
66
67
const NUM_RX_DESCRIPTORS : usize = 10 ;
68
+
67
69
static RX_DESCRIPTORS : [ RDES ; NUM_RX_DESCRIPTORS ] = [
68
70
RDES :: new ( ) ,
69
71
RDES :: new ( ) ,
@@ -78,12 +80,10 @@ static RX_DESCRIPTORS: [RDES; NUM_RX_DESCRIPTORS] = [
78
80
] ;
79
81
static TX_DESCRIPTORS : [ TDES ; NUM_TX_DESCRIPTORS ] = [ TDES :: new ( ) , TDES :: new ( ) ] ;
80
82
81
- const RX_BUFFER_SIZE : usize = 1536 ;
82
- static mut RX_BUFFERS : [ [ u8 ; RX_BUFFER_SIZE ] ; NUM_RX_DESCRIPTORS ] =
83
- [ [ 0 ; RX_BUFFER_SIZE ] ; NUM_RX_DESCRIPTORS ] ;
84
- const TX_BUFFER_SIZE : usize = RX_BUFFER_SIZE ;
85
- static mut TX_BUFFERS : [ [ u8 ; TX_BUFFER_SIZE ] ; NUM_TX_DESCRIPTORS ] =
86
- [ [ 0 ; TX_BUFFER_SIZE ] ; NUM_TX_DESCRIPTORS ] ;
83
+ static mut RX_BUFFERS : [ [ u8 ; ETHERNET_MTU ] ; NUM_RX_DESCRIPTORS ] =
84
+ [ [ 0 ; ETHERNET_MTU ] ; NUM_RX_DESCRIPTORS ] ;
85
+ static mut TX_BUFFERS : [ [ u8 ; ETHERNET_MTU ] ; NUM_TX_DESCRIPTORS ] =
86
+ [ [ 0 ; ETHERNET_MTU ] ; NUM_TX_DESCRIPTORS ] ;
87
87
88
88
fn emac_reset ( emac0 : & EMAC0 ) {
89
89
emac0. dmabusmod . modify ( |_, w| w. swr ( ) . set_bit ( ) ) ;
@@ -338,8 +338,7 @@ impl EthernetDevice {
338
338
RX_DESCRIPTORS [ i] . rdes0 . write ( |w| w. own ( ) . set_bit ( ) ) ;
339
339
RX_DESCRIPTORS [ i] . rdes1 . write ( |w| {
340
340
w. bits (
341
- DES1_RX_CTRL_CHAINED
342
- | ( ( RX_BUFFER_SIZE as u32 ) << DES1_RX_CTRL_BUFF1_SIZE_S ) ,
341
+ DES1_RX_CTRL_CHAINED | ( ( ETHERNET_MTU as u32 ) << DES1_RX_CTRL_BUFF1_SIZE_S ) ,
343
342
)
344
343
} ) ;
345
344
RX_DESCRIPTORS [ i]
@@ -428,7 +427,7 @@ impl<'a> Device<'a> for EthernetDevice {
428
427
fn capabilities ( & self ) -> DeviceCapabilities {
429
428
let mut cap = DeviceCapabilities :: default ( ) ;
430
429
431
- cap. max_transmission_unit = TX_BUFFER_SIZE ;
430
+ cap. max_transmission_unit = ETHERNET_MTU ;
432
431
cap. max_burst_size = Some ( NUM_TX_DESCRIPTORS ) ;
433
432
434
433
cap. checksum = ChecksumCapabilities :: default ( ) ;
@@ -471,7 +470,7 @@ impl<'a> phy::RxToken for RxToken<'a> {
471
470
472
471
let len = ( ( descriptor. rdes0 . read ( ) . bits ( ) & DES0_RX_STAT_FRAME_LENGTH_M )
473
472
>> DES0_RX_STAT_FRAME_LENGTH_S ) as usize ;
474
- assert ! ( len <= RX_BUFFER_SIZE ) ;
473
+ assert ! ( len <= ETHERNET_MTU ) ;
475
474
let data =
476
475
unsafe { core:: slice:: from_raw_parts ( descriptor. rdes2 . read ( ) . bits ( ) as * mut u8 , len) } ;
477
476
@@ -496,7 +495,7 @@ impl<'a> phy::TxToken for TxToken<'a> {
496
495
{
497
496
let descriptor = * self . descriptor_pointer ;
498
497
499
- assert ! ( len <= TX_BUFFER_SIZE ) ;
498
+ assert ! ( len <= ETHERNET_MTU ) ;
500
499
501
500
let data = unsafe {
502
501
core:: slice:: from_raw_parts_mut ( descriptor. tdes2 . read ( ) . bits ( ) as * mut u8 , len)
0 commit comments