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 | ||