A source code of pci is written mainly on powerpc. Macro uses a pci source code of powerpc because other architecture (ex. SuperH) doesn't work.
I made asm-ppc/pci.h and moved macro of pci. Other archtecture need to make the following macro in asm-xxx/pci.h #define pci_phys_to_mem(dev, addr) (addr) #define pci_mem_to_phys(dev, addr) (addr) #define pci_phys_to_io(dev, addr) (addr) #define pci_io_to_phys(dev, addr) (addr) Or have to make a function for pci address conversion. However, I want comment because I do not know the other architecture. Signed-off-by: Nobuhiro Iwamatsu <[EMAIL PROTECTED]> --- include/asm-ppc/pci.h | 53 +++++++++++++++++++++++++++++++++++++++++++++++++ include/asm-sh/pci.h | 5 ++++ include/pci.h | 22 +------------------- 3 files changed, 59 insertions(+), 21 deletions(-) create mode 100644 include/asm-ppc/pci.h diff --git a/include/asm-ppc/pci.h b/include/asm-ppc/pci.h new file mode 100644 index 0000000..d5f8475 --- /dev/null +++ b/include/asm-ppc/pci.h @@ -0,0 +1,53 @@ +/* + * (C) Copyright 2001 Sysgo Real-Time Solutions, GmbH <www.elinos.com> + * Andreas Heppel <[EMAIL PROTECTED]> + * + * (C) Copyright 2002 + * Wolfgang Denk, DENX Software Engineering, [EMAIL PROTECTED] + * + * 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 as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * 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 + * aloong with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ + +#ifndef _ASM_PCI_H +#define _ASM_PCI_H + +extern phys_addr_t pci_hose_bus_to_phys(struct pci_controller* hose, + unsigned long addr, unsigned long flags); +extern unsigned long pci_hose_phys_to_bus(struct pci_controller* hose, + phys_addr_t addr, unsigned long flags); + +#define pci_phys_to_bus(dev, addr, flags) \ + pci_hose_phys_to_bus(pci_bus_to_hose(PCI_BUS(dev)), (addr), (flags)) +#define pci_bus_to_phys(dev, addr, flags) \ + pci_hose_bus_to_phys(pci_bus_to_hose(PCI_BUS(dev)), (addr), (flags)) + +#define pci_phys_to_mem(dev, addr) pci_phys_to_bus((dev), (addr), PCI_REGION_MEM) +#define pci_mem_to_phys(dev, addr) pci_bus_to_phys((dev), (addr), PCI_REGION_MEM) +#define pci_phys_to_io(dev, addr) pci_phys_to_bus((dev), (addr), PCI_REGION_IO) +#define pci_io_to_phys(dev, addr) pci_bus_to_phys((dev), (addr), PCI_REGION_IO) + +#ifdef CONFIG_MPC824X +extern void pci_mpc824x_init (struct pci_controller *hose); +#endif + +#ifdef CONFIG_MPC85xx +extern void pci_mpc85xx_init (struct pci_controller *hose); +#endif + +#endif /* _ASM_PCI_H */ diff --git a/include/asm-sh/pci.h b/include/asm-sh/pci.h index bc59491..1f24fb6 100644 --- a/include/asm-sh/pci.h +++ b/include/asm-sh/pci.h @@ -44,4 +44,9 @@ int pci_sh4_read_config_dword(struct pci_controller *hose, int pci_sh4_write_config_dword(struct pci_controller *hose, pci_dev_t dev, int offset, u32 value); +#define pci_phys_to_mem(dev, addr) (addr) +#define pci_mem_to_phys(dev, addr) (addr) +#define pci_phys_to_io(dev, addr) (addr) +#define pci_io_to_phys(dev, addr) (addr) + #endif /* _ASM_PCI_H_ */ diff --git a/include/pci.h b/include/pci.h index 1c8e216..9b61635 100644 --- a/include/pci.h +++ b/include/pci.h @@ -432,21 +432,6 @@ 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); -extern unsigned long pci_hose_phys_to_bus(struct pci_controller* hose, - phys_addr_t addr, unsigned long flags); - -#define pci_phys_to_bus(dev, addr, flags) \ - pci_hose_phys_to_bus(pci_bus_to_hose(PCI_BUS(dev)), (addr), (flags)) -#define pci_bus_to_phys(dev, addr, flags) \ - pci_hose_bus_to_phys(pci_bus_to_hose(PCI_BUS(dev)), (addr), (flags)) - -#define pci_phys_to_mem(dev, addr) pci_phys_to_bus((dev), (addr), PCI_REGION_MEM) -#define pci_mem_to_phys(dev, addr) pci_bus_to_phys((dev), (addr), PCI_REGION_MEM) -#define pci_phys_to_io(dev, addr) pci_phys_to_bus((dev), (addr), PCI_REGION_IO) -#define pci_io_to_phys(dev, addr) pci_bus_to_phys((dev), (addr), PCI_REGION_IO) - extern int pci_hose_read_config_byte(struct pci_controller *hose, pci_dev_t dev, int where, u8 *val); extern int pci_hose_read_config_word(struct pci_controller *hose, @@ -503,11 +488,6 @@ extern int pci_hose_config_device(struct pci_controller *hose, unsigned long mem, unsigned long command); -#ifdef CONFIG_MPC824X -extern void pci_mpc824x_init (struct pci_controller *hose); -#endif +#include <asm/pci.h> -#ifdef CONFIG_MPC85xx -extern void pci_mpc85xx_init (struct pci_controller *hose); -#endif #endif /* _PCI_H */ -- 1.5.5.1 ------------------------------------------------------------------------- Check out the new SourceForge.net Marketplace. It's the best place to buy or sell services for just about anything Open Source. http://sourceforge.net/services/buy/index.php _______________________________________________ U-Boot-Users mailing list U-Boot-Users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/u-boot-users