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> 8*27326c7eSHeiko 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 } 39*27326c7eSHeiko Stübner 40*27326c7eSHeiko Stübner int dm_fdt_pre_reloc(const void *blob, int offset) 41*27326c7eSHeiko Stübner { 42*27326c7eSHeiko Stübner if (fdt_getprop(blob, offset, "u-boot,dm-pre-reloc", NULL)) 43*27326c7eSHeiko Stübner return 1; 44*27326c7eSHeiko Stübner 45*27326c7eSHeiko Stübner #ifdef CONFIG_TPL_BUILD 46*27326c7eSHeiko Stübner if (fdt_getprop(blob, offset, "u-boot,dm-tpl", NULL)) 47*27326c7eSHeiko Stübner return 1; 48*27326c7eSHeiko Stübner #elif defined(CONFIG_SPL_BUILD) 49*27326c7eSHeiko Stübner if (fdt_getprop(blob, offset, "u-boot,dm-spl", NULL)) 50*27326c7eSHeiko Stübner return 1; 51*27326c7eSHeiko Stübner #else 52*27326c7eSHeiko Stübner /* 53*27326c7eSHeiko Stübner * In regular builds individual spl and tpl handling both 54*27326c7eSHeiko Stübner * count as handled pre-relocation for later second init. 55*27326c7eSHeiko Stübner */ 56*27326c7eSHeiko Stübner if (fdt_getprop(blob, offset, "u-boot,dm-spl", NULL) || 57*27326c7eSHeiko Stübner fdt_getprop(blob, offset, "u-boot,dm-tpl", NULL)) 58*27326c7eSHeiko Stübner return 1; 59*27326c7eSHeiko Stübner #endif 60*27326c7eSHeiko Stübner 61*27326c7eSHeiko Stübner return 0; 62*27326c7eSHeiko Stübner } 63