* Compaq Presario "reboot" problems
@ 2005-11-17 18:51 linux-os (Dick Johnson)
2005-11-17 18:39 ` Jeff V. Merkey
` (2 more replies)
0 siblings, 3 replies; 15+ messages in thread
From: linux-os (Dick Johnson) @ 2005-11-17 18:51 UTC (permalink / raw)
To: Linux kernel
With Linux-2.4.26 I reported that if a Compaq gets rebooted while
running Linux-2.4.26, it will not be able to restart Windows 2000.
It cam restart Linux fine. Today, I tried the same thing with
Linux-2.6.13.4. It fails, too.
The symptoms are that you just "reboot" Linux. When the GRUB loader
comes up, I select my Windows-2000/professional. That M$ Crap comes
up to where it's just about to start the high-resolution screen.
Then it stops forever, no interrupts, no nothing. I need to disconnect
power and remove the battery to recover.
It appears as though Linux is still restarting as a "warm boot",
rather than a cold boot (in other words, putting magic in the
shutdown byte of CMOS) so the hardware doesn't get properly
initialized. Would somebody please check this out. When changing
operating systems, you need a cold-boot.
Cheers,
Dick Johnson
Penguin : Linux version 2.6.13.4 on an i686 machine (5589.44 BogoMips).
Warning : 98.36% of all statistics are fiction.
.
****************************************************************
The information transmitted in this message is confidential and may be privileged. Any review, retransmission, dissemination, or other use of this information by persons or entities other than the intended recipient is prohibited. If you are not the intended recipient, please notify Analogic Corporation immediately - by replying to this message or by sending an email to DeliveryErrors@analogic.com - and destroy all copies of this information, including any attachments, without reading or disclosing them.
Thank you.
^ permalink raw reply [flat|nested] 15+ messages in thread* Re: Compaq Presario "reboot" problems 2005-11-17 18:51 Compaq Presario "reboot" problems linux-os (Dick Johnson) @ 2005-11-17 18:39 ` Jeff V. Merkey 2005-11-17 23:26 ` Ondrej Zary 2005-11-18 11:51 ` Denis Vlasenko 2 siblings, 0 replies; 15+ messages in thread From: Jeff V. Merkey @ 2005-11-17 18:39 UTC (permalink / raw) To: linux-os (Dick Johnson); +Cc: Linux kernel Verified. I saw this problem a few weeks back and I am running Windows 2000 and 2003 on separate systems now. Windows 2000 is such a pig it needs its own system in any event. Jeff linux-os (Dick Johnson) wrote: >With Linux-2.4.26 I reported that if a Compaq gets rebooted while >running Linux-2.4.26, it will not be able to restart Windows 2000. >It cam restart Linux fine. Today, I tried the same thing with >Linux-2.6.13.4. It fails, too. > >The symptoms are that you just "reboot" Linux. When the GRUB loader >comes up, I select my Windows-2000/professional. That M$ Crap comes >up to where it's just about to start the high-resolution screen. >Then it stops forever, no interrupts, no nothing. I need to disconnect >power and remove the battery to recover. > >It appears as though Linux is still restarting as a "warm boot", >rather than a cold boot (in other words, putting magic in the >shutdown byte of CMOS) so the hardware doesn't get properly >initialized. Would somebody please check this out. When changing >operating systems, you need a cold-boot. > >Cheers, >Dick Johnson >Penguin : Linux version 2.6.13.4 on an i686 machine (5589.44 BogoMips). >Warning : 98.36% of all statistics are fiction. >. > >**************************************************************** >The information transmitted in this message is confidential and may be privileged. Any review, retransmission, dissemination, or other use of this information by persons or entities other than the intended recipient is prohibited. If you are not the intended recipient, please notify Analogic Corporation immediately - by replying to this message or by sending an email to DeliveryErrors@analogic.com - and destroy all copies of this information, including any attachments, without reading or disclosing them. > >Thank you. >- >To unsubscribe from this list: send the line "unsubscribe linux-kernel" in >the body of a message to majordomo@vger.kernel.org >More majordomo info at http://vger.kernel.org/majordomo-info.html >Please read the FAQ at http://www.tux.org/lkml/ > > > ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Compaq Presario "reboot" problems 2005-11-17 18:51 Compaq Presario "reboot" problems linux-os (Dick Johnson) 2005-11-17 18:39 ` Jeff V. Merkey @ 2005-11-17 23:26 ` Ondrej Zary 2005-11-18 11:48 ` Denis Vlasenko 2005-11-18 11:51 ` Denis Vlasenko 2 siblings, 1 reply; 15+ messages in thread From: Ondrej Zary @ 2005-11-17 23:26 UTC (permalink / raw) To: linux-os (Dick Johnson); +Cc: Linux kernel linux-os (Dick Johnson) wrote: > It appears as though Linux is still restarting as a "warm boot", > rather than a cold boot (in other words, putting magic in the > shutdown byte of CMOS) so the hardware doesn't get properly > initialized. Would somebody please check this out. When changing > operating systems, you need a cold-boot. No, it does not. I know that my desktop PC reboots with a beep (and shows CPU information) from Linux - and it does not beep when rebooting from Windows 98. Some BIOSes don't like when some devices are in some state. One example is my DTK FortisPro TOP-5A notebook - when rebooted from Linux, it hangs during POST - the fix was to add setpci <someting> to shutdown scripts to zero-out some cardbus controller registers. -- Ondrej Zary ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Compaq Presario "reboot" problems 2005-11-17 23:26 ` Ondrej Zary @ 2005-11-18 11:48 ` Denis Vlasenko 2005-11-19 13:39 ` Ondrej Zary 0 siblings, 1 reply; 15+ messages in thread From: Denis Vlasenko @ 2005-11-18 11:48 UTC (permalink / raw) To: Ondrej Zary; +Cc: linux-os (Dick Johnson), Linux kernel On Friday 18 November 2005 01:26, Ondrej Zary wrote: > linux-os (Dick Johnson) wrote: > > It appears as though Linux is still restarting as a "warm boot", > > rather than a cold boot (in other words, putting magic in the > > shutdown byte of CMOS) so the hardware doesn't get properly > > initialized. Would somebody please check this out. When changing > > operating systems, you need a cold-boot. > No, it does not. I know that my desktop PC reboots with a beep (and > shows CPU information) from Linux - and it does not beep when rebooting > from Windows 98. > Some BIOSes don't like when some devices are in some state. One example > is my DTK FortisPro TOP-5A notebook - when rebooted from Linux, it hangs > during POST - the fix was to add setpci <someting> to shutdown scripts > to zero-out some cardbus controller registers. Did you report it to lkml and/or dirver maintainer? -- vda ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Compaq Presario "reboot" problems 2005-11-18 11:48 ` Denis Vlasenko @ 2005-11-19 13:39 ` Ondrej Zary 0 siblings, 0 replies; 15+ messages in thread From: Ondrej Zary @ 2005-11-19 13:39 UTC (permalink / raw) To: Denis Vlasenko; +Cc: linux-os (Dick Johnson), Linux kernel Denis Vlasenko wrote: > On Friday 18 November 2005 01:26, Ondrej Zary wrote: > >>linux-os (Dick Johnson) wrote: >> >>>It appears as though Linux is still restarting as a "warm boot", >>>rather than a cold boot (in other words, putting magic in the >>>shutdown byte of CMOS) so the hardware doesn't get properly >>>initialized. Would somebody please check this out. When changing >>>operating systems, you need a cold-boot. >> >>No, it does not. I know that my desktop PC reboots with a beep (and >>shows CPU information) from Linux - and it does not beep when rebooting >>from Windows 98. >>Some BIOSes don't like when some devices are in some state. One example >>is my DTK FortisPro TOP-5A notebook - when rebooted from Linux, it hangs >>during POST - the fix was to add setpci <someting> to shutdown scripts >>to zero-out some cardbus controller registers. > > > Did you report it to lkml and/or dirver maintainer? Not yet. I haven't tried any kernel newer than 2.6.8.1 (because of the monitor mode patch for orinoco wifi card) so I don't know if the problem is still there. Also Linux does not like APM on this notebook. But I don't have free time to play with thing like these... -- Ondrej Zary ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Compaq Presario "reboot" problems 2005-11-17 18:51 Compaq Presario "reboot" problems linux-os (Dick Johnson) 2005-11-17 18:39 ` Jeff V. Merkey 2005-11-17 23:26 ` Ondrej Zary @ 2005-11-18 11:51 ` Denis Vlasenko 2005-11-18 12:48 ` linux-os (Dick Johnson) 2005-11-18 14:15 ` linux-os (Dick Johnson) 2 siblings, 2 replies; 15+ messages in thread From: Denis Vlasenko @ 2005-11-18 11:51 UTC (permalink / raw) To: linux-os (Dick Johnson); +Cc: Linux kernel On Thursday 17 November 2005 20:51, linux-os (Dick Johnson) wrote: > > With Linux-2.4.26 I reported that if a Compaq gets rebooted while > running Linux-2.4.26, it will not be able to restart Windows 2000. > It cam restart Linux fine. Today, I tried the same thing with > Linux-2.6.13.4. It fails, too. > > The symptoms are that you just "reboot" Linux. When the GRUB loader > comes up, I select my Windows-2000/professional. That M$ Crap comes > up to where it's just about to start the high-resolution screen. > Then it stops forever, no interrupts, no nothing. I need to disconnect > power and remove the battery to recover. > > It appears as though Linux is still restarting as a "warm boot", > rather than a cold boot (in other words, putting magic in the > shutdown byte of CMOS) so the hardware doesn't get properly > initialized. Would somebody please check this out. When changing > operating systems, you need a cold-boot. Can you check which driver does that? The test would be to boot a special Linux setup which reboots immediately (say, wuth init=/some/reboot_script.sh boot param). Then start removing drivers from kernel until you can boot Win successfully after Linux reboots. -- vda ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Compaq Presario "reboot" problems 2005-11-18 11:51 ` Denis Vlasenko @ 2005-11-18 12:48 ` linux-os (Dick Johnson) 2005-11-18 14:15 ` linux-os (Dick Johnson) 1 sibling, 0 replies; 15+ messages in thread From: linux-os (Dick Johnson) @ 2005-11-18 12:48 UTC (permalink / raw) To: Denis Vlasenko; +Cc: Linux kernel On Fri, 18 Nov 2005, Denis Vlasenko wrote: > On Thursday 17 November 2005 20:51, linux-os (Dick Johnson) wrote: >> >> With Linux-2.4.26 I reported that if a Compaq gets rebooted while >> running Linux-2.4.26, it will not be able to restart Windows 2000. >> It cam restart Linux fine. Today, I tried the same thing with >> Linux-2.6.13.4. It fails, too. >> >> The symptoms are that you just "reboot" Linux. When the GRUB loader >> comes up, I select my Windows-2000/professional. That M$ Crap comes >> up to where it's just about to start the high-resolution screen. >> Then it stops forever, no interrupts, no nothing. I need to disconnect >> power and remove the battery to recover. >> >> It appears as though Linux is still restarting as a "warm boot", >> rather than a cold boot (in other words, putting magic in the >> shutdown byte of CMOS) so the hardware doesn't get properly >> initialized. Would somebody please check this out. When changing >> operating systems, you need a cold-boot. > > Can you check which driver does that? The test would be to > boot a special Linux setup which reboots immediately > (say, wuth init=/some/reboot_script.sh boot param). > > Then start removing drivers from kernel until you > can boot Win successfully after Linux reboots. > -- > vda > Yes. Just as soom as I finish a "work break". I'll get back. Cheers, Dick Johnson Penguin : Linux version 2.6.13.4 on an i686 machine (5589.44 BogoMips). Warning : 98.36% of all statistics are fiction. . **************************************************************** The information transmitted in this message is confidential and may be privileged. Any review, retransmission, dissemination, or other use of this information by persons or entities other than the intended recipient is prohibited. If you are not the intended recipient, please notify Analogic Corporation immediately - by replying to this message or by sending an email to DeliveryErrors@analogic.com - and destroy all copies of this information, including any attachments, without reading or disclosing them. Thank you. ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Compaq Presario "reboot" problems 2005-11-18 11:51 ` Denis Vlasenko 2005-11-18 12:48 ` linux-os (Dick Johnson) @ 2005-11-18 14:15 ` linux-os (Dick Johnson) 2005-11-19 14:44 ` Denis Vlasenko 1 sibling, 1 reply; 15+ messages in thread From: linux-os (Dick Johnson) @ 2005-11-18 14:15 UTC (permalink / raw) To: Denis Vlasenko; +Cc: Linux kernel [-- Attachment #1: Type: text/plain, Size: 3324 bytes --] On Fri, 18 Nov 2005, Denis Vlasenko wrote: > On Thursday 17 November 2005 20:51, linux-os (Dick Johnson) wrote: >> >> With Linux-2.4.26 I reported that if a Compaq gets rebooted while >> running Linux-2.4.26, it will not be able to restart Windows 2000. >> It cam restart Linux fine. Today, I tried the same thing with >> Linux-2.6.13.4. It fails, too. >> >> The symptoms are that you just "reboot" Linux. When the GRUB loader >> comes up, I select my Windows-2000/professional. That M$ Crap comes >> up to where it's just about to start the high-resolution screen. >> Then it stops forever, no interrupts, no nothing. I need to disconnect >> power and remove the battery to recover. >> >> It appears as though Linux is still restarting as a "warm boot", >> rather than a cold boot (in other words, putting magic in the >> shutdown byte of CMOS) so the hardware doesn't get properly >> initialized. Would somebody please check this out. When changing >> operating systems, you need a cold-boot. > > Can you check which driver does that? The test would be to > boot a special Linux setup which reboots immediately > (say, wuth init=/some/reboot_script.sh boot param). > > Then start removing drivers from kernel until you > can boot Win successfully after Linux reboots. > -- > vda I booted into a shell from a floppy disk. There were no drivers installed, not even the IDE driver. I could not reboot windows after linux was up and rebooted. This was Linux-2.6.13.4. Then I tried linux-2.4.26 which corresponds to the version when I first reported this problem. The same thing happens. Therefore, I temporarily modified linux-2.6.13.4 to force a triple-fault and processor reset when doing a reboot. With this temporary modification it is possible to boot windows after Linux was running. This is the reboot patch. It is not a "solution", just something that shows that the current reboot code doesn't force the BIOS to start from scratch, which is essential when changing operating systems. --- linux-2.6.13.4/arch/i386/kernel/reboot.c.orig 2005-11-18 08:29:12.000000000 -0500 +++ linux-2.6.13.4/arch/i386/kernel/reboot.c 2005-11-18 08:52:40.000000000 -0500 @@ -337,6 +337,11 @@ void machine_restart(char * __unused) { + for(;;) { + __asm__ __volatile__("\tmovl %cr0, %eax\n" + "\tandl $~0x80000000, %eax\n" + "\tmovl %eax, %cr0\n"); + } machine_shutdown(); machine_emergency_restart(); } Just in case the M$ mailer screws up everything, the patch is attached also. Cheers, Dick Johnson Penguin : Linux version 2.6.13.4 on an i686 machine (5589.54 BogoMips). Warning : 98.36% of all statistics are fiction. . **************************************************************** The information transmitted in this message is confidential and may be privileged. Any review, retransmission, dissemination, or other use of this information by persons or entities other than the intended recipient is prohibited. If you are not the intended recipient, please notify Analogic Corporation immediately - by replying to this message or by sending an email to DeliveryErrors@analogic.com - and destroy all copies of this information, including any attachments, without reading or disclosing them. Thank you. [-- Attachment #2: reboot.patch --] [-- Type: TEXT/PLAIN, Size: 450 bytes --] --- linux-2.6.13.4/arch/i386/kernel/reboot.c.orig 2005-11-18 08:29:12.000000000 -0500 +++ linux-2.6.13.4/arch/i386/kernel/reboot.c 2005-11-18 08:52:40.000000000 -0500 @@ -337,6 +337,11 @@ void machine_restart(char * __unused) { + for(;;) { + __asm__ __volatile__("\tmovl %cr0, %eax\n" + "\tandl $~0x80000000, %eax\n" + "\tmovl %eax, %cr0\n"); + } machine_shutdown(); machine_emergency_restart(); } ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Compaq Presario "reboot" problems 2005-11-18 14:15 ` linux-os (Dick Johnson) @ 2005-11-19 14:44 ` Denis Vlasenko 2005-11-21 17:52 ` linux-os (Dick Johnson) 0 siblings, 1 reply; 15+ messages in thread From: Denis Vlasenko @ 2005-11-19 14:44 UTC (permalink / raw) To: linux-os (Dick Johnson); +Cc: Linux kernel On Friday 18 November 2005 16:15, linux-os (Dick Johnson) wrote: > On Fri, 18 Nov 2005, Denis Vlasenko wrote: > > > On Thursday 17 November 2005 20:51, linux-os (Dick Johnson) wrote: > >> It appears as though Linux is still restarting as a "warm boot", > >> rather than a cold boot (in other words, putting magic in the > >> shutdown byte of CMOS) so the hardware doesn't get properly > >> initialized. Would somebody please check this out. When changing > >> operating systems, you need a cold-boot. > > > > Can you check which driver does that? The test would be to > > boot a special Linux setup which reboots immediately > > (say, wuth init=/some/reboot_script.sh boot param). > > > > Then start removing drivers from kernel until you > > can boot Win successfully after Linux reboots. > > -- > > vda > > I booted into a shell from a floppy disk. There were no drivers > installed, not even the IDE driver. I could not reboot windows > after linux was up and rebooted. This was Linux-2.6.13.4. Then > I tried linux-2.4.26 which corresponds to the version when I > first reported this problem. The same thing happens. Therefore, > I temporarily modified linux-2.6.13.4 to force a triple-fault > and processor reset when doing a reboot. With this temporary > modification it is possible to boot windows after Linux was > running. > > This is the reboot patch. It is not a "solution", just something > that shows that the current reboot code doesn't force the BIOS > to start from scratch, which is essential when changing operating > systems. > > > --- linux-2.6.13.4/arch/i386/kernel/reboot.c.orig 2005-11-18 08:29:12.000000000 -0500 > +++ linux-2.6.13.4/arch/i386/kernel/reboot.c 2005-11-18 08:52:40.000000000 -0500 > @@ -337,6 +337,11 @@ > > void machine_restart(char * __unused) > { > + for(;;) { > + __asm__ __volatile__("\tmovl %cr0, %eax\n" > + "\tandl $~0x80000000, %eax\n" > + "\tmovl %eax, %cr0\n"); > + } > machine_shutdown(); > machine_emergency_restart(); > } Does reboot=cb ('cold', 'thru BIOS') work for you? I read arch/i386/kernel/reboot.c and it looks like reboot=cb kernel param will triple fault too: static int reboot_mode; static int reboot_thru_bios; static int __init reboot_setup(char *str) { while(1) { switch (*str) { case 'w': /* "warm" reboot (no memory testing etc) */ reboot_mode = 0x1234; break; case 'c': /* "cold" reboot (with memory testing etc) */ reboot_mode = 0x0; break; case 'b': /* "bios" reboot by jumping through the BIOS */ reboot_thru_bios = 1; break; case 'h': /* "hard" reboot by toggling RESET and/or crashing the CPU */ reboot_thru_bios = 0; break; } if((str = strchr(str,',')) != NULL) str++; else break; } return 1; } __setup("reboot=", reboot_setup); ... void machine_emergency_restart(void) { if (!reboot_thru_bios) { if (efi_enabled) { efi.reset_system(EFI_RESET_COLD, EFI_SUCCESS, 0, NULL); load_idt(&no_idt); __asm__ __volatile__("int3"); } /* rebooting needs to touch the page at absolute addr 0 */ *((unsigned short *)__va(0x472)) = reboot_mode; for (;;) { mach_reboot_fixups(); /* for board specific fixups */ mach_reboot(); /* That didn't work - force a triple fault.. */ load_idt(&no_idt); __asm__ __volatile__("int3"); } } if (efi_enabled) efi.reset_system(EFI_RESET_WARM, EFI_SUCCESS, 0, NULL); machine_real_restart(jump_to_bios, sizeof(jump_to_bios)); } void machine_restart(char * __unused) { machine_shutdown(); machine_emergency_restart(); } If it does not, try this reboot=tc - this is closely resembles what you proposed in your mail (pseudo-patch): static int __init reboot_setup(char *str) { while(1) { switch (*str) { + case 't': /* "triple fault" reboot */ + reboot_thru_bios = 2; + break; case 'w': /* "warm" reboot (no memory testing etc) */ reboot_mode = 0x1234; break; ... void machine_emergency_restart(void) { + if (reboot_thru_bios == 2) { + *((unsigned short *)__va(0x472)) = reboot_mode; + load_idt(&no_idt); + __asm__ __volatile__("int3"); + } if (!reboot_thru_bios) { if (efi_enabled) { efi.reset_system(EFI_RESET_COLD, EFI_SUCCESS, 0, NULL); -- vda ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Compaq Presario "reboot" problems 2005-11-19 14:44 ` Denis Vlasenko @ 2005-11-21 17:52 ` linux-os (Dick Johnson) 2005-11-21 18:58 ` Stefan Seyfried 0 siblings, 1 reply; 15+ messages in thread From: linux-os (Dick Johnson) @ 2005-11-21 17:52 UTC (permalink / raw) To: Denis Vlasenko; +Cc: Linux kernel On Sat, 19 Nov 2005, Denis Vlasenko wrote: > On Friday 18 November 2005 16:15, linux-os (Dick Johnson) wrote: >> On Fri, 18 Nov 2005, Denis Vlasenko wrote: >> >>> On Thursday 17 November 2005 20:51, linux-os (Dick Johnson) wrote: >>>> It appears as though Linux is still restarting as a "warm boot", >>>> rather than a cold boot (in other words, putting magic in the >>>> shutdown byte of CMOS) so the hardware doesn't get properly >>>> initialized. Would somebody please check this out. When changing >>>> operating systems, you need a cold-boot. >>> >>> Can you check which driver does that? The test would be to >>> boot a special Linux setup which reboots immediately >>> (say, wuth init=/some/reboot_script.sh boot param). >>> >>> Then start removing drivers from kernel until you >>> can boot Win successfully after Linux reboots. >>> -- >>> vda >> >> I booted into a shell from a floppy disk. There were no drivers >> installed, not even the IDE driver. I could not reboot windows >> after linux was up and rebooted. This was Linux-2.6.13.4. Then >> I tried linux-2.4.26 which corresponds to the version when I >> first reported this problem. The same thing happens. Therefore, >> I temporarily modified linux-2.6.13.4 to force a triple-fault >> and processor reset when doing a reboot. With this temporary >> modification it is possible to boot windows after Linux was >> running. >> >> This is the reboot patch. It is not a "solution", just something >> that shows that the current reboot code doesn't force the BIOS >> to start from scratch, which is essential when changing operating >> systems. >> >> >> --- linux-2.6.13.4/arch/i386/kernel/reboot.c.orig 2005-11-18 08:29:12.000000000 -0500 >> +++ linux-2.6.13.4/arch/i386/kernel/reboot.c 2005-11-18 08:52:40.000000000 -0500 >> @@ -337,6 +337,11 @@ >> >> void machine_restart(char * __unused) >> { >> + for(;;) { >> + __asm__ __volatile__("\tmovl %cr0, %eax\n" >> + "\tandl $~0x80000000, %eax\n" >> + "\tmovl %eax, %cr0\n"); >> + } >> machine_shutdown(); >> machine_emergency_restart(); >> } > > Does reboot=cb ('cold', 'thru BIOS') work for you? > > I read arch/i386/kernel/reboot.c and it looks like reboot=cb > kernel param will triple fault too: > > static int reboot_mode; > static int reboot_thru_bios; > > static int __init reboot_setup(char *str) > { > while(1) { > switch (*str) { > case 'w': /* "warm" reboot (no memory testing etc) */ > reboot_mode = 0x1234; > break; > case 'c': /* "cold" reboot (with memory testing etc) */ > reboot_mode = 0x0; > break; > case 'b': /* "bios" reboot by jumping through the BIOS */ > reboot_thru_bios = 1; > break; > case 'h': /* "hard" reboot by toggling RESET and/or crashing the CPU */ > reboot_thru_bios = 0; > break; > } > if((str = strchr(str,',')) != NULL) > str++; > else > break; > } > return 1; > } > > __setup("reboot=", reboot_setup); > ... > void machine_emergency_restart(void) > { > if (!reboot_thru_bios) { > if (efi_enabled) { > efi.reset_system(EFI_RESET_COLD, EFI_SUCCESS, 0, NULL); > load_idt(&no_idt); > __asm__ __volatile__("int3"); > } > /* rebooting needs to touch the page at absolute addr 0 */ > *((unsigned short *)__va(0x472)) = reboot_mode; > for (;;) { > mach_reboot_fixups(); /* for board specific fixups */ > mach_reboot(); > /* That didn't work - force a triple fault.. */ > load_idt(&no_idt); > __asm__ __volatile__("int3"); > } > } > if (efi_enabled) > efi.reset_system(EFI_RESET_WARM, EFI_SUCCESS, 0, NULL); > > machine_real_restart(jump_to_bios, sizeof(jump_to_bios)); > } > > void machine_restart(char * __unused) > { > machine_shutdown(); > machine_emergency_restart(); > } > > > If it does not, try this reboot=tc - this is closely resembles > what you proposed in your mail (pseudo-patch): > > static int __init reboot_setup(char *str) > { > while(1) { > switch (*str) { > + case 't': /* "triple fault" reboot */ > + reboot_thru_bios = 2; > + break; > case 'w': /* "warm" reboot (no memory testing etc) */ > reboot_mode = 0x1234; > break; > ... > void machine_emergency_restart(void) > { > + if (reboot_thru_bios == 2) { > + *((unsigned short *)__va(0x472)) = reboot_mode; > + load_idt(&no_idt); > + __asm__ __volatile__("int3"); > + } > if (!reboot_thru_bios) { > if (efi_enabled) { > efi.reset_system(EFI_RESET_COLD, EFI_SUCCESS, 0, NULL); > -- > vda I don't know how to make `reboot` or `init 0` take the required parameters! I don't know how to get from user-mode into the kernel code with any such parameters. I looked through `proc` and couldn't find anything for such parameters either: Script started on Mon 21 Nov 2005 12:42:11 PM EST [root@chaos root]# reboot=cb [root@chaos root]# strace reboot=cb strace: reboot=cb: command not found [root@chaos root]# strace reboot -cb\b execve("/sbin/reboot", ["reboot", "-cb"], [/* 22 vars */]) = 0 uname({sys="Linux", node="chaos.analogic.com", ...}) = 0 brk(0) = 0x804b000 open("/etc/ld.so.preload", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0666, st_size=0, ...}) = 0 close(3) = 0 open("/etc/ld.so.cache", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=123802, ...}) = 0 old_mmap(NULL, 123802, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7f3e000 close(3) = 0 open("/lib/tls/libc.so.6", O_RDONLY) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\300{\230"..., 512) = 512 fstat64(3, {st_mode=S_IFREG|0755, st_size=1455084, ...}) = 0 old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f3d000 old_mmap(0x4a973000, 1158124, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x4a973000 old_mmap(0x4aa88000, 16384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x115000) = 0x4aa88000 old_mmap(0x4aa8c000, 7148, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x4aa8c000 close(3) = 0 mprotect(0x4aa88000, 8192, PROT_READ) = 0 mprotect(0x4a96b000, 4096, PROT_READ) = 0 set_thread_area({entry_number:-1 -> 6, base_addr:0xb7f3d540, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0 munmap(0xb7f3e000, 123802) = 0 geteuid32() = 0 write(2, "usage: reboot [-n] [-w] [-d] [-f"..., 44usage: reboot [-n] [-w] [-d] [-f] [-i] [-p] ) = 44 write(2, "\t\t -n: don\'t sync before reboot"..., 47 -n: don't sync before rebooting the system ) = 47 write(2, "\t\t -w: only write a wtmp reboot"..., 50 -w: only write a wtmp reboot record and exit. ) = 50 write(2, "\t\t -d: don\'t write a wtmp recor"..., 35 -d: don't write a wtmp record. ) = 35 write(2, "\t\t -f: force halt/reboot, don\'t"..., 48 -f: force halt/reboot, don't call shutdown. ) = 48 write(2, "\t\t -p: power down the system (i"..., 62 -p: power down the system (if possible, otherwise reboot) ) = 62 exit_group(1) = ? [root@chaos root]# [root@chaos root]# exit exit Script done on Mon 21 Nov 2005 12:43:09 PM EST `man reboot` doesn't show any parameters. Cheers, Dick Johnson Penguin : Linux version 2.6.13.4 on an i686 machine (5589.52 BogoMips). Warning : 98.36% of all statistics are fiction. . **************************************************************** The information transmitted in this message is confidential and may be privileged. Any review, retransmission, dissemination, or other use of this information by persons or entities other than the intended recipient is prohibited. If you are not the intended recipient, please notify Analogic Corporation immediately - by replying to this message or by sending an email to DeliveryErrors@analogic.com - and destroy all copies of this information, including any attachments, without reading or disclosing them. Thank you. ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Compaq Presario "reboot" problems 2005-11-21 17:52 ` linux-os (Dick Johnson) @ 2005-11-21 18:58 ` Stefan Seyfried 2005-11-22 14:09 ` linux-os (Dick Johnson) 0 siblings, 1 reply; 15+ messages in thread From: Stefan Seyfried @ 2005-11-21 18:58 UTC (permalink / raw) To: linux-os (Dick Johnson); +Cc: Linux kernel, vda linux-os (Dick Johnson) wrote: > I don't know how to make `reboot` or `init 0` take the required > parameters! I don't know how to get from user-mode into the kernel > code with any such parameters. I looked through `proc` and couldn't > find anything for such parameters either: > > Script started on Mon 21 Nov 2005 12:42:11 PM EST > [root@chaos root]# reboot=cb > [root@chaos root]# strace reboot=cb > strace: reboot=cb: command not found > [root@chaos root]# strace reboot -cb\b Pass it to the kernel at the bootloader prompt. Like the "vga=6" and "root=/foo/bar" you have somewhere in there. -- Stefan Seyfried \ "I didn't want to write for pay. I QA / R&D Team Mobile Devices \ wanted to be paid for what I write." SUSE LINUX Products GmbH, Nürnberg \ -- Leonard Cohen ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Compaq Presario "reboot" problems 2005-11-21 18:58 ` Stefan Seyfried @ 2005-11-22 14:09 ` linux-os (Dick Johnson) 2005-11-22 14:19 ` Denis Vlasenko 0 siblings, 1 reply; 15+ messages in thread From: linux-os (Dick Johnson) @ 2005-11-22 14:09 UTC (permalink / raw) To: Stefan Seyfried; +Cc: Linux kernel, vda On Mon, 21 Nov 2005, Stefan Seyfried wrote: > linux-os (Dick Johnson) wrote: > >> I don't know how to make `reboot` or `init 0` take the required >> parameters! I don't know how to get from user-mode into the kernel >> code with any such parameters. I looked through `proc` and couldn't >> find anything for such parameters either: >> >> Script started on Mon 21 Nov 2005 12:42:11 PM EST >> [root@chaos root]# reboot=cb >> [root@chaos root]# strace reboot=cb >> strace: reboot=cb: command not found >> [root@chaos root]# strace reboot -cb\b > > Pass it to the kernel at the bootloader prompt. Like the "vga=6" and > "root=/foo/bar" you have somewhere in there. > > -- > Stefan Seyfried \ "I didn't want to write for pay. I > QA / R&D Team Mobile Devices \ wanted to be paid for what I write." > SUSE LINUX Products GmbH, Nürnberg \ -- Leonard Cohen > Okay, the results are the same. The machine reboots. It doesn't run the memory-test so it probably didn't cold-boot. It's hard to tell with these lap-tops because the time in the BIOS is so brief. Anyway, it reboots into Linux, but can't reboot into Windows as before. Cheers, Dick Johnson Penguin : Linux version 2.6.13.4 on an i686 machine (5589.55 BogoMips). Warning : 98.36% of all statistics are fiction. **************************************************************** The information transmitted in this message is confidential and may be privileged. Any review, retransmission, dissemination, or other use of this information by persons or entities other than the intended recipient is prohibited. If you are not the intended recipient, please notify Analogic Corporation immediately - by replying to this message or by sending an email to DeliveryErrors@analogic.com - and destroy all copies of this information, including any attachments, without reading or disclosing them. Thank you. ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Compaq Presario "reboot" problems 2005-11-22 14:09 ` linux-os (Dick Johnson) @ 2005-11-22 14:19 ` Denis Vlasenko 0 siblings, 0 replies; 15+ messages in thread From: Denis Vlasenko @ 2005-11-22 14:19 UTC (permalink / raw) To: linux-os (Dick Johnson); +Cc: Stefan Seyfried, Linux kernel On Tuesday 22 November 2005 16:09, linux-os (Dick Johnson) wrote: > Okay, the results are the same. The machine reboots. It doesn't > run the memory-test so it probably didn't cold-boot. It's hard to > tell with these lap-tops because the time in the BIOS is so > brief. Anyway, it reboots into Linux, but can't reboot into Windows > as before. You may want to try to add triple-fault reset as suggested here (based on your own idea actually): > If it does not, try this reboot=tc - this is closely resembles > what you proposed in your mail (pseudo-patch): > > static int __init reboot_setup(char *str) > { > while(1) { > switch (*str) { > + case 't': /* "triple fault" reboot */ > + reboot_thru_bios = 2; > + break; > case 'w': /* "warm" reboot (no memory testing etc) */ > reboot_mode = 0x1234; > break; > ... > void machine_emergency_restart(void) > { > + if (reboot_thru_bios == 2) { > + *((unsigned short *)__va(0x472)) = reboot_mode; > + load_idt(&no_idt); > + __asm__ __volatile__("int3"); > + } > if (!reboot_thru_bios) { > if (efi_enabled) { > efi.reset_system(EFI_RESET_COLD, EFI_SUCCESS, 0, NULL); -- vda ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Compaq Presario "reboot" problems
@ 2005-11-18 15:14 Nick Warne
0 siblings, 0 replies; 15+ messages in thread
From: Nick Warne @ 2005-11-18 15:14 UTC (permalink / raw)
To: linux-os; +Cc: linux-kernel, Ondrej Zary, Denis Vlasenko
On Fri, 18 Nov 2005, Denis Vlasenko wrote:
> On Thursday 17 November 2005 20:51, linux-os (Dick Johnson) wrote:
>>
>> With Linux-2.4.26 I reported that if a Compaq gets rebooted while
>> running Linux-2.4.26, it will not be able to restart Windows 2000.
>> It cam restart Linux fine. Today, I tried the same thing with
>> Linux-2.6.13.4. It fails, too.
I am following this thread and this thought just occurred to me.
A few years back I installed Linux on a Compaq box and used fdisk etc. as you
do. It turned out I wiped the BIOS settings, and further investigation at
the time revealed that they use a hidden partition on the drive for the BIOS
stuff. I told fdisk to wipe all.
After this, the machine worked ok, just that I had no BIOS options at all - it
beeped a bit at me at boot, but came up OK and worked for a few years until I
binned it.
Just a thought on what is going on here.
Nick
--
http://sourceforge.net/projects/quake2plus/
"Person who say it cannot be done should not interrupt person doing it."
-Chinese Proverb
^ permalink raw reply [flat|nested] 15+ messages in thread[parent not found: <59X9C-2Va-9@gated-at.bofh.it>]
* Re: Compaq Presario "reboot" problems [not found] <59X9C-2Va-9@gated-at.bofh.it> @ 2005-11-19 5:05 ` Robert Hancock 0 siblings, 0 replies; 15+ messages in thread From: Robert Hancock @ 2005-11-19 5:05 UTC (permalink / raw) To: linux-kernel linux-os (Dick Johnson) wrote: > > With Linux-2.4.26 I reported that if a Compaq gets rebooted while > running Linux-2.4.26, it will not be able to restart Windows 2000. > It cam restart Linux fine. Today, I tried the same thing with > Linux-2.6.13.4. It fails, too. > > The symptoms are that you just "reboot" Linux. When the GRUB loader > comes up, I select my Windows-2000/professional. That M$ Crap comes > up to where it's just about to start the high-resolution screen. > Then it stops forever, no interrupts, no nothing. I need to disconnect > power and remove the battery to recover. > > It appears as though Linux is still restarting as a "warm boot", > rather than a cold boot (in other words, putting magic in the > shutdown byte of CMOS) so the hardware doesn't get properly > initialized. Would somebody please check this out. When changing > operating systems, you need a cold-boot. This sounds more like the BIOS is not properly reinitializing all hardware and expects it to be in some state which Linux does not leave it in. BIOS update available? -- Robert Hancock Saskatoon, SK, Canada To email, remove "nospam" from hancockr@nospamshaw.ca Home Page: http://www.roberthancock.com/ ^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2005-11-22 14:20 UTC | newest]
Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-11-17 18:51 Compaq Presario "reboot" problems linux-os (Dick Johnson)
2005-11-17 18:39 ` Jeff V. Merkey
2005-11-17 23:26 ` Ondrej Zary
2005-11-18 11:48 ` Denis Vlasenko
2005-11-19 13:39 ` Ondrej Zary
2005-11-18 11:51 ` Denis Vlasenko
2005-11-18 12:48 ` linux-os (Dick Johnson)
2005-11-18 14:15 ` linux-os (Dick Johnson)
2005-11-19 14:44 ` Denis Vlasenko
2005-11-21 17:52 ` linux-os (Dick Johnson)
2005-11-21 18:58 ` Stefan Seyfried
2005-11-22 14:09 ` linux-os (Dick Johnson)
2005-11-22 14:19 ` Denis Vlasenko
-- strict thread matches above, loose matches on Subject: below --
2005-11-18 15:14 Nick Warne
[not found] <59X9C-2Va-9@gated-at.bofh.it>
2005-11-19 5:05 ` Robert Hancock
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox