Patchwork [5/5] libpayload: Add more libpci-compatibility (#defines)

login
register
about
Submitter Patrick Georgi
Date 2011-02-25 12:40:20
Message ID <1298640300.2470.17.camel@linux-0a8x.site>
Download mbox | patch
Permalink /patch/2697/
State Accepted
Commit r6417
Headers show

Comments

Patrick Georgi - 2011-02-25 12:40:20
Signed-off-by: Patrick Georgi <patrick.georgi@secunet.com>
---
 payloads/libpayload/include/pci.h     |    2 ++
 payloads/libpayload/include/pci/pci.h |   26 ++++++++++++++++++++++++++
 2 files changed, 28 insertions(+), 0 deletions(-)
Stefan Reinauer - 2011-02-25 20:45:11
* Patrick Georgi <Patrick.Georgi@secunet.com> [110225 13:40]:
> Signed-off-by: Patrick Georgi <patrick.georgi@secunet.com>
> ---
>  payloads/libpayload/include/pci.h     |    2 ++
>  payloads/libpayload/include/pci/pci.h |   26 ++++++++++++++++++++++++++
>  2 files changed, 28 insertions(+), 0 deletions(-)

Nice!

Acked-by: Stefan Reinauer <stefan.reinauer@coreboot.org>


Is there some (public) documentation on how to use flashrom as a
payload, or is there a chance you could publish this?
Patrick Georgi - 2011-02-25 21:53:27
Am 25.02.2011 21:45, schrieb Stefan Reinauer:
> Is there some (public) documentation on how to use flashrom as a
> payload, or is there a chance you could publish this?
The basic use is to write your own frontend that uses flashrom's doit() 
function.
 From there, you're on your own (for now).


Patrick

Patch

diff --git a/payloads/libpayload/include/pci.h b/payloads/libpayload/include/pci.h
index 2490f6c..005634a 100644
--- a/payloads/libpayload/include/pci.h
+++ b/payloads/libpayload/include/pci.h
@@ -42,6 +42,8 @@  typedef u32 pcidev_t;
 #define REG_SUBSYS_VENDOR_ID 0x2C
 #define REG_SUBSYS_ID   0x2E
 
+#define REG_COMMAND_IO  (1 << 0)
+#define REG_COMMAND_MEM (1 << 1)
 #define REG_COMMAND_BM  (1 << 2)
 
 #define HEADER_TYPE_NORMAL  0
diff --git a/payloads/libpayload/include/pci/pci.h b/payloads/libpayload/include/pci/pci.h
index 9c7ced8..53da0e1 100644
--- a/payloads/libpayload/include/pci/pci.h
+++ b/payloads/libpayload/include/pci/pci.h
@@ -39,6 +39,32 @@ 
 #define PCI_SUBSYSTEM_VENDOR_ID REG_SUBSYS_VENDOR_ID
 #define PCI_SUBSYSTEM_ID	REG_SUBSYS_ID
 
+#define PCI_COMMAND		REG_COMMAND
+#define PCI_COMMAND_IO		REG_COMMAND_IO
+#define PCI_COMMAND_MEMORY	REG_COMMAND_MEM
+#define PCI_COMMAND_MASTER	REG_COMMAND_BM
+
+#define PCI_HEADER_TYPE		REG_HEADER_TYPE
+#define PCI_HEADER_TYPE_NORMAL	HEADER_TYPE_NORMAL
+#define PCI_HEADER_TYPE_BRIDGE	HEADER_TYPE_BRIDGE
+#define PCI_HEADER_TYPE_CARDBUS	HEADER_TYPE_CARDBUS
+
+#define PCI_BASE_ADDRESS_0	0x10
+#define PCI_BASE_ADDRESS_1	0x14
+#define PCI_BASE_ADDRESS_2	0x18
+#define PCI_BASE_ADDRESS_3	0x1c
+#define PCI_BASE_ADDRESS_4	0x20
+#define PCI_BASE_ADDRESS_5	0x24
+#define PCI_BASE_ADDRESS_SPACE	1 // mask
+#define PCI_BASE_ADDRESS_SPACE_IO	1
+#define PCI_BASE_ADDRESS_SPACE_MEM	0
+#define PCI_BASE_ADDRESS_IO_MASK	~0xf
+#define PCI_BASE_ADDRESS_MEM_MASK	~0x3
+
+#define PCI_ROM_ADDRESS		0x30
+#define PCI_ROM_ADDRESS1	0x38 // on bridges
+#define PCI_ROM_ADDRESS_MASK	~0x7ff
+
 struct pci_dev {
 	u16 domain;
 	u8 bus, dev, func;