From: Kousei Hamanaka (hamanaka@elc.nias.ac.jp)
Date: Sun 22 Jul 2001 - 22:46:57 IDT
Hello. Konnichiwa. I am a new comer.
This is a long mail (or report).
I have a Matrox Millennium 4MB PCI graphic card.
I found that svgalib-1.9.10 supports this graphic card.
And so I wrote same program code as "Simple tutrial" page
and executed it. But on screen, I could only see a black screen
with a single small white square like a prompt. Within this square,
I could see the letter "y". Exactly speaking, it was not a simple "y", but
it was "y" with a umlaut symbol.
I read this mailing list archive hard to solve my ploblem. And I got
the information that the position of framebuffer base registor of
the Matrox Millennium card is reversed.
But When I checked for the output from "cat /proc/pci" and
"lspci -vv -n",it was not reversed. the output is following.
---------------------------------------------------
$ cat /proc/pci |grep -A5 -B2 VGA
Non-prefetchable 32 bit memory at 0xe0000000 [0xe0000000].
Bus 0, device 11, function 0:
VGA compatible controller: Matrox Millennium II (rev 0).
Medium devsel. Fast back-to-back capable. IRQ 10. Master Capable.
Latency=32.
Prefetchable 32 bit memory at 0xe2000000 [0xe2000008].
Non-prefetchable 32 bit memory at 0xdf800000 [0xdf800000].
Non-prefetchable 32 bit memory at 0xdf000000 [0xdf000000].
Bus 0, device 12, function 0:
$ /sbin/lspci -vv -n |grep -A10 -B2 102b
Region 1: Memory at e0000000 (32-bit, non-prefetchable)
00:0b.0 Class 0300: 102b:051b
Subsystem: 102b:0000
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B-
Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
Latency: 32
Interrupt: pin A routed to IRQ 10
Region 0: Memory at e2000000 (32-bit, prefetchable)
Region 1: Memory at df800000 (32-bit, non-prefetchable)
Region 2: Memory at df000000 (32-bit, non-prefetchable)
Expansion ROM at 000c0000 [disabled]
00:0c.0 Class 0200: 1011:0009 (rev 22)
----------------------------------------------------------------------
So I tried to check for the source file "millennium.c", and found
the part processing the mmio registor and framebuffer registor base
addresses. I guessed this part is my bottleneck and modified it.
Now I can see colorful screen based on my program code. I did it !!
The following is the part which I have modified.
------------------------------------------------------------
$ grep -n -A30 "mil_linear_base=0" /svgalib-1.9.10/src/millennium.c
861: mil_linear_base=0;
862- id=(buf[0]>>16)&0xffff;
863- if(found != -1) {
864- mil_pciposition=found;
865- switch(id) {
866- case 0x519: /* Millennium */
867- case 0x51b: /* Millennium II */
868- case 0x51f: /* Millennium II */
869- break;
870-
871- default:
872- return 1;
873- }
874- } else {
875- return 1;
876- }
877- /*
878- mil_linear_base = buf[5]&0xffffff00;
879- mil_mmio_base = buf[4]&0xffffff00;
880- */
881- /** Changed By Hamanaka **/
882- mil_linear_base = buf[4]&0xffffff00;
883- mil_mmio_base = buf[5]&0xffffff00;
884-
885-
__svgalib_vgammbase=mmap(0,0x1000,PROT_READ|PROT_WRITE,MAP_SHARED,__svgalib_
mem_fd,mil_mmio_base+0x1000) + 0xc00;
886- __svgalib_mm_io_mapio();
887-
888- __svgalib_inpal=__svgalib_mil_inpal;
889- __svgalib_outpal=__svgalib_mil_outpal;
890-
891- if (__svgalib_driver_report) {
----------------------------------------------------------
Thank you very much for providing such a useful library to us.
This library helps me.
Good luck. Good Bye.
Hamanaka
------------------------------------------------------------------
Unsubscribe: To: listbot@svgalib.org
Body: unsubscribe linux-svgalib
This archive was generated by hypermail 2.1.4 : Wed 21 Jan 2004 - 22:10:24 IST