mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-20 03:38:43 +00:00
Merge branch 'pci'
This commit is contained in:
commit
d5e78b7bf4
2 changed files with 21 additions and 0 deletions
|
@ -2,6 +2,11 @@
|
||||||
Changes since U-Boot 1.1.4:
|
Changes since U-Boot 1.1.4:
|
||||||
======================================================================
|
======================================================================
|
||||||
|
|
||||||
|
* Fixed PCI indirect config ops to handle multiple PCI controllers
|
||||||
|
We need to adjust the bus number we are trying to access based
|
||||||
|
on which PCI controller its on
|
||||||
|
Patch by Kumar Gala 12 Jan 2006
|
||||||
|
|
||||||
* Add helper function for generic flat device tree fixups for mpc83xx
|
* Add helper function for generic flat device tree fixups for mpc83xx
|
||||||
Patch by Kumar Gala 11 Jan 2006
|
Patch by Kumar Gala 11 Jan 2006
|
||||||
|
|
||||||
|
|
|
@ -36,6 +36,10 @@ static int \
|
||||||
indirect_##rw##_config_##size(struct pci_controller *hose, \
|
indirect_##rw##_config_##size(struct pci_controller *hose, \
|
||||||
pci_dev_t dev, int offset, type val) \
|
pci_dev_t dev, int offset, type val) \
|
||||||
{ \
|
{ \
|
||||||
|
u32 b, d,f; \
|
||||||
|
b = PCI_BUS(dev); d = PCI_DEV(dev); f = PCI_FUNC(dev); \
|
||||||
|
b = b - hose->first_busno; \
|
||||||
|
dev = PCI_BDF(b, d, f); \
|
||||||
out_le32(hose->cfg_addr, dev | (offset & 0xfc) | 0x80000000); \
|
out_le32(hose->cfg_addr, dev | (offset & 0xfc) | 0x80000000); \
|
||||||
sync(); \
|
sync(); \
|
||||||
cfg_##rw(val, hose->cfg_data + (offset & mask), type, op); \
|
cfg_##rw(val, hose->cfg_data + (offset & mask), type, op); \
|
||||||
|
@ -47,6 +51,10 @@ static int \
|
||||||
indirect_##rw##_config_##size(struct pci_controller *hose, \
|
indirect_##rw##_config_##size(struct pci_controller *hose, \
|
||||||
pci_dev_t dev, int offset, type val) \
|
pci_dev_t dev, int offset, type val) \
|
||||||
{ \
|
{ \
|
||||||
|
u32 b, d,f; \
|
||||||
|
b = PCI_BUS(dev); d = PCI_DEV(dev); f = PCI_FUNC(dev); \
|
||||||
|
b = b - hose->first_busno; \
|
||||||
|
dev = PCI_BDF(b, d, f); \
|
||||||
*(hose->cfg_addr) = dev | (offset & 0xfc) | 0x80000000; \
|
*(hose->cfg_addr) = dev | (offset & 0xfc) | 0x80000000; \
|
||||||
sync(); \
|
sync(); \
|
||||||
cfg_##rw(val, hose->cfg_data + (offset & mask), type, op); \
|
cfg_##rw(val, hose->cfg_data + (offset & mask), type, op); \
|
||||||
|
@ -58,6 +66,10 @@ static int \
|
||||||
indirect_##rw##_config_##size(struct pci_controller *hose, \
|
indirect_##rw##_config_##size(struct pci_controller *hose, \
|
||||||
pci_dev_t dev, int offset, type val) \
|
pci_dev_t dev, int offset, type val) \
|
||||||
{ \
|
{ \
|
||||||
|
u32 b, d,f; \
|
||||||
|
b = PCI_BUS(dev); d = PCI_DEV(dev); f = PCI_FUNC(dev); \
|
||||||
|
b = b - hose->first_busno; \
|
||||||
|
dev = PCI_BDF(b, d, f); \
|
||||||
if (PCI_BUS(dev) > 0) \
|
if (PCI_BUS(dev) > 0) \
|
||||||
out_le32(hose->cfg_addr, dev | (offset & 0xfc) | 0x80000001); \
|
out_le32(hose->cfg_addr, dev | (offset & 0xfc) | 0x80000001); \
|
||||||
else \
|
else \
|
||||||
|
@ -71,6 +83,10 @@ static int \
|
||||||
indirect_##rw##_config_##size(struct pci_controller *hose, \
|
indirect_##rw##_config_##size(struct pci_controller *hose, \
|
||||||
pci_dev_t dev, int offset, type val) \
|
pci_dev_t dev, int offset, type val) \
|
||||||
{ \
|
{ \
|
||||||
|
u32 b, d,f; \
|
||||||
|
b = PCI_BUS(dev); d = PCI_DEV(dev); f = PCI_FUNC(dev); \
|
||||||
|
b = b - hose->first_busno; \
|
||||||
|
dev = PCI_BDF(b, d, f); \
|
||||||
out_le32(hose->cfg_addr, dev | (offset & 0xfc) | 0x80000000); \
|
out_le32(hose->cfg_addr, dev | (offset & 0xfc) | 0x80000000); \
|
||||||
cfg_##rw(val, hose->cfg_data + (offset & mask), type, op); \
|
cfg_##rw(val, hose->cfg_data + (offset & mask), type, op); \
|
||||||
return 0; \
|
return 0; \
|
||||||
|
|
Loading…
Reference in a new issue