On Wed, Oct 24, 2018 at 8:32 AM Bin Meng <bmeng...@gmail.com> wrote: > > When a driver declares DM_FLAG_PRE_RELOC flag, it wishes to be > bound before relocation. However due to a bug in the DM core, > the flag only takes effect when devices are statically declared > via U_BOOT_DEVICE(). This bug has been fixed recently by commit > "dm: core: Respect drivers with the DM_FLAG_PRE_RELOC flag in > lists_bind_fdt()", but with the fix, it has a side effect that > all existing drivers that declared DM_FLAG_PRE_RELOC flag will > be bound before relocation now. This may expose potential boot > failure on some boards due to insufficient memory during the > pre-relocation stage. > > To mitigate this potential impact, the following changes are > implemented: > > - Remove DM_FLAG_PRE_RELOC flag in the driver, if the driver > only supports configuration from device tree (OF_CONTROL) > - Keep DM_FLAG_PRE_RELOC flag in the driver only if the device > is statically declared via U_BOOT_DEVICE() > - Surround DM_FLAG_PRE_RELOC flag with OF_CONTROL check, for > drivers that support both statically declared devices and > configuration from device tree > > This series should be applied on top of u-boot-dm/master, for > v2018.11 release. > > > Bin Meng (13): > arm: stm32mp: Remove DM_FLAG_PRE_RELOC flag > clk: Remove DM_FLAG_PRE_RELOC flag in various drivers > gpio: Remove DM_FLAG_PRE_RELOC flag in various drivers > i2c: omap24xx: Surround DM_FLAG_PRE_RELOC flag with OF_CONTROL check > mmc: omap: Surround DM_FLAG_PRE_RELOC flag with OF_CONTROL check > pinctrl: Remove DM_FLAG_PRE_RELOC flag in various drivers > ram: bmips: Remove DM_FLAG_PRE_RELOC flag > timer: Remove DM_FLAG_PRE_RELOC flag in various drivers > serial: Remove DM_FLAG_PRE_RELOC flag in various drivers > sysreset: Remove DM_FLAG_PRE_RELOC flag in various drivers > video: simplefb: Remove DM_FLAG_PRE_RELOC flag > watchdog: Remove DM_FLAG_PRE_RELOC flag in various drivers > dm: doc: Update description of pre-relocation support >
This works just fine for me on the am3517_evm and the omap3_logic boards. Tested-by Adam Ford <aford173@gmailcom> adam > arch/arm/mach-stm32mp/bsec.c | 1 - > arch/x86/cpu/tangier/sysreset.c | 1 - > doc/driver-model/README.txt | 16 ++++++++++++---- > drivers/clk/altera/clk-arria10.c | 1 - > drivers/clk/clk_pic32.c | 1 - > drivers/clk/clk_zynq.c | 1 - > drivers/clk/exynos/clk-exynos7420.c | 3 --- > drivers/clk/owl/clk_s900.c | 1 - > drivers/gpio/omap_gpio.c | 2 ++ > drivers/gpio/stm32f7_gpio.c | 2 +- > drivers/gpio/tegra186_gpio.c | 1 - > drivers/gpio/tegra_gpio.c | 1 - > drivers/i2c/omap24xx_i2c.c | 2 ++ > drivers/mmc/omap_hsmmc.c | 2 ++ > drivers/pinctrl/broadcom/pinctrl-bcm283x.c | 2 ++ > drivers/pinctrl/exynos/pinctrl-exynos7420.c | 1 - > drivers/pinctrl/nxp/pinctrl-imx5.c | 2 ++ > drivers/pinctrl/nxp/pinctrl-imx6.c | 2 ++ > drivers/pinctrl/nxp/pinctrl-imx7.c | 2 ++ > drivers/pinctrl/nxp/pinctrl-imx7ulp.c | 2 ++ > drivers/pinctrl/pinctrl-single.c | 1 - > drivers/pinctrl/uniphier/pinctrl-uniphier-pro4.c | 2 ++ > drivers/pinctrl/uniphier/pinctrl-uniphier-pro5.c | 2 ++ > drivers/ram/bmips_ram.c | 1 - > drivers/serial/altera_jtag_uart.c | 1 - > drivers/serial/altera_uart.c | 1 - > drivers/serial/arm_dcc.c | 1 - > drivers/serial/atmel_usart.c | 2 ++ > drivers/serial/ns16550.c | 2 ++ > drivers/serial/serial_ar933x.c | 1 - > drivers/serial/serial_arc.c | 1 - > drivers/serial/serial_bcm283x_mu.c | 2 ++ > drivers/serial/serial_bcm283x_pl011.c | 2 ++ > drivers/serial/serial_bcm6345.c | 1 - > drivers/serial/serial_efi.c | 1 - > drivers/serial/serial_intel_mid.c | 1 - > drivers/serial/serial_lpuart.c | 1 - > drivers/serial/serial_meson.c | 1 - > drivers/serial/serial_mvebu_a3700.c | 1 - > drivers/serial/serial_mxc.c | 2 ++ > drivers/serial/serial_omap.c | 2 ++ > drivers/serial/serial_owl.c | 1 - > drivers/serial/serial_pic32.c | 1 - > drivers/serial/serial_pl01x.c | 2 ++ > drivers/serial/serial_s5p.c | 1 - > drivers/serial/serial_sh.c | 2 ++ > drivers/serial/serial_sti_asc.c | 1 - > drivers/serial/serial_stm32.c | 2 ++ > drivers/serial/serial_xuartlite.c | 1 - > drivers/serial/serial_zynq.c | 1 - > drivers/sysreset/sysreset_x86.c | 1 - > drivers/timer/ag101p_timer.c | 1 - > drivers/timer/altera_timer.c | 1 - > drivers/timer/arc_timer.c | 1 - > drivers/timer/ast_timer.c | 1 - > drivers/timer/atcpit100_timer.c | 1 - > drivers/timer/atmel_pit_timer.c | 1 - > drivers/timer/cadence-ttc.c | 1 - > drivers/timer/dw-apb-timer.c | 1 - > drivers/timer/mpc83xx_timer.c | 1 - > drivers/timer/omap-timer.c | 1 - > drivers/timer/rockchip_timer.c | 1 - > drivers/timer/sti-timer.c | 1 - > drivers/timer/stm32_timer.c | 1 - > drivers/timer/tsc_timer.c | 1 - > drivers/video/simplefb.c | 1 - > drivers/watchdog/ast_wdt.c | 1 - > lib/efi/efi_app.c | 1 - > 68 files changed, 51 insertions(+), 54 deletions(-) > > -- > 2.7.4 > > _______________________________________________ > U-Boot mailing list > U-Boot@lists.denx.de > https://lists.denx.de/listinfo/u-boot _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot