Skip to content

Commit 060af75

Browse files
committed
Add constant for ethernet MTU
1 parent d404d7d commit 060af75

File tree

1 file changed

+10
-11
lines changed

1 file changed

+10
-11
lines changed

tm4c129x-hal/src/ethernet.rs

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -62,8 +62,10 @@ impl EphyReg {
6262
}
6363
}
6464

65+
const ETHERNET_MTU: usize = 1500;
6566
const NUM_TX_DESCRIPTORS: usize = 2;
6667
const NUM_RX_DESCRIPTORS: usize = 10;
68+
6769
static RX_DESCRIPTORS: [RDES; NUM_RX_DESCRIPTORS] = [
6870
RDES::new(),
6971
RDES::new(),
@@ -78,12 +80,10 @@ static RX_DESCRIPTORS: [RDES; NUM_RX_DESCRIPTORS] = [
7880
];
7981
static TX_DESCRIPTORS: [TDES; NUM_TX_DESCRIPTORS] = [TDES::new(), TDES::new()];
8082

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];
8787

8888
fn emac_reset(emac0: &EMAC0) {
8989
emac0.dmabusmod.modify(|_, w| w.swr().set_bit());
@@ -338,8 +338,7 @@ impl EthernetDevice {
338338
RX_DESCRIPTORS[i].rdes0.write(|w| w.own().set_bit());
339339
RX_DESCRIPTORS[i].rdes1.write(|w| {
340340
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),
343342
)
344343
});
345344
RX_DESCRIPTORS[i]
@@ -428,7 +427,7 @@ impl<'a> Device<'a> for EthernetDevice {
428427
fn capabilities(&self) -> DeviceCapabilities {
429428
let mut cap = DeviceCapabilities::default();
430429

431-
cap.max_transmission_unit = TX_BUFFER_SIZE;
430+
cap.max_transmission_unit = ETHERNET_MTU;
432431
cap.max_burst_size = Some(NUM_TX_DESCRIPTORS);
433432

434433
cap.checksum = ChecksumCapabilities::default();
@@ -471,7 +470,7 @@ impl<'a> phy::RxToken for RxToken<'a> {
471470

472471
let len = ((descriptor.rdes0.read().bits() & DES0_RX_STAT_FRAME_LENGTH_M)
473472
>> DES0_RX_STAT_FRAME_LENGTH_S) as usize;
474-
assert!(len <= RX_BUFFER_SIZE);
473+
assert!(len <= ETHERNET_MTU);
475474
let data =
476475
unsafe { core::slice::from_raw_parts(descriptor.rdes2.read().bits() as *mut u8, len) };
477476

@@ -496,7 +495,7 @@ impl<'a> phy::TxToken for TxToken<'a> {
496495
{
497496
let descriptor = *self.descriptor_pointer;
498497

499-
assert!(len <= TX_BUFFER_SIZE);
498+
assert!(len <= ETHERNET_MTU);
500499

501500
let data = unsafe {
502501
core::slice::from_raw_parts_mut(descriptor.tdes2.read().bits() as *mut u8, len)

0 commit comments

Comments
 (0)