From: Felipe Balbi <balbi@ti.com>
To: Olof Johansson <olof@lixom.net>
Cc: <linux-kernel@vger.kernel.org>, <keescook@chromium.org>,
<bleung@chromium.org>
Subject: Re: [PATCH] platform/chrome: Add pstore platform_device
Date: Mon, 25 Nov 2013 13:52:50 -0600 [thread overview]
Message-ID: <20131125195250.GD18046@saruman.home> (raw)
In-Reply-To: <1385408226-22369-1-git-send-email-olof@lixom.net>
[-- Attachment #1: Type: text/plain, Size: 4900 bytes --]
Hi,
On Mon, Nov 25, 2013 at 11:37:06AM -0800, Olof Johansson wrote:
> Add the ramoops pstore device so that we get logs of panics across reboots.
>
> Signed-off-by: Olof Johansson <olof@lixom.net>
> ---
>
> drivers/platform/chrome/Kconfig | 14 +++++
> drivers/platform/chrome/Makefile | 1 +
> drivers/platform/chrome/chromeos_pstore.c | 101 ++++++++++++++++++++++++++++++
> 3 files changed, 116 insertions(+)
> create mode 100644 drivers/platform/chrome/chromeos_pstore.c
>
> diff --git a/drivers/platform/chrome/Kconfig b/drivers/platform/chrome/Kconfig
> index b13303e75a34..06c53c8132ad 100644
> --- a/drivers/platform/chrome/Kconfig
> +++ b/drivers/platform/chrome/Kconfig
> @@ -25,4 +25,18 @@ config CHROMEOS_LAPTOP
> If you have a supported Chromebook, choose Y or M here.
> The module will be called chromeos_laptop.
>
> +config CHROMEOS_PSTORE
> + tristate "Chrome OS pstore support"
> + ---help---
> + This module instantiates the persistent storage on x86 ChromeOS
> + devices. It can be used to store away console logs and crash
> + information across reboots.
> +
> + The range of memory used is 0xf00000-0x1000000, tradionally the
> + memory used to back VGA controller memory.
> +
> + If you have a supported Chromebook, choose Y or M here.
> + The module will be called chromeos_pstore.
> +
> +
> endif # CHROMEOS_PLATFORMS
> diff --git a/drivers/platform/chrome/Makefile b/drivers/platform/chrome/Makefile
> index 015e9195e226..2b860ca7450f 100644
> --- a/drivers/platform/chrome/Makefile
> +++ b/drivers/platform/chrome/Makefile
> @@ -1,2 +1,3 @@
>
> obj-$(CONFIG_CHROMEOS_LAPTOP) += chromeos_laptop.o
> +obj-$(CONFIG_CHROMEOS_PSTORE) += chromeos_pstore.o
> diff --git a/drivers/platform/chrome/chromeos_pstore.c b/drivers/platform/chrome/chromeos_pstore.c
> new file mode 100644
> index 000000000000..e0e0e65cf442
> --- /dev/null
> +++ b/drivers/platform/chrome/chromeos_pstore.c
> @@ -0,0 +1,101 @@
> +/*
> + * chromeos_pstore.c - Driver to instantiate Chromebook ramoops device
> + *
> + * Copyright (C) 2013 Google, Inc.
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License as published by
> + * the Free Software Foundation, version 2 of the License.
> + */
> +
> +#include <linux/dmi.h>
> +#include <linux/module.h>
> +#include <linux/platform_device.h>
> +#include <linux/pstore_ram.h>
> +
> +static struct dmi_system_id chromeos_pstore_dmi_table[] __initdata = {
> + {
> + /*
> + * Today all Chromebooks/boxes ship with GOOGLE as vendor and
> + * coreboot as bios vendor. No other systems with this
> + * combination are known to date.
> + */
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "GOOGLE"),
> + DMI_MATCH(DMI_BIOS_VENDOR, "coreboot"),
> + },
> + },
> + {
> + /*
> + * The first Samsung Chromebox and Chromebook Series 5 550 use
> + * coreboot but with Samsung as the system vendor.
> + */
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "SAMSUNG"),
> + DMI_MATCH(DMI_BIOS_VENDOR, "coreboot"),
> + },
> + },
> + {
> + /* x86-alex, the first Samsung Chromebook. */
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD."),
> + DMI_MATCH(DMI_PRODUCT_NAME, "Alex"),
> + },
> + },
> + {
> + /* x86-mario, the Cr-48 pilot device from Google. */
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "IEC"),
> + DMI_MATCH(DMI_PRODUCT_NAME, "Mario"),
> + },
> + },
> + {
> + /* x86-zgb, the first Acer Chromebook. */
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "ACER"),
> + DMI_MATCH(DMI_PRODUCT_NAME, "ZGB"),
> + },
> + },
> + { }
> +};
> +MODULE_DEVICE_TABLE(dmi, chromeos_pstore_dmi_table);
if you have this ...
> +/*
> + * On x86 chromebooks/boxes, the firmware will keep the legacy VGA memory
> + * range untouched across reboots, so we use that to store our pstore
> + * contents for panic logs, etc.
> + */
> +static struct ramoops_platform_data chromeos_ramoops_data = {
> + .mem_size = 0x100000,
> + .mem_address = 0xf00000,
> + .record_size = 0x20000,
> + .console_size = 0x20000,
> + .ftrace_size = 0x20000,
> + .dump_oops = 1,
> +};
> +
> +static struct platform_device chromeos_ramoops = {
> + .name = "ramoops",
> + .dev = {
> + .platform_data = &chromeos_ramoops_data,
> + },
> +};
> +
> +static int __init chromeos_pstore_init(void)
> +{
> + if (dmi_check_system(chromeos_pstore_dmi_table))
is this check really necessary ? I would assume that your probe would
only be called if the device matches the dmi MODULE_DEVICE_TABLE().
Except that you don't have a probe function which is quite odd. Also,
there's nothing using chromeos_ramoops_data, how does this work ?
cheers
--
balbi
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
next prev parent reply other threads:[~2013-11-25 19:53 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-11-25 19:37 [PATCH] platform/chrome: Add pstore platform_device Olof Johansson
2013-11-25 19:52 ` Felipe Balbi [this message]
2013-11-25 19:59 ` Olof Johansson
2013-11-25 20:03 ` Felipe Balbi
2013-11-25 20:04 ` Randy Dunlap
2013-11-25 20:49 ` Olof Johansson
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=20131125195250.GD18046@saruman.home \
--to=balbi@ti.com \
--cc=bleung@chromium.org \
--cc=keescook@chromium.org \
--cc=linux-kernel@vger.kernel.org \
--cc=olof@lixom.net \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox