public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Mitch Bradley <wmb@firmworks.com>
To: Yinghai Lu <yhlu.kernel@gmail.com>
Cc: Andres Salomon <dilinger@queued.net>,
	"H. Peter Anvin" <hpa@zytor.com>,
	"Eric W. Biederman" <ebiederm@xmission.com>,
	Ingo Molnar <mingo@elte.hu>,
	Andrew Morton <akpm@linux-foundation.org>,
	Joseph Fannin <jfannin@gmail.com>,
	linux-kernel@vger.kernel.org, jordan.crouse@amd.com
Subject: Re: [PATCH 1/2] OLPC: Add support for calling into Open Firmware
Date: Sun, 20 Apr 2008 17:09:54 -1000	[thread overview]
Message-ID: <480C0582.9010509@firmworks.com> (raw)
In-Reply-To: <86802c440804200334t5cdcd100rfc41e9b1bf379109@mail.gmail.com>



Yinghai Lu wrote:
> On Sat, Apr 19, 2008 at 10:39 AM, Andres Salomon <dilinger@queued.net> wrote:
>   
>>  This adds 32-bit support for calling into OFW from the kernel.  It's useful
>>  for querying the firmware for misc hardware information, fetching the device
>>  tree, etc.
>>
>>  There's potentially no reason why other platforms couldn't use this, but
>>  currently OLPC is the main user of it.
>>
>>  This work was originally done by Mitch Bradley.
>>
>>  Signed-off-by: Andres Salomon <dilinger@debian.org>
>>  ---
>>   arch/x86/Kconfig          |    8 +++++
>>   arch/x86/kernel/Makefile  |    1 +
>>   arch/x86/kernel/head_32.S |   27 ++++++++++++++++
>>   arch/x86/kernel/ofw.c     |   75 +++++++++++++++++++++++++++++++++++++++++++++
>>   include/asm-x86/ofw.h     |   50 ++++++++++++++++++++++++++++++
>>   include/asm-x86/setup.h   |    1 +
>>   6 files changed, 162 insertions(+), 0 deletions(-)
>>   create mode 100644 arch/x86/kernel/ofw.c
>>   create mode 100644 include/asm-x86/ofw.h
>>
>>  diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
>>  index 3b9089b..ce56105 100644
>>  --- a/arch/x86/Kconfig
>>  +++ b/arch/x86/Kconfig
>>  @@ -661,6 +661,14 @@ config I8K
>>           Say Y if you intend to run this kernel on a Dell Inspiron 8000.
>>           Say N otherwise.
>>
>>  +config OPEN_FIRMWARE
>>  +       bool "Support for Open Firmware"
>>  +       default y if OLPC
>>  +       ---help---
>>  +         This option adds support for the implementation of Open Firmware
>>  +         that is used on the OLPC XO laptop.
>>  +         If unsure, say N here.
>>  +
>>   config X86_REBOOTFIXUPS
>>         def_bool n
>>         prompt "Enable X86 board specific fixups for reboot"
>>  diff --git a/arch/x86/kernel/Makefile b/arch/x86/kernel/Makefile
>>  index 9575754..d33600e 100644
>>  --- a/arch/x86/kernel/Makefile
>>  +++ b/arch/x86/kernel/Makefile
>>  @@ -54,6 +54,7 @@ obj-$(CONFIG_X86_TRAMPOLINE)  += trampoline_$(BITS).o
>>   obj-$(CONFIG_X86_MPPARSE)      += mpparse_$(BITS).o
>>   obj-$(CONFIG_X86_LOCAL_APIC)   += apic_$(BITS).o nmi_$(BITS).o
>>   obj-$(CONFIG_X86_IO_APIC)      += io_apic_$(BITS).o
>>  +obj-$(CONFIG_OPEN_FIRMWARE)    += ofw.o
>>   obj-$(CONFIG_X86_REBOOTFIXUPS) += reboot_fixups_32.o
>>   obj-$(CONFIG_KEXEC)            += machine_kexec_$(BITS).o
>>   obj-$(CONFIG_KEXEC)            += relocate_kernel_$(BITS).o crash.o
>>  diff --git a/arch/x86/kernel/head_32.S b/arch/x86/kernel/head_32.S
>>  index 74d87ea..c9d2d00 100644
>>  --- a/arch/x86/kernel/head_32.S
>>  +++ b/arch/x86/kernel/head_32.S
>>  @@ -132,6 +132,33 @@ ENTRY(startup_32)
>>         movsl
>>   1:
>>
>>  +#ifdef CONFIG_OPEN_FIRMWARE
>>  +/*
>>  + * If Open Firmware booted us, save the OFW client interface callback address
>>  + * and preserve the OFW page mappings by priming the kernel's new page
>>  + * directory area with a copy of the OFW page directory.  That lets OFW stay
>>  + * resident in high memory (high in both the virtual and physical spaces)
>>  + * for at least long enough to copy out the device tree.
>>  + */
>>  +       movl $pa(boot_params + OFW_INFO_OFFSET), %ebp
>>  +       cmpl $0x2057464F, (%ebp)                /* Magic number "OFW " */
>>  +       jne 4f
>>  +
>>  +       mov 0x8(%ebp), %eax                     /* Save callback address */
>>  +       mov %eax, pa(call_firmware)
>>  +
>>  +       /* Copy the OFW pdir into swapper_pg_dir */
>>  +       movl %esi, %edx         /* save %esi */
>>  +       movl $pa(swapper_pg_dir), %edi
>>  +       movl %cr3, %esi         /* Source is current pg_dir base address */
>>  +       movl $1024, %ecx        /* Number of page directory entries */
>>  +       rep
>>  +       movsl
>>  +       movl %edx, %esi         /* restore %esi */
>>  +4:
>>  +
>>  +#endif
>>  +
>>   #ifdef CONFIG_PARAVIRT
>>         /* This is can only trip for a broken bootloader... */
>>         cmpw $0x207, pa(boot_params + BP_version)
>>  diff --git a/arch/x86/kernel/ofw.c b/arch/x86/kernel/ofw.c
>>  new file mode 100644
>>  index 0000000..14036aa
>>  --- /dev/null
>>  +++ b/arch/x86/kernel/ofw.c
>>  @@ -0,0 +1,75 @@
>>  +/*
>>  + * Open Firmware client interface for 32-bit systems.
>>  + *
>>  + * Copyright (c) 2007  Mitch Bradley <wmb@firmworks.com>
>>  + * Copyright (c) 2007-2008  Andres Salomon <dilinger@debian.org>
>>  + *
>>  + * 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; either version 2 of the License, or
>>  + * (at your option) any later version.
>>  + */
>>  +
>>  +#include <linux/kernel.h>
>>  +#include <linux/spinlock.h>
>>  +#include <linux/module.h>
>>  +#include <asm/ofw.h>
>>  +
>>  +/*
>>  + * This code is intended to be portable to any 32-bit Open Firmware
>>  + * implementation with a standard client interface that can be
>>  + * called when Linux is running.
>>     
>
> how about changing to ofw_32.c?
>
> YH
>   

Is your suggestion to change the filename from "ofw.c" to "ofw_32.c"?  
That seems like a good idea to me.


  parent reply	other threads:[~2008-04-21  3:10 UTC|newest]

Thread overview: 109+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-04-18  8:47 2.6.25-mm1 Andrew Morton
2008-04-18 11:26 ` [PATCH] 2.6.25-mm1 - Build Failure with PWRficient onchip memory controller driver Kamalesh Babulal
2008-04-18 13:02 ` StackProtector Oopses - Re: 2.6.25-mm1 Reuben Farrelly
2008-04-18 13:36   ` Ingo Molnar
2008-04-18 13:51     ` Arjan van de Ven
2008-04-18 14:41       ` Reuben Farrelly
2008-04-18 14:49     ` Reuben Farrelly
2008-04-21 15:06       ` Ingo Molnar
2008-04-22  1:48         ` Arjan van de Ven
2008-04-22  2:04           ` Valdis.Kletnieks
2008-04-22  8:34           ` Ingo Molnar
2008-04-22 14:29             ` Arjan van de Ven
2008-04-18 16:40 ` 2.6.25-mm1 (build error: driver core) Randy Dunlap
2008-04-18 16:56   ` Greg KH
2008-04-18 18:38     ` Dan Williams
2008-04-18 16:45 ` 2.6.25-mm1 (build error: trace selftest) Randy Dunlap
2008-04-18 20:14 ` 2.6.25-mm1 Valdis.Kletnieks
2008-04-18 23:09 ` 2.6.25-mm1: orphaned files after build Alexey Dobriyan
2008-04-19  2:13 ` 2.6.25-mm1 Joseph Fannin
2008-04-19  3:02   ` 2.6.25-mm1 Andrew Morton
2008-04-19  4:14     ` 2.6.25-mm1 Dmitry Torokhov
2008-04-19  4:29       ` 2.6.25-mm1 Andrew Morton
2008-04-19  6:33         ` 2.6.25-mm1 Joseph Fannin
2008-04-21 11:07         ` 2.6.25-mm1 Takashi Iwai
2008-04-21 17:44           ` 2.6.25-mm1 (snd-pcsp causes driver conflict) Stas Sergeev
2008-04-22 10:09             ` Takashi Iwai
2008-04-22 17:54               ` Stas Sergeev
2008-04-23  8:55                 ` Takashi Iwai
2008-04-23 14:14                   ` Takashi Iwai
2008-04-21 19:45           ` 2.6.25-mm1 Stas Sergeev
2008-04-21 14:06         ` 2.6.25-mm1 Takashi Iwai
2008-04-21 17:55           ` 2.6.25-mm1 (snd-pcsp doesn't like DEBUG_PAGEALLOC) Stas Sergeev
2008-04-22 10:13             ` Takashi Iwai
2008-04-22 14:01               ` Dmitry Torokhov
2008-04-22 16:42                 ` Stas Sergeev
2008-04-22 18:31               ` Stas Sergeev
2008-04-23  8:49                 ` Takashi Iwai
2008-04-23 14:18                   ` Takashi Iwai
2008-04-23 20:02                   ` Stas Sergeev
2008-04-24  9:40                     ` Takashi Iwai
2008-04-25  3:51                       ` Stas Sergeev
2008-04-25  6:28                         ` Takashi Iwai
2008-04-25 16:45                           ` Stas Sergeev
2008-04-25 16:51                             ` Takashi Iwai
2008-04-25 17:25                               ` Stas Sergeev
2008-05-02 16:44                               ` Takashi Iwai
2008-05-02 16:57                                 ` Stas Sergeev
2008-05-06 10:20                                   ` Takashi Iwai
2008-05-06 16:51                                     ` Stas Sergeev
2008-04-25 18:09                             ` Dmitry Torokhov
2008-04-25 18:31                               ` Stas Sergeev
2008-04-25 18:37                                 ` Dmitry Torokhov
2008-04-19  2:25 ` 2.6.25-mm1 Joseph Fannin
2008-04-19  3:08   ` 2.6.25-mm1 Andrew Morton
2008-04-19  3:10 ` 2.6.25-mm1 Joseph Fannin
2008-04-19  3:29   ` 2.6.25-mm1 Andrew Morton
2008-04-19 13:25     ` 2.6.25-mm1 Andres Salomon
2008-04-19 17:38       ` 2.6.25-mm1 Andrew Morton
2008-04-19 17:50         ` 2.6.25-mm1 Andres Salomon
2008-04-21 14:56           ` 2.6.25-mm1 Jordan Crouse
2008-04-21 15:05             ` 2.6.25-mm1 Andres Salomon
2008-04-21 15:12               ` 2.6.25-mm1 Jordan Crouse
2008-04-19 17:39       ` [PATCH 1/2] OLPC: Add support for calling into Open Firmware Andres Salomon
2008-04-20 10:34         ` Yinghai Lu
2008-04-20 12:07           ` H. Peter Anvin
2008-04-20 17:59             ` Andres Salomon
2008-04-20 18:42               ` Mitch Bradley
2008-04-20 19:12                 ` H. Peter Anvin
2008-04-21  3:39                   ` Mitch Bradley
2008-04-21  4:54                     ` Yinghai Lu
2008-04-21  8:22                       ` Mitch Bradley
2008-04-21 11:36                     ` H. Peter Anvin
2008-04-21 13:09                       ` H. Peter Anvin
2008-04-21 13:13                       ` H. Peter Anvin
2008-04-21 13:19                       ` H. Peter Anvin
2008-04-21 15:05                     ` Jordan Crouse
2008-04-21 14:58                       ` H. Peter Anvin
2008-04-20 19:13               ` [PATCH 1/2] " H. Peter Anvin
2008-04-21  3:09           ` Mitch Bradley [this message]
2008-04-21  3:15             ` Yinghai Lu
2008-04-21  4:05               ` Mitch Bradley
2008-04-21  4:26                 ` David Miller
2008-04-21  4:50                 ` Yinghai Lu
2008-04-21  8:03                   ` Mitch Bradley
2008-04-21 14:24                 ` Andres Salomon
2008-04-21 15:54                   ` David Woodhouse
2008-04-21 16:57                     ` H. Peter Anvin
2008-04-21 18:54                       ` David Woodhouse
2008-04-21 17:03                     ` Andres Salomon
2008-04-21 19:18                       ` David Woodhouse
2008-04-21 19:46                         ` Andres Salomon
2008-04-21 20:25                           ` David Woodhouse
2008-04-21 21:02                             ` [PATCH] OLPC: only check for OFW signature on VSA-less Geodes Andres Salomon
2008-04-21 21:17                               ` Jordan Crouse
2008-04-21 21:17                               ` [PATCH] " David Woodhouse
2008-04-29  3:06                               ` Andrew Morton
2008-04-29  5:32                                 ` [PATCH] x86: GEODE: cache results from geode_has_vsa2() and uninline Andres Salomon
2008-04-29 20:35                                   ` Andrew Morton
2008-04-29 20:57                                     ` Andres Salomon
2008-04-19 17:39       ` [PATCH 2/2] OLPC: drop pre-OpenFirmware workarounds Andres Salomon
2008-04-19 18:21     ` 2.6.25-mm1 Arjan van de Ven
2008-04-20 11:29 ` internal compiler error: SIGSEGV [Was: 2.6.25-mm1] Jiri Slaby
2008-04-21  8:31 ` Jiri Slaby
2008-04-21  9:06   ` Al Viro
2008-04-21  9:37     ` fault in __d_lookup " Jiri Slaby
2008-04-21  9:45       ` Al Viro
2008-04-21  9:59         ` Jiri Slaby
2008-04-21 13:42           ` Rafael J. Wysocki
2008-04-21 17:23           ` Matthew Wilcox

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=480C0582.9010509@firmworks.com \
    --to=wmb@firmworks.com \
    --cc=akpm@linux-foundation.org \
    --cc=dilinger@queued.net \
    --cc=ebiederm@xmission.com \
    --cc=hpa@zytor.com \
    --cc=jfannin@gmail.com \
    --cc=jordan.crouse@amd.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=yhlu.kernel@gmail.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox