Skip to content

Commit 0970289

Browse files
committed
update ethernet
1 parent 1d27083 commit 0970289

File tree

5 files changed

+32
-28
lines changed

5 files changed

+32
-28
lines changed

Bender.lock

+5-5
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,8 @@ packages:
6060
dependencies:
6161
- common_cells
6262
axi_vga:
63-
revision: 3718b9930f94a9eaad8ee50b4bccc71df0403084
64-
version: 0.1.3
63+
revision: 4d3e70d4f47bb74edc1ab68d99ffc02382e0fb9e
64+
version: 0.1.4
6565
source:
6666
Git: https://github.com/pulp-platform/axi_vga.git
6767
dependencies:
@@ -162,7 +162,7 @@ packages:
162162
- register_interface
163163
- tech_cells_generic
164164
pulp-ethernet:
165-
revision: a8e69091528d5e8d2a7091082643e5a7c81d2ffd
165+
revision: 8d16844b50178105f388c0fe2f585571c4780351
166166
version: null
167167
source:
168168
Git: https://github.com/pulp-platform/pulp-ethernet.git
@@ -174,8 +174,8 @@ packages:
174174
- idma
175175
- register_interface
176176
register_interface:
177-
revision: ae616e5a1ec2b41e72d200e5ab09c65e94aebd3d
178-
version: 0.4.4
177+
revision: 5daa85d164cf6b54ad061ea1e4c6f3624556e467
178+
version: 0.4.5
179179
source:
180180
Git: https://github.com/pulp-platform/register_interface.git
181181
dependencies:

Bender.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ dependencies:
3030
riscv-dbg: { git: "https://github.com/pulp-platform/riscv-dbg.git", version: 0.8.1 }
3131
serial_link: { git: "https://github.com/pulp-platform/serial_link.git", version: 1.1.1 }
3232
unbent: { git: "https://github.com/pulp-platform/unbent.git", version: 0.1.6 }
33-
pulp-ethernet: { git: "https://github.com/pulp-platform/pulp-ethernet.git", rev: "a8e6909" } # branch: chs-hs
33+
pulp-ethernet: { git: "https://github.com/pulp-platform/pulp-ethernet.git", rev: "8d16844" } # branch: chs-hs
3434

3535
export_include_dirs:
3636
- hw/include

sw/tests/ethernet.c

