libpayload/storage: Add NVMe driver

Tested with qemu virtual NVMe and Intel hardware. Works with FILO.

Change-Id: Ie75b1dc743dac3426c230c57ee23b771ba3a6e0c
Signed-off-by: Thomas Heijligen <thomas.heijligen@secunet.com>
Signed-off-by: Nico Huber <nico.huber@secunet.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/33582
Reviewed-by:  Felix Singer <felixsinger@posteo.net>
Reviewed-by: Nico Huber <nico.h@gmx.de>
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
Thomas Heijligen
2019-07-10 16:05:36 +02:00
committed by Nico Huber
parent 989323d29e
commit fffc21d3dc
7 changed files with 433 additions and 0 deletions

View File

@ -67,6 +67,7 @@
#define PCI_ROM_ADDRESS_MASK ~0x7ff
#define PCI_CLASS_STORAGE_AHCI 0x0106
#define PCI_CLASS_STORAGE_NVME 0x0108
#define PCI_CLASS_MEMORY_OTHER 0x0580
#define PCI_VENDOR_ID_INTEL 0x8086

View File

@ -0,0 +1,14 @@
// SPDX-License-Identifier: BSD-3-Clause
/*
* Libpayload NVMe device driver
* Copyright (C) 2019 secunet Security Networks AG
*/
#ifndef _STORAGE_NVME_H
#define _STORAGE_NVME_H
#include "storage.h"
void nvme_initialize(struct pci_dev *dev);
#endif /* _STORAGE_NVME_H */

View File

@ -42,6 +42,7 @@ typedef enum {
PORT_TYPE_IDE = (1 << 0),
PORT_TYPE_SATA = (1 << 1),
PORT_TYPE_USB = (1 << 2),
PORT_TYPE_NVME = (1 << 3),
} storage_port_t;
typedef enum {