Страница 3 из 4

Re: device digi

Добавлено: 2008-06-09 17:03:34
paradox
сохрани этот вариант что есть
и возьми с нуля
и добавь этот патч

Код: Выделить всё

diff -urN digi.orig/digi_isa.c digi.new/digi_isa.c
--- digi.orig/digi_isa.c	2004-06-18 21:13:48.000000000 +0300
+++ digi.new/digi_isa.c	2008-06-09 16:15:32.000000000 +0300
@@ -80,7 +80,8 @@
 static u_char *
 digi_xi_setwin(struct digi_softc *sc, unsigned int addr)
 {
-	outb(sc->wport, sc->window = FEPMEM);
+	//outb(sc->wport, sc->window = FEPMEM);
+	outb(sc->wport, sc->window = inb(sc->port)|FEPMEM);
 	return (sc->vmem + addr);
 }
 
@@ -203,6 +204,11 @@
 			sc->win_size = 0x10000;
 			sc->win_bits = 16;
 			sc->wport = sc->port;
+
+			sc->setwin = digi_xi_setwin;
+			sc->hidewin = digi_isa_hidewin;
+			sc->towin = digi_xi_towin;
+
 		} else {
 			sc->name = "Digiboard PC/Xe 64/8K (windowed)";
 			sc->model = PCXEVE;
@@ -210,12 +216,13 @@
 			sc->win_size = 0x2000;
 			sc->win_bits = 13;
 			sc->wport = sc->port + 1;
+
+			sc->setwin = digi_isa_setwin;
+			sc->hidewin = digi_isa_hidewin;
+			sc->towin = digi_isa_towin;
 		}
 		sc->module = "Xe";
 
-		sc->setwin = digi_isa_setwin;
-		sc->hidewin = digi_isa_hidewin;
-		sc->towin = digi_isa_towin;
 	}
 
 	return (sc->name != NULL);
@@ -396,7 +403,7 @@
 
 	if (sc->model == PCXI || sc->model == PCXE) {
 		outb(sc->port, FEPRST | FEPMEM);
-		for (i = 0; (inb(sc->port) & FEPMASK) != FEPRST; i++) {
+		for (i = 0; (inb(sc->port) & FEPMASK) != (FEPRST|FEPMEM); i++) {
 			if (i == hz / 10) {
 				device_printf(dev,
 				    "memory reservation failed (0x%02x)\n",

Re: device digi

Добавлено: 2008-06-10 10:42:55
theBas
А как на пингвине карточку сконфигурить? есть свеженький дебиан.... в граб добавил digi=1,1,0,16,0x220,0x0D0000
dmesg|grep digi молчит
find / -name digi* тоже не радует
неужто качать и пересобирать ядро?

Re: device digi

Добавлено: 2008-06-10 10:48:24
paradox
)))
что сказала bsd по последнему патчу?

Re: device digi

Добавлено: 2008-06-11 15:35:25
theBas

Код: Выделить всё

caravella# kldload digi
kldload: can't load digi: No such file or directory
digi.ko есть

Re: device digi

Добавлено: 2008-06-11 15:41:05
theBas
Ето кочмар я уже поперепутывал все исходники сча сделаю наново.....
digi.c
digi.h
Оставить оригинальные или патченые?

Re: device digi

Добавлено: 2008-06-11 15:42:08
paradox
все соурсы оригинальные

Re: device digi

Добавлено: 2008-06-11 16:36:02
theBas

Код: Выделить всё

digi0: detaching
digi0: detached
digi0: probing on isa bus
digi0: isa? port 0x220 mem 0xd0000
digi0: got reset after 1 iterations
digi0: board type is 0x4
digi0: Probe returns -10
digi0: probing on isa bus
digi0: isa? port 0x220 mem 0xd0000
digi0: got reset after 1 iterations
digi0: board type is 0x4
digi0: Probe returns -10
digi0 at port 0x220-0x223 iomem 0xd0000-0xdffff on isa0
digi0: attaching
digi0: Checking card type
digi0: got reset after 1 iterations
digi0: board type is 0x4
digi0: internal memory segment 0xf000
digi0: got reset after 0 iterations
digi0: got memory after 0 iterations
digi0: short memory test
digi0: 1st memory test ok
digi0: 2nd memory test ok
digi0: 3rd memory test ok
digi0: BIOS uploaded
digi0: BIOS started after 1 us
digi0: BIOS booted after 11 iterations
digi0: FEP/OS moved after 1 iterations
digi0: FEP/OS start failed (0x00 != 0x534f)
При загрузке думал 40 сек

Re: device digi

Добавлено: 2008-06-11 16:56:23
paradox
нормально добавляй это

Код: Выделить всё

diff -urN digi.orig/digi.c digi.new/digi.c
--- digi.orig/digi.c	2008-03-03 00:34:24.000000000 +0200
+++ digi.new/digi.c	2008-06-11 16:46:26.000000000 +0300
@@ -383,7 +383,8 @@
 	case PCXE:
 	case PCXEVE:
 	case PCXI:
-		ptr = sc->setwin(sc, sc->model == PCXI ? 0x2000 : 0x0);
+		//ptr = sc->setwin(sc, sc->model == PCXI ? 0x2000 : 0x0);
+		ptr = sc->setwin(sc, 0x2000);
 		digi_bcopy(sc->fep.data, ptr, sc->fep.size);
 
 		/* A BIOS request to move our data to 0x2000 */


Re: device digi

Добавлено: 2008-06-11 17:07:28
theBas

Код: Выделить всё

digi0: probing on isa bus
digi0: isa? port 0x220 mem 0xd0000
digi0: got reset after 1 iterations
digi0: board type is 0x4
digi0: Probe returns -10
digi0: probing on isa bus
digi0: isa? port 0x220 mem 0xd0000
digi0: got reset after 1 iterations
digi0: board type is 0x4
digi0: Probe returns -10
digi0 at port 0x220-0x223 iomem 0xd0000-0xdffff on isa0
digi0: attaching
digi0: Checking card type
digi0: got reset after 1 iterations
digi0: board type is 0x4
digi0: internal memory segment 0xf000
digi0: got reset after 0 iterations
digi0: got memory after 0 iterations
digi0: short memory test
digi0: 1st memory test ok
digi0: 2nd memory test ok
digi0: 3rd memory test ok
digi0: BIOS uploaded
digi0: BIOS started after 1 us
digi0: BIOS booted after 11 iterations
digi0: FEP/OS moved after 1 iterations
digi0: FEP/OS started after 1 iterations
digi0: Digiboard PC/Xe 64K, 16 ports found
digi1: probing on isa bus
digi1: 0x061: Invalid i/o address
СПАСИБО ДОКТОР

незнаю правда будет ли работать бо собственно переходник на модем я забыл с собой взять когда ездил за системником.
девайсы все создались.... сьезжу за переходником проверю работоспособность отпишусь :)

Re: device digi

Добавлено: 2008-06-11 17:09:52
paradox
ну если все заработает
можно кого то попросить закинуть на PR патч предварительно проверить то что ниже
просто кривовато портировали

Код: Выделить всё

diff -urN digi.orig/digi.c digi.new/digi.c
--- digi.orig/digi.c	2008-03-03 00:34:24.000000000 +0200
+++ digi.new/digi.c	2008-06-11 16:59:38.000000000 +0300
@@ -383,7 +383,7 @@
 	case PCXE:
 	case PCXEVE:
 	case PCXI:
-		ptr = sc->setwin(sc, sc->model == PCXI ? 0x2000 : 0x0);
+		ptr = sc->setwin(sc, 0x2000);
 		digi_bcopy(sc->fep.data, ptr, sc->fep.size);
 
 		/* A BIOS request to move our data to 0x2000 */
diff -urN digi.orig/digi_isa.c digi.new/digi_isa.c
--- digi.orig/digi_isa.c	2004-06-18 21:13:48.000000000 +0300
+++ digi.new/digi_isa.c	2008-06-11 17:02:51.000000000 +0300
@@ -80,7 +80,7 @@
 static u_char *
 digi_xi_setwin(struct digi_softc *sc, unsigned int addr)
 {
-	outb(sc->wport, sc->window = FEPMEM);
+	outb(sc->wport, sc->window = inb(sc->port)|FEPMEM);
 	return (sc->vmem + addr);
 }
 
@@ -203,6 +203,11 @@
 			sc->win_size = 0x10000;
 			sc->win_bits = 16;
 			sc->wport = sc->port;
+
+			sc->setwin = digi_xi_setwin;
+			sc->hidewin = digi_isa_hidewin;
+			sc->towin = digi_xi_towin;
+
 		} else {
 			sc->name = "Digiboard PC/Xe 64/8K (windowed)";
 			sc->model = PCXEVE;
@@ -210,12 +215,13 @@
 			sc->win_size = 0x2000;
 			sc->win_bits = 13;
 			sc->wport = sc->port + 1;
+
+			sc->setwin = digi_isa_setwin;
+			sc->hidewin = digi_isa_hidewin;
+			sc->towin = digi_isa_towin;
 		}
 		sc->module = "Xe";
 
-		sc->setwin = digi_isa_setwin;
-		sc->hidewin = digi_isa_hidewin;
-		sc->towin = digi_isa_towin;
 	}
 
 	return (sc->name != NULL);
@@ -396,7 +402,7 @@
 
 	if (sc->model == PCXI || sc->model == PCXE) {
 		outb(sc->port, FEPRST | FEPMEM);
-		for (i = 0; (inb(sc->port) & FEPMASK) != FEPRST; i++) {
+		for (i = 0; (inb(sc->port) & FEPMASK) != (FEPRST|FEPMEM); i++) {
 			if (i == hz / 10) {
 				device_printf(dev,
 				    "memory reservation failed (0x%02x)\n",

Re: device digi

Добавлено: 2008-06-11 17:56:00
Alex Keda
баг-репорт надо обязательно...
иначе дальше будут те же грабли

Re: device digi

Добавлено: 2008-06-11 18:00:17
paradox
ну не факт что пофиксят
но пусть в PR весит
так поисковики быстрее найдут
и если что народ будет находить
хотя этот сайт и так в первых


там на тачке ничего не делаеться?
а то задолбался
жмешь отправить минут 5 может крутиться
или жмешь отправить
а оно уже белую страницы и данные уже потеряные)))

я терь по умному прежде чем отправить копирую в буффер сообщение=))

Re: device digi

Добавлено: 2008-06-11 18:07:57
Alex Keda
э не.
эт провайдет твой мутит.
днём правда пресобирал мир и ядро на стейбл - но щас ничё не едлается...
=========
надо софт чтоли пересобрать к ночи ближе. грят муся на стейбле станет жутко быстрей...

Re: device digi

Добавлено: 2008-06-11 18:10:22
paradox
не)) с моим все нормально
раньше же работало
это исклительно сегодня

Re: device digi

Добавлено: 2008-06-11 18:11:30
Alex Keda
ну у меня же прямо щас нормально...

Re: device digi

Добавлено: 2008-06-12 17:47:45
theBas
То что писал последним я не пробовал :) но зато все теперь работает идеально (просто боюсь зглазить).
Есче раз ОГРОМНОЕ СПАСИБО.

Re: device digi

Добавлено: 2008-06-12 17:56:57
paradox
лучше перепроверить
и отправить PR
а то будет 8 версия=))
будут опять проблемы
а патчи потом могут и не подойти - потому что они там опять что то накрутят

Re: device digi

