16494d708SSimon Glass /* 26494d708SSimon Glass * Copyright (c) 2013 Google, Inc 36494d708SSimon Glass * 46494d708SSimon Glass * SPDX-License-Identifier: GPL-2.0+ 56494d708SSimon Glass */ 66494d708SSimon Glass 76494d708SSimon Glass #include <common.h> 827326c7eSHeiko Stübner #include <libfdt.h> 96494d708SSimon Glass #include <vsprintf.h> 106494d708SSimon Glass 116494d708SSimon Glass void dm_warn(const char *fmt, ...) 126494d708SSimon Glass { 136494d708SSimon Glass va_list args; 146494d708SSimon Glass 156494d708SSimon Glass va_start(args, fmt); 166494d708SSimon Glass vprintf(fmt, args); 176494d708SSimon Glass va_end(args); 186494d708SSimon Glass } 196494d708SSimon Glass 206494d708SSimon Glass void dm_dbg(const char *fmt, ...) 216494d708SSimon Glass { 226494d708SSimon Glass va_list args; 236494d708SSimon Glass 246494d708SSimon Glass va_start(args, fmt); 256494d708SSimon Glass vprintf(fmt, args); 266494d708SSimon Glass va_end(args); 276494d708SSimon Glass } 286494d708SSimon Glass 296494d708SSimon Glass int list_count_items(struct list_head *head) 306494d708SSimon Glass { 316494d708SSimon Glass struct list_head *node; 326494d708SSimon Glass int count = 0; 336494d708SSimon Glass 346494d708SSimon Glass list_for_each(node, head) 356494d708SSimon Glass count++; 366494d708SSimon Glass 376494d708SSimon Glass return count; 386494d708SSimon Glass } 3927326c7eSHeiko Stübner 40*d905cf73SHeiko Stübner bool dm_fdt_pre_reloc(const void *blob, int offset) 4127326c7eSHeiko Stübner { 4227326c7eSHeiko Stübner if (fdt_getprop(blob, offset, "u-boot,dm-pre-reloc", NULL)) 43*d905cf73SHeiko Stübner return true; 4427326c7eSHeiko Stübner 4527326c7eSHeiko Stübner #ifdef CONFIG_TPL_BUILD 4627326c7eSHeiko Stübner if (fdt_getprop(blob, offset, "u-boot,dm-tpl", NULL)) 47*d905cf73SHeiko Stübner return true; 4827326c7eSHeiko Stübner #elif defined(CONFIG_SPL_BUILD) 4927326c7eSHeiko Stübner if (fdt_getprop(blob, offset, "u-boot,dm-spl", NULL)) 50*d905cf73SHeiko Stübner return true; 5127326c7eSHeiko Stübner #else 5227326c7eSHeiko Stübner /* 5327326c7eSHeiko Stübner * In regular builds individual spl and tpl handling both 5427326c7eSHeiko Stübner * count as handled pre-relocation for later second init. 5527326c7eSHeiko Stübner */ 5627326c7eSHeiko Stübner if (fdt_getprop(blob, offset, "u-boot,dm-spl", NULL) || 5727326c7eSHeiko Stübner fdt_getprop(blob, offset, "u-boot,dm-tpl", NULL)) 58*d905cf73SHeiko Stübner return true; 5927326c7eSHeiko Stübner #endif 6027326c7eSHeiko Stübner 61*d905cf73SHeiko Stübner return false; 6227326c7eSHeiko Stübner } 63