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> |
||
|---|---|---|
| .. | ||
| platform_data | ||
| device-internal.h | ||
| device.h | ||
| lists.h | ||
| pinctrl.h | ||
| platdata.h | ||
| root.h | ||
| test.h | ||
| uclass-id.h | ||
| uclass-internal.h | ||
| uclass.h | ||
| util.h | ||