import PULS_20180308
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / drivers / misc / mediatek / mrdump / mt8127 / mrdump_setup.c
1 #include <asm/page.h>
2 #include <asm/io.h>
3 #include <mach/mt_reg_base.h>
4 #include <mach/wd_api.h>
5 #include <linux/memblock.h>
6 #include <linux/mrdump.h>
7 #include <linux/reboot.h>
8
9 #define MRDUMP_CB_ADDR 0x81F00000
10 #define MRDUMP_CB_SIZE 0x1000
11
12 #define LK_LOAD_ADDR 0x81E00000
13 #define LK_LOAD_SIZE 0x100000
14
15 static void mrdump_hw_enable(bool enabled)
16 {
17 }
18
19 static void mrdump_reboot(void)
20 {
21 emergency_restart();
22 }
23
24 const struct mrdump_platform mrdump_mt6582_platform = {
25 .hw_enable = mrdump_hw_enable,
26 .reboot = mrdump_reboot
27 };
28
29 void mrdump_reserve_memory(void)
30 {
31 struct mrdump_control_block *cblock = NULL;
32
33 /* We must reserved the lk block, can we pass it from lk? */
34 memblock_reserve(LK_LOAD_ADDR, LK_LOAD_SIZE);
35
36 memblock_reserve(MRDUMP_CB_ADDR, PAGE_ALIGN(sizeof(struct mrdump_control_block)));
37 cblock = (struct mrdump_control_block *)__va(MRDUMP_CB_ADDR);
38
39 mrdump_platform_init(cblock, &mrdump_mt6582_platform);
40 }