platsmp.c (8c57a5e7b2820f349c95b8c8393fec1e0f4070d2) | platsmp.c (64fc2a947a9873700929ec0ef02b4654a04e0476) |
---|---|
1/* 2 * Copyright 2010-2011 Calxeda, Inc. 3 * Copyright 2012 Pavel Machek <pavel@denx.de> 4 * Based on platsmp.c, Copyright (C) 2002 ARM Ltd. 5 * Copyright (C) 2012 Altera Corporation 6 * 7 * This program is free software; you can redistribute it and/or modify it 8 * under the terms and conditions of the GNU General Public License, --- 26 unchanged lines hidden (view full) --- 35 36 if (socfpga_cpu1start_addr) { 37 /* This will put CPU #1 into reset. */ 38 writel(RSTMGR_MPUMODRST_CPU1, 39 rst_manager_base_addr + SOCFPGA_RSTMGR_MODMPURST); 40 41 memcpy(phys_to_virt(0), &secondary_trampoline, trampoline_size); 42 | 1/* 2 * Copyright 2010-2011 Calxeda, Inc. 3 * Copyright 2012 Pavel Machek <pavel@denx.de> 4 * Based on platsmp.c, Copyright (C) 2002 ARM Ltd. 5 * Copyright (C) 2012 Altera Corporation 6 * 7 * This program is free software; you can redistribute it and/or modify it 8 * under the terms and conditions of the GNU General Public License, --- 26 unchanged lines hidden (view full) --- 35 36 if (socfpga_cpu1start_addr) { 37 /* This will put CPU #1 into reset. */ 38 writel(RSTMGR_MPUMODRST_CPU1, 39 rst_manager_base_addr + SOCFPGA_RSTMGR_MODMPURST); 40 41 memcpy(phys_to_virt(0), &secondary_trampoline, trampoline_size); 42 |
43 writel(virt_to_phys(secondary_startup), | 43 writel(__pa_symbol(secondary_startup), |
44 sys_manager_base_addr + (socfpga_cpu1start_addr & 0x000000ff)); 45 46 flush_cache_all(); 47 smp_wmb(); 48 outer_clean_range(0, trampoline_size); 49 50 /* This will release CPU #1 out of reset. */ 51 writel(0, rst_manager_base_addr + SOCFPGA_RSTMGR_MODMPURST); --- 6 unchanged lines hidden (view full) --- 58{ 59 int trampoline_size = &secondary_trampoline_end - &secondary_trampoline; 60 61 if (socfpga_cpu1start_addr) { 62 writel(RSTMGR_MPUMODRST_CPU1, rst_manager_base_addr + 63 SOCFPGA_A10_RSTMGR_MODMPURST); 64 memcpy(phys_to_virt(0), &secondary_trampoline, trampoline_size); 65 | 44 sys_manager_base_addr + (socfpga_cpu1start_addr & 0x000000ff)); 45 46 flush_cache_all(); 47 smp_wmb(); 48 outer_clean_range(0, trampoline_size); 49 50 /* This will release CPU #1 out of reset. */ 51 writel(0, rst_manager_base_addr + SOCFPGA_RSTMGR_MODMPURST); --- 6 unchanged lines hidden (view full) --- 58{ 59 int trampoline_size = &secondary_trampoline_end - &secondary_trampoline; 60 61 if (socfpga_cpu1start_addr) { 62 writel(RSTMGR_MPUMODRST_CPU1, rst_manager_base_addr + 63 SOCFPGA_A10_RSTMGR_MODMPURST); 64 memcpy(phys_to_virt(0), &secondary_trampoline, trampoline_size); 65 |
66 writel(virt_to_phys(secondary_startup), | 66 writel(__pa_symbol(secondary_startup), |
67 sys_manager_base_addr + (socfpga_cpu1start_addr & 0x00000fff)); 68 69 flush_cache_all(); 70 smp_wmb(); 71 outer_clean_range(0, trampoline_size); 72 73 /* This will release CPU #1 out of reset. */ 74 writel(0, rst_manager_base_addr + SOCFPGA_A10_RSTMGR_MODMPURST); --- 67 unchanged lines hidden --- | 67 sys_manager_base_addr + (socfpga_cpu1start_addr & 0x00000fff)); 68 69 flush_cache_all(); 70 smp_wmb(); 71 outer_clean_range(0, trampoline_size); 72 73 /* This will release CPU #1 out of reset. */ 74 writel(0, rst_manager_base_addr + SOCFPGA_A10_RSTMGR_MODMPURST); --- 67 unchanged lines hidden --- |