Driver Problems? Questions? Issues?
Put OSR's experience to work for you! Contact us for assistance with:
  • Creating the right design for your requirements
  • Reviewing your existing driver code
  • Analyzing driver reliability/performance issues
  • Custom training mixed with consulting and focused directly on your specific areas of interest/concern.
Check us out. OSR, the Windows driver experts.

Upcoming OSR Seminars:
Developing File Systems for Windows, Seattle, WA 4-7 November, 2014
Kernel Debugging & Crash Analysis Lab, Boston/Waltham, MA 10-14 November, 2014
Writing WDF Drivers: Core Concepts Lab, Palo Alto, CA 12-16 January, 2015
Windows Internals & Software Drivers Lab, Seattle, WA, 16-20 February, 2015
Writing WDF Drivers: Advanced Lab, Palo Alto, CA 10-13 March, 2015


Go Back   OSR Online Lists > ntdev
Welcome, Guest
You must login to post to this list
  Message 1 of 38  
08 Dec 07 12:18
Taed Wynnell
xxxxxx@vertical.com
Join Date: 10 Feb 2007
Posts To This List: 45
Is there a way to put Windows in PIC-mode instead of APIC-mode?

We have a Windows product image that was built on a PIC-based motherboard, but now we will be shipping a lower-cost APIC-based motherboard *as well* (we will be supporting both motherboards). Building another APIC-based Windows image is something I want to avoid so as to not support two nearly-identical images, but also the customer won't know which image to use since the motherboard details are hidden from them. So, I'd like to have just one image. Is there a way to configure Windows to always run in PIC-mode even if an APIC is present? Unfortunately, that's not an option in the BIOS of the new motherboard. I searched around on Google and the MS Knowledgebase, but didn't come up with anything. (Although I did find that Linux has what I want with a "noapic" option, which suggests that it might be possible.) Any ideas? --
  Message 2 of 38  
08 Dec 07 12:49
Mark Roddy
xxxxxx@gmail.com
Join Date: 25 Feb 2000
Posts To This List: 3677
Is there a way to put Windows in PIC-mode instead of APIC-mode?

The answer is "no" but I am really curious as to how your product ends up with a dependency on the type of interrupt controller. On Dec 8, 2007 12:18 PM, Taed Wynnell <xxxxx@vertical.com> wrote: > > > We have a Windows product image that was built on a PIC-based motherboard, > but now we will be shipping a lower-cost APIC-based motherboard *as well* > (we will be supporting both motherboards). Building another APIC-based > Windows image is something I want to avoid so as to not support two > nearly-identical images, but also the customer won't know which image to use > since the motherboard details are hidden from them. So, I'd like to have > just one image. > <...excess quoted lines suppressed...> -- Mark Roddy
  Message 3 of 38  
08 Dec 07 14:38
anton bassov
xxxxxx@hotmail.com
Join Date: 16 Jul 2006
Posts To This List: 3785
Is there a way to put Windows in PIC-mode instead of APIC-mode?

> Is there a way to configure Windows to always run in PIC-mode even if an APIC is present? Sure - just disable APIC in BIOS, and reinstall Windows. Please note if you disable APIC in BIOS settings, Windows installation that got installed with APIC enabled is not going to work, because PIC and APIC require totally different HAL versions. > Unfortunately, that's not an option in the BIOS of the new motherboard. I hope by now you understand that even if this option was available, it still would not lead you anywhere, as far as your product is concerned.... > We have a Windows product image that was built on a PIC-based motherboard, > but now we will be shipping a lower-cost APIC-based motherboard *as well* > (we will be supporting both motherboards). Building another APIC-based Windows > image is something I want to avoid.... Sorry, but if you want to avoid building separate images for PIC and APIC motherboards, then just don't bypass system-provided HAL and do things the way MSFT tells you to - after all, this is what HAL is for. However, if you want to do something "not-so-conventional" and choose to bypass system-provided HAL, you have no option, other than building separate images. >...so as to not support two nearly-identical images, What about isolating HAL-specific code in a library??? Anton Bassov
  Message 4 of 38  
08 Dec 07 14:44
Don Burn
xxxxxx@acm.org
Join Date:
Posts To This List: 3179
Is there a way to put Windows in PIC-mode instead of APIC-mode?

Taed, if you are asking how to put the same disk image of an embedded type system on both the old system and the apic system, then you might look at the boot.ini option /HAL= This will allow you to specify the apic HAL as boot.ini option. -- Don Burn (MVP, Windows DDK) Windows 2k/XP/2k3 Filesystem and Driver Consulting Website: http://www.windrvr.com Blog: http://msmvps.com/blogs/WinDrvr Remove StopSpam to reply "Taed Wynnell" <xxxxx@vertical.com> wrote in message news:98983@ntdev... We have a Windows product image that was built on a PIC-based motherboard, but now we will be shipping a lower-cost APIC-based motherboard *as well* (we will be supporting both motherboards). Building another APIC-based Windows image is something I want to avoid so as to not support two nearly-identical images, but also the customer won't know which image to use since the motherboard details are hidden from them. So, I'd like to have just one image. Is there a way to configure Windows to always run in PIC-mode even if an APIC is present? Unfortunately, that's not an option in the BIOS of the new motherboard. I searched around on Google and the MS Knowledgebase, but didn't come up with anything. (Although I did find that Linux has what I want with a "noapic" option, which suggests that it might be possible.) Any ideas?
  Message 5 of 38  