+21-17
Original file line numberDiff line numberDiff line change
@@ -50,14 +50,14 @@ int main(void) {
5050
*reg32(PLIC_BASE, RV_PLIC_IE0_0_REG_OFFSET) |= (1 << (RV_PLIC_IE0_0_E_19_BIT)); // Enable interrupt number ;
5151

5252
volatile uint64_t data_to_write[DATA_CHUNK] = {
53-
0x0207230100890702,
53+
0x1032230100890702,
5454
0x3210400020709800,
55-
0x1716151413121110,
56-
0x2726252423222120,
57-
0x3736353433323130,
58-
0x4746454443424140,
59-
0x5756555453525150,
60-
0x6766656463626160
55+
0x35ED077D93FC89BA,
56+
0x56BE7F8D79A46B8C,
57+
0xAEB3F2D1446FE19E,
58+
0x7D21C83EFF976DB8,
59+
0x940D2024EB89AC07,
60+
0x2B9EBCDC4561DA5C
6161
};
6262

6363
// load data into mem
@@ -66,9 +66,9 @@ int main(void) {
6666
*tx_addr = data_to_write[i];
6767
}
6868

69-
*reg32(ETH_BASE, MACLO_OFFSET) = 0x00890702;
70-
// High 16 bit Mac Address
71-
*reg32(ETH_BASE, MACHI_OFFSET) = 0x00802301;
69+
*reg32(ETH_BASE, MACLO_OFFSET) = 0x89000123;
70+
// High 16 bit Mac Address and irq_en
71+
*reg32(ETH_BASE, MACHI_OFFSET) = 0x00800207;
7272
// DMA Source Address
7373
*reg32(ETH_BASE, IDMA_SRC_ADDR_OFFSET) = TX_BASE;
7474
// DMA Destination Address
@@ -83,17 +83,17 @@ int main(void) {
8383
// Validate Request to DMA
8484
*reg32(ETH_BASE, IDMA_REQ_VALID_OFFSET) = 0x1;
8585

86-
// uint32_t *mdio;
87-
// // mdio = reg32(ETH_BASE, ETH_MDIO_OFFSET);
88-
// mdio = 0x0300c008;
89-
// printf("MDIO value: 0x%08X\n", *mdio);
86+
uint32_t *mdio;
87+
// mdio = reg32(ETH_BASE, ETH_MDIO_OFFSET);
88+
mdio = 0x0300c008;
89+
printf("MDIO value: 0x%08X\n", *mdio);
9090

9191
// configure ethernet
92-
*reg32(ETH_BASE, MACLO_OFFSET) = 0x00890702;
93-
*reg32(ETH_BASE, MACHI_OFFSET) = 0x00802301;
92+
*reg32(ETH_BASE, MACLO_OFFSET) = 0x89000123;
93+
*reg32(ETH_BASE, MACHI_OFFSET) = 0x00800207;
9494
// rx irq
9595
while (!(*reg32(PLIC_BASE, RV_PLIC_IP_0_OFFSET)) & (1 << 19) );
96-
96+
9797
// dma length ready, dma can be configured now
9898
while (!(*reg32(ETH_BASE,IDMA_RX_EN_OFFSET)));
9999

@@ -104,6 +104,10 @@ int main(void) {
104104
*reg32(ETH_BASE, IDMA_DST_PROTO_OFFSET) = 0x0;
105105
*reg32(ETH_BASE, IDMA_REQ_VALID_OFFSET) = 0x1;
106106

107+
uint32_t *rx_fcs;
108+
rx_fcs = 0x0300c014;
109+
printf("rfcs value: 0x%08X\n", *rx_fcs);
110+
107111
// wait until DMA moves all data
108112
while (!(*reg32(ETH_BASE, IDMA_RSP_VALID_OFFSET)));
109113

target/sim/src/fixture_cheshire_soc.sv

+1-1
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ module fixture_cheshire_soc #(
138138
.eth_txd_o ( eth_txd ),
139139
.eth_txctl_o ( eth_txctl ),
140140
.eth_rstn_o ( eth_rstn ),
141-
.eth_mdio_i ( 1'b1 ),// eth_mdio_i
141+
.eth_mdio_i ( 1'b0 ),// eth_mdio_i
142142
.eth_mdio_o ( eth_mdio_o ),
143143
.eth_mdio_oe ( eth_mdio_en ),
144144
.eth_mdc_o ( eth_mdc ),

target/sim/src/vip_cheshire_soc.sv

+4-4
Original file line numberDiff line numberDiff line change
@@ -728,10 +728,10 @@ module vip_cheshire_soc import cheshire_pkg::*; #(
728728

729729
@(posedge clk)
730730

731-
reg_drv_rx.send_write( 'h0300c000, 32'h00890702, 'hf, reg_error); //lower 32bits of MAC address
731+
reg_drv_rx.send_write( 'h0300c000, 32'h89000123, 'hf, reg_error); //lower 32bits of MAC address
732732
@(posedge clk);
733733

734-
reg_drv_rx.send_write( 'h0300c004, 'h802301, 'hf, reg_error); //upper 16bits of MAC address + other configuration set to false/0
734+
reg_drv_rx.send_write( 'h0300c004, 32'h00800207, 'hf, reg_error); //upper 16bits of MAC address + other configuration set to false/0
735735
@(posedge clk);
736736

737737
@(posedge eth_rx_irq);
@@ -768,10 +768,10 @@ module vip_cheshire_soc import cheshire_pkg::*; #(
768768
end
769769

770770
// Tx test starts here: external back to core
771-
reg_drv_rx.send_write( 'h0300c000, 32'h00890702, 'hf, reg_error); //lower 32bits of MAC address
771+
reg_drv_rx.send_write( 'h0300c000, 32'h89000123, 'hf, reg_error); //lower 32bits of MAC address
772772
@(posedge clk);
773773

774-
reg_drv_rx.send_write( 'h0300c004, 32'h00802301, 'hf, reg_error); //upper 16bits of MAC address + other configuration set to false/0
774+
reg_drv_rx.send_write( 'h0300c004, 32'h00800207, 'hf, reg_error); //upper 16bits of MAC address + other configuration set to false/0
775775
@(posedge clk);
776776

777777
reg_drv_rx.send_write( 'h0300c01c, 32'h0, 'hf, reg_error ); // SRC_ADDR

0 commit comments

Comments
 (0)