Message ID | 20190410124607.959-1-lukas.auer@aisec.fraunhofer.de |
---|---|
State | Accepted |
Commit | 3a7c45f6a7725808e2e82908be4bc90d4d78e737 |
Delegated to: | Simon Glass |
Headers | show |
Series | [U-Boot] simple-bus: add DM_FLAG_PRE_RELOC flag to simple-bus driver | expand |
On Wed, Apr 10, 2019 at 8:46 PM Lukas Auer <lukas.auer@aisec.fraunhofer.de> wrote: > > Boards such as qemu-riscv, which receive their device tree at runtime, > for example from QEMU or firmware, are unable to add the appropriate > device tree properties to make devices available pre relocation. > Instead, they must rely on the DM_FLAG_PRE_RELOC flag to be set for the > required drivers. > > Add the DM_FLAG_PRE_RELOC flag to the simple-bus driver to make devices > under it with drivers that have set the flag as well available pre > relocation for these boards. > > Signed-off-by: Lukas Auer <lukas.auer@aisec.fraunhofer.de> > --- > > drivers/core/simple-bus.c | 1 + > 1 file changed, 1 insertion(+) > Reviewed-by: Bin Meng <bmeng.cn@gmail.com> Tested on QEMU RISC-V 'virt' target with 2 cores, M-mode Tested-by: Bin Meng <bmeng.cn@gmail.com>
On Wed, Apr 10, 2019 at 8:46 PM Lukas Auer <lukas.auer@aisec.fraunhofer.de> wrote: > > Boards such as qemu-riscv, which receive their device tree at runtime, > for example from QEMU or firmware, are unable to add the appropriate > device tree properties to make devices available pre relocation. > Instead, they must rely on the DM_FLAG_PRE_RELOC flag to be set for the > required drivers. > > Add the DM_FLAG_PRE_RELOC flag to the simple-bus driver to make devices > under it with drivers that have set the flag as well available pre > relocation for these boards. > > Signed-off-by: Lukas Auer <lukas.auer@aisec.fraunhofer.de> > --- > > drivers/core/simple-bus.c | 1 + > 1 file changed, 1 insertion(+) > Reviewed-by: Bin Meng <bmeng.cn@gmail.com> Tested on QEMU RISC-V 'virt' target with 2 cores, M-mode Tested-by: Bin Meng <bmeng.cn@gmail.com> Applied to u-boot-dm, thanks!
Hello Simon, Am 22.04.2019 um 04:38 schrieb sjg@google.com: > On Wed, Apr 10, 2019 at 8:46 PM Lukas Auer > <lukas.auer@aisec.fraunhofer.de> wrote: >> >> Boards such as qemu-riscv, which receive their device tree at runtime, >> for example from QEMU or firmware, are unable to add the appropriate >> device tree properties to make devices available pre relocation. >> Instead, they must rely on the DM_FLAG_PRE_RELOC flag to be set for the >> required drivers. >> >> Add the DM_FLAG_PRE_RELOC flag to the simple-bus driver to make devices >> under it with drivers that have set the flag as well available pre >> relocation for these boards. >> >> Signed-off-by: Lukas Auer <lukas.auer@aisec.fraunhofer.de> >> --- >> >> drivers/core/simple-bus.c | 1 + >> 1 file changed, 1 insertion(+) >> > > Reviewed-by: Bin Meng <bmeng.cn@gmail.com> > > Tested on QEMU RISC-V 'virt' target with 2 cores, M-mode > Tested-by: Bin Meng <bmeng.cn@gmail.com> > > Applied to u-boot-dm, thanks! I just tested current mainline U-Boot: * 6aebc0d11a - (origin/master, origin/HEAD) Revert "fs: btrfs: fix false negatives in ROOT_ITEM search" (vor 2 Tagen) <Tom Rini> on a not yet mainlined imx6ull port, and after SPL loaded U-Boot into RAM I see no more output. After git bisect session, this commit was found as the reason for breaking U-Boot. After reverting this commit, board boots fine again... Any Idea what could be wrong ? Thanks! bye, Heiko
Hello Heiko, On Mon, 2019-04-29 at 11:40 +0200, Heiko Schocher wrote: > Hello Simon, > > Am 22.04.2019 um 04:38 schrieb sjg@google.com: > > On Wed, Apr 10, 2019 at 8:46 PM Lukas Auer > > <lukas.auer@aisec.fraunhofer.de> wrote: > > > Boards such as qemu-riscv, which receive their device tree at runtime, > > > for example from QEMU or firmware, are unable to add the appropriate > > > device tree properties to make devices available pre relocation. > > > Instead, they must rely on the DM_FLAG_PRE_RELOC flag to be set for the > > > required drivers. > > > > > > Add the DM_FLAG_PRE_RELOC flag to the simple-bus driver to make devices > > > under it with drivers that have set the flag as well available pre > > > relocation for these boards. > > > > > > Signed-off-by: Lukas Auer <lukas.auer@aisec.fraunhofer.de> > > > --- > > > > > > drivers/core/simple-bus.c | 1 + > > > 1 file changed, 1 insertion(+) > > > > > > > Reviewed-by: Bin Meng <bmeng.cn@gmail.com> > > > > Tested on QEMU RISC-V 'virt' target with 2 cores, M-mode > > Tested-by: Bin Meng <bmeng.cn@gmail.com> > > > > Applied to u-boot-dm, thanks! > > I just tested current mainline U-Boot: > > * 6aebc0d11a - (origin/master, origin/HEAD) Revert "fs: btrfs: fix false negatives in ROOT_ITEM > search" (vor 2 Tagen) <Tom Rini> > > on a not yet mainlined imx6ull port, and after SPL loaded U-Boot > into RAM I see no more output. After git bisect session, this > commit was found as the reason for breaking U-Boot. > > After reverting this commit, board boots fine again... > > Any Idea what could be wrong ? > > Thanks! > > bye, > Heiko Can you attach a debugger to the system? I can't think of anything apparent that this patch might have broken. Is U-Boot perhaps using a different serial console, which was not available without this patch? Thanks, Lukas
Hello Heiko, On Mon, 2019-04-29 at 16:11 +0000, Auer, Lukas wrote: > Hello Heiko, > > On Mon, 2019-04-29 at 11:40 +0200, Heiko Schocher wrote: > > Hello Simon, > > > > Am 22.04.2019 um 04:38 schrieb sjg@google.com: > > > On Wed, Apr 10, 2019 at 8:46 PM Lukas Auer > > > <lukas.auer@aisec.fraunhofer.de> wrote: > > > > Boards such as qemu-riscv, which receive their device tree at runtime, > > > > for example from QEMU or firmware, are unable to add the appropriate > > > > device tree properties to make devices available pre relocation. > > > > Instead, they must rely on the DM_FLAG_PRE_RELOC flag to be set for the > > > > required drivers. > > > > > > > > Add the DM_FLAG_PRE_RELOC flag to the simple-bus driver to make devices > > > > under it with drivers that have set the flag as well available pre > > > > relocation for these boards. > > > > > > > > Signed-off-by: Lukas Auer <lukas.auer@aisec.fraunhofer.de> > > > > --- > > > > > > > > drivers/core/simple-bus.c | 1 + > > > > 1 file changed, 1 insertion(+) > > > > > > > > > > Reviewed-by: Bin Meng <bmeng.cn@gmail.com> > > > > > > Tested on QEMU RISC-V 'virt' target with 2 cores, M-mode > > > Tested-by: Bin Meng <bmeng.cn@gmail.com> > > > > > > Applied to u-boot-dm, thanks! > > > > I just tested current mainline U-Boot: > > > > * 6aebc0d11a - (origin/master, origin/HEAD) Revert "fs: btrfs: fix false negatives in ROOT_ITEM > > search" (vor 2 Tagen) <Tom Rini> > > > > on a not yet mainlined imx6ull port, and after SPL loaded U-Boot > > into RAM I see no more output. After git bisect session, this > > commit was found as the reason for breaking U-Boot. > > > > After reverting this commit, board boots fine again... > > > > Any Idea what could be wrong ? > > > > Thanks! > > > > bye, > > Heiko > > Can you attach a debugger to the system? > > I can't think of anything apparent that this patch might have > broken. Is U-Boot perhaps using a different serial console, which was > not available without this patch? > This issue is fixed with the following patch [1]. The issue was that the default value of CONFIG_SYS_MALLOC_F_LEN for i.MX was too low, increasing it fixes the problem. Thanks, Lukas [1]: https://patchwork.ozlabs.org/patch/1094974/
Hello Lukas, Am 06.05.2019 um 13:25 schrieb Auer, Lukas: > Hello Heiko, > > On Mon, 2019-04-29 at 16:11 +0000, Auer, Lukas wrote: >> Hello Heiko, >> >> On Mon, 2019-04-29 at 11:40 +0200, Heiko Schocher wrote: >>> Hello Simon, >>> >>> Am 22.04.2019 um 04:38 schrieb sjg@google.com: >>>> On Wed, Apr 10, 2019 at 8:46 PM Lukas Auer >>>> <lukas.auer@aisec.fraunhofer.de> wrote: >>>>> Boards such as qemu-riscv, which receive their device tree at runtime, >>>>> for example from QEMU or firmware, are unable to add the appropriate >>>>> device tree properties to make devices available pre relocation. >>>>> Instead, they must rely on the DM_FLAG_PRE_RELOC flag to be set for the >>>>> required drivers. >>>>> >>>>> Add the DM_FLAG_PRE_RELOC flag to the simple-bus driver to make devices >>>>> under it with drivers that have set the flag as well available pre >>>>> relocation for these boards. >>>>> >>>>> Signed-off-by: Lukas Auer <lukas.auer@aisec.fraunhofer.de> >>>>> --- >>>>> >>>>> drivers/core/simple-bus.c | 1 + >>>>> 1 file changed, 1 insertion(+) >>>>> >>>> >>>> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> >>>> >>>> Tested on QEMU RISC-V 'virt' target with 2 cores, M-mode >>>> Tested-by: Bin Meng <bmeng.cn@gmail.com> >>>> >>>> Applied to u-boot-dm, thanks! >>> >>> I just tested current mainline U-Boot: >>> >>> * 6aebc0d11a - (origin/master, origin/HEAD) Revert "fs: btrfs: fix false negatives in ROOT_ITEM >>> search" (vor 2 Tagen) <Tom Rini> >>> >>> on a not yet mainlined imx6ull port, and after SPL loaded U-Boot >>> into RAM I see no more output. After git bisect session, this >>> commit was found as the reason for breaking U-Boot. >>> >>> After reverting this commit, board boots fine again... >>> >>> Any Idea what could be wrong ? >>> >>> Thanks! >>> >>> bye, >>> Heiko >> >> Can you attach a debugger to the system? >> >> I can't think of anything apparent that this patch might have >> broken. Is U-Boot perhaps using a different serial console, which was >> not available without this patch? >> > > This issue is fixed with the following patch [1]. The issue was that > the default value of CONFIG_SYS_MALLOC_F_LEN for i.MX was too low, > increasing it fixes the problem. Indeed! This fixes my problem. Thanks! bye, Heiko > > Thanks, > Lukas > > [1]: https://patchwork.ozlabs.org/patch/1094974/ >
diff --git a/drivers/core/simple-bus.c b/drivers/core/simple-bus.c index e16d8a9ff4..7fc23ef82d 100644 --- a/drivers/core/simple-bus.c +++ b/drivers/core/simple-bus.c @@ -60,4 +60,5 @@ U_BOOT_DRIVER(simple_bus_drv) = { .name = "generic_simple_bus", .id = UCLASS_SIMPLE_BUS, .of_match = generic_simple_bus_ids, + .flags = DM_FLAG_PRE_RELOC, };
Boards such as qemu-riscv, which receive their device tree at runtime, for example from QEMU or firmware, are unable to add the appropriate device tree properties to make devices available pre relocation. Instead, they must rely on the DM_FLAG_PRE_RELOC flag to be set for the required drivers. Add the DM_FLAG_PRE_RELOC flag to the simple-bus driver to make devices under it with drivers that have set the flag as well available pre relocation for these boards. Signed-off-by: Lukas Auer <lukas.auer@aisec.fraunhofer.de> --- drivers/core/simple-bus.c | 1 + 1 file changed, 1 insertion(+)