When CONFIG_SPL_STACK_R is enabled, and spl_init() is called before board_init_r(), spl_relocate_stack_gd() will move global_data to a new place in memory. This affects driver model since it uses a list for the uclasses. Unless this is updated the list will become invalid. When looking for a non-existent uclass, such as when adding a new one, the loop in uclass_find() may continue forever, thus causing a hang. Add a function to correct this rather obscure bug. Signed-off-by: Simon Glass <sjg@chromium.org> |
||
---|---|---|
.. | ||
Kconfig | ||
Makefile | ||
device-remove.c | ||
device.c | ||
devres.c | ||
dump.c | ||
lists.c | ||
regmap.c | ||
root.c | ||
simple-bus.c | ||
syscon-uclass.c | ||
uclass.c | ||
util.c |