blob: c8517f81b21e73f9f2c428a26f2fb8995f73011f [file] [log] [blame]
Andreas Herrmann23ac4ae2010-09-17 18:03:43 +02001#ifndef _ASM_X86_AMD_NB_H
2#define _ASM_X86_AMD_NB_H
Andi Kleena32073b2006-06-26 13:56:40 +02003
4#include <linux/pci.h>
5
6extern struct pci_device_id k8_nb_ids[];
Randy Dunlap04201012009-10-28 16:09:55 -07007struct bootnode;
Andi Kleena32073b2006-06-26 13:56:40 +02008
9extern int early_is_k8_nb(u32 value);
Andi Kleena32073b2006-06-26 13:56:40 +020010extern int cache_k8_northbridges(void);
11extern void k8_flush_garts(void);
David Rientjes8ee2deb2009-09-25 15:20:00 -070012extern int k8_get_nodes(struct bootnode *nodes);
13extern int k8_numa_init(unsigned long start_pfn, unsigned long end_pfn);
14extern int k8_scan_nodes(void);
Andi Kleena32073b2006-06-26 13:56:40 +020015
Andreas Herrmann900f9ac2010-09-17 18:02:54 +020016struct k8_northbridge_info {
17 u16 num;
18 u8 gart_supported;
19 struct pci_dev **nb_misc;
20};
21extern struct k8_northbridge_info k8_northbridges;
22
Andreas Herrmann23ac4ae2010-09-17 18:03:43 +020023#ifdef CONFIG_AMD_NB
Borislav Petkovade029e2010-04-24 09:56:53 +020024
Jaswinder Singh Rajputb2065252009-04-14 23:04:37 +053025static inline struct pci_dev *node_to_k8_nb_misc(int node)
26{
Andreas Herrmann900f9ac2010-09-17 18:02:54 +020027 return (node < k8_northbridges.num) ? k8_northbridges.nb_misc[node] : NULL;
Jaswinder Singh Rajputb2065252009-04-14 23:04:37 +053028}
Borislav Petkovade029e2010-04-24 09:56:53 +020029
Andreas Herrmannafd9fce2009-04-09 15:16:17 +020030#else
Borislav Petkovade029e2010-04-24 09:56:53 +020031
Jaswinder Singh Rajputb2065252009-04-14 23:04:37 +053032static inline struct pci_dev *node_to_k8_nb_misc(int node)
33{
34 return NULL;
35}
Andreas Herrmannafd9fce2009-04-09 15:16:17 +020036#endif
37
38
Andreas Herrmann23ac4ae2010-09-17 18:03:43 +020039#endif /* _ASM_X86_AMD_NB_H */