Добавлено: 2008-06-12 18:14:50
theBas
Ех надеюсь к 8-ой версии умрет: "либо я, либо осел, либо шах"
:) а попробовал бы если б умел ети патчи ставить... догадуюсь что patch но за последние две недели стоко манов начитался что исче 1н и мну хватит удар и тогда я точно до 8-ой версии недоживу :(

Re: device digi

Добавлено: 2008-06-12 18:22:25
paradox
ну мы лиса попросим
он отправит PR =))) его уже в freebsd.org знают
токо нужно будет ваши данные по железу...
вообщем он сам скажет что нужно
если надумает

Re: device digi

Добавлено: 2008-06-12 18:38:29
paradox
ставить=))) а вы что в ручную правили?

#cp patch /usr/src/sys/dev/digi
#cd /usr/src/sys/dev/digi/
#patch -p1 < имя_файла

-p1 это опция убрать одну директорию
тоесть там digi.orig digi.new
соответсвенно
#patch < имя_файла
не прокатит
так как нет у вас каталогов .new .orig
поэтому копируете это в каталог digi и тудаже патч файл
и -p1
и должно все сделать само=)

Re: device digi

Добавлено: 2008-06-12 21:51:52
Alex Keda
ну - давайте данные и патч - накатаю.
и полные денные по железке...

Re: device digi

Добавлено: 2008-06-13 15:29:41
theBas

Код: Выделить всё

Hmm...  Looks like a unified diff to me...
The text leading up to this was:
--------------------------
|diff -urN digi.orig/digi.c digi.new/digi.c
|--- digi.orig/digi.c   2008-03-03 00:34:24.000000000 +0200
|+++ digi.new/digi.c   2008-06-11 16:59:38.000000000 +0300
--------------------------
Patching file digi.c using Plan A...
Hunk #1 failed at 383.
1 out of 1 hunks failed--saving rejects to digi.c.rej
Hmm...  The next patch looks like a unified diff to me...
The text leading up to this was:
--------------------------
|diff -urN digi.orig/digi_isa.c digi.new/digi_isa.c
|--- digi.orig/digi_isa.c   2004-06-18 21:13:48.000000000 +0300
|+++ digi.new/digi_isa.c   2008-06-11 17:02:51.000000000 +0300
--------------------------
Patching file digi_isa.c using Plan A...
patch: **** malformed patch at line 17: static u_char *
digi.c.rej

Код: Выделить всё

***************
*** 383,389 ****
    case PCXE:
    case PCXEVE:
    case PCXI:
-       ptr = sc->setwin(sc, sc->model == PCXI ? 0x2000 : 0x0);
       digi_bcopy(sc->fep.data, ptr, sc->fep.size);

       /* A BIOS request to move our data to 0x2000 */
--- 383,389 ----
    case PCXE:
    case PCXEVE:
    case PCXI:
+       ptr = sc->setwin(sc, 0x2000);
       digi_bcopy(sc->fep.data, ptr, sc->fep.size);

       /* A BIOS request to move our data to 0x2000 */
насколько я понимаю ничего не получилось

К стати я ж совсем забыл что 7-у я то снес :) и все операции проводил на 5-е. простите имбицила.

Баг кстати есть при компиляции в ядро или автозагрузке модулем:

Код: Выделить всё

digi0: short memory test
digi0: 1st memory test ok
digi0: 2nd memory test ok
digi0: 3rd memory test ok
digi_Xe: Failed 2 to autoload module
при kldload все ок

Re: device digi

Добавлено: 2008-06-13 15:36:59
paradox
ну давайте с 5.x
ваши оригинальные digi/*
посмотрю

хотя оригинально
мы вроде про 7 речь вели
я все по ее соурсам смотрел
и патчи катал=)))

Re: device digi

Добавлено: 2008-06-13 15:47:24
theBas

Re: device digi

Добавлено: 2008-06-13 15:55:39
paradox
хотя 5.x уже помоему не поддерживаеться
токо
6.3
меньшее что я знаю
может тогда вам лучше обновиться до нормальной версии?=)
6.3
или 7.0


на сайте вроде ftp
есть