This module configures a Nvme device for operation.
- Author
- Terry Barnaby (terry.nosp@m..bar.nosp@m.naby@.nosp@m.beam.nosp@m..ltd..nosp@m.uk)
- Date
- 2020-06-06
- Version
- 1.0.0
This has a set of PCIe requests hard coded in a ROM that are sent out on the streamOut stream when the configStart signal is set high for one clock period. The module ignores all replies and assumes all requests complete with no errors. The configComplete signal is set high on completion. The ROM's contents have a list of 128 bit words. There will be a set of a requests consisting of a PCIe TLP header followed by its data words. The TLP headers count field specifies how many 32 bit words of data follow the header. A 128 bit entry of all 0's terminates the list of Pcie requests. The module will wait 100ms before starting configuration to allow its use directly after a device reset. This time allows the Nvme device to complete its internal initialisation. The ClockPeriod parameter should be set to the clocks period to achieve the correct delay timing.
- Copyright
- GNU GPL License Copyright (c) Beam Ltd, All rights reserved.
This code is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this code. If not, see https://www.gnu.org/licenses/.