-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
powerpc: Pull out MPC106 (grackle) initialization code into its own file
This is so that the 32-bit CHRP code can use it. The MPC106 initialization code is now in arch/powerpc/sysdev/grackle.c and is controlled by CONFIG_PPC_MPC106. Signed-off-by: Paul Mackerras <paulus@samba.org>
- Loading branch information
Paul Mackerras
committed
Oct 26, 2005
1 parent
03501da
commit 830825d
Showing
5 changed files
with
78 additions
and
44 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,4 @@ | ||
obj-$(CONFIG_MPIC) += mpic.o | ||
obj-$(CONFIG_PPC_INDIRECT_PCI) += indirect_pci.o | ||
obj-$(CONFIG_PPC_I8259) += i8259.o | ||
obj-$(CONFIG_PPC_MPC106) += grackle.o |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,64 @@ | ||
/* | ||
* Functions for setting up and using a MPC106 northbridge | ||
* Extracted from arch/powerpc/platforms/powermac/pci.c. | ||
* | ||
* Copyright (C) 2003 Benjamin Herrenschmuidt (benh@kernel.crashing.org) | ||
* Copyright (C) 1997 Paul Mackerras (paulus@samba.org) | ||
* | ||
* 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. | ||
*/ | ||
#include <linux/kernel.h> | ||
#include <linux/pci.h> | ||
#include <linux/init.h> | ||
|
||
#include <asm/io.h> | ||
#include <asm/prom.h> | ||
#include <asm/pci-bridge.h> | ||
#include <asm/grackle.h> | ||
|
||
#define GRACKLE_CFA(b, d, o) (0x80 | ((b) << 8) | ((d) << 16) \ | ||
| (((o) & ~3) << 24)) | ||
|
||
#define GRACKLE_PICR1_STG 0x00000040 | ||
#define GRACKLE_PICR1_LOOPSNOOP 0x00000010 | ||
|
||
/* N.B. this is called before bridges is initialized, so we can't | ||
use grackle_pcibios_{read,write}_config_dword. */ | ||
static inline void grackle_set_stg(struct pci_controller* bp, int enable) | ||
{ | ||
unsigned int val; | ||
|
||
out_be32(bp->cfg_addr, GRACKLE_CFA(0, 0, 0xa8)); | ||
val = in_le32(bp->cfg_data); | ||
val = enable? (val | GRACKLE_PICR1_STG) : | ||
(val & ~GRACKLE_PICR1_STG); | ||
out_be32(bp->cfg_addr, GRACKLE_CFA(0, 0, 0xa8)); | ||
out_le32(bp->cfg_data, val); | ||
(void)in_le32(bp->cfg_data); | ||
} | ||
|
||
static inline void grackle_set_loop_snoop(struct pci_controller *bp, int enable) | ||
{ | ||
unsigned int val; | ||
|
||
out_be32(bp->cfg_addr, GRACKLE_CFA(0, 0, 0xa8)); | ||
val = in_le32(bp->cfg_data); | ||
val = enable? (val | GRACKLE_PICR1_LOOPSNOOP) : | ||
(val & ~GRACKLE_PICR1_LOOPSNOOP); | ||
out_be32(bp->cfg_addr, GRACKLE_CFA(0, 0, 0xa8)); | ||
out_le32(bp->cfg_data, val); | ||
(void)in_le32(bp->cfg_data); | ||
} | ||
|
||
void __init setup_grackle(struct pci_controller *hose) | ||
{ | ||
setup_indirect_pci(hose, 0xfec00000, 0xfee00000); | ||
if (machine_is_compatible("AAPL,PowerBook1998")) | ||
grackle_set_loop_snoop(hose, 1); | ||
#if 0 /* Disabled for now, HW problems ??? */ | ||
grackle_set_stg(hose, 1); | ||
#endif | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
/* | ||
* Functions for setting up and using a MPC106 northbridge | ||
*/ | ||
|
||
#include <asm/pci-bridge.h> | ||
|
||
extern void setup_grackle(struct pci_controller *hose); |