This module performs the Nvme read data functionality.
- Author
- Terry Barnaby (terry.nosp@m..bar.nosp@m.naby@.nosp@m.beam.nosp@m..ltd..nosp@m.uk)
- Date
- 2020-05-14
- Version
- 1.0.0
This is a simple module that provides a set of host accessible registers that can be used to read data from the Nvme device. It requires the NvmeBlockSize and NvmeTotalBlocks parameters to be set for the Nvme device in use. To use the host sets the starting 4k block number to read, the number of blocks to read and then sets the enable bit is set in the control register. the NvmeRead module will then start sending NVme block read requests to the Nvme device. These requests have the Pcie read data address set to 0x01FXXXXX with XXXXX set to the byte address of the block. The Nvme will send Pcie write requests to this address and hence the host will receive a set of Pcie write request packets with the address 0x01FXXXXX. These packets will contain the block data and be sized to the Pcie max payload size.
- 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/.