galaxy_pci.c
上传用户:lgb322
上传日期:2013-02-24
资源大小:30529k
文件大小:2k
源码类别:

嵌入式Linux

开发平台:

Unix_Linux

  1. /*
  2.  * BK Id: SCCS/s.galaxy_pci.c 1.7 05/17/01 18:14:21 cort
  3.  */
  4. /*
  5.  *
  6.  *    Copyright (c) 2000 Grant Erickson <grant@borg.umn.edu>
  7.  *    All rights reserved.
  8.  *
  9.  *    Module name: galaxy_pci.c
  10.  *
  11.  *    Description:
  12.  *      PCI interface code for the IBM PowerPC 405GP on-chip PCI bus
  13.  *      interface.
  14.  *
  15.  *      Why is this file called "galaxy_pci"? Because on the original
  16.  *      IBM "Walnut" evaluation board schematic I have, the 405GP is
  17.  *      is labeled "GALAXY".
  18.  *
  19.  */
  20. #include <linux/kernel.h>
  21. #include <linux/pci.h>
  22. #include <linux/string.h>
  23. #include <linux/init.h>
  24. #include <asm/processor.h>
  25. #include <asm/system.h>
  26. #include <asm/io.h>
  27. #include <asm/machdep.h>
  28. #include "pci.h"
  29. /* Preprocessor Defines */
  30. #define PCICFGADDR (volatile unsigned int *)(0xEEC00000)
  31. #define PCICFGDATA (volatile unsigned int *)(0xEEC00004)
  32. /* Function Prototypes */
  33. void __init
  34. galaxy_pcibios_fixup(void)
  35. {
  36. }
  37. static int
  38. galaxy_pcibios_read_config_byte(struct pci_controller* hose,
  39.   u8 bus, u8 dev, u8 offset, u8 *val)
  40. {
  41. return (PCIBIOS_SUCCESSFUL);
  42. }
  43. static int
  44. galaxy_pcibios_read_config_word(struct pci_controller* hose,
  45.   u8 bus, u8 dev, u8 offset, u16 *val)
  46. {
  47. return (PCIBIOS_SUCCESSFUL);
  48. }
  49. static int
  50. galaxy_pcibios_read_config_dword(struct pci_controller* hose,
  51.   u8 bus, u8 dev, u8 offset, u32 *val)
  52. {
  53. return (PCIBIOS_SUCCESSFUL);
  54. }
  55. static int
  56. galaxy_pcibios_write_config_byte(struct pci_controller* hose,
  57.   u8 bus, u8 dev, u8 offset, u8 val)
  58. {
  59. return (PCIBIOS_SUCCESSFUL);
  60. }
  61. static int
  62. galaxy_pcibios_write_config_word(struct pci_controller* hose,
  63.   u8 bus, u8 dev, u8 offset, u16 val)
  64. {
  65. return (PCIBIOS_SUCCESSFUL);
  66. }
  67. static int
  68. galaxy_pcibios_write_config_dword(struct pci_controller* hose,
  69.   u8 bus, u8 dev, u8 offset, u32 val)
  70. {
  71. return (PCIBIOS_SUCCESSFUL);
  72. }
  73. static struct pci_controller_ops galaxy_pci_ops =
  74. {
  75. galaxy_pcibios_read_config_byte,
  76. galaxy_pcibios_read_config_word,
  77. galaxy_pcibios_read_config_dword,
  78. galaxy_pcibios_write_config_byte,
  79. galaxy_pcibios_write_config_word,
  80. galaxy_pcibios_write_config_dword
  81. };
  82. void __init
  83. galaxy_find_bridges(void)
  84. {
  85. struct pci_controller* hose;
  86. set_config_access_method(galaxy);
  87. ppc_md.pcibios_fixup = galaxy_pcibios_fixup;
  88. hose = pcibios_alloc_controller();
  89. if (!hose)
  90. return;
  91. hose->ops = &galaxy_pci_ops;
  92. /* Todo ...
  93. hose->cfg_data = ioremap(PCICFGDATA, ...);
  94. hose->cfg_addr = ioremap(PCICFGADDR, ...);
  95. */
  96. }