diff options
author | Robin Randhawa <robin.randhawa@arm.com> | 2011-12-20 15:54:33 +0000 |
---|---|---|
committer | Robin Randhawa <robin.randhawa@arm.com> | 2011-12-20 15:54:33 +0000 |
commit | 06193b40307e17cf6b675000abb5859838b0c841 (patch) | |
tree | bc792d2f9e8be28dd8ffc2913df4bc0cd6a2b5eb /big-little/virtualisor | |
parent | 0656dea51f48c51a57e77187de4d5f66a6ba1337 (diff) |
Updated to release v2.1.
Intended to be the basis for the VSM development.
Diffstat (limited to 'big-little/virtualisor')
-rw-r--r-- | big-little/virtualisor/cache_geom.c | 40 | ||||
-rw-r--r-- | big-little/virtualisor/cpus/a15/a15.c | 34 | ||||
-rw-r--r-- | big-little/virtualisor/cpus/a15/include/a15.h | 34 | ||||
-rw-r--r-- | big-little/virtualisor/cpus/a7/a7.c | 34 | ||||
-rw-r--r-- | big-little/virtualisor/cpus/a7/include/a7.h | 34 | ||||
-rw-r--r-- | big-little/virtualisor/include/cache_geom.h | 34 | ||||
-rw-r--r-- | big-little/virtualisor/include/mem_trap.h | 34 | ||||
-rw-r--r-- | big-little/virtualisor/include/virtualisor.h | 34 | ||||
-rw-r--r-- | big-little/virtualisor/mem_trap.c | 34 | ||||
-rw-r--r-- | big-little/virtualisor/vgic_trap_handler.c | 34 | ||||
-rw-r--r-- | big-little/virtualisor/virt_context.c | 38 | ||||
-rw-r--r-- | big-little/virtualisor/virt_handle.c | 36 | ||||
-rw-r--r-- | big-little/virtualisor/virt_setup.c | 39 |
13 files changed, 270 insertions, 189 deletions
diff --git a/big-little/virtualisor/cache_geom.c b/big-little/virtualisor/cache_geom.c index 4c0307c..4138eeb 100644 --- a/big-little/virtualisor/cache_geom.c +++ b/big-little/virtualisor/cache_geom.c @@ -1,18 +1,24 @@ /* - * $Copyright: - * ---------------------------------------------------------------- - * This confidential and proprietary software may be used only as - * authorised by a licensing agreement from ARM Limited - * (C) COPYRIGHT 2008-2011 ARM Limited - * ALL RIGHTS RESERVED - * The entire notice above must be reproduced on all authorised - * copies and copies may only be made to the extent permitted - * by a licensing agreement from ARM Limited. - * ---------------------------------------------------------------- - * File: cache_geom.c - * ---------------------------------------------------------------- - * $ - */ + * 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 "virtualisor.h" #include "virt_helpers.h" @@ -159,7 +165,7 @@ void find_cache_diff(cache_geometry *hcg_ptr, cache_geometry *tcg_ptr, cache_dif unsigned map_cache_geometries(cache_geometry *hcg_ptr, cache_geometry *tcg_ptr, cache_diff *cd_ptr) { - unsigned rc = 0, cpu_no = read_midr(), cpu_id = read_cpuid(); + unsigned rc = 0, cpu_id = read_cpuid(); unsigned hcr = 0, cluster_id = read_clusterid(), sibling_cpuid = 0; unsigned abs_cpuid = 0; @@ -208,7 +214,9 @@ unsigned map_cache_geometries(cache_geometry *hcg_ptr, cache_geometry *tcg_ptr, hcr = read_hcr(); hcr |= HCR_TSW | HCR_TID2; write_hcr(hcr); - + dsb(); + isb(); + } else { /* Find the cache geometry on the target cpu */ diff --git a/big-little/virtualisor/cpus/a15/a15.c b/big-little/virtualisor/cpus/a15/a15.c index 50f626b..92bebac 100644 --- a/big-little/virtualisor/cpus/a15/a15.c +++ b/big-little/virtualisor/cpus/a15/a15.c @@ -1,18 +1,24 @@ /* - * $Copyright: - * ---------------------------------------------------------------- - * This confidential and proprietary software may be used only as - * authorised by a licensing agreement from ARM Limited - * (C) COPYRIGHT 2008-2011 ARM Limited - * ALL RIGHTS RESERVED - * The entire notice above must be reproduced on all authorised - * copies and copies may only be made to the extent permitted - * by a licensing agreement from ARM Limited. - * ---------------------------------------------------------------- - * File: a15.c - * ---------------------------------------------------------------- - * $ - */ + * 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" diff --git a/big-little/virtualisor/cpus/a15/include/a15.h b/big-little/virtualisor/cpus/a15/include/a15.h index 7f4e8a9..554e401 100644 --- a/big-little/virtualisor/cpus/a15/include/a15.h +++ b/big-little/virtualisor/cpus/a15/include/a15.h @@ -1,18 +1,24 @@ /* - * $Copyright: - * ---------------------------------------------------------------- - * This confidential and proprietary software may be used only as - * authorised by a licensing agreement from ARM Limited - * (C) COPYRIGHT 2008-2011 ARM Limited - * ALL RIGHTS RESERVED - * The entire notice above must be reproduced on all authorised - * copies and copies may only be made to the extent permitted - * by a licensing agreement from ARM Limited. - * ---------------------------------------------------------------- - * File: a15.h - * ---------------------------------------------------------------- - * $ - */ + * 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. + */ #ifndef __A15_H__ #define __A15_H__ diff --git a/big-little/virtualisor/cpus/a7/a7.c b/big-little/virtualisor/cpus/a7/a7.c index c3742bf..9c3cef5 100644 --- a/big-little/virtualisor/cpus/a7/a7.c +++ b/big-little/virtualisor/cpus/a7/a7.c @@ -1,18 +1,24 @@ /* - * $Copyright: - * ---------------------------------------------------------------- - * This confidential and proprietary software may be used only as - * authorised by a licensing agreement from ARM Limited - * (C) COPYRIGHT 2008-2011 ARM Limited - * ALL RIGHTS RESERVED - * The entire notice above must be reproduced on all authorised - * copies and copies may only be made to the extent permitted - * by a licensing agreement from ARM Limited. - * ---------------------------------------------------------------- - * File: a7.c - * ---------------------------------------------------------------- - * $ - */ + * 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" diff --git a/big-little/virtualisor/cpus/a7/include/a7.h b/big-little/virtualisor/cpus/a7/include/a7.h index b7841b9..5e2b62f 100644 --- a/big-little/virtualisor/cpus/a7/include/a7.h +++ b/big-little/virtualisor/cpus/a7/include/a7.h @@ -1,18 +1,24 @@ /* - * $Copyright: - * ---------------------------------------------------------------- - * This confidential and proprietary software may be used only as - * authorised by a licensing agreement from ARM Limited - * (C) COPYRIGHT 2008-2011 ARM Limited - * ALL RIGHTS RESERVED - * The entire notice above must be reproduced on all authorised - * copies and copies may only be made to the extent permitted - * by a licensing agreement from ARM Limited. - * ---------------------------------------------------------------- - * File: a7.h - * ---------------------------------------------------------------- - * $ - */ + * 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. + */ #ifndef __A7_H__ #define __A7_H__ diff --git a/big-little/virtualisor/include/cache_geom.h b/big-little/virtualisor/include/cache_geom.h index 72935f5..642e0e9 100644 --- a/big-little/virtualisor/include/cache_geom.h +++ b/big-little/virtualisor/include/cache_geom.h @@ -1,18 +1,24 @@ /* - * $Copyright: - * ---------------------------------------------------------------- - * This confidential and proprietary software may be used only as - * authorised by a licensing agreement from ARM Limited - * (C) COPYRIGHT 2008-2011 ARM Limited - * ALL RIGHTS RESERVED - * The entire notice above must be reproduced on all authorised - * copies and copies may only be made to the extent permitted - * by a licensing agreement from ARM Limited. - * ---------------------------------------------------------------- - * File: kingfisher.h - * ---------------------------------------------------------------- - * $ - */ + * 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. + */ #ifndef __CACHE_GEOM_H__ #define __CACHE_GEOM_H__ diff --git a/big-little/virtualisor/include/mem_trap.h b/big-little/virtualisor/include/mem_trap.h index 72afda8..4c4a200 100644 --- a/big-little/virtualisor/include/mem_trap.h +++ b/big-little/virtualisor/include/mem_trap.h @@ -1,18 +1,24 @@ /* - * $Copyright: - * ---------------------------------------------------------------- - * This confidential and proprietary software may be used only as - * authorised by a licensing agreement from ARM Limited - * (C) COPYRIGHT 2008-2011 ARM Limited - * ALL RIGHTS RESERVED - * The entire notice above must be reproduced on all authorised - * copies and copies may only be made to the extent permitted - * by a licensing agreement from ARM Limited. - * ---------------------------------------------------------------- - * File: mem_trap.h - * ---------------------------------------------------------------- - * $ - */ + * 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. + */ #ifndef __MEM_TRAP_H__ #define __MEM_TRAP_H__ diff --git a/big-little/virtualisor/include/virtualisor.h b/big-little/virtualisor/include/virtualisor.h index fac42e7..c3bf2c1 100644 --- a/big-little/virtualisor/include/virtualisor.h +++ b/big-little/virtualisor/include/virtualisor.h @@ -1,18 +1,24 @@ /* - * $Copyright: - * ---------------------------------------------------------------- - * This confidential and proprietary software may be used only as - * authorised by a licensing agreement from ARM Limited - * (C) COPYRIGHT 2008-2011 ARM Limited - * ALL RIGHTS RESERVED - * The entire notice above must be reproduced on all authorised - * copies and copies may only be made to the extent permitted - * by a licensing agreement from ARM Limited. - * ---------------------------------------------------------------- - * File: virtualisor.h - * ---------------------------------------------------------------- - * $ - */ + * 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. + */ #ifndef __VIRTUALISOR_H__ #define __VIRTUALISOR_H__ diff --git a/big-little/virtualisor/mem_trap.c b/big-little/virtualisor/mem_trap.c index bd99b52..a3a2de8 100644 --- a/big-little/virtualisor/mem_trap.c +++ b/big-little/virtualisor/mem_trap.c @@ -1,18 +1,24 @@ /* - * $Copyright: - * ---------------------------------------------------------------- - * This confidential and proprietary software may be used only as - * authorised by a licensing agreement from ARM Limited - * (C) COPYRIGHT 2008-2011 ARM Limited - * ALL RIGHTS RESERVED - * The entire notice above must be reproduced on all authorised - * copies and copies may only be made to the extent permitted - * by a licensing agreement from ARM Limited. - * ---------------------------------------------------------------- - * File: mem_trap.c - * ---------------------------------------------------------------- - * $ - */ + * 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 "virtualisor.h" #include "misc.h" diff --git a/big-little/virtualisor/vgic_trap_handler.c b/big-little/virtualisor/vgic_trap_handler.c index 5b726a2..77ac14c 100644 --- a/big-little/virtualisor/vgic_trap_handler.c +++ b/big-little/virtualisor/vgic_trap_handler.c @@ -1,18 +1,24 @@ /* - * $Copyright: - * ---------------------------------------------------------------- - * This confidential and proprietary software may be used only as - * authorised by a licensing agreement from ARM Limited - * (C) COPYRIGHT 2008-2011 ARM Limited - * ALL RIGHTS RESERVED - * The entire notice above must be reproduced on all authorised - * copies and copies may only be made to the extent permitted - * by a licensing agreement from ARM Limited. - * ---------------------------------------------------------------- - * File: vgic_trap_handler.c - * ---------------------------------------------------------------- - * $ - */ + * 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 "virtualisor.h" #include "gic_registers.h" diff --git a/big-little/virtualisor/virt_context.c b/big-little/virtualisor/virt_context.c index 941f3dc..80a79b2 100644 --- a/big-little/virtualisor/virt_context.c +++ b/big-little/virtualisor/virt_context.c @@ -1,18 +1,24 @@ /* - * $Copyright: - * ---------------------------------------------------------------- - * This confidential and proprietary software may be used only as - * authorised by a licensing agreement from ARM Limited - * (C) COPYRIGHT 2008-2011 ARM Limited - * ALL RIGHTS RESERVED - * The entire notice above must be reproduced on all authorised - * copies and copies may only be made to the extent permitted - * by a licensing agreement from ARM Limited. - * ---------------------------------------------------------------- - * File: virt_context.c - * ---------------------------------------------------------------- - * $ - */ + * 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 "virtualisor.h" #include "misc.h" @@ -32,7 +38,7 @@ extern cache_stats cm_op_stats[NUM_CPUS][MAX_CACHE_LEVELS]; */ void SaveVirtualisor(unsigned first_cpu) { - unsigned len = 0, ctr = 0, cpu_id = read_cpuid(), cpu_no = read_midr(); + unsigned len = 0, ctr = 0, cpu_id = read_cpuid(), cpu_no = PART_NO(read_midr()); unsigned cluster_id = read_clusterid(), index = 0, vd_len = 0, rc = 0; mem_trap_data *s2_td = &s2_trap_section$$Base; unsigned long long *cd_ptr = 0x0; @@ -135,7 +141,7 @@ void SaveVirtualisor(unsigned first_cpu) */ void RestoreVirtualisor(unsigned first_cpu) { - unsigned len = 0, ctr = 0, cpu_id = read_cpuid(), cpu_no = read_midr(); + unsigned len = 0, ctr = 0, cpu_id = read_cpuid(), cpu_no = PART_NO(read_midr()); unsigned cluster_id = read_clusterid(), index = 0, vd_len = 0, rc = 0; mem_trap_data *s2_td = &s2_trap_section$$Base; unsigned long long *cd_ptr = 0x0; diff --git a/big-little/virtualisor/virt_handle.c b/big-little/virtualisor/virt_handle.c index 6b4c1b5..2cfb2cc 100644 --- a/big-little/virtualisor/virt_handle.c +++ b/big-little/virtualisor/virt_handle.c @@ -1,18 +1,24 @@ /* - * $Copyright: - * ---------------------------------------------------------------- - * This confidential and proprietary software may be used only as - * authorised by a licensing agreement from ARM Limited - * (C) COPYRIGHT 2008-2011 ARM Limited - * ALL RIGHTS RESERVED - * The entire notice above must be reproduced on all authorised - * copies and copies may only be made to the extent permitted - * by a licensing agreement from ARM Limited. - * ---------------------------------------------------------------- - * File: virt_handle.c - * ---------------------------------------------------------------- - * $ - */ + * 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 "virtualisor.h" #include "virt_helpers.h" @@ -515,7 +521,7 @@ void trap_dabort_handle(unsigned hsr, gp_regs * regs) void HandleVirtualisor(gp_regs * regs) { - unsigned cpu_id = read_cpuid(), cpu_no = read_midr(), rc = 0; + unsigned cpu_id = read_cpuid(), cpu_no = PART_NO(read_midr()), rc = 0; unsigned hsr = read_hsr(), elr = 0, vd_len = 0, index = 0; virt_descriptor *vd_array = &virt_desc_section$$Base; unsigned (*handler) (gp_regs *, unsigned, unsigned) = 0x0, sibling; diff --git a/big-little/virtualisor/virt_setup.c b/big-little/virtualisor/virt_setup.c index cc90936..c2dd75e 100644 --- a/big-little/virtualisor/virt_setup.c +++ b/big-little/virtualisor/virt_setup.c @@ -1,18 +1,24 @@ /* - * $Copyright: - * ---------------------------------------------------------------- - * This confidential and proprietary software may be used only as - * authorised by a licensing agreement from ARM Limited - * (C) COPYRIGHT 2008-2011 ARM Limited - * ALL RIGHTS RESERVED - * The entire notice above must be reproduced on all authorised - * copies and copies may only be made to the extent permitted - * by a licensing agreement from ARM Limited. - * ---------------------------------------------------------------- - * File: virt_setup.c - * ---------------------------------------------------------------- - * $ - */ + * 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 "virt_helpers.h" #include "virtualisor.h" @@ -49,13 +55,14 @@ static unsigned virt_init[NUM_CPUS]; */ unsigned find_sibling_cpu() { - unsigned cpu_no = read_midr(); + unsigned cpu_no = PART_NO(read_midr()); switch (DC_SYSTYPE) { case A15_A15: if(cpu_no == A15) return cpu_no; break; + case A7_A15: case A15_A7: if(cpu_no == A15) return A7; @@ -73,7 +80,7 @@ unsigned find_sibling_cpu() void SetupVirtualisor(unsigned first_cpu) { - unsigned rc = 0, cpu_id = read_cpuid(), cpu_no = read_midr(); + unsigned rc = 0, cpu_id = read_cpuid(), cpu_no = PART_NO(read_midr()); unsigned vd_len = 0, index = 0, cluster_id = read_clusterid(); virt_descriptor *vd_array = &virt_desc_section$$Base; unsigned (*handler) (unsigned, unsigned) = 0x0, sibling; |