Re: [PATCH v2 2/2] MIPS: store the appended dtb address in a variable

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, 2016-07-17 at 14:52 +0200, Jonas Gorski wrote:
> On 17 July 2016 at 14:28, Daniel Gimpelevich
> <daniel@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx> wrote:
> > On Mon, 2016-06-20 at 11:27 +0200, Jonas Gorski wrote:
> >> Instead of rewriting the arguments to match the UHI spec, store the
> >> address of a appended or UHI supplied dtb in fw_supplied_dtb.
> >>
> >> That way the original bootloader arugments are kept intact while still
> >> making the use of an appended dtb invisible for mach code.
> >>
> >> Mach code can still find out if it is an appended dtb by comparing
> >> fw_arg1 with fw_supplied_dtb.
> >>
> >> Signed-off-by: Jonas Gorski <jogo@xxxxxxxxxxx>
> >> ---
> >> v1 -> v2:
> >>  * no changes
> >>
> >>  arch/mips/ath79/setup.c          |  4 ++--
> >>  arch/mips/bmips/setup.c          |  4 ++--
> >>  arch/mips/include/asm/bootinfo.h |  4 ++++
> >>  arch/mips/kernel/head.S          | 21 ++++++++++++++-------
> >>  arch/mips/kernel/setup.c         |  4 ++++
> >>  arch/mips/lantiq/prom.c          |  4 ++--
> >>  arch/mips/pic32/pic32mzda/init.c |  4 ++--
> >>  7 files changed, 30 insertions(+), 15 deletions(-)
> > [snip]
> >> -       else if (fw_arg0 == -2) /* UHI interface */
> >> -               dtb = (void *)fw_arg1;
> >> +       else if (fw_passed_dtb) /* UHI interface */
> >> +               dtb = (void *)fw_passed_dtb;
> >
> > I just now realized that this is also incorrect, on each platform. The
> > check for fw_passed_dtb should be in addition (prior) to checking for
> > UHI via fw_arg0 == -2, not instead of it.
> 
> No it isn't, the code in head.S already does this, so there is no need
> to check fw_arg0 again, unless you need to know if this was an
> appended dtb or a UHI passed one. The whole point of using
> fw_passed_dtb is that you *don't* need to check individually for UHI
> and appended dtb.
> 
> 
> Jonas

Not quite. The idea behind the old code was to mimic UHI bootloaders so
that the kernel would not distinguish between them and a passed DTB.
With fw_passed_dtb separate, the case of a real UHI bootloader is
unhandled unless fw_arg0 is checked separately after it. It cannot
presently be known for certain which platforms will have UHI available,
and it does not hurt the kernel to conform to an overall MIPS spec even
when unused, so removing the check for fw_arg0 even in the presence of a
check for fw_passed_dtb at this point is feature removal, which there is
no need to do.





[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux