* question: malta doesn't use a1 for fdt from bootloader
@ 2023-12-22 17:51 dan
2023-12-25 13:33 ` Jiaxun Yang
0 siblings, 1 reply; 3+ messages in thread
From: dan @ 2023-12-22 17:51 UTC (permalink / raw
To: linux-mips
Newbie question:
I noticed while writing some test automation with QEMU and U-Boot that
the Malta kernel appears to ignore any DTB provided by the bootloader, in
favour of using the one embedded into the kernel image. Is there a
reason behind this, or is it just not a thing that's been changed since
the board was converted to use device tree?
I patched my own kernel to check $a1 as the "mips generic" kernel does,
and it seems to work, but maybe I'm missing something? I did have to
rebuild U-Boot with different CONFIG options to make use of it (I don't
khow what real hardware Malta uses for a bootloader) so perhaps it has
limited use.
If the change is acceptable in principle I'll tidy it up and submit
a patch with all the proper procedure.
Opinions welcome
-dan
diff --git a/arch/mips/mti-malta/malta-setup.c b/arch/mips/mti-malta/malta-setup.c
index 21cb3ac1237b..52e731f9b4e2 100644
--- a/arch/mips/mti-malta/malta-setup.c
+++ b/arch/mips/mti-malta/malta-setup.c
@@ -192,7 +192,9 @@ static void __init bonito_quirks_setup(void)
void __init *plat_get_fdt(void)
{
- return (void *)__dtb_start;
+ return (fw_arg0 == -2) ?
+ (void *) (KSEG1ADDR(fw_arg1)) :
+ (void *) __dtb_start;
}
void __init plat_mem_setup(void)
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: question: malta doesn't use a1 for fdt from bootloader
2023-12-22 17:51 question: malta doesn't use a1 for fdt from bootloader dan
@ 2023-12-25 13:33 ` Jiaxun Yang
2024-01-03 13:50 ` Jiaxun Yang
0 siblings, 1 reply; 3+ messages in thread
From: Jiaxun Yang @ 2023-12-25 13:33 UTC (permalink / raw
To: dan, linux-mips
在 2023/12/22 17:51, dan@telent.net 写道:
>
> Newbie question:
>
> I noticed while writing some test automation with QEMU and U-Boot that
> the Malta kernel appears to ignore any DTB provided by the bootloader, in
> favour of using the one embedded into the kernel image. Is there a
> reason behind this, or is it just not a thing that's been changed since
> the board was converted to use device tree?
Hi,
It's a bit of history that DeviceTree passed by YAMON bootloader to
kernel does not compatible with upstream kernel's devicetree bindings,
so we decided to just omit it.
>
> I patched my own kernel to check $a1 as the "mips generic" kernel does,
> and it seems to work, but maybe I'm missing something? I did have to
> rebuild U-Boot with different CONFIG options to make use of it (I don't
> khow what real hardware Malta uses for a bootloader) so perhaps it has
> limited use.
>
> If the change is acceptable in principle I'll tidy it up and submit
> a patch with all the proper procedure.
I'm not sure if this is ok for YAMON-DT systems, will check on those
systems.
Thanks
- Jiaxun
>
> Opinions welcome
>
> -dan
>
>
> diff --git a/arch/mips/mti-malta/malta-setup.c b/arch/mips/mti-malta/malta-setup.c
> index 21cb3ac1237b..52e731f9b4e2 100644
> --- a/arch/mips/mti-malta/malta-setup.c
> +++ b/arch/mips/mti-malta/malta-setup.c
> @@ -192,7 +192,9 @@ static void __init bonito_quirks_setup(void)
>
> void __init *plat_get_fdt(void)
> {
> - return (void *)__dtb_start;
> + return (fw_arg0 == -2) ?
> + (void *) (KSEG1ADDR(fw_arg1)) :
> + (void *) __dtb_start;
> }
>
> void __init plat_mem_setup(void)
>
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: question: malta doesn't use a1 for fdt from bootloader
2023-12-25 13:33 ` Jiaxun Yang
@ 2024-01-03 13:50 ` Jiaxun Yang
0 siblings, 0 replies; 3+ messages in thread
From: Jiaxun Yang @ 2024-01-03 13:50 UTC (permalink / raw
To: dan, linux-mips@vger.kernel.org
在2023年12月25日十二月 下午1:33,Jiaxun Yang写道:
> 在 2023/12/22 17:51, dan@telent.net 写道:
>>
>> Newbie question:
>>
>> I noticed while writing some test automation with QEMU and U-Boot that
>> the Malta kernel appears to ignore any DTB provided by the bootloader, in
>> favour of using the one embedded into the kernel image. Is there a
>> reason behind this, or is it just not a thing that's been changed since
>> the board was converted to use device tree?
>
> Hi,
>
> It's a bit of history that DeviceTree passed by YAMON bootloader to
> kernel does not compatible with upstream kernel's devicetree bindings,
> so we decided to just omit it.
Hi Dan,
I checked malta YAMON firmware release and can confirm that it is safe
on to do so. These firmwares won't set fw_arg0 to -2.
I think you can make it a patch.
Thanks
- Jiaxun
>
>>
>> I patched my own kernel to check $a1 as the "mips generic" kernel does,
>> and it seems to work, but maybe I'm missing something? I did have to
>> rebuild U-Boot with different CONFIG options to make use of it (I don't
>> khow what real hardware Malta uses for a bootloader) so perhaps it has
>> limited use.
>>
>> If the change is acceptable in principle I'll tidy it up and submit
>> a patch with all the proper procedure.
>
> I'm not sure if this is ok for YAMON-DT systems, will check on those
> systems.
>
> Thanks
> - Jiaxun
>>
>> Opinions welcome
>>
>> -dan
>>
>>
>> diff --git a/arch/mips/mti-malta/malta-setup.c b/arch/mips/mti-malta/malta-setup.c
>> index 21cb3ac1237b..52e731f9b4e2 100644
>> --- a/arch/mips/mti-malta/malta-setup.c
>> +++ b/arch/mips/mti-malta/malta-setup.c
>> @@ -192,7 +192,9 @@ static void __init bonito_quirks_setup(void)
>>
>> void __init *plat_get_fdt(void)
>> {
>> - return (void *)__dtb_start;
>> + return (fw_arg0 == -2) ?
>> + (void *) (KSEG1ADDR(fw_arg1)) :
>> + (void *) __dtb_start;
>> }
>>
>> void __init plat_mem_setup(void)
>>
--
- Jiaxun
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2024-01-03 13:51 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-12-22 17:51 question: malta doesn't use a1 for fdt from bootloader dan
2023-12-25 13:33 ` Jiaxun Yang
2024-01-03 13:50 ` Jiaxun Yang
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.