From: Andi Kleen <ak@suse.de>
To: Bjorn Helgaas <bjorn.helgaas@hp.com>
Cc: Matt Domsch <Matt_Domsch@dell.com>,
linux-ia64@vger.kernel.org,
openipmi-developer@lists.sourceforge.net, akpm@osdl.org,
"Tolentino, Matthew E" <matthew.e.tolentino@intel.com>,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH 2.6.15] ia64: use i386 dmi_scan.c
Date: Wed, 18 Jan 2006 03:32:19 +0100 [thread overview]
Message-ID: <200601180332.19692.ak@suse.de> (raw)
In-Reply-To: <200601171717.03192.bjorn.helgaas@hp.com>
On Wednesday 18 January 2006 01:17, Bjorn Helgaas wrote:
> On Friday 13 January 2006 17:24, Bjorn Helgaas wrote:
> > ... the
> > DMI stuff crashes HP sx2000 (and probably sx1000) boxes, probably
> > because of some memory attribute problem. So I'll have more
> > feedback after I debug that ;-)
>
> It *is* a memory attribute problem. The current code always calls
> ioremap() on efi.smbios. The first problem is that this is a
> physical address on x86, but a virtual address on ia64.
>
> The second problem is that we don't check the supported attributes
> for the SMBIOS table. On HP sx1000/sx2000, these tables are in system
> memory, which doesn't support uncacheable access, so iorem
> ap() does the wrong thing.
At least on x86-64/i386 the ioremap is actually cached unless a MTRR
changes it, but it normally doesn't here. If one wants to force uncached
access one has to use ioremap_uncached(). You're saying IA64 ioremap
forces uncached access? That seems weird.
> + if (efi_enabled) {
> + if (efi_mem_attributes(base & EFI_MEMORY_WB)) {
> + iomem = 0;
> + buf = (u8 *) phys_to_virt(base);
> + } else if (efi_mem_attributes(base & EFI_MEMORY_UC))
> + buf = dmi_ioremap(base, len);
> + else
> + buf = NULL;
I would expect your ioremap to already do such a lookup. That is at least
how MTRRs on i386/x86-64 work. If it does not how about you fix
ioremap()? Or provide a suitable ia64 dmi_ioremap, but it's likely
better to do it generally.
Regarding physical vs virtual efi.smbios -- it sounds nasty to have such
a difference in the EFI support for different architectures. Matthew, do
you have a suggestion how this can be unified?
-Andi
next prev parent reply other threads:[~2006-01-18 2:33 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-01-04 22:16 [PATCH 2.6.15 1/2] ia64: use i386 dmi_scan.c Matt Domsch
2006-01-04 22:36 ` Alex Williamson
2006-01-04 23:29 ` Matt Domsch
2006-01-05 16:41 ` Bjorn Helgaas
2006-01-05 17:37 ` Matt Domsch
2006-01-05 17:54 ` Bjorn Helgaas
2006-01-06 0:02 ` Bjorn Helgaas
2006-01-06 17:15 ` Matt Domsch
2006-01-04 22:55 ` Alan Cox
2006-01-06 17:21 ` [PATCH 2.6.15] " Matt Domsch
2006-01-06 22:39 ` Matt Domsch
2006-01-14 0:24 ` Bjorn Helgaas
2006-01-14 0:45 ` Alan Cox
2006-01-14 1:19 ` Andi Kleen
2006-01-14 5:05 ` Bjorn Helgaas
2006-01-18 0:17 ` Bjorn Helgaas
2006-01-18 2:32 ` Andi Kleen [this message]
2006-01-18 15:53 ` Bjorn Helgaas
2006-01-18 17:29 ` Bjorn Helgaas
2006-01-18 18:11 ` [Openipmi-developer] " Matt Domsch
2006-01-19 20:10 ` [PATCH 0/5] ia64 ioremap, DMI, EFI system table Bjorn Helgaas
2006-01-19 20:12 ` [PATCH 1/5] EFI, /dev/mem: simplify efi_mem_attribute_range() Bjorn Helgaas
2006-01-19 20:12 ` [PATCH 2/5] ia64: ioremap: check EFI for valid memory attributes Bjorn Helgaas
2006-01-19 20:13 ` [PATCH 3/5] DMI: only ioremap stuff we actually need Bjorn Helgaas
2006-01-19 20:13 ` [PATCH 4/5] EFI: keep physical table addresses in efi structure Bjorn Helgaas
2006-01-19 20:14 ` [PATCH 5/5] ACPI: clean up memory attribute checking for map/read/write Bjorn Helgaas
2006-01-30 17:11 ` [Openipmi-developer] [PATCH 0/5] ia64 ioremap, DMI, EFI system table Matt Domsch
2006-03-17 23:54 ` [PATCH 2.6.15] ia64: use i386 dmi_scan.c Andrew Morton
2006-03-18 14:56 ` Matt Domsch
2006-03-18 15:43 ` Matt Domsch
2006-03-18 19:51 ` Andrew Morton
2006-01-06 19:03 Tolentino, Matthew E
2006-01-06 22:36 ` Matt Domsch
2006-01-19 14:19 Tolentino, Matthew E
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=200601180332.19692.ak@suse.de \
--to=ak@suse.de \
--cc=Matt_Domsch@dell.com \
--cc=akpm@osdl.org \
--cc=bjorn.helgaas@hp.com \
--cc=linux-ia64@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=matthew.e.tolentino@intel.com \
--cc=openipmi-developer@lists.sourceforge.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;
as well as URLs for NNTP newsgroup(s).