diff --git a/hw/config.cmake b/hw/config.cmake index c34486f..c349c75 100644 --- a/hw/config.cmake +++ b/hw/config.cmake @@ -166,9 +166,11 @@ if(DDR_AUTO) endif() # Compare for mismatch -MATH(EXPR N_DDRS "${DDR_0}+${DDR_1}+${DDR_2}+${DDR_3}") -if(NOT N_DDRS EQUAL ${N_DDR_CHAN}) - message(FATAL_ERROR "DDRs have not been configured properly.") +if(EN_DCARD) + MATH(EXPR N_DDRS "${DDR_0}+${DDR_1}+${DDR_2}+${DDR_3}") + if(NOT N_DDRS EQUAL ${N_DDR_CHAN}) + message(FATAL_ERROR "DDRs have not been configured properly.") + endif() endif() ## diff --git a/hw/hdl/slave/static_slave.sv b/hw/hdl/slave/static_slave.sv index 1f064a1..fdb64e6 100644 --- a/hw/hdl/slave/static_slave.sv +++ b/hw/hdl/slave/static_slave.sv @@ -454,7 +454,7 @@ always_ff @(posedge aclk) begin end end NET_0_MACADDR_REG: // MAC address - for (int i = 0; i < AXIL_DATA_BITS/8; i++) begin + for (int i = 0; i < 6; i++) begin if(s_axi_ctrl.wstrb[i]) begin m_set_mac_addr_0.data[(i*8)+:8] <= s_axi_ctrl.wdata[(i*8)+:8]; m_set_mac_addr_0.valid <= 1'b1; @@ -478,7 +478,7 @@ always_ff @(posedge aclk) begin end end NET_1_MACADDR_REG: // MAC address - for (int i = 0; i < AXIL_DATA_BITS/8; i++) begin + for (int i = 0; i < 6; i++) begin if(s_axi_ctrl.wstrb[i]) begin m_set_mac_addr_1.data[(i*8)+:8] <= s_axi_ctrl.wdata[(i*8)+:8]; m_set_mac_addr_1.valid <= 1'b1; diff --git a/sw/examples/service_aes/service/main.cpp b/sw/examples/service_aes/service/main.cpp index 3898d9e..39ae45b 100644 --- a/sw/examples/service_aes/service/main.cpp +++ b/sw/examples/service_aes/service/main.cpp @@ -47,6 +47,9 @@ int main(void) // Load AES service task cservice->addTask(opIdAes, [] (cProcess *cproc, std::vector params) { // addr, len, keyLow, keyHigh + // Map + cproc->userMap((void*)params[0], (uint32_t) params[1]); + // Set up the key cproc->setCSR(params[2], 1); cproc->setCSR(params[3], 2); @@ -54,6 +57,9 @@ int main(void) // Invoke cproc->invoke({CoyoteOper::TRANSFER, (void*)params[0], (void*)params[0], (uint32_t) params[1], (uint32_t) params[1]}); + + // Unmap + cproc->userUnmap((void*)params[0]); }); // Run the daemon