pci: Add functions to read and write a BAR address

Some PCI functions cannot be auto-configured. Add a function to set up a
fixed BAR which can be used in these situations. Also add a function to read
the current address of a BAR.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
This commit is contained in:
Simon Glass 2014-11-14 18:18:30 -07:00
parent b6b4a0ec55
commit e8a552eb62
2 changed files with 44 additions and 3 deletions

View file

@ -678,5 +678,28 @@ extern void pci_mpc824x_init (struct pci_controller *hose);
extern void pci_mpc85xx_init (struct pci_controller *hose);
#endif
/**
* pci_write_bar32() - Write the address of a BAR including control bits
*
* This writes a raw address (with control bits) to a bar
*
* @hose: PCI hose to use
* @dev: PCI device to update
* @barnum: BAR number (0-5)
* @addr: BAR address with control bits
*/
void pci_write_bar32(struct pci_controller *hose, pci_dev_t dev, int barnum,
u32 addr_and_ctrl);
/**
* pci_read_bar32() - read the address of a bar
*
* @hose: PCI hose to use
* @dev: PCI device to inspect
* @barnum: BAR number (0-5)
* @return address of the bar, masking out any control bits
* */
u32 pci_read_bar32(struct pci_controller *hose, pci_dev_t dev, int barnum);
#endif /* __ASSEMBLY__ */
#endif /* _PCI_H */