From e91a5d6b82f65893c3229755aeb9e324ea193c55 Mon Sep 17 00:00:00 2001
From: Florent Kermarrec <florent@enjoy-digital.fr>
Date: Tue, 30 Jun 2020 17:28:13 +0200
Subject: [PATCH] targets/pcie: remove soft reset.

---
 litex_boards/targets/acorn_cle_215.py | 11 +----------
 litex_boards/targets/aller.py         | 11 +----------
 litex_boards/targets/nereid.py        | 11 +----------
 litex_boards/targets/tagus.py         | 11 +----------
 4 files changed, 4 insertions(+), 40 deletions(-)

diff --git a/litex_boards/targets/acorn_cle_215.py b/litex_boards/targets/acorn_cle_215.py
index c04ca7b..3e2ef18 100755
--- a/litex_boards/targets/acorn_cle_215.py
+++ b/litex_boards/targets/acorn_cle_215.py
@@ -26,7 +26,6 @@ import argparse
 import sys
 
 from migen import *
-from migen.genlib.misc import WaitTimer
 
 from litex_boards.platforms import acorn_cle_215
 
@@ -52,10 +51,8 @@ from litepcie.software import generate_litepcie_software
 
 # CRG ----------------------------------------------------------------------------------------------
 
-class CRG(Module, AutoCSR):
+class CRG(Module):
     def __init__(self, platform, sys_clk_freq):
-        self.rst = CSR()
-
         self.clock_domains.cd_sys       = ClockDomain()
         self.clock_domains.cd_sys4x     = ClockDomain(reset_less=True)
         self.clock_domains.cd_sys4x_dqs = ClockDomain(reset_less=True)
@@ -64,14 +61,8 @@ class CRG(Module, AutoCSR):
         # Clk/Rst
         clk200 = platform.request("clk200")
 
-        # Delay software reset by 10us to ensure write has been acked on PCIe.
-        rst_delay = WaitTimer(int(10e-6*sys_clk_freq))
-        self.submodules += rst_delay
-        self.sync += If(self.rst.re, rst_delay.wait.eq(1))
-
         # PLL
         self.submodules.pll = pll = S7PLL()
-        self.comb += pll.reset.eq(rst_delay.done)
         pll.register_clkin(clk200, 200e6)
         pll.create_clkout(self.cd_sys,       sys_clk_freq)
         pll.create_clkout(self.cd_sys4x,     4*sys_clk_freq)
diff --git a/litex_boards/targets/aller.py b/litex_boards/targets/aller.py
index 1bcfe43..157f2b1 100755
--- a/litex_boards/targets/aller.py
+++ b/litex_boards/targets/aller.py
@@ -9,7 +9,6 @@ import argparse
 import sys
 
 from migen import *
-from migen.genlib.misc import WaitTimer
 
 from litex_boards.platforms import aller
 
@@ -35,10 +34,8 @@ from litepcie.software import generate_litepcie_software
 
 # CRG ----------------------------------------------------------------------------------------------
 
-class CRG(Module, AutoCSR):
+class CRG(Module):
     def __init__(self, platform, sys_clk_freq):
-        self.rst = CSR()
-
         self.clock_domains.cd_sys       = ClockDomain()
         self.clock_domains.cd_sys4x     = ClockDomain(reset_less=True)
         self.clock_domains.cd_sys4x_dqs = ClockDomain(reset_less=True)
@@ -47,14 +44,8 @@ class CRG(Module, AutoCSR):
         # Clk/Rst
         clk100 = platform.request("clk100")
 
-        # Delay software reset by 10us to ensure write has been acked on PCIe.
-        rst_delay = WaitTimer(int(10e-6*sys_clk_freq))
-        self.submodules += rst_delay
-        self.sync += If(self.rst.re, rst_delay.wait.eq(1))
-
         # PLL
         self.submodules.pll = pll = S7PLL()
-        self.comb += pll.reset.eq(rst_delay.done)
         pll.register_clkin(clk100, 100e6)
         pll.create_clkout(self.cd_sys,       sys_clk_freq)
         pll.create_clkout(self.cd_sys4x,     4*sys_clk_freq)
diff --git a/litex_boards/targets/nereid.py b/litex_boards/targets/nereid.py
index 7461bb0..b999493 100755
--- a/litex_boards/targets/nereid.py
+++ b/litex_boards/targets/nereid.py
@@ -9,7 +9,6 @@ import argparse
 import sys
 
 from migen import *
-from migen.genlib.misc import WaitTimer
 
 from litex_boards.platforms import nereid
 
@@ -34,10 +33,8 @@ from litepcie.software import generate_litepcie_software
 
 # CRG ----------------------------------------------------------------------------------------------
 
-class CRG(Module, AutoCSR):
+class CRG(Module):
     def __init__(self, platform, sys_clk_freq):
-        self.rst = CSR()
-
         self.clock_domains.cd_sys    = ClockDomain()
         self.clock_domains.cd_sys4x  = ClockDomain(reset_less=True)
         self.clock_domains.cd_clk200 = ClockDomain()
@@ -45,14 +42,8 @@ class CRG(Module, AutoCSR):
         # Clk/Rst
         clk100 = platform.request("clk100")
 
-        # Delay software reset by 10us to ensure write has been acked on PCIe.
-        rst_delay = WaitTimer(int(10e-6*sys_clk_freq))
-        self.submodules += rst_delay
-        self.sync += If(self.rst.re, rst_delay.wait.eq(1))
-
         # PLL
         self.submodules.pll = pll = S7PLL()
-        self.comb += pll.reset.eq(rst_delay.done)
         pll.register_clkin(clk100, 100e6)
         pll.create_clkout(self.cd_sys,    sys_clk_freq)
         pll.create_clkout(self.cd_sys4x,  4*sys_clk_freq)
diff --git a/litex_boards/targets/tagus.py b/litex_boards/targets/tagus.py
index d68dad2..4450796 100755
--- a/litex_boards/targets/tagus.py
+++ b/litex_boards/targets/tagus.py
@@ -9,7 +9,6 @@ import argparse
 import sys
 
 from migen import *
-from migen.genlib.misc import WaitTimer
 
 from litex_boards.platforms import tagus
 
@@ -35,10 +34,8 @@ from litepcie.software import generate_litepcie_software
 
 # CRG ----------------------------------------------------------------------------------------------
 
-class CRG(Module, AutoCSR):
+class CRG(Module):
     def __init__(self, platform, sys_clk_freq):
-        self.rst = CSR()
-
         self.clock_domains.cd_sys       = ClockDomain()
         self.clock_domains.cd_sys4x     = ClockDomain(reset_less=True)
         self.clock_domains.cd_sys4x_dqs = ClockDomain(reset_less=True)
@@ -47,14 +44,8 @@ class CRG(Module, AutoCSR):
         # Clk/Rst
         clk100 = platform.request("clk100")
 
-        # Delay software reset by 10us to ensure write has been acked on PCIe.
-        rst_delay = WaitTimer(int(10e-6*sys_clk_freq))
-        self.submodules += rst_delay
-        self.sync += If(self.rst.re, rst_delay.wait.eq(1))
-
         # PLL
         self.submodules.pll = pll = S7PLL()
-        self.comb += pll.reset.eq(rst_delay.done)
         pll.register_clkin(clk100, 100e6)
         pll.create_clkout(self.cd_sys,       sys_clk_freq)
         pll.create_clkout(self.cd_sys4x,     4*sys_clk_freq)