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.      #
      ###########################################################

------------------------------------------------------------------------------