From 841f26fb5fe580ee8b1a51226cd42a2211eba228 Mon Sep 17 00:00:00 2001
From: dwf1m12 <d.w.flynn@soton.ac.uk>
Date: Mon, 15 Jan 2024 22:29:18 +0000
Subject: [PATCH] fix reset-bypass on APB reset

---
 nanosoc/nanosoc_chip/chip/verilog/nanosoc_chip.v  | 9 ++++++---
 nanosoc/nanosoc_control/verilog/nanosoc_clkctrl.v | 2 +-
 2 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/nanosoc/nanosoc_chip/chip/verilog/nanosoc_chip.v b/nanosoc/nanosoc_chip/chip/verilog/nanosoc_chip.v
index 3c55d72..14a5431 100644
--- a/nanosoc/nanosoc_chip/chip/verilog/nanosoc_chip.v
+++ b/nanosoc/nanosoc_chip/chip/verilog/nanosoc_chip.v
@@ -115,9 +115,9 @@ module nanosoc_chip #(
   assign SYS_SCANENABLE   = scan_enable;
   assign SYS_TESTMODE     = scan_mode;
   assign SYS_SCANINHCLK   = 1'b1;
-  assign scan_out         = scan_in;
+///  assign scan_out         = scan_in;
   assign bist_out         = bist_in;
-  assign uart_txd_o       = uart_rxd_i;
+///  assign uart_txd_o       = uart_rxd_i;
 `else
   assign SYS_SCANENABLE   = test_i & swdio_i; 
   assign SYS_TESTMODE     = test_i;   
@@ -171,7 +171,10 @@ module nanosoc_chip #(
   assign        p1_e[3] = 1'b1; 
   assign        p1_z[3] = 1'b0;
 
-  assign        P1_IN_MUX[15:4] = p1_i[15:4]; // IO MUX controlled bidirectionals
+  assign        P1_IN_MUX[4] = (alt_mode) ? uart_txd_i : p1_i[4]; // RXD2
+  assign        uart_txd_o = P1_OUT_MUX[5]; // TXD2
+
+  assign        P1_IN_MUX[15:5] = p1_i[15:5]; // IO MUX controlled bidirectionals
   assign        p1_o[15:4] = P1_OUT_MUX[15:4];    
   assign        p1_e[15:4] = P1_OUT_EN_MUX[15:4];
   assign        p1_z[15:4] = ~P1_OUT_EN_MUX[15:4];
diff --git a/nanosoc/nanosoc_control/verilog/nanosoc_clkctrl.v b/nanosoc/nanosoc_control/verilog/nanosoc_clkctrl.v
index 98d9478..7a1d68d 100644
--- a/nanosoc/nanosoc_control/verilog/nanosoc_clkctrl.v
+++ b/nanosoc/nanosoc_control/verilog/nanosoc_clkctrl.v
@@ -96,7 +96,7 @@ module nanosoc_clkctrl #(
     reset_sync_reg <= nxt_reset_sync;
   end
 
-  assign reset_n = reset_sync_reg[2];
+  assign reset_n = (RSTBYPASS) ? NRST : reset_sync_reg[2];
 
 `ifdef CORTEX_M0DESIGNSTART
   // AHB HRESETn
-- 
GitLab