[U-Boot] [PATCH] [v2] powerpc/85xx: introduce 'fdt verify'	command
    Wolfgang Denk 
    wd at denx.de
       
    Wed Nov 17 19:23:48 CET 2010
    
    
  
Dear Timur Tabi,
In message <1290015805-18791-1-git-send-email-timur at freescale.com> you wrote:
> Introduce the 'fdt verify' command, which verifies some of the physical
> addresses in the device tree.
> +		addr = fdt_translate_address(blob, off, reg);
> +		if (!addr)
> +			/* We can't determine the base address, so skip it */
> +			continue;
Braces needed for multiline statements.
> +/*
> + * Verify the device addresses in the device tree
> + *
> + * This function compares several CONFIG_xxx macros that contain physical
> + * addresses with the corresponding nodes in the device tree, to see if the
> + * physical addresses are all correct.  For example, if CONFIG_SYS_NS16550_COM1
> + * is defined, then it contains the virtual address of the first UART.  We
> + * convert this to a physical address and compare that with the physical
> + * address of the first ns16550-compatible node in the device tree.  If they
> + * don't match, then we display a warning.
> + */
LIne toolong. Please check and fix globally.
> +	if (ccsr != CONFIG_SYS_CCSRBAR_PHYS)
> +		printf("Warning: U-Boot configured CCSR at address %llx, " \
> +		       "but the device tree has it at %llx\n",
> +		       (uint64_t) CONFIG_SYS_CCSRBAR_PHYS, ccsr);
Braces needed for multiline statements. Please fix globally.
No backslash needed at end of line, please remove.
>  struct fdt_header *working_fdt;
> @@ -436,6 +450,10 @@ int do_fdt (cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[])
>  	else if (strncmp(argv[1], "re", 2) == 0) {
>  		fdt_resize(working_fdt);
>  	}
> +	/* verify the addresses in the fdt */
> +	else if (argv[1][0] == 'v') {
> +		fdt_verify_addresses(working_fdt);
> +	}
>  	else {
2x incorrect coding style - the "else" goes on the saame line with the
'}' and the '{'
> +	if (addr != dt_addr)
> +		printf("Warning: U-Boot configured device %s at address %llx,\n"
> +		       "but the device tree has it address %llx.\n",
> +		       alias, (u64)addr, dt_addr);
Braces needed.
> +		if (parent_address_cells == 1)
> +			dt_addr = be32_to_cpup(ranges + address_cells);
> +		else
> +			/* parent_address_cells == 2 */
> +			dt_addr = be64_to_cpup(ranges + address_cells);
and again.
> +		if (size_cells == 1)
> +			dt_size = be32_to_cpup(ranges + address_cells +
> +					       parent_address_cells);
and again.
> +		else
> +			/* size_cells == 2 */
> +			dt_size = be64_to_cpup(ranges + address_cells +
> +					      parent_address_cells);
and again. etc. etc.
> +
> +		/*
> +		 * Check for matches.  If the address matches but is the wrong
> +		 * type or wrong size, then return an error.
> +		 */
> +		if ((attr & PCI_CELL0_SS_MASK) == PCI_CELL0_SS_IO) {
> +			if (is_io && (dt_addr == addr)) {
> +				if (dt_size == size)
> +					return;
> +				else
> +					goto wrong_size;
> +			}
> +			if (!is_io && (dt_addr == addr))
> +				goto wrong_type;
> +		} else {
> +			if (!is_io && (dt_addr == addr)) {
> +				if (dt_size == size)
> +					return;
> +				else
> +					goto wrong_size;
> +			}
> +			if (is_io && (dt_addr == addr))
> +				goto wrong_type;
> +		}
Factor out the "(dt_addr == addr)" from all 4 "if"s.
Best regards,
Wolfgang Denk
-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
Human beings were created by water to transport it uphill.
    
    
More information about the U-Boot
mailing list