Message ID | 1463825149-16380-1-git-send-email-angelo@sysam.it |
---|---|
State | Accepted |
Commit | 5aeedebc33849efbbee2d422a4c7da8194e1b670 |
Delegated to: | Simon Glass |
Headers | show |
On 21 May 2016 at 03:05, Angelo Dureghello <angelo@sysam.it> wrote: > Some architectures as m68k still need to use CONFIG_NEEDS_MANUAL_RELOC, > and are not still using the device tree. > > Signed-off-by: Angelo Dureghello <angelo@sysam.it> > --- > drivers/core/root.c | 15 +++++++++++++++ > 1 file changed, 15 insertions(+) Acked-by: Simon Glass <sjg@chromium.org>
On 7 June 2016 at 20:42, Simon Glass <sjg@chromium.org> wrote: > On 21 May 2016 at 03:05, Angelo Dureghello <angelo@sysam.it> wrote: >> Some architectures as m68k still need to use CONFIG_NEEDS_MANUAL_RELOC, >> and are not still using the device tree. >> >> Signed-off-by: Angelo Dureghello <angelo@sysam.it> >> --- >> drivers/core/root.c | 15 +++++++++++++++ >> 1 file changed, 15 insertions(+) > > Acked-by: Simon Glass <sjg@chromium.org> Applied to u-boot-dm, thanks!
diff --git a/drivers/core/root.c b/drivers/core/root.c index 13c2713..95886ad 100644 --- a/drivers/core/root.c +++ b/drivers/core/root.c @@ -122,6 +122,20 @@ void fix_uclass(void) entry->ops += gd->reloc_off; } } + +void fix_devices(void) +{ + struct driver_info *dev = + ll_entry_start(struct driver_info, driver_info); + const int n_ents = ll_entry_count(struct driver_info, driver_info); + struct driver_info *entry; + + for (entry = dev; entry != dev + n_ents; entry++) { + if (entry->platdata) + entry->platdata += gd->reloc_off; + } +} + #endif int dm_init(void) @@ -137,6 +151,7 @@ int dm_init(void) #if defined(CONFIG_NEEDS_MANUAL_RELOC) fix_drivers(); fix_uclass(); + fix_devices(); #endif ret = device_bind_by_name(NULL, false, &root_info, &DM_ROOT_NON_CONST);
Some architectures as m68k still need to use CONFIG_NEEDS_MANUAL_RELOC, and are not still using the device tree. Signed-off-by: Angelo Dureghello <angelo@sysam.it> --- drivers/core/root.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+)