Re: [PATCH] ARM: /proc/atags: Export also for DT

From: Nicolas Pitre
Date: Tue Jan 27 2015 - 15:03:28 EST


On Tue, 27 Jan 2015, Russell King - ARM Linux wrote:

> On Tue, Jan 27, 2015 at 03:32:25PM +0100, Pali Rohár wrote:
> > On Tuesday 27 January 2015 15:16:45 Rob Herring wrote:
> > > What other devices? Where is bootreason in the list of ATAGS:
> > >
> > > #define ATAG_MEM 0x54410002
> > > #define ATAG_VIDEOTEXT 0x54410003
> > > #define ATAG_RAMDISK 0x54410004
> > > #define ATAG_INITRD 0x54410005
> > > #define ATAG_INITRD2 0x54420005
> > > #define ATAG_SERIAL 0x54410006
> > > #define ATAG_REVISION 0x54410007
> > > #define ATAG_VIDEOLFB 0x54410008
> > > #define ATAG_CMDLINE 0x54410009
> > > #define ATAG_ACORN 0x41000101
> > > #define ATAG_MEMCLK 0x41000402
> > >
> > > Rob
> >
> > Each device is using own proprietary atag (or other information)
> > to pass bootreason from bootloader to kernel. No standard way :-(

So that's what Pavel was alluding to.

> The reason that happens is because people refuse to discuss their
> requirements here - just like people refuse to report userspace API
> regressions to kernel people. This rather pisses me off, because
> it creates all sorts of horrid per-platform yuck.
>
> We _could_ (and have in the past) turned round and refused to support
> these kinds of hacks - which IMHO is quite a reasonable stance to
> take: the message we should be sending is "if you wish to design
> new methods without discussing it with us, we reserve the right not
> to support them in mainline kernels; please discuss with us your
> requirements."
>
> Each time that we accept one of these hacks, we're sending a message
> that says "it's okay to work in this crappy way".
>
> Yes, I realise that the N900 has little in the way of support, and we
> can't exert that kind of back pressure (since there's no one to direct
> that onto to effect any change) so I guess we just have to live with it.

If the method is: "let's pass non-standard ATAGs around and have ad-hoc
user space code interpret it in some arbitrary way" then it's a complete
abomination.

> > I think this kind of information (how was board/computer started)
> > can be useful also for other architectures. E.g. on laptop you
> > would like to know if if was started by RTC, power button,
> > WakeOnLan, another ACPI event, rebooted machine, watchdog, etc...
> > And scripts can act depending on this event (when by RTC, you
> > need to run some planned job, when by watchdog reset you should
> > check what caused that reason...).

Useful when properly designed and generic enough to be shared.

I'd suggest a DT property be proposed for that purpose if it doesn't
already exist. That at least has a chance to be generically useful.


Nicolas