blob: cf2d38997d8e07ced1ad411f491b7c230deaab90 [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 Reinauerac8209a2012-04-27 00:39:17 +02006#if !defined(__ROMCC__)
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 +000012#if CONFIG_HAVE_SMI_HANDLER
13void smm_init(void);
Stefan Reinauerde3206a2010-02-22 06:09:43 +000014void smm_lock(void);
15void smm_setup_structures(void *gnvs, void *tcg, void *smi1);
Myles Watson7943fe62009-10-30 02:08:07 +000016#endif
Eric Biederman8ca8d762003-04-22 19:02:15 +000017
Eric Biederman65186ce2004-10-14 20:15:40 +000018#define __cpu_driver __attribute__ ((used,__section__(".rodata.cpu_driver")))
Eric Biedermanc84c1902004-10-14 20:13:01 +000019/** start of compile time generated pci driver array */
Eric Biederman65186ce2004-10-14 20:15:40 +000020extern struct cpu_driver cpu_drivers[];
Eric Biedermanc84c1902004-10-14 20:13:01 +000021/** end of compile time generated pci driver array */
Eric Biederman65186ce2004-10-14 20:15:40 +000022extern struct cpu_driver ecpu_drivers[];
Stefan Reinauerac8209a2012-04-27 00:39:17 +020023#endif /* !__ROMCC__ */
Eric Biederman8ca8d762003-04-22 19:02:15 +000024
25#endif /* CPU_CPU_H */