Lines Matching +full:- +full:- +full:bd
6 * SPDX-License-Identifier: GPL-2.0+
12 #include <u-boot/zlib.h>
24 static void setup_start_tag(bd_t *bd);
27 static void setup_memory_tags(bd_t *bd);
29 static void setup_commandline_tag(bd_t *bd, char *commandline);
32 static void setup_initrd_tag(bd_t *bd, ulong initrd_start, ulong initrd_end);
34 static void setup_end_tag(bd_t *bd);
41 bd_t *bd = gd->bd; in do_bootm_linux() local
43 int machid = bd->bi_arch_number; in do_bootm_linux()
59 theKernel = (void (*)(int, int, uint))images->ep; in do_bootm_linux()
72 if (IMAGE_ENABLE_OF_LIBFDT && images->ft_len) { in do_bootm_linux()
86 setup_start_tag(bd); in do_bootm_linux()
94 setup_memory_tags(bd); in do_bootm_linux()
97 setup_commandline_tag(bd, commandline); in do_bootm_linux()
100 if (images->rd_start && images->rd_end) in do_bootm_linux()
101 setup_initrd_tag(bd, images->rd_start, images->rd_end); in do_bootm_linux()
103 setup_end_tag(bd); in do_bootm_linux()
117 if (IMAGE_ENABLE_OF_LIBFDT && images->ft_len) in do_bootm_linux()
118 theKernel(0, machid, (unsigned long)images->ft_addr); in do_bootm_linux()
120 theKernel(0, machid, bd->bi_boot_params); in do_bootm_linux()
131 static void setup_start_tag(bd_t *bd) in setup_start_tag() argument
133 params = (struct tag *)bd->bi_boot_params; in setup_start_tag()
135 params->hdr.tag = ATAG_CORE; in setup_start_tag()
136 params->hdr.size = tag_size(tag_core); in setup_start_tag()
138 params->u.core.flags = 0; in setup_start_tag()
139 params->u.core.pagesize = 0; in setup_start_tag()
140 params->u.core.rootdev = 0; in setup_start_tag()
146 static void setup_memory_tags(bd_t *bd) in setup_memory_tags() argument
151 params->hdr.tag = ATAG_MEM; in setup_memory_tags()
152 params->hdr.size = tag_size(tag_mem32); in setup_memory_tags()
154 params->u.mem.start = bd->bi_dram[i].start; in setup_memory_tags()
155 params->u.mem.size = bd->bi_dram[i].size; in setup_memory_tags()
162 static void setup_commandline_tag(bd_t *bd, char *commandline) in setup_commandline_tag() argument
173 /* skip non-existent command lines so the kernel will still in setup_commandline_tag()
179 params->hdr.tag = ATAG_CMDLINE; in setup_commandline_tag()
180 params->hdr.size = in setup_commandline_tag()
183 strcpy(params->u.cmdline.cmdline, p) in setup_commandline_tag()
190 static void setup_initrd_tag(bd_t *bd, ulong initrd_start, ulong initrd_end) in setup_initrd_tag() argument
195 params->hdr.tag = ATAG_INITRD2; in setup_initrd_tag()
196 params->hdr.size = tag_size(tag_initrd); in setup_initrd_tag()
198 params->u.initrd.start = initrd_start; in setup_initrd_tag()
199 params->u.initrd.size = initrd_end - initrd_start; in setup_initrd_tag()
213 params->hdr.tag = ATAG_SERIAL; in setup_serial_tag()
214 params->hdr.size = tag_size(tag_serialnr); in setup_serial_tag()
215 params->u.serialnr.low = serialnr.low; in setup_serial_tag()
216 params->u.serialnr.high = serialnr.high; in setup_serial_tag()
229 params->hdr.tag = ATAG_REVISION; in setup_revision_tag()
230 params->hdr.size = tag_size(tag_revision); in setup_revision_tag()
231 params->u.revision.rev = rev; in setup_revision_tag()
236 static void setup_end_tag(bd_t *bd) in setup_end_tag() argument
238 params->hdr.tag = ATAG_NONE; in setup_end_tag()
239 params->hdr.size = 0; in setup_end_tag()