diff options
Diffstat (limited to 'big-little/virtualisor/cpus/a7/a7.c')
-rw-r--r-- | big-little/virtualisor/cpus/a7/a7.c | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/big-little/virtualisor/cpus/a7/a7.c b/big-little/virtualisor/cpus/a7/a7.c new file mode 100644 index 0000000..9c3cef5 --- /dev/null +++ b/big-little/virtualisor/cpus/a7/a7.c @@ -0,0 +1,73 @@ +/* + * Copyright (c) 2011, ARM Limited. All rights reserved. + * + * Redistribution and use in source and binary forms, with + * or without modification, are permitted provided that the + * following conditions are met: + * + * Redistributions of source code must retain the above + * copyright notice, this list of conditions and the + * following disclaimer. + * + * Redistributions in binary form must reproduce the + * above copyright notice, this list of conditions and + * the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * Neither the name of ARM nor the names of its + * contributors may be used to endorse or promote products + * derived from this software without specific prior written + * permission. + */ + +#include "bl.h" +#include "virtualisor.h" +#include "a7.h" + +/* Forward declaration */ +static virt_descriptor a7_virt_desc; + +/* + * Dummy functions for setting up any cpu + * specific traps. + */ +unsigned a7_trap_handle(gp_regs * regs, unsigned hsr, unsigned sibling_cpu) +{ + return 0; +} + +unsigned a7_trap_save(unsigned first_cpu, unsigned sibling_cpu) +{ + return 0; +} + +unsigned a7_trap_restore(unsigned first_cpu, unsigned sibling_cpu) +{ + return 0; +} + +unsigned a7_trap_setup(unsigned first_cpu, unsigned sibling_cpu) +{ + if (switcher) { + + } else { + /* Always on */ + } + + /* + * Indicate that cpu specific virtualisor setup + * has been done. Restore context instead on next + * invocation + */ + a7_virt_desc.init[read_cpuid()] = 1; + return 0; +} + +static virt_descriptor a7_virt_desc __attribute__ ((section("virt_desc_section"))) = { + A7, + {0}, + a7_trap_setup, + a7_trap_handle, + a7_trap_save, + a7_trap_restore, +}; |