Subject: Re: kd (keyboard/display) console fixed
To: Gordon W. Ross <gwr@mc.com>
From: Harry Schreurs <HLS@oce.nl>
List: port-sun3
Date: 06/02/1994 18:56:29
> From: gwr@jericho.mc.com (Gordon W. Ross)
> Date sent: Thu, 2 Jun 94 11:37:39 EDT
> To: hls
> Copies to: port-sun3@sun-lamp.cs.berkeley.edu
> Subject: kd (keyboard/display) console fixed
> Send reply to: gwr@mc.com (Gordon W. Ross)
> > From: "Harry Schreurs" <HLS@oce.nl>
> > Date: Thu, 19 May 1994 16:14:05 GMT +0100
>
> [...]
> > But the bad part is, that it doesn't respond to my keyboard.
> > Watching the #-prompt, I am not able to type in any command!!
>
> The initialization code in the kbd driver was not working, but
> it is fixed now. The old initialization scheme only worked if
> kbd_ascii was called before kbd_serial (yuch) and the order of
> these calls depends on what autoconfiguration does. The fixed
> code initializes the kbd port upon the first open of either
> /dev/kbd or /dev/kd (indirect through /dev/console).
I was still studying the source code. I'm happy that you found
the solution to this problem first.
>
> The following files were changed:
> src/sys/arch/sun3/dev/kbd.c
> src/sys/arch/sun3/dev/kd.c
Is there a ftp site, other than sun-lamp.cs.berkeley.edu, where I
can get these files. It will take some time, before these files
are available to me on sun-lamp!
Meanwhile I made /dev/ttya the console port. I think I found a problem
in machdep.c. By looking at the SPARC's machdep.c I discovered the
following differences. Can you comment on this?
With these changes I was able to boot a kernel, based on the latest
kernel sources, up to the point where it consults BOOTP.
From this point on, something is going very terribly wrong!!
I think this is caused by the fact, that the memory being used to
prepare this bootp-request, is part of the black and white memory
frame buffer of my SUN 3/50. At some point, the packets that are being
put on the network have the wrong ethernet source adresses!!!
My manual states:
bwtwo - black and white memory frame buffer device bwtwo0
at obmem2 csr 0x100000 priority 4
Regards,
Harry Schreurs
*** machdep.c Thu Jun 2 17:12:04 1994
--- machdep.c.org.org Mon May 30 11:11:00 1994
***************
*** 193,199 ****
size = MAXBSIZE * nbuf;
/* XXX - Should last arg be TRUE instead? (like hp300) -gwr */
buffer_map = kmem_suballoc(kernel_map, (vm_offset_t *)&buffers,
! &maxaddr, size, TRUE);
minaddr = (vm_offset_t)buffers;
if (vm_map_find(buffer_map, vm_object_allocate(size), (vm_offset_t)0,
&minaddr, size, FALSE) != KERN_SUCCESS)
--- 193,199 ----
size = MAXBSIZE * nbuf;
/* XXX - Should last arg be TRUE instead? (like hp300) -gwr */
buffer_map = kmem_suballoc(kernel_map, (vm_offset_t *)&buffers,
! &maxaddr, size, FALSE);
minaddr = (vm_offset_t)buffers;
if (vm_map_find(buffer_map, vm_object_allocate(size), (vm_offset_t)0,
&minaddr, size, FALSE) != KERN_SUCCESS)
***************
*** 234,240 ****
/*
* Allocate a map for physio and DVMA
*/
! phys_map = vm_map_create(kernel_pmap, DVMA_SPACE_START, DVMA_SPACE_END,
1);
if (phys_map == NULL)
panic("cpu_startup: unable to create physmap");
--- 234,240 ----
/*
* Allocate a map for physio and DVMA
*/
! phys_map = vm_map_create(kernel_pmap, DVMA_SPACE_START, DVMA_SPACE_END,
0);
if (phys_map == NULL)
panic("cpu_startup: unable to create physmap");
------------------------------------------------------------------------------
H.L Schreurs Email: hls@oce.nl
Business Unit Printing Systems Phone: +31 77 593775
Oce Nederland B.V. Fax: +31 77 595434
The Netherlands
------------------------------------------------------------------------------
###########################################################
# This note does not necessarily represent the position #
# of Oce-Nederland B.V. Therefore no liability or #
# responsibility for whatever will be accepted. #
###########################################################
------------------------------------------------------------------------------