1 /* SPDX-License-Identifier: GPL-2.0 */
3 * linux/arch/sh/boot/romimage/head.S
5 * Board specific setup code, executed before zImage loader
13 /* include board specific setup code */
14 #include <mach/romimage.h>
16 #ifdef CONFIG_ROMIMAGE_MMCIF
17 /* load the romImage to above the empty zero page */
18 mov.l empty_zero_page_dst, r4
19 mov.l empty_zero_page_dst_adj, r5
21 mov.l bytes_to_load, r5
22 mov.l loader_function, r7
26 mov.l empty_zero_page_dst, r4
27 mov.l empty_zero_page_dst_adj, r5
29 mov.l loaded_code_offs, r5
35 empty_zero_page_dst_adj:
38 .long end_data - romstart
42 .long loaded_code - romstart
44 #endif /* CONFIG_ROMIMAGE_MMCIF */
46 /* copy the empty_zero_page contents to where vmlinux expects it */
47 mova extra_data_pos, r0
48 mov.l extra_data_size, r1
50 mov.l empty_zero_page_dst, r1
51 mov #(PAGE_SHIFT - 4), r4
53 shld r4, r3 /* r3 = PAGE_SIZE / 16 */
69 /* jump to the zImage entry point located after the zero page data */
73 mova extra_data_pos, r0
75 mov.l extra_data_size, r1
85 .long zero_page_pos - extra_data_pos