mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-06 13:14:27 +00:00
e5b3e87dfa
In arch/arm/mach-mvebu/dram.c we always include axp's xor.h for common XOR definitions, regardless whether we compile for axp or a38x. But the declaration of this function has a different signature in axp's xor.h from the one used in a38x' implementation - one parameter is u64 instead of u32. This can result in wrong argument's being passed to that function on a38x with no one the wiser. I discovered this when building U-Boot for Turris Omnia with LTO. The compiler complains about the different signatures being thrown into the same linking process: axp/xor.h:67:5: warning: type of ‘mv_xor_mem_init’ does not match original declaration [-Wlto-type-mismatch] 67 | int mv_xor_mem_init(u32 chan, u32 start_ptr, u32 block_size, | ^ a38x/xor.c:165:5: note: type mismatch in parameter 3 165 | int mv_xor_mem_init(u32 chan, u32 start_ptr, unsigned long long | ^ a38x/xor.c:165:5: note: type ‘long long unsigned int’ should match type ‘u32’ Fix this by changing the type of the block_size argument in the axp's implementation and header file to the one used in a38x (and upstream mv-ddr-marvell). Signed-off-by: Marek Behún <marek.behun@nic.cz> Reviewed-by: Stefan Roese <sr@denx.de> |
||
---|---|---|
.. | ||
ddr3_axp.h | ||
ddr3_axp_config.h | ||
ddr3_axp_mc_static.h | ||
ddr3_axp_training_static.h | ||
ddr3_axp_vars.h | ||
ddr3_dfs.c | ||
ddr3_dqs.c | ||
ddr3_hw_training.c | ||
ddr3_hw_training.h | ||
ddr3_init.c | ||
ddr3_init.h | ||
ddr3_patterns_64bit.h | ||
ddr3_pbs.c | ||
ddr3_read_leveling.c | ||
ddr3_sdram.c | ||
ddr3_spd.c | ||
ddr3_write_leveling.c | ||
Makefile | ||
xor.c | ||
xor.h | ||
xor_regs.h |