From: Kumar Gala <galak@kernel.crashing.org>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH] pci: Treat all PCI bus addresses as 64-bit
Date: Tue, 21 Oct 2008 09:15:31 -0500 [thread overview]
Message-ID: <1224598531-2698-1-git-send-email-galak@kernel.crashing.org> (raw)
PCI bus is inherently 64-bit. We should treat all PCI related bus
addresses as 64-bit quanities. This allows us to have the ability
to support devices or memory on the PCI bus above the 32-bit boundary.
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
---
drivers/pci/pci.c | 4 ++--
drivers/pci/pci_auto.c | 10 +++++-----
include/pci.h | 16 ++++++++--------
3 files changed, 15 insertions(+), 15 deletions(-)
diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
index 41780db..253e1f5 100644
--- a/drivers/pci/pci.c
+++ b/drivers/pci/pci.c
@@ -223,7 +223,7 @@ unsigned long pci_hose_phys_to_bus (struct pci_controller *hose,
unsigned long flags)
{
struct pci_region *res;
- unsigned long bus_addr;
+ u64 bus_addr;
int i;
if (!hose) {
@@ -252,7 +252,7 @@ Done:
}
phys_addr_t pci_hose_bus_to_phys(struct pci_controller* hose,
- unsigned long bus_addr,
+ u64 bus_addr,
unsigned long flags)
{
struct pci_region *res;
diff --git a/drivers/pci/pci_auto.c b/drivers/pci/pci_auto.c
index 3844359..ea362a9 100644
--- a/drivers/pci/pci_auto.c
+++ b/drivers/pci/pci_auto.c
@@ -52,7 +52,7 @@ void pciauto_region_align(struct pci_region *res, unsigned long size)
int pciauto_region_allocate(struct pci_region* res, unsigned int size, unsigned int *bar)
{
- unsigned long addr;
+ u64 addr;
if (!res) {
DEBUGF("No resource");
@@ -68,7 +68,7 @@ int pciauto_region_allocate(struct pci_region* res, unsigned int size, unsigned
res->bus_lower = addr + size;
- DEBUGF("address=0x%lx bus_lower=%x", addr, res->bus_lower);
+ DEBUGF("address=0x%llx bus_lower=%llx", addr, res->bus_lower);
*bar = addr;
return 0;
@@ -289,7 +289,7 @@ void pciauto_config_init(struct pci_controller *hose)
if (hose->pci_mem) {
pciauto_region_init(hose->pci_mem);
- DEBUGF("PCI Autoconfig: Bus Memory region: [%lx-%lx],\n"
+ DEBUGF("PCI Autoconfig: Bus Memory region: [%llx-%llx],\n"
"\t\tPhysical Memory [%x-%x]\n",
hose->pci_mem->bus_start,
hose->pci_mem->bus_start + hose->pci_mem->size - 1,
@@ -300,7 +300,7 @@ void pciauto_config_init(struct pci_controller *hose)
if (hose->pci_prefetch) {
pciauto_region_init(hose->pci_prefetch);
- DEBUGF("PCI Autoconfig: Bus Prefetchable Mem: [%lx-%lx],\n"
+ DEBUGF("PCI Autoconfig: Bus Prefetchable Mem: [%llx-%llx],\n"
"\t\tPhysical Memory [%x-%x]\n",
hose->pci_prefetch->bus_start,
hose->pci_prefetch->bus_start + hose->pci_prefetch->size - 1,
@@ -312,7 +312,7 @@ void pciauto_config_init(struct pci_controller *hose)
if (hose->pci_io) {
pciauto_region_init(hose->pci_io);
- DEBUGF("PCI Autoconfig: Bus I/O region: [%lx-%lx],\n"
+ DEBUGF("PCI Autoconfig: Bus I/O region: [%llx-%llx],\n"
"\t\tPhysical Memory: [%x-%x]\n",
hose->pci_io->bus_start,
hose->pci_io->bus_start + hose->pci_io->size - 1,
diff --git a/include/pci.h b/include/pci.h
index 1c8e216..2689640 100644
--- a/include/pci.h
+++ b/include/pci.h
@@ -313,12 +313,12 @@
#include <pci_ids.h>
struct pci_region {
- unsigned long bus_start; /* Start on the bus */
- phys_addr_t phys_start; /* Start in physical address space */
- unsigned long size; /* Size */
- unsigned long flags; /* Resource flags */
+ u64 bus_start; /* Start on the bus */
+ phys_addr_t phys_start; /* Start in physical address space */
+ u64 size; /* Size */
+ unsigned long flags; /* Resource flags */
- unsigned long bus_lower;
+ u64 bus_lower;
};
#define PCI_REGION_MEM 0x00000000 /* PCI memory space */
@@ -330,9 +330,9 @@ struct pci_region {
#define PCI_REGION_RO 0x00000200 /* Read-only memory */
extern __inline__ void pci_set_region(struct pci_region *reg,
- unsigned long bus_start,
+ u64 bus_start,
phys_addr_t phys_start,
- unsigned long size,
+ u64 size,
unsigned long flags) {
reg->bus_start = bus_start;
reg->phys_start = phys_start;
@@ -433,7 +433,7 @@ extern __inline__ void pci_set_ops(struct pci_controller *hose,
extern void pci_setup_indirect(struct pci_controller* hose, u32 cfg_addr, u32 cfg_data);
extern phys_addr_t pci_hose_bus_to_phys(struct pci_controller* hose,
- unsigned long addr, unsigned long flags);
+ u64 addr, unsigned long flags);
extern unsigned long pci_hose_phys_to_bus(struct pci_controller* hose,
phys_addr_t addr, unsigned long flags);
--
1.5.5.1
next reply other threads:[~2008-10-21 14:15 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-10-21 14:15 Kumar Gala [this message]
2008-10-21 14:46 ` [U-Boot] [PATCH] pci: Treat all PCI bus addresses as 64-bit Wolfgang Denk
2008-10-21 14:55 ` Jerry Van Baren
2008-10-21 14:59 ` Kumar Gala
2008-10-21 15:03 ` Wolfgang Denk
2008-10-21 15:00 ` Kumar Gala
2008-10-21 15:06 ` Wolfgang Denk
2008-10-21 15:29 ` Kumar Gala
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1224598531-2698-1-git-send-email-galak@kernel.crashing.org \
--to=galak@kernel.crashing.org \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.