diff options
author | Simon Glass <sjg@chromium.org> | 2023-05-04 16:55:07 -0600 |
---|---|---|
committer | Bin Meng <bmeng@tinylab.org> | 2023-05-11 10:25:29 +0800 |
commit | 38534712cd4c4d8acdf760ee87ba219f82d738c9 (patch) | |
tree | a8b2c23e8b7cd7fec04846d55862adc86e9a154d /drivers/nvme | |
parent | 2f5210b703355ba8f8d9c441a9b4f23ce3e93133 (diff) | |
download | u-boot-38534712cd4c4d8acdf760ee87ba219f82d738c9.tar.gz |
nvme: Enable PCI bus mastering
U-Boot sets up devices ready for use, but coreboot does not. Enable this
so that NVMe works OK from coreboot.
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Diffstat (limited to 'drivers/nvme')
-rw-r--r-- | drivers/nvme/nvme_pci.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/nvme/nvme_pci.c b/drivers/nvme/nvme_pci.c index 36bf9c5ffb7..5bb43d299fc 100644 --- a/drivers/nvme/nvme_pci.c +++ b/drivers/nvme/nvme_pci.c @@ -6,6 +6,7 @@ #include <common.h> #include <dm.h> +#include <init.h> #include <pci.h> #include "nvme.h" @@ -30,6 +31,10 @@ static int nvme_probe(struct udevice *udev) ndev->instance = trailing_strtol(udev->name); ndev->bar = dm_pci_map_bar(udev, PCI_BASE_ADDRESS_0, 0, 0, PCI_REGION_TYPE, PCI_REGION_MEM); + + /* Turn on bus-mastering */ + dm_pci_clrset_config16(udev, PCI_COMMAND, 0, PCI_COMMAND_MASTER); + return nvme_init(udev); } |