Since some people disapprove of white space cleanups mixed in regular commits
[coreboot.git] / src / arch / i386 / lib / cbfs_and_run.c
index a8e11ce10802780ad47be2a1dc547cf2b2516372..1b86f56371306883490bc4fc8fe0c52abf93465d 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * This file is part of the coreboot project.
- * 
+ *
  * Copyright (C) 2008-2009 coresystems GmbH
  *
  * This program is free software; you can redistribute it and/or
@@ -19,6 +19,7 @@
 
 #include <console/console.h>
 #include <cbfs.h>
+#include <arch/stages.h>
 
 void cbfs_and_run_core(const char *filename, unsigned ebp)
 {
@@ -40,3 +41,19 @@ void cbfs_and_run_core(const char *filename, unsigned ebp)
                :: "a"(ebp), "D"(dst)
        );
 }
+
+void __attribute__((regparm(0))) copy_and_run(unsigned cpu_reset)
+{
+       // FIXME fix input parameters instead normalizing them here.
+       if (cpu_reset == 1) cpu_reset = -1;
+       else cpu_reset = 0;
+
+       cbfs_and_run_core(CONFIG_CBFS_PREFIX "/coreboot_ram", cpu_reset);
+}
+
+#if CONFIG_AP_CODE_IN_CAR == 1
+void __attribute__((regparm(0))) copy_and_run_ap_code_in_car(unsigned ret_addr)
+{
+       cbfs_and_run_core(CONFIG_CBFS_PREFIX "/coreboot_ap", ret_addr);
+}
+#endif