diff options
| author | Ajay Nandakumar <anandakumarm@nvidia.com> | 2014-01-29 15:15:22 +0530 |
|---|---|---|
| committer | Sachin Nikam <snikam@nvidia.com> | 2014-02-09 22:53:40 -0800 |
| commit | f90bd3fe3ecee42c1f2db4b5325e31fe33ff39f3 (patch) | |
| tree | 997140c5630cd127c601ad6e3c81368cdba5552c | |
| parent | 0802375a7853070ef45339703ad4bd9f5dfe091d (diff) | |
ARM: tegra: reserve memory for ramoops by default
Reserving memory of 1MB for ramoops by default in tegra_reserve when
PSTORE configs are enabled. This way we can enable ramoops on all
platforms by just enabling the configs.
Bug 1258617
Change-Id: I2074c553cc9c32bca133bc8eb36eb03dc12fbbe1
Signed-off-by: Sumit Singh <sumsingh@nvidia.com>
Reviewed-on: http://git-master/r/361425
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Sachin Nikam <snikam@nvidia.com>
Tested-by: Sachin Nikam <snikam@nvidia.com>
| -rw-r--r-- | arch/arm/mach-tegra/board-ardbeg.c | 6 | ||||
| -rw-r--r-- | arch/arm/mach-tegra/board-dalmore.c | 6 | ||||
| -rw-r--r-- | arch/arm/mach-tegra/board-loki.c | 6 | ||||
| -rw-r--r-- | arch/arm/mach-tegra/board-macallan.c | 6 | ||||
| -rw-r--r-- | arch/arm/mach-tegra/board-pismo.c | 6 | ||||
| -rw-r--r-- | arch/arm/mach-tegra/board-pluto.c | 5 | ||||
| -rw-r--r-- | arch/arm/mach-tegra/board-roth.c | 6 | ||||
| -rw-r--r-- | arch/arm/mach-tegra/board-vcm30_t124.c | 6 | ||||
| -rw-r--r-- | arch/arm/mach-tegra/board.h | 8 | ||||
| -rw-r--r-- | arch/arm/mach-tegra/common.c | 65 |
10 files changed, 35 insertions, 85 deletions
diff --git a/arch/arm/mach-tegra/board-ardbeg.c b/arch/arm/mach-tegra/board-ardbeg.c index 77f44b16a9f8..52a90fc2da9c 100644 --- a/arch/arm/mach-tegra/board-ardbeg.c +++ b/arch/arm/mach-tegra/board-ardbeg.c @@ -1292,11 +1292,6 @@ static void __init tegra_ardbeg_late_init(void) ardbeg_sysedp_batmon_init(); } -static void __init ardbeg_ramconsole_reserve(unsigned long size) -{ - tegra_reserve_ramoops_memory(SZ_1M); -} - static void __init tegra_ardbeg_init_early(void) { ardbeg_rail_alignment_init(); @@ -1327,7 +1322,6 @@ static void __init tegra_ardbeg_reserve(void) #else tegra_reserve(SZ_1G, SZ_16M + SZ_2M, SZ_4M); #endif - ardbeg_ramconsole_reserve(SZ_1M); } static const char * const ardbeg_dt_board_compat[] = { diff --git a/arch/arm/mach-tegra/board-dalmore.c b/arch/arm/mach-tegra/board-dalmore.c index 770ef3f28036..5ff9ed9988ca 100644 --- a/arch/arm/mach-tegra/board-dalmore.c +++ b/arch/arm/mach-tegra/board-dalmore.c @@ -704,11 +704,6 @@ static void __init tegra_dalmore_late_init(void) tegra_register_fuse(); } -static void __init dalmore_ramconsole_reserve(unsigned long size) -{ - tegra_reserve_ramoops_memory(SZ_1M); -} - static void __init tegra_dalmore_dt_init(void) { tegra_get_board_info(&board_info); @@ -731,7 +726,6 @@ static void __init tegra_dalmore_reserve(void) #else tegra_reserve(SZ_512M, SZ_16M + SZ_2M, SZ_4M); #endif - dalmore_ramconsole_reserve(SZ_1M); } static const char * const dalmore_dt_board_compat[] = { diff --git a/arch/arm/mach-tegra/board-loki.c b/arch/arm/mach-tegra/board-loki.c index e742d2ad63f9..b99a3b964908 100644 --- a/arch/arm/mach-tegra/board-loki.c +++ b/arch/arm/mach-tegra/board-loki.c @@ -841,11 +841,6 @@ static void __init tegra_loki_late_init(void) #endif } -static void __init loki_ramconsole_reserve(unsigned long size) -{ - tegra_reserve_ramoops_memory(SZ_1M); -} - static void __init tegra_loki_dt_init(void) { tegra_get_board_info(&board_info); @@ -870,7 +865,6 @@ static void __init tegra_loki_reserve(void) #else tegra_reserve(SZ_1G, SZ_16M + SZ_2M, SZ_4M); #endif - loki_ramconsole_reserve(SZ_1M); } static const char * const loki_dt_board_compat[] = { diff --git a/arch/arm/mach-tegra/board-macallan.c b/arch/arm/mach-tegra/board-macallan.c index 62b4c663da84..c5589efbac1b 100644 --- a/arch/arm/mach-tegra/board-macallan.c +++ b/arch/arm/mach-tegra/board-macallan.c @@ -573,11 +573,6 @@ static void __init tegra_macallan_late_init(void) tegra_register_fuse(); } -static void __init macallan_ramconsole_reserve(unsigned long size) -{ - tegra_reserve_ramoops_memory(SZ_1M); -} - static void __init tegra_macallan_dt_init(void) { tegra_get_board_info(&board_info); @@ -604,7 +599,6 @@ static void __init tegra_macallan_reserve(void) #else tegra_reserve(SZ_128M, SZ_16M + SZ_2M, SZ_16M + SZ_2M); #endif - macallan_ramconsole_reserve(SZ_1M); } static const char * const macallan_dt_board_compat[] = { diff --git a/arch/arm/mach-tegra/board-pismo.c b/arch/arm/mach-tegra/board-pismo.c index cef3b8d6f5bb..7024ac5e5f60 100644 --- a/arch/arm/mach-tegra/board-pismo.c +++ b/arch/arm/mach-tegra/board-pismo.c @@ -618,11 +618,6 @@ static void __init tegra_pismo_init(void) pismo_soctherm_init(); } -static void __init pismo_ramconsole_reserve(unsigned long size) -{ - tegra_reserve_ramoops_memory(SZ_1M); -} - #ifdef CONFIG_USE_OF struct of_dev_auxdata pismo_auxdata_lookup[] __initdata = { OF_DEV_AUXDATA("nvidia,tegra114-host1x", TEGRA_HOST1X_BASE, "host1x", @@ -662,7 +657,6 @@ static void __init tegra_pismo_reserve(void) #else tegra_reserve(SZ_128M, SZ_16M + SZ_2M, SZ_4M); #endif - pismo_ramconsole_reserve(SZ_1M); } static const char * const pismo_dt_board_compat[] = { diff --git a/arch/arm/mach-tegra/board-pluto.c b/arch/arm/mach-tegra/board-pluto.c index 30d44c006112..ee1ab5660ee2 100644 --- a/arch/arm/mach-tegra/board-pluto.c +++ b/arch/arm/mach-tegra/board-pluto.c @@ -1260,10 +1260,6 @@ static void __init tegra_pluto_late_init(void) tegra_register_fuse(); } -static void __init pluto_ramconsole_reserve(unsigned long size) -{ - tegra_reserve_ramoops_memory(SZ_1M); -} static void __init tegra_pluto_dt_init(void) { @@ -1284,7 +1280,6 @@ static void __init tegra_pluto_reserve(void) #else tegra_reserve(SZ_128M, SZ_16M, SZ_4M); #endif - pluto_ramconsole_reserve(SZ_1M); } static const char * const pluto_dt_board_compat[] = { diff --git a/arch/arm/mach-tegra/board-roth.c b/arch/arm/mach-tegra/board-roth.c index de12321fcca6..de2eed220c8d 100644 --- a/arch/arm/mach-tegra/board-roth.c +++ b/arch/arm/mach-tegra/board-roth.c @@ -600,11 +600,6 @@ static void __init tegra_roth_init(void) roth_issp_init(); } -static void __init roth_ramconsole_reserve(unsigned long size) -{ - tegra_reserve_ramoops_memory(SZ_1M); -} - #ifdef CONFIG_USE_OF struct of_dev_auxdata roth_auxdata_lookup[] __initdata = { OF_DEV_AUXDATA("nvidia,tegra114-host1x", TEGRA_HOST1X_BASE, "host1x", @@ -645,7 +640,6 @@ static void __init tegra_roth_reserve(void) #else tegra_reserve(SZ_128M, SZ_16M + SZ_2M, SZ_4M); #endif - roth_ramconsole_reserve(SZ_1M); } static const char * const roth_dt_board_compat[] = { diff --git a/arch/arm/mach-tegra/board-vcm30_t124.c b/arch/arm/mach-tegra/board-vcm30_t124.c index 625e0cdc8405..acefc16c12cb 100644 --- a/arch/arm/mach-tegra/board-vcm30_t124.c +++ b/arch/arm/mach-tegra/board-vcm30_t124.c @@ -546,11 +546,6 @@ static void __init tegra_vcm30_t124_late_init(void) vcm30_t124_panel_init(); } -static void __init vcm30_t124_ramconsole_reserve(unsigned long size) -{ - tegra_reserve_ramoops_memory(SZ_1M); -} - static void __init tegra_vcm30_t124_dt_init(void) { tegra_get_board_info(&board_info); @@ -574,7 +569,6 @@ static void __init tegra_vcm30_t124_reserve(void) #else tegra_reserve(SZ_128M, SZ_16M + SZ_2M, SZ_16M + SZ_2M); #endif - vcm30_t124_ramconsole_reserve(SZ_1M); } static const char * const vcm30_t124_dt_board_compat[] = { diff --git a/arch/arm/mach-tegra/board.h b/arch/arm/mach-tegra/board.h index ae5abb805144..fb833ce364c3 100644 --- a/arch/arm/mach-tegra/board.h +++ b/arch/arm/mach-tegra/board.h @@ -129,14 +129,6 @@ int get_sd_uart_port_id(void); void set_sd_uart_port_id(int); int __init tegra_register_fuse(void); -#ifdef CONFIG_PSTORE_RAM -void __init tegra_reserve_ramoops_memory(unsigned long ram_console_size); -#else -static inline void __init - tegra_reserve_ramoops_memory(unsigned long ram_console_size) -{} -#endif - extern phys_addr_t tegra_bootloader_fb_start; extern phys_addr_t tegra_bootloader_fb_size; extern phys_addr_t tegra_bootloader_fb2_start; diff --git a/arch/arm/mach-tegra/common.c b/arch/arm/mach-tegra/common.c index 5d3912b226a2..b69f447f26b0 100644 --- a/arch/arm/mach-tegra/common.c +++ b/arch/arm/mach-tegra/common.c @@ -1825,6 +1825,38 @@ void __tegra_clear_framebuffer(struct platform_device *pdev, iounmap(to_io); } +#ifdef CONFIG_PSTORE_RAM +static struct ramoops_platform_data ramoops_data; + +static struct platform_device ramoops_dev = { + .name = "ramoops", + .dev = { + .platform_data = &ramoops_data, + }, +}; + + +static void __init tegra_reserve_ramoops_memory(unsigned long reserve_size) +{ + ramoops_data.mem_size = reserve_size; + ramoops_data.mem_address = memblock_end_of_4G() - reserve_size; + ramoops_data.console_size = reserve_size; + ramoops_data.dump_oops = 1; + memblock_reserve(ramoops_data.mem_address, ramoops_data.mem_size); +} + +static int __init tegra_register_ramoops_device(void) +{ + int ret = platform_device_register(&ramoops_dev); + if (ret) { + pr_info("Unable to register ramoops platform device\n"); + return ret; + } + return ret; +} +core_initcall(tegra_register_ramoops_device); +#endif + void __init tegra_reserve(unsigned long carveout_size, unsigned long fb_size, unsigned long fb2_size) { @@ -2116,6 +2148,9 @@ void __init tegra_reserve(unsigned long carveout_size, unsigned long fb_size, #endif tegra_fb_linear_set(map); +#ifdef CONFIG_PSTORE_RAM + tegra_reserve_ramoops_memory(SZ_1M); +#endif } void tegra_get_fb_resource(struct resource *fb_res) @@ -2132,37 +2167,7 @@ void tegra_get_fb2_resource(struct resource *fb2_res) (resource_size_t) tegra_fb2_size - 1; } -#ifdef CONFIG_PSTORE_RAM -static struct ramoops_platform_data ramoops_data; - -static struct platform_device ramoops_dev = { - .name = "ramoops", - .dev = { - .platform_data = &ramoops_data, - }, -}; - -void __init tegra_reserve_ramoops_memory(unsigned long reserve_size) -{ - ramoops_data.mem_size = reserve_size; - ramoops_data.mem_address = memblock_end_of_4G() - reserve_size; - ramoops_data.console_size = reserve_size; - ramoops_data.dump_oops = 1; - memblock_reserve(ramoops_data.mem_address, ramoops_data.mem_size); -} - -static int __init tegra_register_ramoops_device(void) -{ - int ret = platform_device_register(&ramoops_dev); - if (ret) { - pr_info("Unable to register ramoops platform device\n"); - return ret; - } - return ret; -} -core_initcall(tegra_register_ramoops_device); -#endif int __init tegra_register_fuse(void) { |