08 Dec 07 15:17
Taed Wynnell
xxxxxx@vertical.com
Join Date: 10 Feb 2007
Posts To This List: 45
Is there a way to put Windows in PIC-mode instead of APIC-mode?

"Mark Roddy" <xxxxx@hollistech.com> wrote in message news:98984@ntdev... > The answer is "no" but I am really curious as to how your product ends > up with a dependency on the type of interrupt controller. The product is an entire embedded system, so it's not our drivers and whatnot that are dependent, but Windows itself. The goal is to have the same disk image work with both motherboards.
  Message 6 of 38  
08 Dec 07 15:17
anton bassov
xxxxxx@hotmail.com
Join Date: 16 Jul 2006
Posts To This List: 3785
Is there a way to put Windows in PIC-mode instead of APIC-mode?

Don, > if you are asking how to put the same disk image of an embedded type system on > both the old system and the apic system, then you might look at the boot.ini > option /HAL= This will allow you to specify the apic HAL as boot.ini option. IIRC, Windows setup does not copy all HAL versions to the disk - the only "spare" version it copies is that of MP HAL if it detects that the system has multiple logical CPUs and only one of them is currently enabled in BIOS. Therefore, I think APIC-based machine is not going to have PIC HAL on the disk...... Anton Bassov
  Message 7 of 38  
08 Dec 07 15:21
Taed Wynnell
xxxxxx@vertical.com
Join Date: 10 Feb 2007
Posts To This List: 45
Is there a way to put Windows in PIC-mode instead of APIC-mode?

<xxxxx@hotmail.com> wrote in message news:98986@ntdev... >> Is there a way to configure Windows to always run in PIC-mode even if an >> APIC is present? > > Sure - just disable APIC in BIOS, and reinstall Windows. Please note if > you disable APIC in BIOS settings, Windows installation that got installed > with APIC enabled is not going to work, because PIC and APIC require > totally different HAL versions. > >> Unfortunately, that's not an option in the BIOS of the new motherboard. > <...excess quoted lines suppressed...> I don't understand your point. If the BIOS option were available and I set the BIOS on the APIC motherboard to work in PIC-mode, then both systems would appear to have a PIC motherboard to Windows. And thus, we could use the same PIC-based Windows image on both systems. What am I missing?
  Message 8 of 38  
08 Dec 07 15:27
Don Burn
xxxxxx@acm.org
Join Date:
Posts To This List: 3179
Is there a way to put Windows in PIC-mode instead of APIC-mode?

Anton, In this case you did not remember correctly, but even if this does happen the guy is making an image he can add the file. I had a workstation with flakey ACPI an used /HAL to force the hal of my choice. -- Don Burn (MVP, Windows DDK) Windows 2k/XP/2k3 Filesystem and Driver Consulting Website: http://www.windrvr.com Blog: http://msmvps.com/blogs/WinDrvr Remove StopSpam to reply <xxxxx@hotmail.com> wrote in message news:98989@ntdev... > Don, > >> if you are asking how to put the same disk image of an embedded type >> system on >> both the old system and the apic system, then you might look at the >> boot.ini >> option /HAL= This will allow you to specify the apic HAL as boot.ini >> option. > > IIRC, Windows setup does not copy all HAL versions to the disk - the only <...excess quoted lines suppressed...>
  Message 9 of 38  
08 Dec 07 15:33
Taed Wynnell
xxxxxx@vertical.com
Join Date: 10 Feb 2007
Posts To This List: 45
Is there a way to put Windows in PIC-mode instead of APIC-mode?

"Don Burn" <xxxxx@acm.org> wrote in message news:98987@ntdev... > if you are asking how to put the same disk image of an embedded type > system on both the old system and the apic system, then you might look at > the boot.ini option /HAL= This will allow you to specify the apic HAL as > boot.ini option. Thanks for the reminder of that option. However, I had tried doing that last year when we had a similar issue with ACPI and non-ACPI motherboards, and it didn't work (it ended up crashing as I recall). My theory at the time was that there were registry or other configuration settings that were still dependant on the type of HAL, so one couldn't use the /HAL= bios.ini switch to force a different type of HAL. (And that the option was really only useful for checked mode.) In fact, the seemingly equivalent of editing the disk offline and putting the correct HAL.DLL on there also doesn't work and crashes. However, if one then reinstalls (not repairs) Windows from the install disk to the edited disk, it will correct whatever problem there was. (Oddly enough, though, the reinstall without putting the correct HAL on there first does NOT put the correct HAL on there.) I did go through that process this time again, so I know I'm right on that point. I'll try the /HAL= again, but do you really think that the /HAL= switch would allow the use of a different type of HAL with respect to PIC/APIC and ACPI/non-ACPI? I'm using Win2003. However, I heard from Microsoft support last year that Vista and/or Win2008 do away with these issues by auto-detecting the HAL and NTOSKRNL types on bootup. I don't know if they know enough to use the right one, or if they did away with the multiple versions altogether.
  Message 10 of 38  
