Commit | Line | Data |
---|---|---|
23ac4ae8 AH |
1 | #ifndef _ASM_X86_AMD_NB_H |
2 | #define _ASM_X86_AMD_NB_H | |
a32073bf AK |
3 | |
4 | #include <linux/pci.h> | |
5 | ||
24d9b70b JB |
6 | struct amd_nb_bus_dev_range { |
7 | u8 bus; | |
8 | u8 dev_base; | |
9 | u8 dev_limit; | |
10 | }; | |
11 | ||
691269f0 | 12 | extern const struct pci_device_id amd_nb_misc_ids[]; |
24d9b70b | 13 | extern const struct amd_nb_bus_dev_range amd_nb_bus_dev_ranges[]; |
0420101c | 14 | struct bootnode; |
a32073bf | 15 | |
84fd1d35 | 16 | extern bool early_is_amd_nb(u32 value); |
9653a5c7 | 17 | extern int amd_cache_northbridges(void); |
eec1d4fa | 18 | extern void amd_flush_garts(void); |
940fed2e | 19 | extern int amd_numa_init(void); |
cabb5bd7 HR |
20 | extern int amd_get_subcaches(int); |
21 | extern int amd_set_subcaches(int, int); | |
a32073bf | 22 | |
9653a5c7 HR |
23 | struct amd_northbridge { |
24 | struct pci_dev *misc; | |
41b2610c | 25 | struct pci_dev *link; |
9653a5c7 HR |
26 | }; |
27 | ||
eec1d4fa | 28 | struct amd_northbridge_info { |
900f9ac9 | 29 | u16 num; |
9653a5c7 HR |
30 | u64 flags; |
31 | struct amd_northbridge *nb; | |
900f9ac9 | 32 | }; |
eec1d4fa | 33 | extern struct amd_northbridge_info amd_northbridges; |
900f9ac9 | 34 | |
84fd1d35 BP |
35 | #define AMD_NB_GART BIT(0) |
36 | #define AMD_NB_L3_INDEX_DISABLE BIT(1) | |
37 | #define AMD_NB_L3_PARTITIONING BIT(2) | |
9653a5c7 | 38 | |
23ac4ae8 | 39 | #ifdef CONFIG_AMD_NB |
ade029e2 | 40 | |
84fd1d35 | 41 | static inline u16 amd_nb_num(void) |
b206525a | 42 | { |
9653a5c7 | 43 | return amd_northbridges.num; |
b206525a | 44 | } |
ade029e2 | 45 | |
84fd1d35 | 46 | static inline bool amd_nb_has_feature(unsigned feature) |
9653a5c7 HR |
47 | { |
48 | return ((amd_northbridges.flags & feature) == feature); | |
49 | } | |
ade029e2 | 50 | |
9653a5c7 | 51 | static inline struct amd_northbridge *node_to_amd_nb(int node) |
b206525a | 52 | { |
9653a5c7 | 53 | return (node < amd_northbridges.num) ? &amd_northbridges.nb[node] : NULL; |
b206525a | 54 | } |
9653a5c7 HR |
55 | |
56 | #else | |
57 | ||
58 | #define amd_nb_num(x) 0 | |
59 | #define amd_nb_has_feature(x) false | |
60 | #define node_to_amd_nb(x) NULL | |
61 | ||
afd9fcee AH |
62 | #endif |
63 | ||
64 | ||
23ac4ae8 | 65 | #endif /* _ASM_X86_AMD_NB_H */ |