Re: Performa 475 and OpenBSD 4.0
Carl Bloomsburg <[email protected]> Thu, 5 Oct 2006 20:54:23 -0700
| Newsgroups | gmane.os.openbsd.mac68k |
|---|---|
| Message-ID | <[email protected]> |
Using the diff that you gave previously, and changing mac68k/clock.c to
the most recent version that
is in CVS, I was able to compile the kernel, and then compile the
OpenBSD 4.0 userland on the
Performa 475, with everything working the way I expect it to. It took
five days to compile
the userland code with /usr/src and /usr/obj on an NFS mount, since the
hard disk I have is too small
otherwise.
Carl
On Sep 27, 2006, at 6:46 AM, Carl Bloomsburg wrote:
> The kernel using the diff you provided below is running great so far.
>
> Carl
>
> On Sep 26, 2006, at 11:26 AM, Miod Vallat wrote:
>
>>> I am running 4.0 on a Performa 475. After updating my source code on
>>> Sep 22 and rebuilding the kernel, the keyboard no longer worked.
>>> After I backed out the changed made on 9/17/2006 to
>>> src/sys/arch/mac68k/mac68k/clock.c and rebuilt the kernel, the
>>> keyboard
>>> then worked again. Since I am not familiar with Mac hardware, I am
>>> not sure if there is a configuration item that I might need to change
>>> before using the new version of clock.c, so I thought I would ask
>>> before submitting a bug report.
>>
>> Damned. My fumble, sorry. I have reverted the problematic part of the
>> diff.
>>
>> Can you try the following diff on your LC475 (in addition to the
>> clock.c
>> revert you did), and report whether things still run ok?
>>
>> Thanks,
>> Miod
>>
>> Index: include/viareg.h
>> ===================================================================
>> RCS file: /cvs/src/sys/arch/mac68k/include/viareg.h,v
>> retrieving revision 1.18
>> diff -u -p -r1.18 viareg.h
>> --- include/viareg.h 2006/01/13 21:02:01 1.18
>> +++ include/viareg.h 2006/09/26 18:20:42
>> @@ -212,6 +212,7 @@ typedef SLIST_HEAD(, via2hand) via2hand_
>>
>> void via_init(void);
>> void via_powerdown(void);
>> +void via_set_aux_interrupts(void);
>> void via_set_modem(int);
>> void add_nubus_intr(int, int (*)(void *), void *, const char *);
>> void enable_nubus_intr(void);
>> Index: mac68k/machdep.c
>> ===================================================================
>> RCS file: /cvs/src/sys/arch/mac68k/mac68k/machdep.c,v
>> retrieving revision 1.134
>> diff -u -p -r1.134 machdep.c
>> --- mac68k/machdep.c 2006/09/22 22:15:19 1.134
>> +++ mac68k/machdep.c 2006/09/26 18:20:43
>> @@ -391,6 +391,7 @@ cpu_startup(void)
>> */
>> printf(version);
>> identifycpu();
>> + via_set_aux_interrupts();
>>
>> vers = mac68k_machine.booter_version;
>> if (vers < CURRENTBOOTERVER) {
>> @@ -1586,14 +1587,6 @@ setmachdep()
>> mac68k_machine.scsi96 = 1;
>> via_reg(VIA1, vIER) = 0x7f; /* disable VIA1 int */
>> via_reg(VIA2, vIER) = 0x7f; /* disable VIA2 int */
>> -
>> - /* Enable A/UX interrupt scheme */
>> - mac68k_machine.aux_interrupts = 1;
>> - via_reg(VIA1, vBufB) &= (0xff ^ DB1O_AuxIntEnb);
>> - via_reg(VIA1, vDirB) |= DB1O_AuxIntEnb;
>> - mac68k_machine.via1_ipl = 6;
>> - mac68k_machine.via2_ipl = 2;
>> -
>> break;
>> case MACH_CLASSAV:
>> VIA2 = VIA2OFF;
>> Index: mac68k/via.c
>> ===================================================================
>> RCS file: /cvs/src/sys/arch/mac68k/mac68k/via.c,v
>> retrieving revision 1.28
>> diff -u -p -r1.28 via.c
>> --- mac68k/via.c 2006/06/30 15:12:47 1.28
>> +++ mac68k/via.c 2006/09/26 18:20:44
>> @@ -175,6 +175,28 @@ via_init()
>> }
>>
>> /*
>> + * Enable A/UX style interrupt scheme now if this model supports it.
>> + */
>> +void
>> +via_set_aux_interrupts()
>> +{
>> + switch (current_mac_model->class) {
>> + case MACH_CLASSQ:
>> + case MACH_CLASSQ2:
>> + mac68k_machine.aux_interrupts = 1;
>> + via_reg(VIA1, vBufB) &= (0xff ^ DB1O_AuxIntEnb);
>> + via_reg(VIA1, vDirB) |= DB1O_AuxIntEnb;
>> +
>> + intr_disestablish(mac68k_machine.via1_ipl);
>> + mac68k_machine.via1_ipl = 6;
>> + intr_establish(via1_intr, NULL, mac68k_machine.via1_ipl, "via1");
>> + /* mac68k_machine.via2_ipl = 2; unchanged */
>> + intr_init();
>> + break;
>> + }
>> +}
>> +
>> +/*
>> * Set the state of the modem serial port's clock source.
>> */
>> void