[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bsd-nomads:13572] 4.0-kernel patch for 16 bpp video with Libretto 30



はじめまして。前島と申します。

[bsd-nomads:12120]を読んで、Libretto 30にインストールしたFreeBSD
4.0-RELEASEで16bppのグラフィック表示ができるようにカーネルを修正し
てみました。

これについて、RELEASE-4.0用のパッチは既に公開されていますか? 公開さ
れていれば、以下の内容は無用です。

カーネルのバージョンが違うのでパッチもそのままでは当たらないと思っ
て手作業でソースを書き換えたところ、それらしく動いているのですが、
カーネルのコンパイルさえ初めてなので、これでいいものなのか甚だ不安
です。一応、パッチを添付しますが、使用するには危険窮まりありません...。

boot -vで調べてみると、一応所定の場所にVRAMアクセス用の領域が確保
されているようです。
FreeBSD 4.0-RELEASE #0: Fri May  5 18:55:58 JST 2000
  ......
real memory  = 21168128 (20672K bytes)
Physical memory chunk(s):
0x00001000 - 0x0009efff, 647168 bytes (158 pages)
0x0033c000 - 0x00dfffff, 11288576 bytes (2756 pages)
0x00f00000 - 0x01427fff, 5406720 bytes (1320 pages)
-- 
Kazuyuki Maejima <kmaejima@oak.ocn.ne.jp>

*** /usr/src/sys/i386/i386/machdep.c.orig	Tue Feb 29 04:48:51 2000
--- /usr/src/sys/i386/i386/machdep.c	Fri May  5 16:42:58 2000
***************
*** 1727,1732 ****
--- 1727,1748 ----
  			 */
  			*(int *)ptr = tmp;
  
+ #ifdef LIB30_X_MEMMAP
+ 			/*
+ 			 * Force memory map hole for Toshiba Libretto 20/30
+ 			 * to enable XFree86 SVGA (cirrus) linear addressing
+ 			 * to enjoy 16 bpp video display.
+ 			 * You should set the following options at the Section
+ 			 * "Device" in /etc/XF86Config:
+ 			 *     MemBase  0x00e00000
+ 			 *     Option   "linear"
+ 			 *     Option   "fast_dram" # to eliminate noise
+ 			 */
+ 			if (pa >= 0x00e00000 && pa < 0x00f00000) {
+ 				page_bad = TRUE;
+ 			}
+ #endif /* LIB30_X_MEMMAP */
+ 
  			/*
  			 * Adjust array of valid/good pages.
  			 */
*** /usr/src/sys/conf/options.i386.orig	Fri Jan 14 09:17:49 2000
--- /usr/src/sys/conf/options.i386	Fri May  5 16:45:17 2000
***************
*** 57,62 ****
--- 57,63 ----
  CYRIX_CACHE_WORKS		opt_cpu.h
  CYRIX_CACHE_REALLY_WORKS	opt_cpu.h
  NO_MEMORY_HOLE			opt_cpu.h
+ LIB30_X_MEMMAP			opt_cpu.h
  
  # The CPU type affects the endian conversion functions all over the kernel.
  I386_CPU		opt_global.h