scripts/dtc: Update to upstream version v1.6.0-2-g87a656ae5ff9
Rob Herring
maintainerPATCH 1/1 scripts/dtc: Update to upstream version v1.6.0-2-g87a656ae5ff9
This adds the following commits from upstream:
87a656ae5ff9 check: Inform about missing ranges73d6e9ecb417 libfdt: fix undefined behaviour in fdt_splice_()2525da3dba9b Bump version to v1.6.062cb4ad286ff Execute tests on FreeBSD with Cirrus CI1f9a41750883 tests: Allow running the testsuite on already installed binary / libraries c5995ddf4c20 tests: Honour NO_YAML make variablee4ce227e89d7 tests: Properly clean up .bak file from tests9b75292c335c tests: Honour $(NO_PYTHON) flag from Makefile in run_tests.sh 6c253afd07d4 Encode $(NO_PYTHON) consistently with other variables 95ec8ef706bd tests: No need to explicitly pass $PYTHON from Make to run_tests.sh 2b5f62d109a2 tests: Let run_tests.sh run Python tests without Makefile assistance 76b43dcbd18a checks: Add 'dma-ranges' checke5c92a4780c6 libfdt: Use VALID_INPUT for FDT_ERR_BADSTATE checks e5cc26b68bc0 libfdt: Add support for disabling internal checks 28fd7590aad2 libfdt: Improve comments in some of the assumptions fc207c32341b libfdt: Fix a few typos0f61c72dedc4 libfdt: Allow exclusion of fdt_check_full()f270f45fd5d2 libfdt: Add support for disabling ordering check/fixup c18bae9a4c96 libfdt: Add support for disabling version checksfc03c4a2e04e libfdt: Add support for disabling rollback handling 77563ae72b7c libfdt: Add support for disabling sanity checks57bc6327b80b libfdt: Add support for disabling dtb checks464962489dcc Add a way to control the level of checks in the code 0c5326cb2845 libfdt: De-inline fdt_header_size()cc6a5a071504 Revert "yamltree: Ensure consistent bracketing of properties with phandles" 0e9225eb0dfe Remove redundant YYLOC global declarationcab09eedd644 Move -DNO_VALGRIND into CPPFLAGS0eb1cb0b531e Makefile: pass $(CFLAGS) also during dependency generation
--- scripts/dtc/checks.c | 25 ++--- scripts/dtc/dtc-lexer.l | 1 - scripts/dtc/libfdt/fdt.c | 99 ++++++++++++------- scripts/dtc/libfdt/fdt_ro.c | 143 ++++++++++----------------- scripts/dtc/libfdt/fdt_rw.c | 42 +++++--- scripts/dtc/libfdt/fdt_sw.c | 19 ++-- scripts/dtc/libfdt/libfdt.h | 9 +- scripts/dtc/libfdt/libfdt_internal.h | 122 +++++++++++++++++++++++ scripts/dtc/version_gen.h | 2 +- 9 files changed, 296 insertions(+), 166 deletions(-)
scripts/dtc/checks.c +14 -11
@@ -352,7 +352,7 @@ static void check_unit_address_vs_reg(struct check *c, struct dt_info *dti,FAIL (c, dti, node,"node has a reg or ranges property, but no unit name" ); }else {if (unitname[0 ]) -FAIL (c, dti, node,"node has a unit name, but no reg property" ); +FAIL (c, dti, node,"node has a unit name, but no reg or ranges property" ); } }WARNING (unit_address_vs_reg, check_unit_address_vs_reg,NULL );
@@ -765,13 +765,15 @@ static void check_ranges_format(struct check *c, struct dt_info *dti, {struct property *prop;int c_addr_cells, p_addr_cells, c_size_cells, p_size_cells, entrylen; +const char *ranges = c->data; - prop =get_property (node,"ranges" ); + prop =get_property (node, ranges);if (!prop)return ;if (!node->parent) { -FAIL_PROP (c, dti, node, prop,"Root node has a \"ranges\" property" ); +FAIL_PROP (c, dti, node, prop,"Root node has a \"%s\" property" , + ranges);return ; }
@@ -783,23 +785,24 @@ static void check_ranges_format(struct check *c, struct dt_info *dti,if (prop->val.len ==0 ) {if (p_addr_cells != c_addr_cells) -FAIL_PROP (c, dti, node, prop,"empty \"ranges\" property but its " +FAIL_PROP (c, dti, node, prop,"empty \"%s\" property but its " "#address-cells (%d) differs from %s (%d)" , - c_addr_cells, node->parent->fullpath, + ranges, c_addr_cells, node->parent->fullpath, p_addr_cells);if (p_size_cells != c_size_cells) -FAIL_PROP (c, dti, node, prop,"empty \"ranges\" property but its " +FAIL_PROP (c, dti, node, prop,"empty \"%s\" property but its " "#size-cells (%d) differs from %s (%d)" , - c_size_cells, node->parent->fullpath, + ranges, c_size_cells, node->parent->fullpath, p_size_cells); }else if ((prop->val.len % entrylen) !=0 ) { -FAIL_PROP (c, dti, node, prop,"\"ranges\" property has invalid length (%d bytes) " +FAIL_PROP (c, dti, node, prop,"\"%s\" property has invalid length (%d bytes) " "(parent #address-cells == %d, child #address-cells == %d, " -"#size-cells == %d)" , prop->val.len, +"#size-cells == %d)" , ranges, prop->val.len, p_addr_cells, c_addr_cells, c_size_cells); } } -WARNING (ranges_format, check_ranges_format,NULL , &addr_size_cells); +WARNING (ranges_format, check_ranges_format,"ranges" , &addr_size_cells); +WARNING (dma_ranges_format, check_ranges_format,"dma-ranges" , &addr_size_cells);static const struct bus_type pci_bus = { .name ="PCI" ,
@@ -1780,7 +1783,7 @@ static struct check *check_table[] = { &property_name_chars_strict, &node_name_chars_strict, - &addr_size_cells, ®_format, &ranges_format, + &addr_size_cells, ®_format, &ranges_format, &dma_ranges_format, &unit_address_vs_reg, &unit_address_format,
scripts/dtc/dtc-lexer.l +0 -1
@@ -23,7 +23,6 @@ LINECOMMENT "//".*\n #include "srcpos.h" #include "dtc-parser.tab.h" -YYLTYPE yylloc; extern bool treesource_error; /* CAUTION: this will stop working if we ever use yyless() or yyunput() */
scripts/dtc/libfdt/fdt.c +62 -37
164 lines not on this page · raw message
scripts/dtc/libfdt/fdt_ro.c +51 -92
237 lines not on this page · raw message
scripts/dtc/libfdt/fdt_rw.c +29 -13
106 lines not on this page · raw message
scripts/dtc/libfdt/fdt_sw.c +12 -7
@@ -12,10 +12,13 @@static int fdt_sw_probe_ (void *fdt) { -if (fdt_magic (fdt) ==FDT_MAGIC ) -return -FDT_ERR_BADSTATE ; -else if (fdt_magic (fdt) !=FDT_SW_MAGIC ) -return -FDT_ERR_BADMAGIC ; +if (!can_assume (VALID_INPUT )) { +if (fdt_magic (fdt) ==FDT_MAGIC ) +return -FDT_ERR_BADSTATE ; +else if (fdt_magic (fdt) !=FDT_SW_MAGIC ) +return -FDT_ERR_BADMAGIC ; + } +return 0 ; }
@@ -38,7 +41,7 @@ static int fdt_sw_probe_memrsv_(void *fdt)if (err)return err; -if (fdt_off_dt_strings (fdt) !=0 ) +if (!can_assume (VALID_INPUT ) &&fdt_off_dt_strings (fdt) !=0 )return -FDT_ERR_BADSTATE ;return 0 ; }
@@ -64,7 +67,8 @@ static int fdt_sw_probe_struct_(void *fdt)if (err)return err; -if (fdt_off_dt_strings (fdt) !=fdt_totalsize (fdt)) +if (!can_assume (VALID_INPUT ) && +fdt_off_dt_strings (fdt) !=fdt_totalsize (fdt))return -FDT_ERR_BADSTATE ;return 0 ; }
@@ -151,7 +155,8 @@ int fdt_resize(void *fdt, void *buf, int bufsize) headsize =fdt_off_dt_struct (fdt) +fdt_size_dt_struct (fdt); tailsize =fdt_size_dt_strings (fdt); -if ((headsize + tailsize) >fdt_totalsize (fdt)) +if (!can_assume (VALID_DTB ) && + headsize + tailsize >fdt_totalsize (fdt))return -FDT_ERR_INTERNAL ;if ((headsize + tailsize) > bufsize)
scripts/dtc/libfdt/libfdt.h +5 -4
@@ -266,11 +266,12 @@ fdt_set_hdr_(size_dt_struct);* fdt_header_size - return the size of the tree's header * @fdt: pointer to a flattened device tree */ +size_t fdt_header_size (const void *fdt); + +/** +* fdt_header_size_ - internal function which takes a version number +*/ size_t fdt_header_size_ (uint32_t version); -static inline size_t fdt_header_size (const void *fdt) -{ -return fdt_header_size_ (fdt_version (fdt)); -}/** * fdt_check_header - sanity check a device tree header
scripts/dtc/libfdt/libfdt_internal.h +122 -0
126 lines not on this page · raw message
scripts/dtc/version_gen.h +1 -1
@@ -1 +1 @@ -#define DTC_VERSION "DTC 1.5.0-gc40aeb60" +#define DTC_VERSION "DTC 1.6.0-g87a656ae"
Signature · 1 line
2.20.1