Finally, after two years, put in real code for stop_ap(). Code has to be
moved to stage1 ROM code. Make the struct for nodeid/coreid generic to x86. Create the functions for existing architectures are a model for future architectures (VIA coming soon we hope). Move includes so that things build correctly now. This is actually a small patch that impacted a number of files due to include order changes. This is build and boot tested on simnow and build tested on geode. Signed-off-by: Ronald G. Minnich <rminnich@gmail.com> Acked-by: Stefan Reinauer <stepan@coresystems.de> git-svn-id: svn://coreboot.org/repository/coreboot-v3@872 f3766cd6-281f-0410-b1cd-43a5c92072e9
This commit is contained in:
parent
216231c0de
commit
be03d189db
12 changed files with 113 additions and 40 deletions
|
|
@ -639,16 +639,6 @@ struct sys_info {
|
|||
/* dual core support */
|
||||
unsigned int read_nb_cfg_54(void);
|
||||
|
||||
struct node_core_id {
|
||||
unsigned nodeid;
|
||||
unsigned coreid;
|
||||
};
|
||||
|
||||
/* use this to get the nodeid and core id of the current cpu
|
||||
* (but not other CPUs)
|
||||
*/
|
||||
struct node_core_id get_node_core_id(void);
|
||||
|
||||
struct device;
|
||||
unsigned get_apicid_base(unsigned ioapic_num);
|
||||
void amd_sibling_init(struct device *cpu);
|
||||
|
|
|
|||
|
|
@ -82,12 +82,28 @@ struct cpuinfo_x86 {
|
|||
u8 x86_mask;
|
||||
};
|
||||
|
||||
/* core and node id. This was special to k8 in v2 but is in fact quite generic */
|
||||
struct node_core_id {
|
||||
unsigned nodeid;
|
||||
unsigned coreid;
|
||||
};
|
||||
|
||||
/* use this to get the nodeid and core id of the current cpu
|
||||
* (but not other CPUs). We're going to make this supported on all CPUs.
|
||||
* multicore is used everywhere now. For single socket/single core CPUs they can
|
||||
* just return a struct with 0s. This will simplify the stage1 code.
|
||||
*/
|
||||
struct node_core_id get_node_core_id(void);
|
||||
|
||||
/* prototypes for functions that may or may not be compiled in depending on cpu type */
|
||||
void set_var_mtrr_x(
|
||||
unsigned long reg, u32 base_lo, u32 base_hi, u32 size_lo, u32 size_hi, unsigned long type);
|
||||
void set_var_mtrr(
|
||||
unsigned long reg, unsigned long base, unsigned long size, unsigned long type);
|
||||
|
||||
/* generic SMP functions required to be supported (even by non-SMP)
|
||||
*/
|
||||
void stop_ap(void);
|
||||
|
||||
/**
|
||||
* Generic CPUID function.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue