All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andy Yan <andy.yan@rock-chips.com>
To: Arnd Bergmann <arnd@arndb.de>
Cc: Alexandre Belloni <alexandre.belloni@free-electrons.com>,
	robh+dt@kernel.org, heiko@sntech.de, john.stultz@linaro.org,
	sjg@chromium.org, treding@nvidia.com, galak@codeaurora.org,
	ijc+devicetree@hellion.org.uk, wxt@rock-chips.com,
	catalin.marinas@arm.com, olof@lixom.net, geert+renesas@glider.be,
	linux-rockchip@lists.infradead.org, dbaryshkov@gmail.com,
	sre@kernel.org, jun.nie@linaro.org, pawel.moll@arm.com,
	will.deacon@arm.com, akpm@linux-foundation.org,
	devicetree@vger.kernel.org, linux@arm.linux.org.uk,
	gregkh@linuxfoundation.org, joel@jms.id.au,
	linux-arm-kernel@lists.infradead.org, lorenzo.pieralisi@arm.com,
	khilman@linaro.org, moritz.fischer@ettus.com,
	linux-kernel@vger.kernel.org, mark.rutland@arm.com
Subject: Re: [PATCH v1 0/6] misc: add reboot mode driver
Date: Tue, 29 Dec 2015 15:55:50 +0800	[thread overview]
Message-ID: <56823C86.5010008@rock-chips.com> (raw)
In-Reply-To: <3460735.DIRnhNBgbJ@wuerfel>

Hi Arnd:

On 2015年12月28日 23:28, Arnd Bergmann wrote:
> On Wednesday 23 December 2015 17:31:45 Andy Yan wrote:
>>      I also have the idea to put is in drivers/power/reset,  But considering
>>      this driver have not bind anything about power, so I put it in
>> driver/misc
>>      at last. So I hope if some people can give more suggestions here.
> I vote for drivers/power/reset as well. On some platforms, the two things
> are related, on others they are not, but it's good to have it all in one
> place I think.
     Okay, I will move to drivers/power/reset next version.
