All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kumba <kumba@gentoo.org>
To: Franck <vagabon.xyz@gmail.com>
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 10:24:34 -0400	[thread overview]
Message-ID: <45FE9D22.1030407@gentoo.org> (raw)
In-Reply-To: <45FE95EE.5030108@innova-card.com>

Franck Bui-Huu wrote:

> 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 ?

I'll have to re-try some runs w/ the straight 64bit vmlinux later on then, but 
AFAICT, __pa() braks IP32 because of the assumption I highlighted.  This, 
cobalt, and IP22 are a bit "special" in their needs, I guess.  Anyone got a 
short yellow bus?


> 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.

A good idea to crash at this point?  Not for users.  Up until this point, I've 
never really seen any bugs produced by CONFIG_BUILD_ELF64, granted I avoided 
using it until ~2.6.17 (when o64 died).  If there were bugs, they were subtle 
and didn't appear to affect the day-to-day running of the system.  At minimum, 
__pa() should recreate this effect, and then we can trace down the bugs and 
hammer them to death later.


> 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.


Most of this is because IP22 (Indy/Idigo2 R4xx) and IP32 (O2 R5xxx), while 
supporting 64bit kernels (same for cobalt, since it's a mips4-level CPU), we had 
to "trick" them into accepting 64bit code.  IP32 at one point ran 32bit kernels 
only, but it was later converted to supporting only 64bit kernels, hence the 
hackery involved.  We describe it as wrapping 64bit code into a 32bit object, 
because their proms will only recognize 32bit objects (specifically, IP22 will 
only boot 32bit objects; crash on 64bit; IP32 will take both, but likes 32bit 
better).

So really, CONFIG_BUILD_ELF64 was probably part of this "magic" to stuff 64bit 
code into a candy-coated 32bit wrapper for the Indy (And later the O2) to suck 
down w/o complaint.  Hence, __pa() probably needs to replicate this support, or 
we all need to brainstorm a proper way to get these systems to boot.

Octane, Origin, IP28 (Indigo2 R10000). et al, don't complain, and don't need 
this hacker, because their proms boot proper 64bit binaries only (they reject 
all else).

So probably the following is true (someone correct me if not)

if (CONFIG_BUILD_ELF64=y and (!CONFIG_SGI_IP22 or !CONFIG_SGI_IP32 or 
!CONFIG_COBALT)) then kernel load address must be in XKPHYS
else load address must be in CKSEG0
if CONFIG_BUILD_ELF64=n then kernel load address must be in CKSEG0



> I'm sorry but my IPxx background is 0 ;)

Time to buy an O2 :)


--Kumba

-- 
Gentoo/MIPS Team Lead

"Such is oft the course of deeds that move the wheels of the world: small hands 
do them because they must, while the eyes of the great are elsewhere."  --Elrond

  parent reply	other threads:[~2007-03-19 14:25 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
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 [this message]
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=45FE9D22.1030407@gentoo.org \
    --to=kumba@gentoo.org \
    --cc=arnaud.giersch@free.fr \
    --cc=linux-mips@linux-mips.org \
    --cc=vagabon.xyz@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 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.