08 Dec 07 16:20
Loren Wilton
xxxxxx@earthlink.net
Join Date: 04 May 2003
Posts To This List: 446
Is there a way to put Windows in PIC-mode instead of APIC-mode?

There used to be a "bad BIOS" list in the windows install stuff. If your bios was on the bad bios list, it would install in PIC mode even though the system claimed to have an APIC, since the APIC was known to work wrong. There also used to be an option in the install script to force a PIC install, if I recall. Don't remember what the option was anymore, that was pushing 10 years ago. Don't know if it would still be there or not. I guess I'm surprised that your disk image with the PIC HAL doesn't "just work" on your APIC machine. That used to be pretty common, in fact there was an F5 or some such option in the normal install to let you choose to use the APIC or not on W2K. Loren
  Message 11 of 38  
08 Dec 07 16:24
Loren Wilton
xxxxxx@earthlink.net
Join Date: 04 May 2003
Posts To This List: 446
Is there a way to put Windows in PIC-mode instead of APIC-mode?

> I'll try the /HAL= again, but do you really think that the /HAL= switch It won't work. As best I recall, as well as picking the HAL, it either picks a matching kernel or applies assorted patches to the kernel when loading apic. You can't just change the HAL at that point, you have to at least change the kernel also, and I seem to recall that was iffy. Much easier to reinstall from scratch. Loren
  Message 12 of 38  
08 Dec 07 16:35
anton bassov
xxxxxx@hotmail.com
Join Date: 16 Jul 2006
Posts To This List: 3785
Is there a way to put Windows in PIC-mode instead of APIC-mode?

> I don't understand your point. If the BIOS option were available and I set the BIOS > on the APIC motherboard to work in PIC-mode, then both systems would appear > to have a PIC motherboard to Windows. And thus, we could use the same > PIC-based Windows image on both systems. What am I missing? Well, I thought that you mean doing it dynamically from a driver..... Let's face it - normally you just don't tell the user "If you want my driver to work on your system make sure BIOS setting are appropriate for it". Instead, it is supposed to work without any user intervention - after all, a typical Windows user may have no idea about BIOS's very existence, and is very unlikely to know about the way interrupts are vectored... Anton Bassov
  Message 13 of 38  
08 Dec 07 17:07
Mark Roddy
xxxxxx@gmail.com
Join Date: 25 Feb 2000
Posts To This List: 3677
Is there a way to put Windows in PIC-mode instead of APIC-mode?

Said the OP: "Unfortunately, that's not an option in the BIOS of the new motherboard. " The system bios (thankfully) does not support disabling the APIC. The answer to the OP's question is simply 'no'. On Dec 8, 2007 4:36 PM, <xxxxx@hotmail.com> wrote: > > I don't understand your point. If the BIOS option were available and I set the BIOS > > on the APIC motherboard to work in PIC-mode, then both systems would appear > > to have a PIC motherboard to Windows. And thus, we could use the same > > PIC-based Windows image on both systems. What am I missing? > > Well, I thought that you mean doing it dynamically from a driver..... > > Let's face it - normally you just don't tell the user "If you want my driver to work on your system make sure BIOS setting are appropriate for it". Instead, it is supposed to work without any user intervention - after all, a typical Windows user may have no idea about BIOS's very existence, and is very unlikely to know about the way interrupts are vectored... > > Anton Bassov <...excess quoted lines suppressed...> -- Mark Roddy
  Message 14 of 38  
08 Dec 07 19:03
Taed Wynnell
xxxxxx@vertical.com
Join Date: 10 Feb 2007
Posts To This List: 45
Is there a way to put Windows in PIC-mode instead of APIC-mode?

I agree. However, in this case, the user doesn't even know that we run Windows. It's an embedded system and we control every aspect of the system, which is why we're working with a disk image, and not just some installer program. The problem is not with our driver, it's with Windows -- we want the same disk image to work on both the PIC and APIC systems. That way, the field installers won't have to deal with multiple images; they'll always use the same one, so no chance of error or confusion. <xxxxx@hotmail.com> wrote in message news:98995@ntdev... > > I don't understand your point. If the BIOS option were available and I set the BIOS > > on the APIC motherboard to work in PIC-mode, then both systems would appear > > to have a PIC motherboard to Windows. And thus, we could use the same > > PIC-based Windows image on both systems. What am I missing? > > Well, I thought that you mean doing it dynamically from a driver..... > > Let's face it - normally you just don't tell the user "If you want my driver to work on your system make sure BIOS setting are appropriate for it". Instead, it is supposed to work without any user intervention - after all, a typical Windows user may have no idea about BIOS's very existence, and is very unlikely to know about the way interrupts are vectored... > > Anton Bassov >
  Message 15 of 38  
08 Dec 07 19:10
Taed Wynnell
xxxxxx@vertical.com
Join Date: 10 Feb 2007
Posts To This List: 45
Is there a way to put Windows in PIC-mode instead of APIC-mode?

"Mark Roddy" <xxxxx@hollistech.com> wrote in message news:98996@ntdev... > Said the OP: > "Unfortunately, that's not an option in the BIOS of the new motherboard. " > > The system bios (thankfully) does not support disabling the APIC. The > answer to the OP's question is simply 'no'. Actually, there are BIOSes out there that can configure the APIC to act as a PIC. We have a request in to the motherboard manufacturer to see if they can add that feature to theirs. If they do, then I'm set. But I don't know if they will or how long it will take, so that's why I'm exploring other options. And yes, it's looking like the answer is no to my question... Thanks anyway!
  Message 16 of 38  
08 Dec 07 22:20
David J. Craig
xxxxxx@yoshimuni.com
Join Date:
Posts To This List: 1128
Is there a way to put Windows in PIC-mode instead of APIC-mode?

If you don't really care if your driver runs on a PIC or APIC based motherboard, then just create one image for each. Put both of them on a WAIK bootable DVD. Write a program to determine if a PIC or APIC is present and install the appropriate one. Since you control the complete design of the embedded system that is easiest. I don't think it will be that difficult. You can embed your driver in the booting OS (Vista PE) and have full access to your hardware. This WAIK is designed to permit system OEMs to install special drivers for boot devices relatively easy. Why make the installers do all the work of deciding which image is appropriate for this machine? WAIK = Windows Automated Install Kit - used to be released to system OEMs only before Vista, but became a free download shortly after Vista was released. I think the images can be on another system (server) and not directly on the DVD so they can easily duplicated to computers being prepared for shipment. I suspect they can be on an external HD connected via USB or 1394. The bootable OS could also be placed on a USB flash drive with or without the images. Currently 16GB flash drives are available for around $150 +/-$30. If the hard drive is unformatted I think it should be formatted but that can be automated. Since this is really designed to be an installer of the OS, only one image with your drivers added can be easily created and the correct HAL/NTOSKRNL will be choosen automatically. "Taed Wynnell" <xxxxx@vertical.com> wrote in message news:98999@ntdev... > "Mark Roddy" <xxxxx@hollistech.com> wrote in message news:98996@ntdev... >> Said the OP: >> "Unfortunately, that's not an option in the BIOS of the new motherboard. >> " >> >> The system bios (thankfully) does not support disabling the APIC. The >> answer to the OP's question is simply 'no'. > > Actually, there are BIOSes out there that can configure the APIC to act as > a <...excess quoted lines suppressed...>
  Message 17 of 38  
09 Dec 07 00:03
anton bassov
xxxxxx@hotmail.com
Join Date: 16 Jul 2006
Posts To This List: 3785
Is there a way to put Windows in PIC-mode instead of APIC-mode?

> "Unfortunately, that's not an option in the BIOS of the new motherboard. " > The system bios (thankfully) does not support disabling the APIC. > The answer to the OP's question is simply 'no'. The purpose of BIOS is just booting the computer. Therefore, BIOS APIC settings are guaranteed to be in effect only before it transfers control to the OS - once APIC setting can be modified by anyone who runs at privilege level 0 (these modifications don't really have to be saved in CMOS, do they ), it is up to the OS to decide whether it wants to make use of APIC or whether it wants to disable it and run in PIC mode. In other words, it is just the question of how to make setup configure Windows to run in PIC mode regardless of BIOS settings (i.e. to disable APIC and run PIC kernel and HAL). As other posters say, earlier versions of Windows allowed it, but I am not so sure about the modern ones... Anton Bassov
  Message 18 of 38  
09 Dec 07 00:24
anton bassov
xxxxxx@hotmail.com
Join Date: 16 Jul 2006
Posts To This List: 3785
Is there a way to put Windows in PIC-mode instead of APIC-mode?

> it's an embedded system and we control every aspect of the system, which is > why we're working with a disk image, and not just some installer program. At this point I just refuse to understand anything. Are you saying that your software has a chance to run before the OS (or setup program) even gets loaded??? If this is the case, instead of asking questions in Windows-related NGs, you should go straight to Intel site and download Developer's Manual, Volume 3, as well as IOAPIC Manual and other related docs - once it is your software and not Windows who is in charge of things (how lucky you are), answers to all your questions are there..... Anton Bassov
  Message 19 of 38  
09 Dec 07 00:59
Jake Oshins
xxxxxx@windows.microsoft.com
Join Date:
Posts To This List: 1047
Is there a way to put Windows in PIC-mode instead of APIC-mode?

You don't say in this message which version of Windows you're dealing with, so I'll assume you're talking about XP. Your PIC-based image will run on the motherboard with an APIC (as long as the BIOS is well-formed.) Vista would enable the APIC without a re-installation, but XP will stick with whichever interrupt controller the image was created with. - Jake Oshins Windows Kernel Guy Former Owner of the HAL Code ----------------------------------------------------------------------- "Taed Wynnell" <xxxxx@vertical.com> wrote in message news:98983@ntdev... We have a Windows product image that was built on a PIC-based motherboard, but now we will be shipping a lower-cost APIC-based motherboard *as well* (we will be supporting both motherboards). Building another APIC-based Windows image is something I want to avoid so as to not support two nearly-identical images, but also the customer won't know which image to use since the motherboard details are hidden from them. So, I'd like to have just one image. Is there a way to configure Windows to always run in PIC-mode even if an APIC is present? Unfortunately, that's not an option in the BIOS of the new motherboard. I searched around on Google and the MS Knowledgebase, but didn't come up with anything. (Although I did find that Linux has what I want with a "noapic" option, which suggests that it might be possible.) Any ideas?
  Message 20 of 38  
09 Dec 07 01:00
Jake Oshins
xxxxxx@windows.microsoft.com
Join Date:
Posts To This List: 1047
Is there a way to put Windows in PIC-mode instead of APIC-mode?

Loren, you're acronyms are getting confused. The "bad BIOS" list was for broken ACPI BIOSes, not broken APIC BIOSes. - Jake "Loren Wilton" <xxxxx@earthlink.net> wrote in message news:98993@ntdev... > There used to be a "bad BIOS" list in the windows install stuff. If > your bios was on the bad bios list, it would install in PIC mode > even though the system claimed to have an APIC, since the APIC was > known to work wrong. > > There also used to be an option in the install script to force a PIC > install, if I recall. Don't remember what the option was anymore, > that was pushing 10 years ago. Don't know if it would still be > there or not. > <...excess quoted lines suppressed...>
  Message 21 of 38  
09 Dec 07 01:02
Jake Oshins
xxxxxx@windows.microsoft.com
Join Date:
Posts To This List: 1047
Is there a way to put Windows in PIC-mode instead of APIC-mode?

Switching between ACPI and non-ACPI has system-wide consequences. Switching between PIC and APIC affects only the interrupt controller. I doubt that you'll have a problem. - Jake Oshins "Taed Wynnell" <xxxxx@vertical.com> wrote in message news:98992@ntdev... > "Don Burn" <xxxxx@acm.org> wrote in message news:98987@ntdev... >> if you are asking how to put the same disk image of an >> embedded type system on both the old system and the apic system, >> then you might look at the boot.ini option /HAL= This will allow >> you to specify the apic HAL as boot.ini option. > > Thanks for the reminder of that option. However, I had tried doing > that last year when we had a similar issue with ACPI and non-ACPI > motherboards, and it didn't work (it ended up crashing as I recall). > My theory at the time was that there were registry or other <...excess quoted lines suppressed...>
  Message 22 of 38  
09 Dec 07 01:03
Jake Oshins
xxxxxx@windows.microsoft.com
Join Date:
Posts To This List: 1047
Is there a way to put Windows in PIC-mode instead of APIC-mode?

Again, Loren, your memory is slipping. These issues affect single-processor and multi-processor installations. Taed isn't asking for multi-processor support (or at least he hasn't mentioned it yet.) - Jake Oshins "Loren Wilton" <xxxxx@earthlink.net> wrote in message news:98994@ntdev... >> I'll try the /HAL= again, but do you really think that the /HAL= >> switch > > It won't work. As best I recall, as well as picking the HAL, it > either picks a matching kernel or applies assorted patches to the > kernel when loading apic. You can't just change the HAL at that > point, you have to at least change the kernel also, and I seem to > recall that was iffy. Much easier to reinstall from scratch. > > Loren <...excess quoted lines suppressed...>
  Message 23 of 38  
09 Dec 07 01:28
anton bassov
xxxxxx@hotmail.com
Join Date: 16 Jul 2006
Posts To This List: 3785
Is there a way to put Windows in PIC-mode instead of APIC-mode?

> Vista would enable the APIC without a re-installation, but XP will stick with > whichever interrupt controller the image was created with. This fully explains the contradictions between Don's post, on one hand, and Loren's and mine on another - apparently, Don just did it on Vista, so it worked. However, I tried it around 3 years ago on XP, so it did not.... Anton Bassov
  Message 24 of 38  
