Signed-off-by: Antony Pavlov <antonynpavlov@xxxxxxxxx> --- commands/Kconfig | 8 ++++++++ commands/Makefile | 1 + commands/lspci.c | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 62 insertions(+), 0 deletions(-) create mode 100644 commands/lspci.c diff --git a/commands/Kconfig b/commands/Kconfig index e332a85..2367014 100644 --- a/commands/Kconfig +++ b/commands/Kconfig @@ -516,6 +516,14 @@ config CMD_USB help The usb command allows to rescan for USB devices. +config CMD_LSPCI + bool + depends on PCI + prompt "lspci command" + default y + help + The lspci command allows to list all PCI devices. + endmenu endif diff --git a/commands/Makefile b/commands/Makefile index 31442b5..273acce 100644 --- a/commands/Makefile +++ b/commands/Makefile @@ -64,3 +64,4 @@ obj-$(CONFIG_CMD_OFTREE) += oftree.o obj-$(CONFIG_CMD_MAGICVAR) += magicvar.o obj-$(CONFIG_CMD_IOMEM) += iomem.o obj-$(CONFIG_CMD_LINUX_EXEC) += linux_exec.o +obj-$(CONFIG_CMD_LSPCI) += lspci.o diff --git a/commands/lspci.c b/commands/lspci.c new file mode 100644 index 0000000..1460f39 --- /dev/null +++ b/commands/lspci.c @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2011 Antony Pavlov <antonynpavlov@xxxxxxxxx> + * + * This file is part of barebox. + * See file CREDITS for list of people who contributed to this project. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 + * as published by the Free Software Foundation. + * + * 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 program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include <common.h> +#include <init.h> +#include <linux/pci.h> + +#include <command.h> + +extern struct pci_bus *pci_root; + +static int do_lspci(struct command *cmdtp, int argc, char *argv[]) +{ + struct pci_dev *dev; + + if (!pci_present()) { + printf("no pci!\n"); + return 1; + } + + list_for_each_entry(dev, &pci_root->devices, bus_list) { + printf("%02x: %04x: %04x:%04x (rev %02x)\n", + dev->devfn, + (dev->class >> 8) & 0xffff, + dev->vendor, + dev->device, + dev->revision); + } + + return 0; +} + +BAREBOX_CMD_START(lspci) + .cmd = do_lspci, + .usage = "Show PCI info", +BAREBOX_CMD_END -- 1.7.8.3 _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox