Hi,
after a short period of pain, I finally made LinuxBIOS running on my machine (Siemens Fujitsu Multitainer / i440BX Chipset). I use this device as a digital video recorder running (of course) Linux and Klaus Schmidingers famous VDR. Unfortunately there are some features I couldn't get to work until now, probably you can give me some hints: - Soft Power-Off: I used the APM-BIOS in my Original Setup for this. I understand that LinuxBIOS doesn't implement such BIOS functions. I also found a kernel patch that implements this feature for SIS-Chipsets. Is there a possibility to get that thin running on a BX board? - HD-Spindown: Same as above, simply doesnt work with my current LinuxBIOS setup - VGA: The Multitainer has an onboard MPACT2 Graphics adapter. It would be nice to have, but not really required. From the docs, I think I could make it work using ADLO or with the builtin VGA support. What do you think? - Wake on RTC: Not even the original BIOS supported this. Anyway I don't think its a hardware limitation. Do you think it is possible to implement this for LinuxBIOS?
Thanks for your answers and keep up the good work!
Meinrad
On Wed, 23 Jul 2003, Meinrad Sauter wrote:
- VGA: The Multitainer has an onboard MPACT2 Graphics adapter. It would be
nice to have, but not really required. From the docs, I think I could make it work using ADLO or with the builtin VGA support. What do you think?
it would be cool if you would test the builtin VGA support and let us know how it goes.
ron
ron minnich wrote:
On Wed, 23 Jul 2003, Meinrad Sauter wrote:
- VGA: The Multitainer has an onboard MPACT2 Graphics adapter. It would be
nice to have, but not really required. From the docs, I think I could make it work using ADLO or with the builtin VGA support. What do you think?
it would be cool if you would test the builtin VGA support and let us know how it goes.
2nd that. Last time I tried the builtin VGA stuff I was unable to get it to compile but the problem didn't seem to happen for Ron. So please try the builtin support. Lots of stuff has changed since then and I haven't re-tested.
You should be able to make it work with ADLO no problem. Find my ADLO 440bx loader patch in the archives and locate the bios image in the right spot.
Hi all,
thanks for your answers and sory for the late response (vacancies)
ron minnich wrote:
On Wed, 23 Jul 2003, Meinrad Sauter wrote:
- VGA: The Multitainer has an onboard MPACT2 Graphics adapter. It would
be nice to have, but not really required. From the docs, I think I could make it work using ADLO or with the builtin VGA support. What do you think?
it would be cool if you would test the builtin VGA support and let us know how it goes.
2nd that. Last time I tried the builtin VGA stuff I was unable to get it to compile but the problem didn't seem to happen for Ron. So please try the builtin support. Lots of stuff has changed since then and I haven't re-tested.
Unfortunately my video BIOS is 128K in size and I couldn't fit it into my 2M flash eprom together with ADLO and LinuxBIOS. So I tried the builtin support first. I was able to compile everything OK after either leaving out FRAMEBUFFER=1 in the config file or copying the function framebuffer_on from northbridge/intel/440GX/northbridge.c to the same file in northbridge/intel/440BX
During boot I get the following log on the serial console:
****START LOG***** LinuxBIOS-1.0.0 Don Aug 14 15:33:05 CEST 2003 starting... Ram1 Ram2 Ram3 Ram Enable 1 Ram Enable 2 Ram Enable 3 Ram Enable 4 Ram Enable 5 Ram4 Ram5 Ram6 Copying LinuxBIOS to ram. Jumping to LinuxBIOS. LinuxBIOS-1.0.0 Don Aug 14 15:33:05 CEST 2003 booting... Finding PCI configuration type. PCI: Using configuration type 1 Scanning PCI bus...PCI: pci_scan_bus for bus 0 PCI: 00:00.0 [8086/7190] PCI: 00:01.0 [8086/7191] PCI: 00:07.0 [8086/7110] PCI: 00:07.1 [8086/7111] PCI: 00:07.2 [8086/7112] PCI: 00:07.3 [8086/7113] PCI: 00:0a.0 [10ec/8139] PCI: pci_scan_bus for bus 1 PCI: 01:00.0 [110b/0004] PCI: pci_scan_bus returning with max=01 PCI: pci_scan_bus returning with max=01 done Allocating PCI resources... ASSIGN RESOURCES, bus 0 PCI: 00:00.0 10 <- [0xe0000000 - 0xefffffff] prefmem PCI: 00:01.0 1c <- [0x00001000 - 0x00000fff] bus 1 io PCI: 00:01.0 24 <- [0xf8000000 - 0xf7ffffff] bus 1 prefmem PCI: 00:01.0 20 <- [0xf0000000 - 0xf7ffffff] bus 1 mem ASSIGN RESOURCES, bus 1 PCI: 01:00.0 10 <- [0xf0000000 - 0xf7ffffff] mem ASSIGNED RESOURCES, bus 1 PCI: 00:07.1 20 <- [0x00001420 - 0x0000142f] io PCI: 00:07.2 20 <- [0x00001400 - 0x0000141f] io PCI: 00:0a.0 10 <- [0x00001000 - 0x000010ff] io PCI: 00:0a.0 14 <- [0xf8000000 - 0xf80000ff] mem ASSIGNED RESOURCES, bus 0 Allocating VGA resource done. Enabling PCI resourcess...PCI: 00:00.0 cmd <- 06 PCI: 00:01.0 cmd <- 07 PCI: 00:07.0 cmd <- 07 PCI: 00:07.1 cmd <- 01 PCI: 00:07.2 cmd <- 01 PCI: 00:07.3 cmd <- 01 PCI: 00:0a.0 cmd <- 03 PCI: 01:00.0 cmd <- 03 done. Initializing PCI devices... PCI devices initialized totalram: 128M Initializing CPU #0 Updating microcode microcode_info: sig = 0x00000686 pf=0x00000010 rev = 0x00000000 Enabling cache... Setting fixed MTRRs(0-88) type: UC Setting fixed MTRRs(0-16) type: WB DONE fixed MTRRs Setting variable MTRR 0, base: 0MB, range: 128MB, type WB DONE variable MTRRs Clear out the extra MTRR's call intel_enable_fixed_mtrr() call intel_enable_var_mtrr() Leave setup_mtrrs done.
Max cpuid index : 2 Vendor ID : GenuineIntel Processor Type : 0x00 Processor Family : 0x06 Processor Model : 0x08 Processor Mask : 0x00 Processor Stepping : 0x06 Feature flags : 0x0383fbff
Cache/TLB descriptor values: 1 reads required Desc 0x01 : Instr TLB: 4KB pages, 4-way set assoc, 32 entries Desc 0x02 : Instr TLB: 4MB pages, fully assoc, 2 entries Desc 0x03 : Data TLB: 4KB pages, 4-way set assoc, 64 entries Desc 0x00 : null Desc 0x00 : null Desc 0x00 : null Desc 0x00 : null Desc 0x00 : null Desc 0x00 : null Desc 0x00 : null Desc 0x00 : null Desc 0x41 : L2 Unified cache: 128K bytes, 4-way set assoc, 32 byte line size Desc 0x08 : Inst cache: 16K bytes, 4-way set assoc, 32 byte line size Desc 0x04 : Data TLB: 4MB pages, 4-way set assoc, 8 entries Desc 0x0c : Data cache: 16K bytes, 2-way or 4-way set assoc, 32 byte line size
MTRR check Fixed MTRRs : Enabled Variable MTRRs: Enabled
Configuring L2 cache...CPU signature of 680 so no L2 cache configuration Enable Cache done. Disabling local apic...done. CPU #0 Initialized intel_mainboard_fixup() Testing SMI SMI disabled Enabling IDE...0x40 = 0x8000 0x42 = 0x8000 Enabled IDE for channels 1 and 2 enabling smbus enable pm functions Setting up RTC RTC Init Invalid CMOS LB checksum done. Enabling extended BIOS access Enabling Full ISA Mode Enabling IRQ8 Enabling Mouse IRQ12 on piix4e done. INSTALL REAL-MODE IDT DO THE VGA BIOS found VGA: vid=110b, did=4 0x55 0xaa 0x40 0xea 0xbe 0x31 0x0 0xc0 0x0 0x0 0xc3 0x0 0x14 0x0 0x0 0x0 biosint: # 0x6, eax 0x0 ebx 0xd5b4 ecx 0x720 edx 0xa2f1 biosint: ebp 0x136ac esp 0xff6 edi 0xf6d4 esi 0xfb9fc biosint: ip 0x3 cs 0x0 flags 0x46 biosint: Unsupport int #0x6 biosint: # 0x6, eax 0x0 ebx 0xd5b4 ecx 0x720 edx 0xa2f1 biosint: ebp 0x136ac esp 0xff6 edi 0xf6d4 esi 0xfb9fc biosint: ip 0x3 cs 0x0 flags 0x46 biosint: Unsupport int #0x6 biosint: # 0x6, eax 0x0 ebx 0xd5b4 ecx 0x720 edx 0xa2f1 biosint: ebp 0x136ac esp 0xff6 edi 0xf6d4 esi 0xfb9fc biosint: ip 0x3 cs 0x0 flags 0x46 biosint: Unsupport int #0x6
*****END LOG *******
Any Ideas what's missing?
Meinrad
On Thu, 14 Aug 2003, Meinrad Sauter wrote:
Enabling extended BIOS access Enabling Full ISA Mode Enabling IRQ8 Enabling Mouse IRQ12 on piix4e done. INSTALL REAL-MODE IDT DO THE VGA BIOS found VGA: vid=110b, did=4 0x55 0xaa 0x40 0xea 0xbe 0x31 0x0 0xc0 0x0 0x0 0xc3 0x0 0x14 0x0 0x0 0x0 biosint: # 0x6, eax 0x0 ebx 0xd5b4 ecx 0x720 edx 0xa2f1 biosint: ebp 0x136ac esp 0xff6 edi 0xf6d4 esi 0xfb9fc biosint: ip 0x3 cs 0x0 flags 0x46 biosint: Unsupport int #0x6 biosint: # 0x6, eax 0x0 ebx 0xd5b4 ecx 0x720 edx 0xa2f1 biosint: ebp 0x136ac esp 0xff6 edi 0xf6d4 esi 0xfb9fc biosint: ip 0x3 cs 0x0 flags 0x46 biosint: Unsupport int #0x6 biosint: # 0x6, eax 0x0 ebx 0xd5b4 ecx 0x720 edx 0xa2f1 biosint: ebp 0x136ac esp 0xff6 edi 0xf6d4 esi 0xfb9fc biosint: ip 0x3 cs 0x0 flags 0x46 biosint: Unsupport int #0x6
yes, sorry, you just hit an int we don't support yet. It's all working right, but you'll need to implement int #6.
These things are pretty easy to write, since the support code is 100% C, so you might want to take a hack at it. You can use ADLO code as the reference for what to do.
I really think that the ADLO code could be turned into C in a day or so by a motivated hacker.
ron
biosint: Unsupport int #0x6 biosint: # 0x6, eax 0x0 ebx 0xd5b4 ecx 0x720 edx 0xa2f1 biosint: ebp 0x136ac esp 0xff6 edi 0xf6d4 esi 0xfb9fc biosint: ip 0x3 cs 0x0 flags 0x46 biosint: Unsupport int #0x6
yes, sorry, you just hit an int we don't support yet. It's all working right, but you'll need to implement int #6.
Fine, I had a look at the code and found out where to implement int #6. Unfortunately I have no idea what to implement. Can you point me to some more information?
These things are pretty easy to write, since the support code is 100% C, so you might want to take a hack at it. You can use ADLO code as the reference for what to do.
I looked at that also, but I couldn't find an int #6 implementation there, neither in C nor in anything else.
On Thursday, August 14, 2003, at 09:45 AM, Meinrad Sauter wrote:
I looked at that also, but I couldn't find an int #6 implementation there, neither in C nor in anything else.
from Adam Agnew's email a few weeks ago:
See Ralf Brown's interrupt list: http://oopweb.com/Assembly/Documents/InterList/Volume2.html
On Thu, 14 Aug 2003, Meinrad Sauter wrote:
Fine, I had a look at the code and found out where to implement int #6. Unfortunately I have no idea what to implement. Can you point me to some more information?
you'll have to hunt down the bios interrupts.
I looked at that also, but I couldn't find an int #6 implementation there, neither in C nor in anything else.
well, that's not good. Without doing some digging I am not sure I can say what's going on.
ron
On Thu, Aug 14, 2003 at 07:57:21AM -0600, ron minnich wrote:
On Thu, 14 Aug 2003, Meinrad Sauter wrote:
Enabling extended BIOS access Enabling Full ISA Mode Enabling IRQ8 Enabling Mouse IRQ12 on piix4e done. INSTALL REAL-MODE IDT DO THE VGA BIOS found VGA: vid=110b, did=4 0x55 0xaa 0x40 0xea 0xbe 0x31 0x0 0xc0 0x0 0x0 0xc3 0x0 0x14 0x0 0x0 0x0 biosint: # 0x6, eax 0x0 ebx 0xd5b4 ecx 0x720 edx 0xa2f1 biosint: ebp 0x136ac esp 0xff6 edi 0xf6d4 esi 0xfb9fc biosint: ip 0x3 cs 0x0 flags 0x46 biosint: Unsupport int #0x6 biosint: # 0x6, eax 0x0 ebx 0xd5b4 ecx 0x720 edx 0xa2f1 biosint: ebp 0x136ac esp 0xff6 edi 0xf6d4 esi 0xfb9fc biosint: ip 0x3 cs 0x0 flags 0x46 biosint: Unsupport int #0x6 biosint: # 0x6, eax 0x0 ebx 0xd5b4 ecx 0x720 edx 0xa2f1 biosint: ebp 0x136ac esp 0xff6 edi 0xf6d4 esi 0xfb9fc biosint: ip 0x3 cs 0x0 flags 0x46 biosint: Unsupport int #0x6
yes, sorry, you just hit an int we don't support yet. It's all working right, but you'll need to implement int #6.
INT6 is not a BIOS service. It's a CPU exception -- invalid opcode.
At this point we don't have an easy way other than gnireenigne esrever to track this down. And the CS:IP prints here are probably incorrect, so if you go this way you must fix this first (I have a patch for it, but I'm not sure if it's good for other versions of GCC than the one I used).
The other way is to gain legacy compatibility, like BIOS data area, farcall entry points, etc, one by one, until your VGA BIOS happens to work...
-- Takeshi
Meinrad Sauter wrote:
I'm just now reading the original post.... Missed it earlier.
- Soft Power-Off: I used the APM-BIOS in my Original Setup for this. I
understand that LinuxBIOS doesn't implement such BIOS functions. I also found a kernel patch that implements this feature for SIS-Chipsets. Is there a possibility to get that thin running on a BX board?
ADLO might help you here but I don't remember if it supports APM or not. I'm also not sure if the Bochs bios code is still going to be present in ram after you boot linux.
- HD-Spindown: Same as above, simply doesnt work with my current LinuxBIOS
setup
I though hdparm could do this.
- VGA: The Multitainer has an onboard MPACT2 Graphics adapter. It would be
nice to have, but not really required. From the docs, I think I could make it work using ADLO or with the builtin VGA support. What do you think?
See my other post.
- Wake on RTC: Not even the original BIOS supported this. Anyway I don't think
its a hardware limitation. Do you think it is possible to implement this for LinuxBIOS?
There is an internal RTC in the 440bx which supports an alarm function via irq8. These pins are also muxed with some GPIO. So it's not a limit of the 440bx but it might be a limit of your motherboard depending on what they did with those pins. If they are using that pin as a GPI then I don't think you can enable the internal IRQ8. Or if they have an external IRQ8 you will have problems as well. Unless of course its an external RTC. But I don't know why you would do that when an internal one exists already.
Either way there isn't any software support for it in Linuxbios. Doing a suspend requires lots of register saving and then restoring in the right order. I'm not even sure if all the documentation on what registers to set/read is available via the Intel's site docs. Some reverse engineering with a 440bx based laptop system might have to occur.
On Fri, 25 Jul 2003, Richard Smith wrote:
Meinrad Sauter wrote:
I'm just now reading the original post.... Missed it earlier.
- Soft Power-Off: I used the APM-BIOS in my Original Setup for this. I
understand that LinuxBIOS doesn't implement such BIOS functions. I also found a kernel patch that implements this feature for SIS-Chipsets. Is there a possibility to get that thin running on a BX board?
ADLO might help you here but I don't remember if it supports APM or not. I'm also not sure if the Bochs bios code is still going to be present in ram after you boot linux.
I would recommend extending the power patches I made to linux long ago. These patches allower soft power off and reset.
- HD-Spindown: Same as above, simply doesnt work with my current LinuxBIOS
setup
I though hdparm could do this.
I thought so too ...
ron