[U-Boot] rockchip breakage with "spl: Remove overwrite of relocated malloc limit"

Hi,
I just realized patch b3d2861eb20a ("spl: Remove overwrite of relocated malloc limit") introduces breakage in my rk3188 uboot code (and should most likely also affect the very similar other rockchip spl boards).
The boards call spl_init in their board_init_f functions because they need the spl infrastructure to find and bringup the devicetree stuff and things like pinctrl and ram.
With the recent change mentioned above, spl_init fails with spl_init() failed: -12 because dm_init_and_scan() returned error -12 because dm_init() failed: -12 ... because Missing uclass for driver root_driver because uclass_add calls calloc, which fails with the -ENOMEM (-12)
I still lack uboot experience to see the correct way forward. Reverting that patch of course makes my board start uboot again [and most likely the other Rockchip SPLs as well], but there is possibly some better solution [Or there is simply something very wrong with my rk3188 stuff :-) ].
Heiko

Hi Heiko,
That patch break all the Rockchip SoCs SPL which using spl_init().
Eddie send one patch for rk3288 by add a spl_early_init(), which is under review, I also look forward for better solution.
Thanks, - Kever On 03/07/2017 08:42 AM, Heiko Stübner wrote:
Hi,
I just realized patch b3d2861eb20a ("spl: Remove overwrite of relocated malloc limit") introduces breakage in my rk3188 uboot code (and should most likely also affect the very similar other rockchip spl boards).
The boards call spl_init in their board_init_f functions because they need the spl infrastructure to find and bringup the devicetree stuff and things like pinctrl and ram.
With the recent change mentioned above, spl_init fails with spl_init() failed: -12 because dm_init_and_scan() returned error -12 because dm_init() failed: -12 ... because Missing uclass for driver root_driver because uclass_add calls calloc, which fails with the -ENOMEM (-12)
I still lack uboot experience to see the correct way forward. Reverting that patch of course makes my board start uboot again [and most likely the other Rockchip SPLs as well], but there is possibly some better solution [Or there is simply something very wrong with my rk3188 stuff :-) ].
Heiko _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot

Hi,
On 6 March 2017 at 23:56, Kever Yang kever.yang@rock-chips.com wrote:
Hi Heiko,
That patch break all the Rockchip SoCs SPL which using spl_init().
Eddie send one patch for rk3288 by add a spl_early_init(), which is under review, I also look forward for better solution.
Is this a problem for the upcoming release? I have not seen the breakage on firefly (although I found a few other problems) so did not think it needed to be resolved right away.
Regards, Simon
Thanks,
- Kever
On 03/07/2017 08:42 AM, Heiko Stübner wrote:
Hi,
I just realized patch b3d2861eb20a ("spl: Remove overwrite of relocated malloc limit") introduces breakage in my rk3188 uboot code (and should most likely also affect the very similar other rockchip spl boards).
The boards call spl_init in their board_init_f functions because they need the spl infrastructure to find and bringup the devicetree stuff and things like pinctrl and ram.
With the recent change mentioned above, spl_init fails with spl_init() failed: -12 because dm_init_and_scan() returned error -12 because dm_init() failed: -12 ... because Missing uclass for driver root_driver because uclass_add calls calloc, which fails with the -ENOMEM (-12)
I still lack uboot experience to see the correct way forward. Reverting that patch of course makes my board start uboot again [and most likely the other Rockchip SPLs as well], but there is possibly some better solution [Or there is simply something very wrong with my rk3188 stuff :-) ].
Heiko _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot

Am Dienstag, 7. März 2017, 10:01:02 CET schrieb Simon Glass:
Hi,
On 6 March 2017 at 23:56, Kever Yang kever.yang@rock-chips.com wrote:
Hi Heiko,
That patch break all the Rockchip SoCs SPL which using spl_init().
Eddie send one patch for rk3288 by add a spl_early_init(), which is under review, I also look forward for better solution.
Is this a problem for the upcoming release? I have not seen the breakage on firefly (although I found a few other problems) so did not think it needed to be resolved right away.
not for the rk3188 - as it is not part of a release yet, but if you look at Eddie's patches, it seems like it of course affects rk3288.
Although I'd think there must be a nicer way than duplicating spl_init to fix that issue :-) .
Heiko
On 03/07/2017 08:42 AM, Heiko Stübner wrote:
Hi,
I just realized patch b3d2861eb20a ("spl: Remove overwrite of relocated malloc limit") introduces breakage in my rk3188 uboot code (and should most likely also affect the very similar other rockchip spl boards).
The boards call spl_init in their board_init_f functions because they need the spl infrastructure to find and bringup the devicetree stuff and things like pinctrl and ram.
With the recent change mentioned above, spl_init fails with
spl_init() failed: -12
because
dm_init_and_scan() returned error -12
because
dm_init() failed: -12
... because
Missing uclass for driver root_driver
because
uclass_add calls calloc, which fails with the -ENOMEM (-12)
I still lack uboot experience to see the correct way forward. Reverting that patch of course makes my board start uboot again [and most likely the other Rockchip SPLs as well], but there is possibly some better solution [Or there is simply something very wrong with my rk3188 stuff :-) ].
Heiko _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot

Hi,
On 7 March 2017 at 11:39, Heiko Stübner heiko@sntech.de wrote:
Am Dienstag, 7. März 2017, 10:01:02 CET schrieb Simon Glass:
Hi,
On 6 March 2017 at 23:56, Kever Yang kever.yang@rock-chips.com wrote:
Hi Heiko,
That patch break all the Rockchip SoCs SPL which using spl_init().
Eddie send one patch for rk3288 by add a spl_early_init(), which is under review, I also look forward for better solution.
Is this a problem for the upcoming release? I have not seen the breakage on firefly (although I found a few other problems) so did not think it needed to be resolved right away.
not for the rk3188 - as it is not part of a release yet, but if you look at Eddie's patches, it seems like it of course affects rk3288.
Although I'd think there must be a nicer way than duplicating spl_init to fix that issue :-) .
I think it makes sense, although the core code can go in a common function. I'm hoping to look at it this week.
For me, rk3288 fails for a few reasons, and I didn't see this as a primary one. I'll take another look.
Regards, Simon
Heiko
On 03/07/2017 08:42 AM, Heiko Stübner wrote:
Hi,
I just realized patch b3d2861eb20a ("spl: Remove overwrite of relocated malloc limit") introduces breakage in my rk3188 uboot code (and should most likely also affect the very similar other rockchip spl boards).
The boards call spl_init in their board_init_f functions because they need the spl infrastructure to find and bringup the devicetree stuff and things like pinctrl and ram.
With the recent change mentioned above, spl_init fails with
spl_init() failed: -12
because
dm_init_and_scan() returned error -12
because
dm_init() failed: -12
... because
Missing uclass for driver root_driver
because
uclass_add calls calloc, which fails with the -ENOMEM (-12)
I still lack uboot experience to see the correct way forward. Reverting that patch of course makes my board start uboot again [and most likely the other Rockchip SPLs as well], but there is possibly some better solution [Or there is simply something very wrong with my rk3188 stuff :-) ].
Heiko _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot
participants (3)
-
Heiko Stübner
-
Kever Yang
-
Simon Glass