* patch like kexec for MIPS possible?
@ 2005-02-05 16:50 Robert Michel
2005-02-05 17:41 ` Thiemo Seufer
0 siblings, 1 reply; 12+ messages in thread
From: Robert Michel @ 2005-02-05 16:50 UTC (permalink / raw)
To: linux-mips
Salve!
Does the MIPS CPUs makes a patch like kexec possible?
Kexec is a kernel patch which allows you to start another kernel.
IMHO would such a kernel patch would be handy, especialy for
small MIPS Linux boxes. For more info about kexec read e.g.
http://www-106.ibm.com/developerworks/linux/library/l-kexec.html
And please don't get me wrong - as a non-kernel-developer I'm
very happy with your work - my question is not a request,
I'm just interested if there is a limitation of the MIPS
platform to do something like this or not.
Greetings,
rob
PS: And _if_ it would be possible, maybe sombody read this
and join thinking that this feature would be realy cool ;)
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: patch like kexec for MIPS possible?
2005-02-05 16:50 patch like kexec for MIPS possible? Robert Michel
@ 2005-02-05 17:41 ` Thiemo Seufer
2005-02-05 19:11 ` Robert Michel
2005-02-05 19:26 ` Stanislaw Skowronek
0 siblings, 2 replies; 12+ messages in thread
From: Thiemo Seufer @ 2005-02-05 17:41 UTC (permalink / raw)
To: Robert Michel; +Cc: linux-mips
Robert Michel wrote:
> Salve!
>
> Does the MIPS CPUs makes a patch like kexec possible?
>
> Kexec is a kernel patch which allows you to start another kernel.
MIPS kernels are usually position dependent code, and loaded in
unmapped memory, so a kernel would need to overwrite itself for
kexec. I don't know if kexec is flexible enough to handle this.
> IMHO would such a kernel patch would be handy, especialy for
> small MIPS Linux boxes. For more info about kexec read e.g.
> http://www-106.ibm.com/developerworks/linux/library/l-kexec.html
Frankly, I don't see what kexec is good for. Who else besides
kernel developers would need to reboot a machine continuously?
Thiemo
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: patch like kexec for MIPS possible?
2005-02-05 17:41 ` Thiemo Seufer
@ 2005-02-05 19:11 ` Robert Michel
2005-02-05 20:33 ` Wolfgang Denk
2005-02-06 0:28 ` Thiemo Seufer
2005-02-05 19:26 ` Stanislaw Skowronek
1 sibling, 2 replies; 12+ messages in thread
From: Robert Michel @ 2005-02-05 19:11 UTC (permalink / raw)
To: Thiemo Seufer; +Cc: linux-mips
Salve Thiemo!
Thiemo Seufer schrieb am Samstag, den 05. Februar 2005 um 18:41h:
> MIPS kernels are usually position dependent code, and loaded in
> unmapped memory, so a kernel would need to overwrite itself for
> kexec. I don't know if kexec is flexible enough to handle this.
Kexec is written for x86 (yet) - but the (my) question is if
this would be possible with MIPS, too.
--snip--
The magic of kexec
One of the biggest challenges in the development of kexec comes from
the fact that the Linux kernel runs from a fixed address in memory.
This means that the new kernel needs to sit at the same place that the
current kernel is running from. On x86 systems, the kernel sits at the
physical address 0x100000 (virtual address 0xc0000000, known as
PAGE_OFFSET). The task of overwriting the old kernel with the new one
is done in three stages:
1. Copy the new kernel into memory.
2. Move this kernel image into dynamic kernel memory.
3. Copy this image into the real destination (overwriting the current
kernel), and start the new kernel.
--snap--
http://www-106.ibm.com/developerworks/library/l-kexec.html?ca=dnt-518
> > IMHO would such a kernel patch would be handy, especialy for
> > small MIPS Linux boxes. For more info about kexec read e.g.
> > http://www-106.ibm.com/developerworks/linux/library/l-kexec.html
>
> Frankly, I don't see what kexec is good for. Who else besides
> kernel developers would need to reboot a machine continuously?
Does GRUB run on MIPS? Does GRUB support SSH2? Does most MIPS
bootlaoders support USB-sticks or booting via VPNs?
LinuxBios is a "nice" project, but for most boards/boxes Linuxer
could be happy to be able to boot it - to develop a nice boadloader
is depended from the hard/firmware of the systems.
A kernel with a kexec like patch could be used into the bootchain
for several reasons:
- making developing and hacking more easy
- booting with options
- choice which kernel to boot
- booting from original not supported devices (usb, network)
- remote control for the boot process
- bypassing memoryrestrictions of the bootloader
- more flexibility - independance from proprietary bootloader
- developing security, statistic features...
- fail save boot
- starting restore system, analyse tools....
- option for modular system
- for upgrades lower downtimes (Router, Firewalls....)
- perversive computing, the box could be on a place without
physicaly access
- the kernel would be more often updated, than the bootloader
- just for fun
- just because it could be usefull - an implemented feature
may become the base for other features - unthinkable before
this first step
- ...
So my point is not to boot a machine continuously,
but to expand the bootchain:
IMHO would be the most powerfull and flexible way
to boot a linux kernel,
to boot it just from an other linux kernel.
;)
Greetings
rob
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: patch like kexec for MIPS possible?
2005-02-05 17:41 ` Thiemo Seufer
2005-02-05 19:11 ` Robert Michel
@ 2005-02-05 19:26 ` Stanislaw Skowronek
2005-02-06 15:56 ` Ralf Baechle
1 sibling, 1 reply; 12+ messages in thread
From: Stanislaw Skowronek @ 2005-02-05 19:26 UTC (permalink / raw)
To: linux-mips
> Frankly, I don't see what kexec is good for. Who else besides
> kernel developers would need to reboot a machine continuously?
Yeah. And, speaking from experience, it is often caused by the hardware
entering such an invalid state that requires a hard reset anyway.
Stanislaw Skowronek
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: patch like kexec for MIPS possible?
2005-02-05 19:11 ` Robert Michel
@ 2005-02-05 20:33 ` Wolfgang Denk
2005-02-06 1:01 ` Dan Malek
2005-02-06 0:28 ` Thiemo Seufer
1 sibling, 1 reply; 12+ messages in thread
From: Wolfgang Denk @ 2005-02-05 20:33 UTC (permalink / raw)
To: Robert Michel; +Cc: linux-mips
In message <20050205191110.GD3071@mail.robertmichel.de> you wrote:
>
> Kexec is written for x86 (yet) - but the (my) question is if
> this would be possible with MIPS, too.
Other, smilar solutions exist for other architectures, like Magnus
Damm's "relf" tool for PowerPC and x86 (relf - reload elf: a driver
to load and start a new elf file from within Linux). Adaptions for
other processors are more or less trivial.
> Does GRUB run on MIPS? Does GRUB support SSH2? Does most MIPS
> bootlaoders support USB-sticks or booting via VPNs?
Use U-Boot :-)
> LinuxBios is a "nice" project, but for most boards/boxes Linuxer
> could be happy to be able to boot it - to develop a nice boadloader
> is depended from the hard/firmware of the systems.
Use U-Boot :-)
> A kernel with a kexec like patch could be used into the bootchain
> for several reasons:
...
> - booting from original not supported devices (usb, network)
...
> - for upgrades lower downtimes (Router, Firewalls....)
These are IMHO the only valid reasons for such an approach.
> IMHO would be the most powerfull and flexible way
> to boot a linux kernel,
> to boot it just from an other linux kernel.
We've been using "relf" in some projects (x86 - where we were stuck
with really dumb BIOSes), but I cannot see many situations where
kexec is actually better or more powerful than a decent bootloader
line U-Boot. OK, I'm obviously biased.
Best regards,
Wolfgang Denk
--
Software Engineering: Embedded and Realtime Systems, Embedded Linux
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd@denx.de
In an organization, each person rises to the level of his own incom-
petency - The Peter Principle
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: patch like kexec for MIPS possible?
2005-02-05 19:11 ` Robert Michel
2005-02-05 20:33 ` Wolfgang Denk
@ 2005-02-06 0:28 ` Thiemo Seufer
2005-02-07 16:37 ` Robert Michel
1 sibling, 1 reply; 12+ messages in thread
From: Thiemo Seufer @ 2005-02-06 0:28 UTC (permalink / raw)
To: Robert Michel; +Cc: linux-mips
Robert Michel wrote:
> Salve Thiemo!
>
> Thiemo Seufer schrieb am Samstag, den 05. Februar 2005 um 18:41h:
> > MIPS kernels are usually position dependent code, and loaded in
> > unmapped memory, so a kernel would need to overwrite itself for
> > kexec. I don't know if kexec is flexible enough to handle this.
[snip]
> The task of overwriting the old kernel with the new one
> is done in three stages:
>
> 1. Copy the new kernel into memory.
> 2. Move this kernel image into dynamic kernel memory.
> 3. Copy this image into the real destination (overwriting the current
> kernel), and start the new kernel.
Ok, so is no exception WRT.
> > Frankly, I don't see what kexec is good for. Who else besides
> > kernel developers would need to reboot a machine continuously?
>
> Does GRUB run on MIPS?
No.
> Does GRUB support SSH2?
No idea.
> Does most MIPS bootlaoders support USB-sticks or booting via VPNs?
There are various, and usually they are open source, ao adding such
features shouldn't be a problem.
[snip]
> - making developing and hacking more easy
Usually done via netboot or JTAG download.
> - booting with options
> - choice which kernel to boot
> - booting from original not supported devices (usb, network)
> - remote control for the boot process
> - bypassing memoryrestrictions of the bootloader
> - more flexibility - independance from proprietary bootloader
Those things should be fixed in the bootloader.
> - developing security, statistic features...
> - fail save boot
> - starting restore system, analyse tools....
> - option for modular system
?
> - for upgrades lower downtimes (Router, Firewalls....)
30 seconds for the tftp, and you have to hope the previous
kernel left everything in a sane state.
> - perversive computing, the box could be on a place without
> physicaly access
You don't want to do that without a safe fallback (aka serial console).
> - the kernel would be more often updated, than the bootloader
> - just for fun
> - just because it could be usefull - an implemented feature
> may become the base for other features - unthinkable before
> this first step
> - ...
>
> So my point is not to boot a machine continuously,
> but to expand the bootchain:
>
> IMHO would be the most powerfull and flexible way
> to boot a linux kernel,
> to boot it just from an other linux kernel.
> ;)
What if any of both is buggy? Either you have a working fallback,
or you'll be screwed sooner or later.
Thiemo
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: patch like kexec for MIPS possible?
2005-02-05 20:33 ` Wolfgang Denk
@ 2005-02-06 1:01 ` Dan Malek
2005-02-06 9:29 ` Wolfgang Denk
0 siblings, 1 reply; 12+ messages in thread
From: Dan Malek @ 2005-02-06 1:01 UTC (permalink / raw)
To: Wolfgang Denk; +Cc: linux-mips, Robert Michel
On Feb 5, 2005, at 3:33 PM, Wolfgang Denk wrote:
> ..... but I cannot see many situations where
> kexec is actually better or more powerful than a decent bootloader
> line U-Boot. OK, I'm obviously biased.
I agree. I've played with booting kernels from kernels
in both PowerPC and MIPS in the past, and the problem
I always run into is drivers or kernel functions that assume
a particular power up state. When rebooting from another
kernel you don't have the same state as from power up, and
some software doesn't like this. I suspect main reason for
kexec is the horrible x86 bios and nothing that can be done
about it.
Oh, and I agree with your assessment, not that you are biased :-)
-- Dan
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: patch like kexec for MIPS possible?
2005-02-06 1:01 ` Dan Malek
@ 2005-02-06 9:29 ` Wolfgang Denk
0 siblings, 0 replies; 12+ messages in thread
From: Wolfgang Denk @ 2005-02-06 9:29 UTC (permalink / raw)
To: Dan Malek; +Cc: linux-mips
In message <efcfca49cf2c4494a661ba916f2e1546@embeddededge.com> you wrote:
>
> some software doesn't like this. I suspect main reason for
> kexec is the horrible x86 bios and nothing that can be done
> about it.
Ummm.. some people got U-Boot running on x86 systems, too. But this
is off topic here :-)
Best regards,
Wolfgang Denk
--
Software Engineering: Embedded and Realtime Systems, Embedded Linux
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd@denx.de
Hindsight is an exact science.
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: patch like kexec for MIPS possible?
2005-02-05 19:26 ` Stanislaw Skowronek
@ 2005-02-06 15:56 ` Ralf Baechle
2005-02-06 16:11 ` Stanislaw Skowronek
0 siblings, 1 reply; 12+ messages in thread
From: Ralf Baechle @ 2005-02-06 15:56 UTC (permalink / raw)
To: Stanislaw Skowronek; +Cc: linux-mips
On Sat, Feb 05, 2005 at 08:26:04PM +0100, Stanislaw Skowronek wrote:
> > Frankly, I don't see what kexec is good for. Who else besides
> > kernel developers would need to reboot a machine continuously?
>
> Yeah. And, speaking from experience, it is often caused by the hardware
> entering such an invalid state that requires a hard reset anyway.
I guess only the big iron fraction among us will really be missing
something like kexec - firmware reinitialization may take minutes on that
calibre of system so being able to get around that would be a good thing.
Ralf
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: patch like kexec for MIPS possible?
2005-02-06 16:11 ` Stanislaw Skowronek
@ 2005-02-06 16:11 ` Ralf Baechle
0 siblings, 0 replies; 12+ messages in thread
From: Ralf Baechle @ 2005-02-06 16:11 UTC (permalink / raw)
To: Stanislaw Skowronek; +Cc: linux-mips
On Sun, Feb 06, 2005 at 05:11:53PM +0100, Stanislaw Skowronek wrote:
> > I guess only the big iron fraction among us will really be missing
> > something like kexec - firmware reinitialization may take minutes on that
> > calibre of system so being able to get around that would be a good thing.
>
> Well, a firmware reinitialization on my Octane (the old one) takes
> minutes. Still, the kernel requires the hardware to be initalized by PROM
> (just like on Origins, really) so kexec is of no help here.
That's something that could be dealt with.
On Origins I usually disable memory test which helps a little but still
is slower than I'd like. For general hacking eval boards that need like
a second to reset just rock :-)
Ralf
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: patch like kexec for MIPS possible?
2005-02-06 15:56 ` Ralf Baechle
@ 2005-02-06 16:11 ` Stanislaw Skowronek
2005-02-06 16:11 ` Ralf Baechle
0 siblings, 1 reply; 12+ messages in thread
From: Stanislaw Skowronek @ 2005-02-06 16:11 UTC (permalink / raw)
To: Ralf Baechle; +Cc: linux-mips
> > Yeah. And, speaking from experience, it is often caused by the hardware
> > entering such an invalid state that requires a hard reset anyway.
> I guess only the big iron fraction among us will really be missing
> something like kexec - firmware reinitialization may take minutes on that
> calibre of system so being able to get around that would be a good thing.
Well, a firmware reinitialization on my Octane (the old one) takes
minutes. Still, the kernel requires the hardware to be initalized by PROM
(just like on Origins, really) so kexec is of no help here.
Stanislaw
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: patch like kexec for MIPS possible?
2005-02-06 0:28 ` Thiemo Seufer
@ 2005-02-07 16:37 ` Robert Michel
0 siblings, 0 replies; 12+ messages in thread
From: Robert Michel @ 2005-02-07 16:37 UTC (permalink / raw)
To: Thiemo Seufer; +Cc: linux-mips
Salve all & Thiemo!
First thank you all for your answers, as I understud you right,
is there no restriction by the MIPS CPU/Memory architecture that
makes a patch for starting another kernel unpossible.
This was the focus of my question - not the use of this. ;)
Thiemo Seufer schrieb am Sonntag, den 06. Februar 2005 um 01:28h:
> 30 seconds for the tftp, and you have to hope the previous
> kernel left everything in a sane state.
I know now (due your answers) u-boot which supports tftp like grub.
But both lake SSH2 to access and control the bootloader during
boot time.
> > - perversive computing, the box could be on a place without
> > physicaly access
>
> You don't want to do that without a safe fallback (aka serial console).
I _will_ be able to to this - not because I need it today - I'm just
shure that it will be a handy feature.
You are right, it's usefull to have a safe fallback, but on many
embedded systems you need a screw driver, maby soldering iron and
a RS232 port for "debricking a box".
Beside of a hardware-hangup a box could have a hangup because of a
user software error, kernel error or a black hat attack. Kernel do
have security updates - so if your box does have any kind of
interface/network it will need kernelupgrades and it exist the danger,
that someone attack and "ownz" this box.
When you have a watchdog or just a timer to reboot the box
the primary kernel form a secure, read-only medium (CD-Rom,
Floppy, E-Prom...).
After booting a clean system, this box could ask a server
via a secure Network what it should do:
- booting the lokal system
- overwrite the lokal system with a clean/newer system.
Now the question, should the bootloader runs SSH2 or
would it better to have an old, sercure, rudimental kernel
to do this. (Hardcore paranoiacs would use multiple tricks
to make the box secure)
IMHO is it not only more easy to use a kernel instead of
forking a bootloader - also in case of unsecure code, it
is more easier to use a normal kernel/dep patch, than
write this myself for my personal bootloader-fork.
Today you could realise this with RS232 and a second
box, second IP..... this would make the systems more
expensive, bigger, create a higher power consumption -
so somethink that nobody likes for perversive computing.
Probably the link to the IBM article without expaining
my idea was not so good, that article is IMHO concentrating
to much on the speed of reboot.
My point is that such a feature could have a use for
different cases (even more that I can imagine).
I just see that it would be nice to have this feature
also on non x86 platforms - so this is why I ask you
if it would be principle possible to run it on the
MIPS platform.
> > So my point is not to boot a machine continuously,
> > but to expand the bootchain:
> >
> > IMHO would be the most powerfull and flexible way
> > to boot a linux kernel,
> > to boot it just from an other linux kernel.
> > ;)
>
> What if any of both is buggy? Either you have a working fallback,
> or you'll be screwed sooner or later.
No question, sooner or later will fail every system,
but the question is to make the probability as low as possible.
Greetings,
rob
PS: The radio for the Huygens to Cassini communications had a small
bandwidth and the frequencies was written in ROM (to minimice the power
consumption). But the enginneers forgot to calculate the doppler effect
- so on the first look it seems that no data receiving on Cassini would
be possible. The workaround was a changed flight path of Cassini to
change the doppler effect.
http://www.thespacereview.com/article/306/1
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2005-02-07 16:38 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-02-05 16:50 patch like kexec for MIPS possible? Robert Michel
2005-02-05 17:41 ` Thiemo Seufer
2005-02-05 19:11 ` Robert Michel
2005-02-05 20:33 ` Wolfgang Denk
2005-02-06 1:01 ` Dan Malek
2005-02-06 9:29 ` Wolfgang Denk
2005-02-06 0:28 ` Thiemo Seufer
2005-02-07 16:37 ` Robert Michel
2005-02-05 19:26 ` Stanislaw Skowronek
2005-02-06 15:56 ` Ralf Baechle
2005-02-06 16:11 ` Stanislaw Skowronek
2005-02-06 16:11 ` Ralf Baechle
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox