mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-16 09:48:16 +00:00
3cf239394a
dcache_exists, icache_exists, slc_exists and ioc_exists global variables in "arch/arc/lib/cache.c" remain uninitialized if SoC doesn't have corresponding HW. This happens because we use the next constructions for their definition and initialization: -------------------------->>--------------------- int ioc_exists __section(".data"); if (/* condition */) ioc_exists = 1; -------------------------->>--------------------- That's quite a non-trivial issue as one may think of it. The point is we intentionally put those variables in ".data" section so they might survive relocation (remember we initilaize them very early before relocation and continue to use after reloaction). While being non-initialized and not explicitly put in .data section they would end-up in ".bss" section which by definition is filled with zeroes. But since we place those variables in .data section we need to care about their proper initialization ourselves. Also while at it we change their type to "bool" as more appropriate. Signed-off-by: Eugeniy Paltsev <Eugeniy.Paltsev@synopsys.com> Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com> |
||
---|---|---|
.. | ||
_millicodethunk.S | ||
bootm.c | ||
cache.c | ||
cpu.c | ||
init_helpers.c | ||
interrupts.c | ||
ints_low.S | ||
libgcc2.c | ||
libgcc2.h | ||
Makefile | ||
memcmp.S | ||
memcpy-700.S | ||
memset.S | ||
relocate.c | ||
reset.c | ||
start.S | ||
strchr-700.S | ||
strcmp.S | ||
strcpy-700.S | ||
strlen.S |