diff mbox series

[U-Boot] simple-bus: add DM_FLAG_PRE_RELOC flag to simple-bus driver

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

Commit Message

Lukas Auer April 10, 2019, 12:46 p.m. UTC
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(+)

Comments

Bin Meng April 10, 2019, 1:03 p.m. UTC | #1
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>
Simon Glass April 22, 2019, 2:38 a.m. UTC | #2
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!
Heiko Schocher April 29, 2019, 9:40 a.m. UTC | #3
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
Lukas Auer April 29, 2019, 4:11 p.m. UTC | #4
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
Lukas Auer May 6, 2019, 11:25 a.m. UTC | #5
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/
Heiko Schocher May 6, 2019, 12:54 p.m. UTC | #6
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 mbox series

Patch

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,
 };