>>>>    drivers/soc/rockchip/Kconfig                       |  9 ++
>>>>    drivers/soc/rockchip/Makefile                      |  1 +
>>>>    drivers/soc/rockchip/reboot.c                     | 68 +++++++++++++++
>>> And maybe that part could be made generic instead of rockchip specific.
>>> It simply uses a regmap to do the accesses, I guess a lot of other
>>> platforms will do that. We have syscon-reboot and syscon-poweroff for example.
>>>
>>> I think then we can extend the "framework" by having generic drivers to
>>> store the value in eeprom or nvram for example.
>>>
>>      I also hope the write interface can be generic. But I found some
>> platform
>>      use different hardware to store the value. For example, John's patch
>> use
>>      SRAM on qcom apq8064 to store value for nexus7. It seems there also have
>>      some platform use dram or nvram to store it. And these different
>> hardware use
>>      different write method. I don't have a generic way to handle this.
>>
>>      I have a idea to handle it like this:
>>
>> +static const struct of_device_id reboot_mode_dt_match[] = {
>> +        { .compatible = "linux,reboot-mode-sfr",    /*for magic value
>> stored in special function register, which  can be accessed by regmap*/
>> +                .data = (void *)&reboot-mode-sfr },
> I'd make this one syscon-reboot-mode, to go along with syscon-poweroff
> as implemented by drivers/power/reset/syscon-poweroff.c. The syscon concept
> is already generic enough that we don't need a linux prefix for that.
     Okay, syscon is better.
>> +        { .compatible = "linux,reboot-mode-sram",  /*for magic value
>> stored in
>> +                .data = (void *)&reboot-mode-sram },
> the sram mode should probably follow the generic SRAM binding and make
> the location that stores the reboot mode a separate partition, unless
> we want to store other data in the same partition, in which case we might
> want to use the same implementation as for the nvram.
>
>> +        { .compatible = "linux,reboot-mode-sdram",
>> +                .data = (void *)&reboot-mode-sdram }, /*for magic value
>> stored
> I think "sdram" is not an appropriate name here, as the main system memory
> might use some other technology, e.g. DRAM or DDR2-SDRAM.
>
>> +        { .compatible = "rockchip,reboot-mode-nvram",
>> +                .data = (void *)&reboot-mode-nvram },
>> +        {},
>> +};
> nvram is a complex topic by itself, because there are so many ways to do it.
> I think what you are referring to here is a battery-backed memory that uses
> one or more bytes at a fixed offset to store a particular piece of information,
> as the drivers/char/nvram.c driver does. Maybe we should put the reboot mode
> into that driver then?
>
> There are other nvram drivers at various places in the kernel, and each may
> be slightly different, or completely different, like the EFIVARs driver on
> UEFI firmware or the key/value store on Open Firmware, these probably need
> their own methods and not share the generic driver.
>
>>      the data point to different hardware access method.
>>
>>     Hope to see more suggestions from you.
> It's probably best to leave these four examples as separate drivers and we can
> add further ones when needed.
>
> 	Arnd
>
>
     Okay, thanks for your suggestion.  I will add the reboot-mode.c as 
the core library, syscon-reboot-mode.c as one example first. As for 
sram/dram/nvram case, I am not familiar with them, so hope there are 
some hero will extend them when needed.



WARNING: multiple messages have this Message-ID (diff)
From: Andy Yan <andy.yan-TNX95d0MmH7DzftRWevZcw@public.gmane.org>
To: Arnd Bergmann <arnd-r2nGTMty4D4@public.gmane.org>
Cc: Alexandre Belloni
	<alexandre.belloni-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>,
	robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org,
	heiko-4mtYJXux2i+zQB+pC5nmwQ@public.gmane.org,
	john.stultz-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org,
	sjg-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org,
	treding-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org,
	galak-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org,
	ijc+devicetree-KcIKpvwj1kUDXYZnReoRVg@public.gmane.org,
	wxt-TNX95d0MmH7DzftRWevZcw@public.gmane.org,
	catalin.marinas-5wv7dgnIgG8@public.gmane.org,
	olof-nZhT3qVonbNeoWH0uzbU5w@public.gmane.org,
	geert+renesas-gXvu3+zWzMSzQB+pC5nmwQ@public.gmane.org,
	linux-rockchip-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
	dbaryshkov-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org,
	sre-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org,
	jun.nie-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org,
	pawel.moll-5wv7dgnIgG8@public.gmane.org,
	will.deacon-5wv7dgnIgG8@public.gmane.org,
	akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org,
	devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-lFZ/pmaqli7XmaaqVzeoHQ@public.gmane.org,
	gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org,
	joel-U3u1mxZcP9KHXe+LvDLADg@public.gmane.org,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
	lorenzo.pieralisi-5wv7dgnIgG8@public.gmane.org,
	khilman-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org,
	moritz.fischer-+aYTwkv1SeIAvxtiuMwx3w@public.gmane.org,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	mark.rutland-5wv7dgnIgG8@public.gmane.org
Subject: Re: [PATCH v1 0/6] misc: add reboot mode driver
Date: Tue, 29 Dec 2015 15:55:50 +0800	[thread overview]
Message-ID: <56823C86.5010008@rock-chips.com> (raw)
In-Reply-To: <3460735.DIRnhNBgbJ@wuerfel>

Hi Arnd:

On 2015年12月28日 23:28, Arnd Bergmann wrote:
> On Wednesday 23 December 2015 17:31:45 Andy Yan wrote:
>>      I also have the idea to put is in drivers/power/reset,  But considering
>>      this driver have not bind anything about power, so I put it in
>> driver/misc
>>      at last. So I hope if some people can give more suggestions here.
> I vote for drivers/power/reset as well. On some platforms, the two things
> are related, on others they are not, but it's good to have it all in one
> place I think.
     Okay, I will move to drivers/power/reset next version.
>>>>    drivers/soc/rockchip/Kconfig                       |  9 ++
>>>>    drivers/soc/rockchip/Makefile                      |  1 +
>>>>    drivers/soc/rockchip/reboot.c                     | 68 +++++++++++++++
>>> And maybe that part could be made generic instead of rockchip specific.
>>> It simply uses a regmap to do the accesses, I guess a lot of other
>>> platforms will do that. We have syscon-reboot and syscon-poweroff for example.
>>>
>>> I think then we can extend the "framework" by having generic drivers to
>>> store the value in eeprom or nvram for example.
>>>
>>      I also hope the write interface can be generic. But I found some
>> platform
>>      use different hardware to store the value. For example, John's patch
>> use
>>      SRAM on qcom apq8064 to store value for nexus7. It seems there also have
>>      some platform use dram or nvram to store it. And these different
>> hardware use
>>      different write method. I don't have a generic way to handle this.
>>
>>      I have a idea to handle it like this:
>>
>> +static const struct of_device_id reboot_mode_dt_match[] = {
>> +        { .compatible = "linux,reboot-mode-sfr",    /*for magic value
>> stored in special function register, which  can be accessed by regmap*/
>> +                .data = (void *)&reboot-mode-sfr },
> I'd make this one syscon-reboot-mode, to go along with syscon-poweroff
> as implemented by drivers/power/reset/syscon-poweroff.c. The syscon concept
> is already generic enough that we don't need a linux prefix for that.
     Okay, syscon is better.
>> +        { .compatible = "linux,reboot-mode-sram",  /*for magic value
>> stored in
>> +                .data = (void *)&reboot-mode-sram },
> the sram mode should probably follow the generic SRAM binding and make
> the location that stores the reboot mode a separate partition, unless
> we want to store other data in the same partition, in which case we might
> want to use the same implementation as for the nvram.
>
>> +        { .compatible = "linux,reboot-mode-sdram",
>> +                .data = (void *)&reboot-mode-sdram }, /*for magic value
>> stored
> I think "sdram" is not an appropriate name here, as the main system memory
> might use some other technology, e.g. DRAM or DDR2-SDRAM.
>
>> +        { .compatible = "rockchip,reboot-mode-nvram",
>> +                .data = (void *)&reboot-mode-nvram },
>> +        {},
>> +};
> nvram is a complex topic by itself, because there are so many ways to do it.
> I think what you are referring to here is a battery-backed memory that uses
> one or more bytes at a fixed offset to store a particular piece of information,
> as the drivers/char/nvram.c driver does. Maybe we should put the reboot mode
> into that driver then?
>
> There are other nvram drivers at various places in the kernel, and each may
> be slightly different, or completely different, like the EFIVARs driver on
> UEFI firmware or the key/value store on Open Firmware, these probably need
> their own methods and not share the generic driver.
>
>>      the data point to different hardware access method.
>>
>>     Hope to see more suggestions from you.
> It's probably best to leave these four examples as separate drivers and we can
> add further ones when needed.
>
> 	Arnd
>
>
     Okay, thanks for your suggestion.  I will add the reboot-mode.c as 
the core library, syscon-reboot-mode.c as one example first. As for 
sram/dram/nvram case, I am not familiar with them, so hope there are 
some hero will extend them when needed.


--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

WARNING: multiple messages have this Message-ID (diff)
From: andy.yan@rock-chips.com (Andy Yan)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v1 0/6] misc: add reboot mode driver
Date: Tue, 29 Dec 2015 15:55:50 +0800	[thread overview]
Message-ID: <56823C86.5010008@rock-chips.com> (raw)
In-Reply-To: <3460735.DIRnhNBgbJ@wuerfel>

Hi Arnd:

On 2015?12?28? 23:28, Arnd Bergmann wrote:
> On Wednesday 23 December 2015 17:31:45 Andy Yan wrote:
>>      I also have the idea to put is in drivers/power/reset,  But considering
>>      this driver have not bind anything about power, so I put it in
>> driver/misc
>>      at last. So I hope if some people can give more suggestions here.
> I vote for drivers/power/reset as well. On some platforms, the two things
> are related, on others they are not, but it's good to have it all in one
> place I think.
     Okay, I will move to drivers/power/reset next version.
>>>>    drivers/soc/rockchip/Kconfig                       |  9 ++
>>>>    drivers/soc/rockchip/Makefile                      |  1 +
>>>>    drivers/soc/rockchip/reboot.c                     | 68 +++++++++++++++
>>> And maybe that part could be made generic instead of rockchip specific.
>>> It simply uses a regmap to do the accesses, I guess a lot of other
>>> platforms will do that. We have syscon-reboot and syscon-poweroff for example.
>>>
>>> I think then we can extend the "framework" by having generic drivers to
>>> store the value in eeprom or nvram for example.
>>>
>>      I also hope the write interface can be generic. But I found some
>> platform
>>      use different hardware to store the value. For example, John's patch
>> use
>>      SRAM on qcom apq8064 to store value for nexus7. It seems there also have
>>      some platform use dram or nvram to store it. And these different
>> hardware use
>>      different write method. I don't have a generic way to handle this.
>>
>>      I have a idea to handle it like this:
>>
>> +static const struct of_device_id reboot_mode_dt_match[] = {
>> +        { .compatible = "linux,reboot-mode-sfr",    /*for magic value
>> stored in special function register, which  can be accessed by regmap*/
>> +                .data = (void *)&reboot-mode-sfr },
> I'd make this one syscon-reboot-mode, to go along with syscon-poweroff
> as implemented by drivers/power/reset/syscon-poweroff.c. The syscon concept
> is already generic enough that we don't need a linux prefix for that.
     Okay, syscon is better.
>> +        { .compatible = "linux,reboot-mode-sram",  /*for magic value
>> stored in
>> +                .data = (void *)&reboot-mode-sram },
> the sram mode should probably follow the generic SRAM binding and make
> the location that stores the reboot mode a separate partition, unless
> we want to store other data in the same partition, in which case we might
> want to use the same implementation as for the nvram.
>
>> +        { .compatible = "linux,reboot-mode-sdram",
>> +                .data = (void *)&reboot-mode-sdram }, /*for magic value
>> stored
> I think "sdram" is not an appropriate name here, as the main system memory
> might use some other technology, e.g. DRAM or DDR2-SDRAM.
>
>> +        { .compatible = "rockchip,reboot-mode-nvram",
>> +                .data = (void *)&reboot-mode-nvram },
>> +        {},
>> +};
> nvram is a complex topic by itself, because there are so many ways to do it.
> I think what you are referring to here is a battery-backed memory that uses
> one or more bytes at a fixed offset to store a particular piece of information,
> as the drivers/char/nvram.c driver does. Maybe we should put the reboot mode
> into that driver then?
>
> There are other nvram drivers at various places in the kernel, and each may
> be slightly different, or completely different, like the EFIVARs driver on
> UEFI firmware or the key/value store on Open Firmware, these probably need
> their own methods and not share the generic driver.
>
>>      the data point to different hardware access method.
>>
>>     Hope to see more suggestions from you.
> It's probably best to leave these four examples as separate drivers and we can
> add further ones when needed.
>
> 	Arnd
>
>
     Okay, thanks for your suggestion.  I will add the reboot-mode.c as 
the core library, syscon-reboot-mode.c as one example first. As for 
sram/dram/nvram case, I am not familiar with them, so hope there are 
some hero will extend them when needed.

  parent reply	other threads:[~2015-12-29  7:56 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-12-22  9:02 [PATCH v1 0/6] misc: add reboot mode driver Andy Yan
2015-12-22  9:02 ` Andy Yan
2015-12-22  9:05 ` [PATCH v1 1/6] dt-bindings: misc: add document for reboot-mode driver Andy Yan
2015-12-22  9:05   ` Andy Yan
2015-12-23  0:32   ` Rob Herring
2015-12-23  0:32     ` Rob Herring
2015-12-23  0:32     ` Rob Herring
2015-12-23  8:37     ` Moritz Fischer
2015-12-23  8:37       ` Moritz Fischer
2015-12-23  8:37       ` Moritz Fischer
2015-12-23  9:01     ` Andy Yan
2015-12-23  9:01       ` Andy Yan
2015-12-23  9:01       ` Andy Yan
2015-12-22  9:08 ` [PATCH v1 2/6] dt-bindings: soc: add document for rockchip " Andy Yan
2015-12-22  9:08   ` Andy Yan
2015-12-22  9:10 ` [PATCH v1 3/6] misc: add reboot mode driver Andy Yan
2015-12-22  9:10   ` Andy Yan
2015-12-22  9:13 ` [PATCH v1 4/6] soc: rockchip: " Andy Yan
2015-12-22  9:13   ` Andy Yan
2015-12-22  9:16 ` [PATCH v1 5/6] ARM: dts: rockchip: add reboot-mode node Andy Yan
2015-12-22  9:16   ` Andy Yan
2015-12-22 11:23   ` Heiko Stübner
2015-12-22 11:23     ` Heiko Stübner
2015-12-22 11:23     ` Heiko Stübner
2015-12-22 13:37     ` Andy Yan
2015-12-22  9:19 ` [PATCH v1 6/6] ARM64: " Andy Yan
2015-12-22  9:19   ` Andy Yan
2015-12-22 16:47 ` [PATCH v1 0/6] misc: add reboot mode driver Alexandre Belloni
2015-12-22 16:47   ` Alexandre Belloni
2015-12-22 16:47   ` Alexandre Belloni
2015-12-23  9:31   ` Andy Yan
2015-12-23  9:31     ` Andy Yan
2015-12-23  9:31     ` Andy Yan
2015-12-28 15:28     ` Arnd Bergmann
2015-12-28 15:28       ` Arnd Bergmann
2015-12-28 15:28       ` Arnd Bergmann
2015-12-28 15:56       ` Heiko Stübner
2015-12-28 15:56         ` Heiko Stübner
2015-12-28 16:09         ` Arnd Bergmann
2015-12-28 16:09           ` Arnd Bergmann
2015-12-28 16:09           ` Arnd Bergmann
2015-12-29  7:55       ` Andy Yan [this message]
2015-12-29  7:55         ` Andy Yan
2015-12-29  7:55         ` Andy Yan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=56823C86.5010008@rock-chips.com \
    --to=andy.yan@rock-chips.com \
    --cc=akpm@linux-foundation.org \
    --cc=alexandre.belloni@free-electrons.com \
    --cc=arnd@arndb.de \
    --cc=catalin.marinas@arm.com \
    --cc=dbaryshkov@gmail.com \
    --cc=devicetree@vger.kernel.org \
    --cc=galak@codeaurora.org \
    --cc=geert+renesas@glider.be \
    --cc=gregkh@linuxfoundation.org \
    --cc=heiko@sntech.de \
    --cc=ijc+devicetree@hellion.org.uk \
    --cc=joel@jms.id.au \
    --cc=john.stultz@linaro.org \
    --cc=jun.nie@linaro.org \
    --cc=khilman@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-rockchip@lists.infradead.org \
    --cc=linux@arm.linux.org.uk \
    --cc=lorenzo.pieralisi@arm.com \
    --cc=mark.rutland@arm.com \
    --cc=moritz.fischer@ettus.com \
    --cc=olof@lixom.net \
    --cc=pawel.moll@arm.com \
    --cc=robh+dt@kernel.org \
    --cc=sjg@chromium.org \
    --cc=sre@kernel.org \
    --cc=treding@nvidia.com \
    --cc=will.deacon@arm.com \
    --cc=wxt@rock-chips.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.