09 Dec 07 04:06
Loren Wilton
xxxxxx@earthlink.net
Join Date: 04 May 2003
Posts To This List: 446
Is there a way to put Windows in PIC-mode instead of APIC-mode?

> Loren, you're acronyms are getting confused. The "bad BIOS" list was for > broken ACPI BIOSes, not broken APIC BIOSes. Argh. Yea, I do that with those two all the time. Have to check every time I type one which one I actually typed. In this case though it appears to have been more failing memory than mistyping. :-( Loren
  Message 25 of 38  
09 Dec 07 07:00
Maxim S. Shatskih
xxxxxx@storagecraft.com
Join Date: 20 Feb 2003
Posts To This List: 9458
Is there a way to put Windows in PIC-mode instead of APIC-mode?

> The purpose of BIOS is just booting the computer. Therefore, BIOS APIC settings >are guaranteed to be in effect only before it transfers control to the OS - once >APIC setting can be modified by anyone who runs at privilege level 0 (these >modifications don't really have to be saved in CMOS, do they ), it is up to the OS >to decide whether it wants to make use of APIC or whether it wants to disable it >and run in PIC mode. Yes, but Windows tries to avoid such modifications as much as possible. -- Maxim Shatskih, Windows DDK MVP StorageCraft Corporation xxxxx@storagecraft.com http://www.storagecraft.com
  Message 26 of 38  
09 Dec 07 08:42
Taed Wynnell
xxxxxx@vertical.com
Join Date: 10 Feb 2007
Posts To This List: 45
Is there a way to put Windows in PIC-mode instead of APIC-mode?

"Jake Oshins" <xxxxx@windows.microsoft.com> wrote in message news:99004@ntdev... > You don't say in this message which version of Windows you're dealing > with, so I'll assume you're talking about XP. It's Windows Server 2003. > Your PIC-based image will run on the motherboard with an APIC (as long > as the BIOS is well-formed.) Vista would enable the APIC without a > re-installation, but XP will stick with whichever interrupt controller > the image was created with. Based on the hang of my PIC-based image on my APIC motherboard, it's clear that Win2003 isn't happy with the mis-match. (It's an Award BIOS, so I assume it's "well-formed".) Your comment about Vista matches what I was told last year by Microsoft support when dealing with the same issue with ACPI. Thanks!
  Message 27 of 38  
09 Dec 07 08:45
Taed Wynnell
xxxxxx@vertical.com
Join Date: 10 Feb 2007
Posts To This List: 45
Is there a way to put Windows in PIC-mode instead of APIC-mode?

<xxxxx@hotmail.com> wrote in message news:99003@ntdev... > Are you saying that your software has a chance to run before the OS (or setup program) even gets loaded??? Ignore my software on the disk. I'm just trying to create a Windows-only disk image that will boot fine on either a PIC-based or APIC-based motherboard. Think of it as if I have one hard drive that I want to boot in either my home PIC-based system or in my work APIC-based system. Thanks!
  Message 28 of 38  
09 Dec 07 10:45
anton bassov
xxxxxx@hotmail.com
Join Date: 16 Jul 2006
Posts To This List: 3785
Is there a way to put Windows in PIC-mode instead of APIC-mode?

> Ignore my software on the disk. I'm just trying to create a Windows-only disk image > that will boot fine on either a PIC-based or APIC-based motherboard. Actually, I don't see any reason why your software should be ignored. As we have already established, there is no generic solution to your problem (i.e. your success depends on whether BIOS allows disabling APIC, as well as on Windows version). However, if your software gets loaded before Windows, you have all chances to develop a generic solution that is going to work everywhere, because you are in full control of everything.... Anton Bassov
  Message 29 of 38  
09 Dec 07 11:21
Loren Wilton
xxxxxx@earthlink.net
Join Date: 04 May 2003
Posts To This List: 446
Is there a way to put Windows in PIC-mode instead of APIC-mode?

Anton, I think what this guy has is something like an industrial touchscreen display panel. A lot of these are full PCs about the size of your average laptop power brick embedded in the back of a rackmount 14" monitor about 3" thick. He may not even have any drivers of his own. If he does, they are probably things like a simple serial to mouse driver to handle the touchscreen, and that may even be from a 3rd party OEM, not his. What he probably has is a full-screen app that begins on startup and displays pretty graphs and text and the like on the monitor panel by creating mostly custom GUI gadgets, and then sending messages back to some remote device over TCPIP or serial. So this isn't really about "the driver". There may not be one. This is about "the packaged app plus OS" that will be burned to the flash drive in the display panel (or whatever it is he builds). The guy probably has to support tens or hundreds of thousands of these things in the field, run mostly by mechanics in industrial plants that have never seen a computer. When they report a Windows crash message or other error, he needs to debug it based on virtually no data. There isn't going to be a dump to analyze, he gets what the mechanic happened to remember from the screen before it rebooted. If he has two different build images, *AND NO WAY TO TELL WHICH IS USED*, it is going to make his life just a little mroe difficult, don't you think? * The only way to tell the build images apart would probably be to give the whole touchscreen a new model number. This means a lot of marketing collateral changes, and real problems in dealing with government contracts, since they may not accept a new model number in place of one previously ordered. Just my 4 cents... Loren ----- Original Message ----- From: <xxxxx@hotmail.com> To: "Windows System Software Devs Interest List" <xxxxx@lists.osr.com> Sent: Sunday, December 09, 2007 7:47 AM Subject: RE:[ntdev] Is there a way to put Windows in PIC-mode instead of APIC-mode? >> Ignore my software on the disk. I'm just trying to create a Windows-only >> disk image >> that will boot fine on either a PIC-based or APIC-based motherboard. > > Actually, I don't see any reason why your software should be ignored. As > we have already established, there is no generic solution to your problem > (i.e. your success depends on whether BIOS allows disabling APIC, as well > as on Windows version). However, if your software gets loaded before > Windows, you have all chances to develop a generic solution that is going <...excess quoted lines suppressed...>
  Message 30 of 38  
09 Dec 07 12:29
anton bassov
xxxxxx@hotmail.com
Join Date: 16 Jul 2006
Posts To This List: 3785
Is there a way to put Windows in PIC-mode instead of APIC-mode?

Loren, My idea here is exactly to avoid the scenario that you have mentioned, i.e. avoid building separate images. If his on-disk (or embedded in FLASH) software gets loaded before Windows, it can detect APIC presence with CPUID, and if it is present, disable it via IA32_APIC_BASE MSR before transferring control to Windows. If you disable APIC via IA32_APIC_BASE MSR, it is impossible to re-enable it before CPU reset (although you can re-enable APIC that was disabled via spurious interrupt vector register without resetting the CPU). However, CPU with local APIC disabled via IA32_APIC_BASE MSR is functionally equivalent to the one that just does not support APIC. Therefore, Windows installation with PIC HAL will work perfectly well on the machine with his embedded software. Anton Bassov
  Message 31 of 38  
10 Dec 07 14:43
Taed Wynnell
xxxxxx@vertical.com
Join Date: 10 Feb 2007
Posts To This List: 45
Is there a way to put Windows in PIC-mode instead of APIC-mode?

Sure enough, /HAL= worked fine when switching between the PIC and APIC systems with the same image. It actually ends up copying the specified image to HAL.DLL, so the /HAL= option does not need to be specified on future boots (but needs to be specified again with the old HAL image to go back to the original). It even changed the string on the "Computer" device in Device Manager. So, since that seems to be the only change needed, I could have the image deploying software change the boot.ini after it finishes deploying, based on the CPUID instruction that Anton Bassov pointed out for easily detecting PIC versus APIC. Thanks so much to all -- this gives me a workable solution if the BIOS enhancement (to add an option for disabling APIC) doesn't occur. "Jake Oshins" <xxxxx@windows.microsoft.com> wrote in message news:99006@ntdev... > Switching between ACPI and non-ACPI has system-wide consequences. > Switching between PIC and APIC affects only the interrupt controller. > I doubt that you'll have a problem. > > - Jake Oshins > > > "Taed Wynnell" <xxxxx@vertical.com> wrote in message > news:98992@ntdev... > > "Don Burn" <xxxxx@acm.org> wrote in message news:98987@ntdev... <...excess quoted lines suppressed...>
  Message 32 of 38  
10 Dec 07 18:47
Maxim S. Shatskih
xxxxxx@storagecraft.com
Join Date: 20 Feb 2003
Posts To This List: 9458
Is there a way to put Windows in PIC-mode instead of APIC-mode?

> the CPUID instruction that Anton Bassov pointed out for easily detecting PIC > versus APIC. Even if CPU has APIC ("local APIC") - this does not mean the MB has one ("IO APIC"). Probably CPUID is a bad idea of checking for IO APIC presense. -- Maxim Shatskih, Windows DDK MVP StorageCraft Corporation xxxxx@storagecraft.com http://www.storagecraft.com
  Message 33 of 38  
10 Dec 07 20:47
Loren Wilton
xxxxxx@earthlink.net
Join Date: 04 May 2003
Posts To This List: 446
Is there a way to put Windows in PIC-mode instead of APIC-mode?

> Probably CPUID is a bad idea of checking for IO APIC presense. Well, you could look for the MPS table and walk that. For that matter, while I don't recall for sure, it might be that mere presence of an MPS table would be enough to indicate that a usable APIC setup was present. Of course, it might be bypassed by the BIOS. Don't recall that I ever looked at what the bits were in an MPS table on a system with the APIC disabled. Loren
  Message 34 of 38  
10 Dec 07 21:46
ntdev member 33492
xxxxxx@microsoft.com
Join Date:
Posts To This List: 63
Is there a way to put Windows in PIC-mode instead of APIC-mode?

Taed, Sorry to be late here. You also need to be aware of the kernel you're loading. For 32 bit Server 2003 there are 4 kernels, with the dimensions of the matrix being uniprocessor vs multiprocessor and PAE mode vs not. The PIC HALs are only compatible with the uniprocessor kernels. The APIC HALs are compatible with all kernels. If your image starts out with the multiprocessor kernel installed, and you load the HAL using /HAL=, you'll crash. I suspect this is what happened to you in earlier tests. /detecthal is a boot option that will autodetect the capabilities of your platform and load the proper kernel and HAL. It'll therefore ensure that they match. You should give this a whirl as well. Dave
  Message 35 of 38  
11 Dec 07 04:05
anton bassov
xxxxxx@hotmail.com
Join Date: 16 Jul 2006
Posts To This List: 3785
Is there a way to put Windows in PIC-mode instead of APIC-mode?

Maxim, > Even if CPU has APIC ("local APIC") - this does not mean the MB has one ("IO APIC"). Correct. However, in this context it just does not matter - after all, our objective is to disable APIC, rather than to make use of it.... > Probably CPUID is a bad idea of checking for IO APIC presense. *In this context* CPUID is just fine - the only reason why we issue it here is to check whether we should write to IA32_APIC_BASE MSR in order to disable it. As long as CPU does not support APIC (a CPU with local APIC disabled via IA32_APIC_BASE MSR is functionally equivalent to the one that just does not support APIC), the system will be unable to make any use of IOAPIC anyway, so that it will have no option, apart from configuring IOAPIC as 8259A and running in PIC mode...... Therefore, your observation is of no importance for us, although it is of crucial importance for setup program when it checks whether APIC HAL can get installed, because APIC HAL is not going to work unless both CPU and MB support APIC...... Anton Bassov
  Message 36 of 38  
11 Dec 07 14:39
ntdev member 33492
xxxxxx@microsoft.com
Join Date:
Posts To This List: 63
Is there a way to put Windows in PIC-mode instead of APIC-mode?

Ack. /detecthal is only available on Vista. Sorry to mislead you. The basic caveat still applies, though - you have to match your kernel to your HAL. /KERNEL= is available on Server 2003 for this purpose. Dave
  Message 37 of 38  
11 Dec 07 20:31
Jake Oshins
xxxxxx@windows.microsoft.com
Join Date:
Posts To This List: 1047
Is there a way to put Windows in PIC-mode instead of APIC-mode?

Anton, Windows doesn't look at the IA32_APIC_BASE MSR. It looks at the BIOS tables that tell it whether to try to use an APIC. This is because the APIC code in Windows pre-dates that MSR. If you were to do what you're suggesting, you'd find that Windows would still try to use the APIC because the BIOS said so and then it would crash (bugcheck 0x79) because the APIC wouldn't work. - Jake <xxxxx@hotmail.com> wrote in message news:99076@ntdev... > Maxim, > >> Even if CPU has APIC ("local APIC") - this does not mean the MB has >> one ("IO APIC"). > > Correct. However, in this context it just does not matter - after > all, our objective is to disable APIC, rather than to make use of > it.... > >> Probably CPUID is a bad idea of checking for IO APIC presense. <...excess quoted lines suppressed...>
  Message 38 of 38  
12 Dec 07 03:56
anton bassov
xxxxxx@hotmail.com
Join Date: 16 Jul 2006
Posts To This List: 3785
Is there a way to put Windows in PIC-mode instead of APIC-mode?

Jake, > Anton, Windows doesn't look at the IA32_APIC_BASE MSR. It looks at the BIOS > tables that tell it whether to try to use an APIC. This is because the APIC code > in Windows pre-dates that MSR. > If you were to do what you're suggesting, you'd find that Windows would still > try to use the APIC... Please read carefully all posts on this thread - the OP asks how to make *pre-Vista* Windows installation with *PIC* HAL work on the machine with APIC. Therefore, apparently, it is not going to check either APIC via IA32_APIC_BASE MSR or BIOS tables, simply because it is configured to run in PIC mode, no matter what and no matter how. What we are trying to do here is just to make sure that the hardware state corresponds to the one PIC HAL is designed to work on. Therefore, you post applies only to Vista, because, as you said, it chooses HAL version dynamically. In any case, you should think of my proposal as of a direction to work in, rather than of a precise final solution.(although the step that I have mentioned is going to part of a final solution).... Anton Bassov
Posting Rules  
You may not post new threads
You may not post replies
You may not post attachments
You must login to OSR Online AND be a member of the ntdev list to be able to post.

All times are GMT -5. The time now is 02:03.


Copyright ©2014, OSR Open Systems Resources, Inc.
Based on vBulletin Copyright ©2000 - 2005, Jelsoft Enterprises Ltd.
Modified under license