From: Franck Bui-Huu <vagabon.xyz@gmail.com>
To: Kumba <kumba@gentoo.org>
Cc: Linux MIPS List <linux-mips@linux-mips.org>,
Arnaud Giersch <arnaud.giersch@free.fr>
Subject: Re: IP32 prom crashes due to __pa() funkiness
Date: Mon, 19 Mar 2007 14:53:50 +0100 [thread overview]
Message-ID: <45FE95EE.5030108@innova-card.com> (raw)
In-Reply-To: <45FC9E39.7010506@gentoo.org>
Kumba wrote:
> Arnaud Giersch wrote:
>>
>> I don't know if it is the RightWay(TM), but I am running here a fresh
>> IP32 kernel (l.m.o git updated yesterday). It was compiled with
>> CONFIG_BUILD_ELF64=n, and I am using vmlinux.
>>
>> $ file /boot/vmlinux-2.6.21-rc3-g839fd555
>> /boot/vmlinux-2.6.21-rc3-g839fd555: ELF 64-bit MSB executable, MIPS,
>> MIPS-IV version 1 (SYSV), statically linked, not stripped
>>
>> If it makes a difference, I am using arcboot.
>
> I suppose then the question is, which is better for IP32?
That's the question I was wondering during my first reply to your initial
post...
> CONFIG_BUILD_ELF64=y or CONFIG_BUILD_ELF64=n. The reason the o64 hack
> used to exist, if my memory serves me correctly, was that someone once
> said that when built and run as a pure 64bit binary converted to 32bit
> via objcopy, 6 extra insns were run every cycle (I think), introducing
> unneeded slowdown. This changed to 2 insns by going the o64 route,
OK that's the reason why the last patch you applied has no effect. If
you're using 'objcopy' your kernel can still be miss configured.
BTW, does your gcc support '-sym32' switch ?
> which involved CONFIG_BUILD_ELF64=n. So 4 less insns technically
> resulted in a quicker kernel, though the layman might not notice such.
> I believe that all changed at some point, which is why
> CONFIG_BUILD_ELF64=y was an A-OK thing prior to the __pa() introduction.
>
My current feeling is that __pa() introduction now breaks configs
which were initialy _broken_, IMHO. CPHYSADDR() hide them because it
can happily convert any virutal address form both CKSEG0 or XKPHYS.
It may be a good thing to crash at this point. CONFIG_BUILD_ELF64 is
used in some others places, where it can introduce some others bugs
harder to find (if miss configured of course). The sad thing is that
the kernel does not report any useful messages. That's why I think
adding some specific sanity checks for 64 bit kernels in boot mem init
code may be usefull.
> Now I guess we're back to CONFIG_BUILD_ELF64=n? I guess the real
> question is, which way is the OneWay(TM), RightWay(TM) and OnlyWay(TM)?
>
Now it's clear that CONFIG_BUILD_ELF64 is really confusing. I would say
that whatever the value of CONFIG_BUILD_ELF64, your kernel should run
fine. BUT it really depends on your kernel load address:
if CONFIG_BUILD_ELF64=y then kernel load address must be in XKPHYS
if CONFIG_BUILD_ELF64=n then kernel load address must be in CKSEG0
All others configs (I think) are buggy...
That's said, it seems that IPxx kernels are really special
beasts. Take from MIPS makefile:
"""
Some machines like the Indy need 32-bit ELF binaries for booting
purposes.
"""
So I dunno if this statement is still correct but it sounds that you
have no other choice thatn CONFIG_BUILD_ELF64=n and load address in
CKSEG0.
I'm sorry but my IPxx background is 0 ;)
Franck
next prev parent reply other threads:[~2007-03-19 13:55 UTC|newest]
Thread overview: 110+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-03-04 23:18 Building 64 bit kernel on Cobalt Jim Gifford
2007-03-04 23:27 ` Ralf Baechle
2007-03-08 6:11 ` Jim Gifford
2007-03-08 8:46 ` Jim Gifford
2007-03-08 12:48 ` Franck Bui-Huu
2007-03-08 16:11 ` Jim Gifford
2007-03-13 0:57 ` Jim Gifford
2007-03-13 10:38 ` Franck Bui-Huu
2007-03-13 11:53 ` Ralf Baechle
2007-03-18 21:52 ` Jim Gifford
2007-03-19 1:12 ` Atsushi Nemoto
2007-03-19 5:20 ` Jim Gifford
2007-03-19 6:07 ` Atsushi Nemoto
2007-03-19 10:08 ` Franck Bui-Huu
2007-03-19 10:17 ` Franck Bui-Huu
2007-03-21 17:07 ` Atsushi Nemoto
2007-03-21 19:31 ` Franck Bui-Huu
2007-03-23 13:47 ` Kumba
2007-03-23 15:24 ` Atsushi Nemoto
2007-03-24 3:31 ` Kumba
2007-03-24 14:47 ` Atsushi Nemoto
2007-03-24 23:16 ` Thiemo Seufer
2007-03-25 7:25 ` [PATCH]: Remove CONFIG_BUILD_ELF64 entirely Kumba
2007-03-25 14:45 ` Thiemo Seufer
2007-03-26 11:35 ` Maciej W. Rozycki
2007-03-26 11:56 ` Ralf Baechle
2007-03-26 12:09 ` Maciej W. Rozycki
2007-03-26 12:34 ` Ralf Baechle
2007-03-25 16:10 ` Atsushi Nemoto
2007-03-25 16:40 ` Ralf Baechle
2007-03-26 9:14 ` Franck Bui-Huu
2007-03-26 9:42 ` Thiemo Seufer
2007-03-25 16:59 ` Kumba
2007-03-25 17:07 ` Atsushi Nemoto
2007-03-25 18:33 ` Kumba
2007-03-26 10:36 ` Atsushi Nemoto
2007-03-26 13:48 ` Kumba
2007-03-26 14:43 ` Atsushi Nemoto
2007-03-27 0:51 ` Kumba
2007-03-27 14:53 ` Atsushi Nemoto
2007-03-27 17:54 ` Ilya A. Volynets-Evenbakh
2007-03-28 15:14 ` Atsushi Nemoto
2007-03-27 19:01 ` Thiemo Seufer
2007-03-28 13:26 ` Kumba
2007-03-28 15:24 ` Atsushi Nemoto
2007-03-29 1:50 ` Kumba
2007-03-29 14:53 ` Atsushi Nemoto
2007-03-30 6:18 ` Kumba
2007-03-30 2:20 ` Kumba
2007-02-18 20:00 ` IP32 prom crashes due to __pa() funkiness Kumba
2007-03-01 4:33 ` Kumba
2007-03-01 9:39 ` Franck Bui-Huu
2007-03-10 9:41 ` [PATCH], " peter fuerst
2007-03-17 19:52 ` Kumba
2007-03-17 21:48 ` Arnaud Giersch
2007-03-18 2:04 ` Kumba
2007-03-19 13:53 ` Franck Bui-Huu [this message]
2007-03-19 14:07 ` Thiemo Seufer
2007-03-19 14:19 ` Franck Bui-Huu
2007-03-19 14:17 ` Franck Bui-Huu
2007-03-19 14:24 ` Kumba
2007-03-19 14:45 ` Thiemo Seufer
2007-03-19 14:46 ` Atsushi Nemoto
2007-03-19 21:35 ` Franck Bui-Huu
2007-03-20 14:10 ` Kumba
2007-03-23 15:12 ` Franck Bui-Huu
[not found] ` <45FC3923.2080207@gentoo.org>
2007-03-18 9:42 ` peter fuerst
2007-03-18 21:26 ` Kumba
2007-03-18 21:37 ` Kumba
2007-03-18 22:44 ` Kumba
2007-03-19 13:57 ` Franck Bui-Huu
2007-03-30 3:01 ` [PATCH]: Remove CONFIG_BUILD_ELF64 entirely Atsushi Nemoto
2007-03-30 5:35 ` Kumba
2007-03-30 6:09 ` Atsushi Nemoto
2007-09-26 2:08 ` CONFIG_BUILD_ELF64 broken on IP32 since 2.6.20 Atsushi Nemoto
2007-09-26 5:59 ` Martin Michlmayr
2007-09-26 6:19 ` Giuseppe Sacco
2007-09-27 0:24 ` Thiemo Seufer
2007-09-26 9:14 ` Franck Bui-Huu
2007-09-26 14:42 ` Atsushi Nemoto
2007-03-25 22:19 ` [PATCH]: Remove CONFIG_BUILD_ELF64 entirely Ralf Baechle
2007-03-26 13:25 ` Atsushi Nemoto
2007-03-26 13:54 ` Franck Bui-Huu
2007-03-26 14:48 ` Atsushi Nemoto
2007-03-26 15:31 ` Franck Bui-Huu
2007-03-26 15:45 ` Atsushi Nemoto
2007-03-26 16:07 ` Franck Bui-Huu
2007-03-27 3:12 ` Atsushi Nemoto
2007-03-27 8:01 ` Franck Bui-Huu
2007-03-26 15:56 ` Thiemo Seufer
2007-03-26 9:02 ` Franck Bui-Huu
2007-03-25 15:40 ` Building 64 bit kernel on Cobalt Atsushi Nemoto
-- strict thread matches above, loose matches on Subject: below --
2007-09-25 18:13 CONFIG_BUILD_ELF64 broken on IP32 since 2.6.20 Martin Michlmayr
2007-09-25 18:32 ` sknauert
2007-09-25 18:43 ` Martin Michlmayr
2007-09-25 18:56 ` sknauert
2007-09-26 8:03 ` Franck Bui-Huu
2007-09-26 9:14 ` Martin Michlmayr
2007-09-26 9:54 ` Franck Bui-Huu
2007-09-26 10:24 ` Martin Michlmayr
2007-09-26 11:32 ` Maciej W. Rozycki
2007-09-26 13:34 ` Franck Bui-Huu
2007-09-26 13:46 ` Martin Michlmayr
2007-09-26 14:49 ` Maciej W. Rozycki
2007-09-26 15:34 ` Atsushi Nemoto
2007-09-26 15:47 ` Maciej W. Rozycki
2007-09-27 8:11 ` Franck Bui-Huu
2007-09-27 11:10 ` Maciej W. Rozycki
2007-09-27 13:36 ` Ralf Baechle
2007-09-27 13:47 ` Franck Bui-Huu
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=45FE95EE.5030108@innova-card.com \
--to=vagabon.xyz@gmail.com \
--cc=arnaud.giersch@free.fr \
--cc=kumba@gentoo.org \
--cc=linux-mips@linux-mips.org \
/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.