blob: 8db8085039cbedeb6994cff1a5d1077b06d512e0 [file] [log] [blame]
Eric Biederman8ca8d762003-04-22 19:02:15 +00001#ifndef CPU_CPU_H
2#define CPU_CPU_H
3
Stefan Reinauer3e9b52d2004-11-12 21:00:29 +00004#include <arch/cpu.h>
Eric Biederman8ca8d762003-04-22 19:02:15 +00005
Stefan Reinauer24d1d4b2013-03-21 11:51:41 -07006#if !defined(__PRE_RAM__) && !defined(__SMM__)
Ronald G. Minnich8b930592012-06-05 14:41:27 -07007void cpu_initialize(unsigned int cpu_index);
Stefan Reinauerac8209a2012-04-27 00:39:17 +02008struct bus;
Eric Biederman7003ba42004-10-16 06:20:29 +00009void initialize_cpus(struct bus *cpu_bus);
Stefan Reinauer399486e2012-12-06 13:54:29 -080010void asmlinkage secondary_cpu_init(unsigned int cpu_index);
Myles Watson7943fe62009-10-30 02:08:07 +000011
Myles Watson7943fe62009-10-30 02:08:07 +000012void smm_init(void);
Stefan Reinauerde3206a2010-02-22 06:09:43 +000013void smm_lock(void);
14void smm_setup_structures(void *gnvs, void *tcg, void *smi1);
Eric Biederman8ca8d762003-04-22 19:02:15 +000015
Eric Biederman65186ce2004-10-14 20:15:40 +000016#define __cpu_driver __attribute__ ((used,__section__(".rodata.cpu_driver")))
Vladimir Serbinenko98dda062014-01-02 10:08:19 +010017#ifndef __SIMPLE_DEVICE__
Eric Biedermanc84c1902004-10-14 20:13:01 +000018/** start of compile time generated pci driver array */
Aaron Durbin03758152015-09-03 17:23:08 -050019extern struct cpu_driver _cpu_drivers[];
Eric Biedermanc84c1902004-10-14 20:13:01 +000020/** end of compile time generated pci driver array */
Aaron Durbin03758152015-09-03 17:23:08 -050021extern struct cpu_driver _ecpu_drivers[];
Vladimir Serbinenko98dda062014-01-02 10:08:19 +010022#endif
Stefan Reinauer24d1d4b2013-03-21 11:51:41 -070023#endif /* !__PRE_RAM__ && !__SMM__ */
Eric Biederman8ca8d762003-04-22 19:02:15 +000024
25#endif /* CPU_CPU_H */