Commit | Line | Data |
---|---|---|
6fa3eb70 S |
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 | ||
4b9e9796 | 36 | memblock_reserve(MRDUMP_CB_ADDR, PAGE_ALIGN(sizeof(struct mrdump_control_block))); |
6fa3eb70 S |
37 | cblock = (struct mrdump_control_block *)__va(MRDUMP_CB_ADDR); |
38 | ||
39 | mrdump_platform_init(cblock, &mrdump_mt6582_platform); | |
40 | } |