* Re: Support for Motorola Platforms
@ 1999-06-04 14:41 Johnnie Peters
1999-06-04 14:37 ` Adrian Cox
0 siblings, 1 reply; 11+ messages in thread
From: Johnnie Peters @ 1999-06-04 14:41 UTC (permalink / raw)
To: linuxppc-dev-digest@lists.linuxppc.org,
linuxppc-dev@lists.linuxppc.org, Abukhdeir Nasser-ana007
Hello Abukhdeir
Yes we are making new machines. The systems I work on are all
PowerPC based and intended for the embedded systems market. Here
is a list of the machines (these are engineering names for the most
part) this patch will allow LinuxPPC to boot on:
Older PCI based machines
Comet
Blackhark
Utah
Newer PCI
MTX
MTX+
VME
MVME1600
MVME2300
MVME2400
MVME2600
MVME2700
MVME3600
Compact PCI
Mesquite (CPX8216 main processor board)
Sitka (CPX8216 slave procesor board)
The dual processor MTX series and MVME4600 will boot but only run
on one processor. Work is underway to get the second aprocessor
going.
Motorola has a new version of the MVME2400 with the MAX processor and
as soon as I can get my hands on one I will do the work to get Linux
to run on it. Plans are also underway for new versions of the MTX
series
supporting the MAX processor.
I invite any inquires about our machines you might have. And please
call
me Johnnie. I'll never become accostimed to the Mr. Peters stuff.
Abukhdeir Nasser-ana007 wrote:
>
> Mr .Peters:
> Sorry for the ignorant question, but is Motorola still making new
> machines? What Motorola platform are you talking about? I apologize for
> the dumb questions...
>
>
> Nasser
[[ This message was sent via the linuxppc-dev mailing list. Replies are ]]
[[ not forced back to the list, so be sure to Cc linuxppc-dev if your ]]
[[ reply is of general interest. Please check http://lists.linuxppc.org/ ]]
[[ and http://www.linuxppc.org/ for useful information before posting. ]]
^ permalink raw reply [flat|nested] 11+ messages in thread* Re: Support for Motorola Platforms
1999-06-04 14:41 Support for Motorola Platforms Johnnie Peters
@ 1999-06-04 14:37 ` Adrian Cox
1999-06-04 15:59 ` Michael Meissner
0 siblings, 1 reply; 11+ messages in thread
From: Adrian Cox @ 1999-06-04 14:37 UTC (permalink / raw)
To: linuxppc-dev
Johnnie Peters wrote:
> Motorola has a new version of the MVME2400 with the MAX processor and
> as soon as I can get my hands on one I will do the work to get Linux
> to run on it. Plans are also underway for new versions of the MTX
> series
> supporting the MAX processor.
Has anybody started work on GNU tools and kernel porting for Altivec
processors? The issues I see are:
(1) Altivec intructions in gas, so I don't have to enter the codes by
hand.
(2) Linux Kernel patches to load/save Altivec registers. These are large
enough that a lazy load/save might be useful.
(3) (Questionable) Patches to EGCS to support the C extensions that
Motorola specify in the Altivec PIM. I detest C extensions that add the
keyword "vector", but all Motorola's example code uses them.
All of these can be done based on documentation from Motorola's website.
I suspect that (1) has already happened inside some RTOS vendors, but
will take a long time to filter into the standard releases.
- Adrian Cox
[[ This message was sent via the linuxppc-dev mailing list. Replies are ]]
[[ not forced back to the list, so be sure to Cc linuxppc-dev if your ]]
[[ reply is of general interest. Please check http://lists.linuxppc.org/ ]]
[[ and http://www.linuxppc.org/ for useful information before posting. ]]
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Support for Motorola Platforms
1999-06-04 14:37 ` Adrian Cox
@ 1999-06-04 15:59 ` Michael Meissner
1999-06-04 19:19 ` Mark Lin
0 siblings, 1 reply; 11+ messages in thread
From: Michael Meissner @ 1999-06-04 15:59 UTC (permalink / raw)
To: Adrian Cox; +Cc: linuxppc-dev
On Fri, Jun 04, 1999 at 03:37:13PM +0100, Adrian Cox wrote:
>
> Johnnie Peters wrote:
> > Motorola has a new version of the MVME2400 with the MAX processor and
> > as soon as I can get my hands on one I will do the work to get Linux
> > to run on it. Plans are also underway for new versions of the MTX
> > series
> > supporting the MAX processor.
>
> Has anybody started work on GNU tools and kernel porting for Altivec
> processors? The issues I see are:
> (1) Altivec intructions in gas, so I don't have to enter the codes by
> hand.
> (2) Linux Kernel patches to load/save Altivec registers. These are large
> enough that a lazy load/save might be useful.
> (3) (Questionable) Patches to EGCS to support the C extensions that
> Motorola specify in the Altivec PIM. I detest C extensions that add the
> keyword "vector", but all Motorola's example code uses them.
I have patches from Motorola to add Altivec support to egcs 1.0.3. I haven't
been in PowerPC mode recently and haven't looked at them.
> All of these can be done based on documentation from Motorola's website.
> I suspect that (1) has already happened inside some RTOS vendors, but
> will take a long time to filter into the standard releases.
>
> - Adrian Cox
--
Michael Meissner, Cygnus Solutions
PMB 198, 174 Littleton Road #3, Westford, Massachusetts 01886
email: meissner@cygnus.com phone: 978-486-9304 fax: 978-692-4482
[[ This message was sent via the linuxppc-dev mailing list. Replies are ]]
[[ not forced back to the list, so be sure to Cc linuxppc-dev if your ]]
[[ reply is of general interest. Please check http://lists.linuxppc.org/ ]]
[[ and http://www.linuxppc.org/ for useful information before posting. ]]
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Support for Motorola Platforms
1999-06-04 15:59 ` Michael Meissner
@ 1999-06-04 19:19 ` Mark Lin
1999-06-04 21:33 ` Johnnie Peters
0 siblings, 1 reply; 11+ messages in thread
From: Mark Lin @ 1999-06-04 19:19 UTC (permalink / raw)
To: Michael Meissner; +Cc: Adrian Cox, linuxppc-dev
Where did you get these patches? Are they available to the public?
--
Mark Lin
MPI Software Technology, Inc.
On Fri, 4 Jun 1999, Michael Meissner wrote:
>
> On Fri, Jun 04, 1999 at 03:37:13PM +0100, Adrian Cox wrote:
> >
> > Johnnie Peters wrote:
> > > Motorola has a new version of the MVME2400 with the MAX processor and
> > > as soon as I can get my hands on one I will do the work to get Linux
> > > to run on it. Plans are also underway for new versions of the MTX
> > > series
> > > supporting the MAX processor.
> >
> > Has anybody started work on GNU tools and kernel porting for Altivec
> > processors? The issues I see are:
> > (1) Altivec intructions in gas, so I don't have to enter the codes by
> > hand.
> > (2) Linux Kernel patches to load/save Altivec registers. These are large
> > enough that a lazy load/save might be useful.
> > (3) (Questionable) Patches to EGCS to support the C extensions that
> > Motorola specify in the Altivec PIM. I detest C extensions that add the
> > keyword "vector", but all Motorola's example code uses them.
>
> I have patches from Motorola to add Altivec support to egcs 1.0.3. I haven't
> been in PowerPC mode recently and haven't looked at them.
>
> > All of these can be done based on documentation from Motorola's website.
> > I suspect that (1) has already happened inside some RTOS vendors, but
> > will take a long time to filter into the standard releases.
> >
> > - Adrian Cox
>
>
> --
> Michael Meissner, Cygnus Solutions
> PMB 198, 174 Littleton Road #3, Westford, Massachusetts 01886
> email: meissner@cygnus.com phone: 978-486-9304 fax: 978-692-4482
[[ This message was sent via the linuxppc-dev mailing list. Replies are ]]
[[ not forced back to the list, so be sure to Cc linuxppc-dev if your ]]
[[ reply is of general interest. Please check http://lists.linuxppc.org/ ]]
[[ and http://www.linuxppc.org/ for useful information before posting. ]]
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Support for Motorola Platforms
1999-06-04 19:19 ` Mark Lin
@ 1999-06-04 21:33 ` Johnnie Peters
1999-06-04 21:26 ` Mark Lin
0 siblings, 1 reply; 11+ messages in thread
From: Johnnie Peters @ 1999-06-04 21:33 UTC (permalink / raw)
To: Mark Lin; +Cc: Michael Meissner, Adrian Cox, linuxppc-dev
Mark Lin wrote:
>
> Where did you get these patches? Are they available to the public?
I did most of the work but a few others have had contributions to
these. Motorola has allowed me to release these particular changes
to the web at this time.
Johnnie
>
> --
> Mark Lin
> MPI Software Technology, Inc.
>
> On Fri, 4 Jun 1999, Michael Meissner wrote:
>
> >
> > On Fri, Jun 04, 1999 at 03:37:13PM +0100, Adrian Cox wrote:
> > >
> > > Johnnie Peters wrote:
> > > > Motorola has a new version of the MVME2400 with the MAX processor and
> > > > as soon as I can get my hands on one I will do the work to get Linux
> > > > to run on it. Plans are also underway for new versions of the MTX
> > > > series
> > > > supporting the MAX processor.
> > >
> > > Has anybody started work on GNU tools and kernel porting for Altivec
> > > processors? The issues I see are:
> > > (1) Altivec intructions in gas, so I don't have to enter the codes by
> > > hand.
> > > (2) Linux Kernel patches to load/save Altivec registers. These are large
> > > enough that a lazy load/save might be useful.
> > > (3) (Questionable) Patches to EGCS to support the C extensions that
> > > Motorola specify in the Altivec PIM. I detest C extensions that add the
> > > keyword "vector", but all Motorola's example code uses them.
> >
> > I have patches from Motorola to add Altivec support to egcs 1.0.3. I haven't
> > been in PowerPC mode recently and haven't looked at them.
> >
> > > All of these can be done based on documentation from Motorola's website.
> > > I suspect that (1) has already happened inside some RTOS vendors, but
> > > will take a long time to filter into the standard releases.
> > >
> > > - Adrian Cox
> >
> >
> > --
> > Michael Meissner, Cygnus Solutions
> > PMB 198, 174 Littleton Road #3, Westford, Massachusetts 01886
> > email: meissner@cygnus.com phone: 978-486-9304 fax: 978-692-4482
[[ This message was sent via the linuxppc-dev mailing list. Replies are ]]
[[ not forced back to the list, so be sure to Cc linuxppc-dev if your ]]
[[ reply is of general interest. Please check http://lists.linuxppc.org/ ]]
[[ and http://www.linuxppc.org/ for useful information before posting. ]]
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Support for Motorola Platforms
1999-06-04 21:33 ` Johnnie Peters
@ 1999-06-04 21:26 ` Mark Lin
1999-06-04 23:18 ` Johnnie Peters
0 siblings, 1 reply; 11+ messages in thread
From: Mark Lin @ 1999-06-04 21:26 UTC (permalink / raw)
To: Johnnie Peters; +Cc: Mark Lin, Michael Meissner, Adrian Cox, linuxppc-dev
Can you point me to the exact URL? I'm having problems finding it.
--
Mark Lin
MPI Software Technology, Inc.
On Fri, 4 Jun 1999, Johnnie Peters wrote:
> Mark Lin wrote:
> >
> > Where did you get these patches? Are they available to the public?
>
> I did most of the work but a few others have had contributions to
> these. Motorola has allowed me to release these particular changes
> to the web at this time.
>
> Johnnie
>
>
> > On Fri, 4 Jun 1999, Michael Meissner wrote:
> >
> > >
> > > On Fri, Jun 04, 1999 at 03:37:13PM +0100, Adrian Cox wrote:
> > > >
> > > > Johnnie Peters wrote:
> > > > > Motorola has a new version of the MVME2400 with the MAX processor and
> > > > > as soon as I can get my hands on one I will do the work to get Linux
> > > > > to run on it. Plans are also underway for new versions of the MTX
> > > > > series
> > > > > supporting the MAX processor.
> > > >
> > > > Has anybody started work on GNU tools and kernel porting for Altivec
> > > > processors? The issues I see are:
> > > > (1) Altivec intructions in gas, so I don't have to enter the codes by
> > > > hand.
> > > > (2) Linux Kernel patches to load/save Altivec registers. These are large
> > > > enough that a lazy load/save might be useful.
> > > > (3) (Questionable) Patches to EGCS to support the C extensions that
> > > > Motorola specify in the Altivec PIM. I detest C extensions that add the
> > > > keyword "vector", but all Motorola's example code uses them.
> > >
> > > I have patches from Motorola to add Altivec support to egcs 1.0.3. I haven't
> > > been in PowerPC mode recently and haven't looked at them.
> > >
> > > > All of these can be done based on documentation from Motorola's website.
> > > > I suspect that (1) has already happened inside some RTOS vendors, but
> > > > will take a long time to filter into the standard releases.
> > > >
> > > > - Adrian Cox
[[ This message was sent via the linuxppc-dev mailing list. Replies are ]]
[[ not forced back to the list, so be sure to Cc linuxppc-dev if your ]]
[[ reply is of general interest. Please check http://lists.linuxppc.org/ ]]
[[ and http://www.linuxppc.org/ for useful information before posting. ]]
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Support for Motorola Platforms
1999-06-04 21:26 ` Mark Lin
@ 1999-06-04 23:18 ` Johnnie Peters
1999-06-04 22:37 ` Daniel Jacobowitz
0 siblings, 1 reply; 11+ messages in thread
From: Johnnie Peters @ 1999-06-04 23:18 UTC (permalink / raw)
To: Mark Lin; +Cc: Michael Meissner, Adrian Cox, linuxppc-dev
[-- Attachment #1: Type: text/plain, Size: 2127 bytes --]
Mark Lin wrote:
>
> Can you point me to the exact URL? I'm having problems finding it.
They are not on any URL. I attached them to the post that all this
originated from. I will attach them here again.
Johnnie
>
> --
> Mark Lin
> MPI Software Technology, Inc.
>
> On Fri, 4 Jun 1999, Johnnie Peters wrote:
>
> > Mark Lin wrote:
> > >
> > > Where did you get these patches? Are they available to the public?
> >
> > I did most of the work but a few others have had contributions to
> > these. Motorola has allowed me to release these particular changes
> > to the web at this time.
> >
> > Johnnie
> >
> >
> > > On Fri, 4 Jun 1999, Michael Meissner wrote:
> > >
> > > >
> > > > On Fri, Jun 04, 1999 at 03:37:13PM +0100, Adrian Cox wrote:
> > > > >
> > > > > Johnnie Peters wrote:
> > > > > > Motorola has a new version of the MVME2400 with the MAX processor and
> > > > > > as soon as I can get my hands on one I will do the work to get Linux
> > > > > > to run on it. Plans are also underway for new versions of the MTX
> > > > > > series
> > > > > > supporting the MAX processor.
> > > > >
> > > > > Has anybody started work on GNU tools and kernel porting for Altivec
> > > > > processors? The issues I see are:
> > > > > (1) Altivec intructions in gas, so I don't have to enter the codes by
> > > > > hand.
> > > > > (2) Linux Kernel patches to load/save Altivec registers. These are large
> > > > > enough that a lazy load/save might be useful.
> > > > > (3) (Questionable) Patches to EGCS to support the C extensions that
> > > > > Motorola specify in the Altivec PIM. I detest C extensions that add the
> > > > > keyword "vector", but all Motorola's example code uses them.
> > > >
> > > > I have patches from Motorola to add Altivec support to egcs 1.0.3. I haven't
> > > > been in PowerPC mode recently and haven't looked at them.
> > > >
> > > > > All of these can be done based on documentation from Motorola's website.
> > > > > I suspect that (1) has already happened inside some RTOS vendors, but
> > > > > will take a long time to filter into the standard releases.
> > > > >
> > > > > - Adrian Cox
[-- Attachment #2: mot_diff5 --]
[-- Type: text/plain, Size: 23690 bytes --]
diff -u -r --new-file linux-2.2.10_2/arch/ppc/boot/misc.c linux.jp/arch/ppc/boot/misc.c
--- linux-2.2.10_2/arch/ppc/boot/misc.c Sat May 29 18:54:47 1999
+++ linux.jp/arch/ppc/boot/misc.c Fri May 28 07:52:00 1999
@@ -1,7 +1,7 @@
/*
* misc.c
*
- * $Id: misc.c,v 1.64.2.2 1999/05/29 19:09:29 cort Exp $
+ * $Id: misc.c,v 1.27 1999/05/28 14:52:00 jpeters Exp $
*
* Adapted for PowerPC by Gary Thomas
*
@@ -311,6 +311,26 @@
unsigned char sanity[0x2000];
+/*
+ * This routine is used to park the second processor on the
+ * Motorola dual processor platforms. This will be replaced
+ * in the future by the functionality to start it.
+ */
+void
+park_cpus()
+{
+ volatile unsigned long *smp_iar = &(hold_residual->VitalProductData.SmpIar);
+ int i;
+
+ /* Wait for indication to park. */
+ while (*smp_iar == 0) {
+ for (i=0; i < 512; i++);
+ }
+
+ /* Wait forever */
+ while(1);
+}
+
unsigned long
decompress_kernel(unsigned long load_addr, int num_words, unsigned long cksum,
RESIDUAL *residual, void *OFW_interface)
@@ -368,6 +388,16 @@
keyb_present = 0; /* no keyboard */
}
}
+
+ /* If this is a multiprocessor system then
+ * park the other processor so that the
+ * kernel knows where to find them.
+ */
+ if (residual->MaxNumCpus > 1) {
+ residual->VitalProductData.SmpIar = park_cpus;
+ residual->Cpus[1].CpuState = CPU_GOOD;
+ hold_residual->Cpus[1].CpuState = CPU_GOOD_FW;
+ }
}
memcpy(hold_residual,residual,sizeof(RESIDUAL));
} else {
@@ -465,22 +495,23 @@
puts(" ");
puthex((unsigned long)zimage_size+(unsigned long)zimage_start);
puts("\n");
- }
- /* relocate initrd */
- if ( initrd_start )
- {
+ /* relocate initrd */
+ if ( initrd_start )
+ {
+ puts("initrd at: "); puthex(initrd_start);
+ puts(" "); puthex(initrd_end); puts("\n");
+ avail_ram = (char *)PAGE_ALIGN(
+ (unsigned long)zimage_size+(unsigned long)zimage_start);
+ memcpy ((void *)avail_ram, (void *)initrd_start, INITRD_SIZE );
+ initrd_start = (unsigned long)avail_ram;
+ initrd_end = initrd_start + INITRD_SIZE;
+ puts("relocated to: "); puthex(initrd_start);
+ puts(" "); puthex(initrd_end); puts("\n");
+ }
+ } else if ( initrd_start ) {
puts("initrd at: "); puthex(initrd_start);
puts(" "); puthex(initrd_end); puts("\n");
-#ifdef OMIT
- avail_ram = (char *)PAGE_ALIGN(
- (unsigned long)zimage_size+(unsigned long)zimage_start);
- memcpy ((void *)avail_ram, (void *)initrd_start, INITRD_SIZE );
- initrd_start = (unsigned long)avail_ram;
- initrd_end = initrd_start + INITRD_SIZE;
- puts("relocated to: "); puthex(initrd_start);
- puts(" "); puthex(initrd_end); puts("\n");
-#endif
}
avail_ram = (char *)0x00400000;
diff -u -r --new-file linux-2.2.10_2/arch/ppc/config.in linux.jp/arch/ppc/config.in
--- linux-2.2.10_2/arch/ppc/config.in Sat May 29 18:54:46 1999
+++ linux.jp/arch/ppc/config.in Tue Jun 1 13:27:51 1999
@@ -1,4 +1,4 @@
@@ -92,7 +92,6 @@
bool 'Support for Open Firmware device tree in /proc' CONFIG_PROC_DEVICETREE
bool 'Support for TotalImpact TotalMP' CONFIG_TOTALMP
bool 'Support for early boot text console (BootX only)' CONFIG_BOOTX_TEXT
-bool 'Support for Motorola Hot Swap' CONFIG_MOTOROLA_HOTSWAP
if [ "$CONFIG_PREP" = "y" -o "$CONFIG_ALL_PPC" = "y" ]; then
bool 'PReP bootloader kernel arguments' CONFIG_CMDLINE_BOOL y
if [ "$CONFIG_CMDLINE_BOOL" = "y" ] ; then
@@ -146,6 +145,9 @@
bool 'Network device support' CONFIG_NETDEVICES
if [ "$CONFIG_NETDEVICES" = "y" ]; then
source drivers/net/Config.in
+ if [ "$CONFIG_ATM" = "y" ]; then
+ source drivers/atm/Config.in
+ fi
fi
endmenu
fi
diff -u -r --new-file linux-2.2.10_2/arch/ppc/kernel/Makefile linux.jp/arch/ppc/kernel/Makefile
--- linux-2.2.10_2/arch/ppc/kernel/Makefile Sat May 29 18:54:49 1999
+++ linux.jp/arch/ppc/kernel/Makefile Tue Jun 1 10:05:19 1999
@@ -65,7 +65,7 @@
$(HOSTCC) -o find_name find_name.c
checks: checks.c
- $(HOSTCC) ${CFLAGS} -D__KERNEL__ -o checks checks.c
+ $(CC) ${CFLAGS} -D__KERNEL__ -o checks checks.c
./checks
include $(TOPDIR)/Rules.make
diff -u -r --new-file linux-2.2.10_2/arch/ppc/kernel/i8259.c linux.jp/arch/ppc/kernel/i8259.c
--- linux-2.2.10_2/arch/ppc/kernel/i8259.c Sun May 23 14:15:37 1999
+++ linux.jp/arch/ppc/kernel/i8259.c Wed Jun 2 16:40:40 1999
@@ -13,33 +13,32 @@
int i8259_irq(int cpu)
{
int irq;
+ unsigned char irr;
/*
* Perform an interrupt acknowledge cycle on controller 1
- */
- outb(0x0C, 0x20);
- irq = inb(0x20) & 7;
- if (irq == 2)
- {
- /*
+ */
+ irr = inb(0x20) & ~cached_21;
+ if (!irr) return -1;
+ irq = 0;
+ while ((irq < 7) && !(irr&0x01))
+ {
+ irq++;
+ irr >>= 1;
+ }
+ if (irq == 2)
+ {
+ /*
* Interrupt is cascaded so perform interrupt
* acknowledge on controller 2
*/
- outb(0x0C, 0xA0);
- irq = (inb(0xA0) & 7) + 8;
- }
- else if (irq==7)
- {
- /*
- * This may be a spurious interrupt
- *
- * Read the interrupt status register. If the most
- * significant bit is not set then there is no valid
- * interrupt
- */
- outb(0x0b, 0x20);
- if(~inb(0x20)&0x80)
- return -1;
+ irr = inb(0xA0) & ~cached_A1;
+ irq = 8;
+ while ((irq < 15) && !(irr&0x01))
+ {
+ irq++;
+ irr >>= 1;
+ }
}
return irq;
}
@@ -53,13 +52,13 @@
cached_A1 |= 1 << (irq_nr-8);
inb(0xA1); /* DUMMY */
outb(cached_A1,0xA1);
- outb(0x20,0xA0); /* Non-specific EOI */
- outb(0x20,0x20); /* Non-specific EOI to cascade */
+ outb(0x62,0x20); /* Specific EOI to cascade */
+ outb(0x60|(irq_nr-8),0xA0); /* Specific EOI */
} else {
cached_21 |= 1 << irq_nr;
inb(0x21); /* DUMMY */
outb(cached_21,0x21);
- outb(0x20,0x20); /* Non-specific EOI */
+ outb(0x60|irq_nr,0x20); /* Specific EOI */
}
}
diff -u -r --new-file linux-2.2.10_2/arch/ppc/kernel/irq.c linux.jp/arch/ppc/kernel/irq.c
--- linux-2.2.10_2/arch/ppc/kernel/irq.c Sat May 29 18:54:49 1999
+++ linux.jp/arch/ppc/kernel/irq.c Tue Jun 1 10:05:21 1999
@@ -1,5 +1,5 @@
/*
- * $Id: irq.c,v 1.105.2.1 1999/05/29 19:10:05 cort Exp $
+ * $Id: irq.c,v 1.29 1999/06/01 17:05:21 jpeters Exp $
*
* arch/ppc/kernel/irq.c
*
@@ -139,13 +139,16 @@
/* Free */
for (p = &irq_desc[irq].action; (action = *p) != NULL; p = &action->next)
{
- /* Found it - now free it */
- save_flags(flags);
- cli();
- *p = action->next;
- restore_flags(flags);
- irq_kfree(action);
- return 0;
+ if (action->dev_id == dev_id)
+ {
+ /* Found it - now free it */
+ save_flags(flags);
+ cli();
+ *p = action->next;
+ restore_flags(flags);
+ irq_kfree(action);
+ return 0;
+ }
}
return -ENOENT;
}
diff -u -r --new-file linux-2.2.10_2/arch/ppc/kernel/prep_pci.c linux.jp/arch/ppc/kernel/prep_pci.c
--- linux-2.2.10_2/arch/ppc/kernel/prep_pci.c Sun May 23 14:15:39 1999
+++ linux.jp/arch/ppc/kernel/prep_pci.c Tue Jun 1 13:28:26 1999
@@ -34,6 +34,9 @@
/* How is the 82378 PIRQ mapping setup? */
unsigned char *Motherboard_routes;
+void (*Motherboard_non0)(struct pci_dev *);
+
+void Mesquite_Map_Non0(struct pci_dev *);
/* Used for Motorola to store system config register */
static unsigned long *ProcInfo;
@@ -682,7 +685,7 @@
#define MOT_RAVEN_PRESENT 0x1
#define MOT_HAWK_PRESENT 0x2
-int prep_keybd_present = 1;
+extern int kbd_present;
int MotMPIC = 0;
__initfunc(int raven_init(void))
@@ -746,7 +749,7 @@
base_mod = inb(MOTOROLA_BASETYPE_REG);
if ((MotMPIC == MOT_HAWK_PRESENT) || (base_mod == 0xF9) ||
(base_mod == 0xFA) || (base_mod == 0xE1))
- prep_keybd_present = 0;
+ kbd_present = 0;
return 1;
}
@@ -759,33 +762,34 @@
const char *name;
unsigned char *map;
unsigned char *routes;
+ void (*map_non0_bus)(struct pci_dev *); /* For boards with more than bus 0 devices. */
} mot_info[] = {
- {0x300, 0x00, 0x00, "MVME 2400", Genesis2_pci_IRQ_map, Raven_pci_IRQ_routes},
- {0x010, 0x00, 0x00, "Genesis", Genesis_pci_IRQ_map, Genesis_pci_IRQ_routes},
- {0x020, 0x00, 0x00, "Powerstack (Series E)", Comet_pci_IRQ_map, Comet_pci_IRQ_routes},
- {0x040, 0x00, 0x00, "Blackhawk (Powerstack)", Blackhawk_pci_IRQ_map, Blackhawk_pci_IRQ_routes},
- {0x050, 0x00, 0x00, "Omaha (PowerStack II Pro3000)", Omaha_pci_IRQ_map, Omaha_pci_IRQ_routes},
- {0x060, 0x00, 0x00, "Utah (Powerstack II Pro4000)", Utah_pci_IRQ_map, Utah_pci_IRQ_routes},
- {0x0A0, 0x00, 0x00, "Powerstack (Series EX)", Comet2_pci_IRQ_map, Comet2_pci_IRQ_routes},
- {0x1E0, 0xE0, 0x00, "Mesquite cPCI (MCP750)", Mesquite_pci_IRQ_map, Raven_pci_IRQ_routes},
- {0x1E0, 0xE1, 0x00, "Sitka cPCI (MCPN750)", Sitka_pci_IRQ_map, Raven_pci_IRQ_routes},
- {0x1E0, 0xE2, 0x00, "Mesquite cPCI (MCP750) w/ HAC", Mesquite_pci_IRQ_map, Raven_pci_IRQ_routes},
- {0x1E0, 0xF6, 0x80, "MTX Plus", MTXplus_pci_IRQ_map, Raven_pci_IRQ_routes},
- {0x1E0, 0xF6, 0x81, "Dual MTX Plus", MTXplus_pci_IRQ_map, Raven_pci_IRQ_routes},
- {0x1E0, 0xF7, 0x80, "MTX wo/ Parallel Port", MTX_pci_IRQ_map, Raven_pci_IRQ_routes},
- {0x1E0, 0xF7, 0x81, "Dual MTX wo/ Parallel Port", MTX_pci_IRQ_map, Raven_pci_IRQ_routes},
- {0x1E0, 0xF8, 0x80, "MTX w/ Parallel Port", MTX_pci_IRQ_map, Raven_pci_IRQ_routes},
- {0x1E0, 0xF8, 0x81, "Dual MTX w/ Parallel Port", MTX_pci_IRQ_map, Raven_pci_IRQ_routes},
- {0x1E0, 0xF9, 0x00, "MVME 2300", Genesis2_pci_IRQ_map, Raven_pci_IRQ_routes},
- {0x1E0, 0xFA, 0x00, "MVME 2300SC/2600", Genesis2_pci_IRQ_map, Raven_pci_IRQ_routes},
- {0x1E0, 0xFB, 0x00, "MVME 2600 with MVME712M", Genesis2_pci_IRQ_map, Raven_pci_IRQ_routes},
- {0x1E0, 0xFC, 0x00, "MVME 2600/2700 with MVME761", Genesis2_pci_IRQ_map, Raven_pci_IRQ_routes},
- {0x1E0, 0xFD, 0x80, "MVME 3600 with MVME712M", Genesis2_pci_IRQ_map, Raven_pci_IRQ_routes},
- {0x1E0, 0xFD, 0x81, "MVME 4600 with MVME712M", Genesis2_pci_IRQ_map, Raven_pci_IRQ_routes},
- {0x1E0, 0xFE, 0x80, "MVME 3600 with MVME761", Genesis2_pci_IRQ_map, Raven_pci_IRQ_routes},
- {0x1E0, 0xFE, 0x81, "MVME 4600 with MVME761", Genesis2_pci_IRQ_map, Raven_pci_IRQ_routes},
- {0x1E0, 0xFF, 0x00, "MVME 1600-001 or 1600-011", Genesis2_pci_IRQ_map, Raven_pci_IRQ_routes},
- {0x000, 0x00, 0x00, "", NULL, NULL}
+ {0x300, 0x00, 0x00, "MVME 2400", Genesis2_pci_IRQ_map, Raven_pci_IRQ_routes, NULL},
+ {0x010, 0x00, 0x00, "Genesis", Genesis_pci_IRQ_map, Genesis_pci_IRQ_routes, NULL},
+ {0x020, 0x00, 0x00, "Powerstack (Series E)", Comet_pci_IRQ_map, Comet_pci_IRQ_routes, NULL},
+ {0x040, 0x00, 0x00, "Blackhawk (Powerstack)", Blackhawk_pci_IRQ_map, Blackhawk_pci_IRQ_routes, NULL},
+ {0x050, 0x00, 0x00, "Omaha (PowerStack II Pro3000)", Omaha_pci_IRQ_map, Omaha_pci_IRQ_routes, NULL},
+ {0x060, 0x00, 0x00, "Utah (Powerstack II Pro4000)", Utah_pci_IRQ_map, Utah_pci_IRQ_routes, NULL},
+ {0x0A0, 0x00, 0x00, "Powerstack (Series EX)", Comet2_pci_IRQ_map, Comet2_pci_IRQ_routes, NULL},
+ {0x1E0, 0xE0, 0x00, "Mesquite cPCI (MCP750)", Mesquite_pci_IRQ_map, Raven_pci_IRQ_routes, NULL},
+ {0x1E0, 0xE1, 0x00, "Sitka cPCI (MCPN750)", Sitka_pci_IRQ_map, Raven_pci_IRQ_routes, NULL},
+ {0x1E0, 0xE2, 0x00, "Mesquite cPCI (MCP750) w/ HAC", Mesquite_pci_IRQ_map, Raven_pci_IRQ_routes, Mesquite_Map_Non0},
+ {0x1E0, 0xF6, 0x80, "MTX Plus", MTXplus_pci_IRQ_map, Raven_pci_IRQ_routes, NULL},
+ {0x1E0, 0xF6, 0x81, "Dual MTX Plus", MTXplus_pci_IRQ_map, Raven_pci_IRQ_routes, NULL},
+ {0x1E0, 0xF7, 0x80, "MTX wo/ Parallel Port", MTX_pci_IRQ_map, Raven_pci_IRQ_routes, NULL},
+ {0x1E0, 0xF7, 0x81, "Dual MTX wo/ Parallel Port", MTX_pci_IRQ_map, Raven_pci_IRQ_routes, NULL},
+ {0x1E0, 0xF8, 0x80, "MTX w/ Parallel Port", MTX_pci_IRQ_map, Raven_pci_IRQ_routes, NULL},
+ {0x1E0, 0xF8, 0x81, "Dual MTX w/ Parallel Port", MTX_pci_IRQ_map, Raven_pci_IRQ_routes, NULL},
+ {0x1E0, 0xF9, 0x00, "MVME 2300", Genesis2_pci_IRQ_map, Raven_pci_IRQ_routes, NULL},
+ {0x1E0, 0xFA, 0x00, "MVME 2300SC/2600", Genesis2_pci_IRQ_map, Raven_pci_IRQ_routes, NULL},
+ {0x1E0, 0xFB, 0x00, "MVME 2600 with MVME712M", Genesis2_pci_IRQ_map, Raven_pci_IRQ_routes, NULL},
+ {0x1E0, 0xFC, 0x00, "MVME 2600/2700 with MVME761", Genesis2_pci_IRQ_map, Raven_pci_IRQ_routes, NULL},
+ {0x1E0, 0xFD, 0x80, "MVME 3600 with MVME712M", Genesis2_pci_IRQ_map, Raven_pci_IRQ_routes, NULL},
+ {0x1E0, 0xFD, 0x81, "MVME 4600 with MVME712M", Genesis2_pci_IRQ_map, Raven_pci_IRQ_routes, NULL},
+ {0x1E0, 0xFE, 0x80, "MVME 3600 with MVME761", Genesis2_pci_IRQ_map, Raven_pci_IRQ_routes, NULL},
+ {0x1E0, 0xFE, 0x81, "MVME 4600 with MVME761", Genesis2_pci_IRQ_map, Raven_pci_IRQ_routes, NULL},
+ {0x1E0, 0xFF, 0x00, "MVME 1600-001 or 1600-011", Genesis2_pci_IRQ_map, Raven_pci_IRQ_routes, NULL},
+ {0x000, 0x00, 0x00, "", NULL, NULL, NULL}
};
__initfunc(unsigned long prep_route_pci_interrupts(void))
@@ -846,6 +850,7 @@
Motherboard_map_name = (unsigned char *)mot_info[mot_entry].name;
Motherboard_map = mot_info[mot_entry].map;
Motherboard_routes = mot_info[mot_entry].routes;
+ Motherboard_non0 = mot_info[mot_entry].map_non0_bus;
if (!(mot_info[entry].cpu_type & 0x100)) {
/* AJF adjust level/edge control according to routes */
@@ -976,6 +981,93 @@
return 0;
}
+static unsigned int pci_localpirqs[4] =
+{
+ 24,
+ 25,
+ 26,
+ 27
+};
+
+static unsigned int pci_remotepirqs[4] =
+{
+ 28,
+ 29,
+ 30,
+ 31
+};
+
+static unsigned int pci_remotedev = 0xc0;
+
+void
+Mesquite_Map_Non0(struct pci_dev *pdev)
+{
+ struct pci_bus *pbus; /* Parent Bus Structure Pointer */
+ unsigned int devnum; /* Accumulated Device Number */
+ unsigned int irq; /* IRQ Value */
+
+ /*
+ ** Device Interrupt Line register initialization.
+ ** The IRQ line number will be generated after
+ ** taking into account all the PCI-2-PCI bridge
+ ** devices between the device and the Host Bridge.
+ */
+ devnum = PCI_SLOT(pdev->devfn);
+ pbus = pdev->bus;
+
+ while ((pbus->parent)->primary != (pbus->parent)->secondary)
+ {
+ devnum += PCI_SLOT((pbus->self)->devfn);
+
+ pbus = pbus->parent;
+ }
+
+ devnum &= 0x03;
+
+ /*
+ ** By default, get the PCI local domain IRQ value.
+ */
+ irq = pci_localpirqs[devnum];
+
+ /*
+ ** Determine if the device is located in the
+ ** remote domain or not. We must find the
+ ** domain's bridge device located on bus 0.
+ */
+ pbus = pdev->bus;
+
+ while (pbus->primary != 0)
+ pbus = pbus->parent;
+
+ /*
+ ** Check the device/function of domain's bridge
+ ** device against the remote device/function.
+ ** If the same, then the device is located in
+ ** the remote domain. Thus, get the PCI remote
+ ** domain IRQ value.
+ */
+ if ((pbus->self)->devfn == pci_remotedev)
+ irq = pci_remotepirqs[devnum];
+
+ /*
+ ** Validate the IRQ number.
+ */
+ if (irq <= 255)
+ {
+ /*
+ ** Set the device's Interrupt Line register
+ ** to the IRQ number and save it in the
+ ** device's structure.
+ */
+
+ pci_write_config_byte(pdev, PCI_INTERRUPT_LINE, (u8)irq);
+
+ pdev->irq = irq;
+
+ }
+ return;
+}
+
__initfunc(
void
prep_pcibios_fixup(void))
@@ -1000,6 +1092,9 @@
if (dev->bus->number == 0) {
dev->irq = openpic_to_irq(Motherboard_map[PCI_SLOT(dev->devfn)]);
pcibios_write_config_byte(dev->bus->number, dev->devfn, PCI_INTERRUPT_PIN, dev->irq);
+ } else {
+ if (Motherboard_non0 != NULL)
+ Motherboard_non0(dev);
}
}
return;
diff -u -r --new-file linux-2.2.10_2/arch/ppc/kernel/prep_setup.c linux.jp/arch/ppc/kernel/prep_setup.c
--- linux-2.2.10_2/arch/ppc/kernel/prep_setup.c Sat May 29 18:54:50 1999
+++ linux.jp/arch/ppc/kernel/prep_setup.c Sat May 29 22:00:37 1999
@@ -84,7 +84,6 @@
extern unsigned char pckbd_sysrq_xlate[128];
extern void prep_setup_pci_ptrs(void);
-extern void chrp_do_IRQ(struct pt_regs *regs, int cpu, int isfake);
extern char saved_command_line[256];
int _prep_type;
diff -u -r --new-file linux-2.2.10_2/drivers/block/cmd646.c linux.jp/drivers/block/cmd646.c
--- linux-2.2.10_2/drivers/block/cmd646.c Sun May 23 14:15:57 1999
+++ linux.jp/drivers/block/cmd646.c Mon Dec 21 17:23:53 1998
@@ -1,4 +1,4 @@
-/* $Id: cmd646.c,v 1.11 1998/12/13 08:36:54 davem Exp $
+/* $Id: cmd646.c,v 1.3 1998/12/22 00:23:53 jpeters Exp $
* cmd646.c: Enable interrupts at initialization time on Ultra/PCI machines.
* Note, this driver is not used at all on other systems because
* there the "BIOS" has done all of the following already.
diff -u -r --new-file linux-2.2.10_2/drivers/block/genhd.c linux.jp/drivers/block/genhd.c
--- linux-2.2.10_2/drivers/block/genhd.c Sun May 23 14:15:58 1999
+++ linux.jp/drivers/block/genhd.c Wed May 26 13:16:46 1999
@@ -816,12 +831,12 @@
magic = label->magic_mushroom;
if(be32_to_cpu(magic) != SGI_LABEL_MAGIC) {
printk("Dev %s SGI disklabel: bad magic %08x\n",
kdevname(dev), magic);
brelse(bh);
return 0;
}
ui = ((unsigned int *) (label + 1)) - 1;
- for(csum = 0; ui >= ((unsigned int *) label);) {
+ or(csum = 0; ui >= ((unsigned int *) label);) {
cs = *ui--;
csum += be32_to_cpu(cs);
}
diff -u -r --new-file linux-2.2.10_2/drivers/char/Config.in linux.jp/drivers/char/Config.in
--- linux-2.2.10_2/drivers/char/Config.in Sun May 23 14:16:02 1999
+++ linux.jp/drivers/char/Config.in Mon May 10 11:43:17 1999
@@ -64,6 +64,9 @@
tristate 'Logitech busmouse support' CONFIG_BUSMOUSE
tristate 'Microsoft busmouse support' CONFIG_MS_BUSMOUSE
bool 'PS/2 mouse (aka "auxiliary device") support' CONFIG_PSMOUSE
+ if [ "$CONFIG_PSMOUSE" = "y" ]; then
+ bool ' Init PS/2 mouse' INITIALIZE_PSMOUSE
+ fi
tristate 'C&T 82C710 mouse port support (as on TI Travelmate)' CONFIG_82C710_MOUSE
tristate 'PC110 digitizer pad support' CONFIG_PC110_PAD
endmenu
diff -u -r --new-file linux-2.2.10_2/drivers/char/keyboard.c linux.jp/drivers/char/keyboard.c
--- linux-2.2.10_2/drivers/char/keyboard.c Sun May 23 14:16:04 1999
+++ linux.jp/drivers/char/keyboard.c Wed May 26 08:41:51 1999
@@ -67,6 +67,9 @@
struct wait_queue * keypress_wait = NULL;
struct console;
+/* Keyboard presence flag */
+int kbd_present = 1; /* Keyboard present by default */
+
int keyboard_wait_for_keypress(struct console *co)
{
sleep_on(&keypress_wait);
@@ -909,8 +913,15 @@
ttytab = console_driver.table;
- kbd_init_hw();
- init_bh(KEYBOARD_BH, kbd_bh);
- mark_bh(KEYBOARD_BH);
- return 0;
+ if (kbd_present)
+ {
+ kbd_init_hw();
+
+ init_bh(KEYBOARD_BH, kbd_bh);
+ mark_bh(KEYBOARD_BH);
+
+ return 0;
+ }
+ else
+ return 1;
}
diff -u -r --new-file linux-2.2.10_2/drivers/char/pc_keyb.c linux.jp/drivers/char/pc_keyb.c
--- linux-2.2.10_2/drivers/char/pc_keyb.c Sun May 23 14:16:05 1999
+++ linux.jp/drivers/char/pc_keyb.c Wed Apr 28 10:53:34 1999
@@ -848,7 +848,8 @@
aux_count--;
return -EBUSY;
}
+ kb_wait();
kbd_write(KBD_CNTL_REG, KBD_CCMD_MOUSE_ENABLE); /* Enable the
auxiliary port on
controller. */
aux_write_ack(AUX_ENABLE_DEV); /* Enable aux device */
@@ -966,8 +967,10 @@
queue->head = queue->tail = 0;
queue->proc_list = NULL;
-#ifdef INITIALIZE_MOUSE
- kbd_write(KBD_CNTL_REG, KBD_CCMD_MOUSE_ENABLE); /* Enable Aux. */
+#ifdef INITIALIZE_PSMOUSE
+ kbd_write(KBD_CNTL_REG, KBD_CCMD_MOUSE_ENABLE); /* Enable Aux. */
+ aux_write_ack(AUX_RESET);
+ aux_write_ack(AUX_SET_DEFAULT);
aux_write_ack(AUX_SET_SAMPLE);
aux_write_ack(100); /* 100 samples/sec */
aux_write_ack(AUX_SET_RES);
diff -u -r --new-file linux-2.2.10_2/drivers/char/pc_keyb.h linux.jp/drivers/char/pc_keyb.h
--- linux-2.2.10_2/drivers/char/pc_keyb.h Sun May 23 14:16:05 1999
+++ linux.jp/drivers/char/pc_keyb.h Tue Mar 16 22:11:10 1999
@@ -14,7 +14,6 @@
#define KBD_REPORT_UNKN /* Report unknown scan codes */
#define KBD_REPORT_TIMEOUTS /* Report keyboard timeouts */
#undef KBD_IS_FOCUS_9000 /* We have the brain-damaged FOCUS-9000 keyboard */
-#undef INITIALIZE_MOUSE /* Define if your PS/2 mouse needs initialization. */
@@ -113,6 +112,7 @@
#define AUX_SET_SAMPLE 0xF3 /* Set sample rate */
#define AUX_ENABLE_DEV 0xF4 /* Enable aux device */
#define AUX_DISABLE_DEV 0xF5 /* Disable aux device */
+#define AUX_SET_DEFAULT 0xF6 /* Set to default state */
#define AUX_RESET 0xFF /* Reset aux device */
#define AUX_ACK 0xFA /* Command byte ACK. */
diff -u -r --new-file linux-2.2.10_2/drivers/pci/oldproc.c linux.jp/drivers/pci/oldproc.c
--- linux-2.2.10_2/drivers/pci/oldproc.c Sun May 23 14:16:37 1999
+++ linux.jp/drivers/pci/oldproc.c Mon May 24 15:12:17 1999
@@ -763,6 +764,7 @@
case PCI_VENDOR_ID_SMC2: return "SMC";
case PCI_VENDOR_ID_VORTEX: return "VORTEX";
case PCI_VENDOR_ID_EF: return "Efficient Networks";
+ case PCI_VENDOR_ID_IDT: return "IDT";
case PCI_VENDOR_ID_FORE: return "Fore Systems";
case PCI_VENDOR_ID_IMAGINGTECH: return "Imaging Technology";
case PCI_VENDOR_ID_PHILIPS: return "Philips";
diff -u -r --new-file linux-2.2.10_2/include/asm-ppc/io.h linux.jp/include/asm-ppc/io.h
--- linux-2.2.10_2/include/asm-ppc/io.h Sun May 23 14:17:24 1999
+++ linux.jp/include/asm-ppc/io.h Thu Jun 3 12:41:15 1999
@@ -42,7 +42,7 @@
#define writeb(b,addr) out_8((volatile unsigned char *)(addr), (b))
#if defined(CONFIG_APUS)
#define readw(addr) (*(volatile unsigned short *) (addr))
-#define readl(addr) (*(volatile unsigned int *) (addr))
+#define readl(addr) in_le32((volatile unsigned *)(addr))
#define writew(b,addr) ((*(volatile unsigned short *) (addr)) = (b))
#define writel(b,addr) ((*(volatile unsigned int *) (addr)) = (b))
#else
@@ -77,7 +77,7 @@
#define outb_p(val, port) out_8((unsigned char *)((port)+_IO_BASE), (val))
#define inw_p(port) in_le16((unsigned short *)((port)+_IO_BASE))
#define outw_p(val, port) out_le16((unsigned short *)((port)+_IO_BASE), (val))
-#define inl_p(port) in_le32(((unsigned *)(port)+_IO_BASE))
+#define inl_p(port) in_le32((unsigned *)((port)+_IO_BASE))
#define outl_p(val, port) out_le32((unsigned *)((port)+_IO_BASE), (val))
extern void _insb(volatile unsigned char *port, void *buf, int ns);
diff -u -r --new-file linux-2.2.10_2/include/linux/pci.h linux.jp/include/linux/pci.h
--- linux-2.2.10_2/include/linux/pci.h Sun May 23 14:17:29 1999
+++ linux.jp/include/linux/pci.h Thu Jun 3 12:40:56 1999
@@ -794,6 +794,9 @@
#define PCI_DEVICE_ID_EF_ATM_FPGA 0x0000
#define PCI_DEVICE_ID_EF_ATM_ASIC 0x0002
+#define PCI_VENDOR_ID_IDT 0x111d
+#define PCI_DEVICE_ID_IDT_NICSTAR 0x0001
+
#define PCI_VENDOR_ID_FORE 0x1127
#define PCI_DEVICE_ID_FORE_PCA200PC 0x0210
#define PCI_DEVICE_ID_FORE_PCA200E 0x0300
^ permalink raw reply [flat|nested] 11+ messages in thread* Re: Support for Motorola Platforms
1999-06-04 23:18 ` Johnnie Peters
@ 1999-06-04 22:37 ` Daniel Jacobowitz
1999-06-08 1:44 ` Mark Lin
0 siblings, 1 reply; 11+ messages in thread
From: Daniel Jacobowitz @ 1999-06-04 22:37 UTC (permalink / raw)
To: linuxppc-dev
On Fri, Jun 04, 1999 at 04:18:41PM -0700, Johnnie Peters wrote:
> Mark Lin wrote:
> >
> > Can you point me to the exact URL? I'm having problems finding it.
>
> They are not on any URL. I attached them to the post that all this
> originated from. I will attach them here again.
>
> Johnnie
I'm guessing he meant the patches to egcs for Altivec...
Dan
/--------------------------------\ /--------------------------------\
| Daniel Jacobowitz |__| SCS Class of 2002 |
| Debian GNU/Linux Developer __ Carnegie Mellon University |
| dan@debian.org | | dmj+@andrew.cmu.edu |
\--------------------------------/ \--------------------------------/
[[ This message was sent via the linuxppc-dev mailing list. Replies are ]]
[[ not forced back to the list, so be sure to Cc linuxppc-dev if your ]]
[[ reply is of general interest. Please check http://lists.linuxppc.org/ ]]
[[ and http://www.linuxppc.org/ for useful information before posting. ]]
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Support for Motorola Platforms
1999-06-04 22:37 ` Daniel Jacobowitz
@ 1999-06-08 1:44 ` Mark Lin
0 siblings, 0 replies; 11+ messages in thread
From: Mark Lin @ 1999-06-08 1:44 UTC (permalink / raw)
To: linuxppc-dev
Yeah, that's what I was looking for -- the patches for egcs and Altivec.
--
Mark Lin
MPI Software Technology, Inc.
On Fri, 4 Jun 1999, Daniel Jacobowitz wrote:
>
> On Fri, Jun 04, 1999 at 04:18:41PM -0700, Johnnie Peters wrote:
> > Mark Lin wrote:
> > >
> > > Can you point me to the exact URL? I'm having problems finding it.
> >
> > They are not on any URL. I attached them to the post that all this
> > originated from. I will attach them here again.
> >
> > Johnnie
>
> I'm guessing he meant the patches to egcs for Altivec...
>
>
> Dan
[[ This message was sent via the linuxppc-dev mailing list. Replies are ]]
[[ not forced back to the list, so be sure to Cc linuxppc-dev if your ]]
[[ reply is of general interest. Please check http://lists.linuxppc.org/ ]]
[[ and http://www.linuxppc.org/ for useful information before posting. ]]
^ permalink raw reply [flat|nested] 11+ messages in thread
* Support for Motorola Platforms
@ 2006-03-23 16:27 CJ Anderson
0 siblings, 0 replies; 11+ messages in thread
From: CJ Anderson @ 2006-03-23 16:27 UTC (permalink / raw)
To: linuxppc-dev
[-- Attachment #1.1: Type: text/plain, Size: 976 bytes --]
I found this email from a Google search for MVME761-001 boards.
I am looking for a supply of these boards.
Can you help? I need 32.
CJ
"Coming together is a beginning. Keeping
<http://www.aerotechcomp.com/> together is progress. Working together is
success. Quality in a service or product is not what you put into it, it is
what the customer gets out of it. If we don't take care of our customers,
someone else will."
CJ Anderson
Account Executive Aero Technical Components
8601 4th Street North
<http://maps.yahoo.com/py/maps.py?Pyt=Tmap&addr=8601+4th+Street+North&csz=St
.+Petersburg%2C+FL+33702&country=us>
St. Petersburg, FL 33702
canderson@aerotechcomp.com
IM: cj-1311@hotmail.com
www.aerotechcomp.com <http://www.aerotechcomp.com/>
tel:
fax: (727) 577-6115
(727) 563-9134
<https://www.plaxo.com/add_me?u=4295630737&v0=1321534&k0=640037876> Add me
to your address book... <http://www.plaxo.com/signature> Want a signature
like this?
[-- Attachment #1.2: Type: text/html, Size: 5775 bytes --]
[-- Attachment #2: ATC10t.jpg --]
[-- Type: image/jpeg, Size: 6907 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
* Support for Motorola Platforms
@ 1999-06-04 0:52 Johnnie Peters
0 siblings, 0 replies; 11+ messages in thread
From: Johnnie Peters @ 1999-06-04 0:52 UTC (permalink / raw)
To: linuxppc-dev@lists.linuxppc.org
[-- Attachment #1: Type: text/plain, Size: 230 bytes --]
Hi Everybody,
Here are the changes to the vger tree for Motorola platform support.
They are current to the vger tree from about noon pacific time today.
I hope somebody finds them usefull.
Johnnie Peters
Motorola Computer Group
[-- Attachment #2: mot_diff5 --]
[-- Type: text/plain, Size: 23690 bytes --]
diff -u -r --new-file linux-2.2.10_2/arch/ppc/boot/misc.c linux.jp/arch/ppc/boot/misc.c
--- linux-2.2.10_2/arch/ppc/boot/misc.c Sat May 29 18:54:47 1999
+++ linux.jp/arch/ppc/boot/misc.c Fri May 28 07:52:00 1999
@@ -1,7 +1,7 @@
/*
* misc.c
*
- * $Id: misc.c,v 1.64.2.2 1999/05/29 19:09:29 cort Exp $
+ * $Id: misc.c,v 1.27 1999/05/28 14:52:00 jpeters Exp $
*
* Adapted for PowerPC by Gary Thomas
*
@@ -311,6 +311,26 @@
unsigned char sanity[0x2000];
+/*
+ * This routine is used to park the second processor on the
+ * Motorola dual processor platforms. This will be replaced
+ * in the future by the functionality to start it.
+ */
+void
+park_cpus()
+{
+ volatile unsigned long *smp_iar = &(hold_residual->VitalProductData.SmpIar);
+ int i;
+
+ /* Wait for indication to park. */
+ while (*smp_iar == 0) {
+ for (i=0; i < 512; i++);
+ }
+
+ /* Wait forever */
+ while(1);
+}
+
unsigned long
decompress_kernel(unsigned long load_addr, int num_words, unsigned long cksum,
RESIDUAL *residual, void *OFW_interface)
@@ -368,6 +388,16 @@
keyb_present = 0; /* no keyboard */
}
}
+
+ /* If this is a multiprocessor system then
+ * park the other processor so that the
+ * kernel knows where to find them.
+ */
+ if (residual->MaxNumCpus > 1) {
+ residual->VitalProductData.SmpIar = park_cpus;
+ residual->Cpus[1].CpuState = CPU_GOOD;
+ hold_residual->Cpus[1].CpuState = CPU_GOOD_FW;
+ }
}
memcpy(hold_residual,residual,sizeof(RESIDUAL));
} else {
@@ -465,22 +495,23 @@
puts(" ");
puthex((unsigned long)zimage_size+(unsigned long)zimage_start);
puts("\n");
- }
- /* relocate initrd */
- if ( initrd_start )
- {
+ /* relocate initrd */
+ if ( initrd_start )
+ {
+ puts("initrd at: "); puthex(initrd_start);
+ puts(" "); puthex(initrd_end); puts("\n");
+ avail_ram = (char *)PAGE_ALIGN(
+ (unsigned long)zimage_size+(unsigned long)zimage_start);
+ memcpy ((void *)avail_ram, (void *)initrd_start, INITRD_SIZE );
+ initrd_start = (unsigned long)avail_ram;
+ initrd_end = initrd_start + INITRD_SIZE;
+ puts("relocated to: "); puthex(initrd_start);
+ puts(" "); puthex(initrd_end); puts("\n");
+ }
+ } else if ( initrd_start ) {
puts("initrd at: "); puthex(initrd_start);
puts(" "); puthex(initrd_end); puts("\n");
-#ifdef OMIT
- avail_ram = (char *)PAGE_ALIGN(
- (unsigned long)zimage_size+(unsigned long)zimage_start);
- memcpy ((void *)avail_ram, (void *)initrd_start, INITRD_SIZE );
- initrd_start = (unsigned long)avail_ram;
- initrd_end = initrd_start + INITRD_SIZE;
- puts("relocated to: "); puthex(initrd_start);
- puts(" "); puthex(initrd_end); puts("\n");
-#endif
}
avail_ram = (char *)0x00400000;
diff -u -r --new-file linux-2.2.10_2/arch/ppc/config.in linux.jp/arch/ppc/config.in
--- linux-2.2.10_2/arch/ppc/config.in Sat May 29 18:54:46 1999
+++ linux.jp/arch/ppc/config.in Tue Jun 1 13:27:51 1999
@@ -1,4 +1,4 @@
@@ -92,7 +92,6 @@
bool 'Support for Open Firmware device tree in /proc' CONFIG_PROC_DEVICETREE
bool 'Support for TotalImpact TotalMP' CONFIG_TOTALMP
bool 'Support for early boot text console (BootX only)' CONFIG_BOOTX_TEXT
-bool 'Support for Motorola Hot Swap' CONFIG_MOTOROLA_HOTSWAP
if [ "$CONFIG_PREP" = "y" -o "$CONFIG_ALL_PPC" = "y" ]; then
bool 'PReP bootloader kernel arguments' CONFIG_CMDLINE_BOOL y
if [ "$CONFIG_CMDLINE_BOOL" = "y" ] ; then
@@ -146,6 +145,9 @@
bool 'Network device support' CONFIG_NETDEVICES
if [ "$CONFIG_NETDEVICES" = "y" ]; then
source drivers/net/Config.in
+ if [ "$CONFIG_ATM" = "y" ]; then
+ source drivers/atm/Config.in
+ fi
fi
endmenu
fi
diff -u -r --new-file linux-2.2.10_2/arch/ppc/kernel/Makefile linux.jp/arch/ppc/kernel/Makefile
--- linux-2.2.10_2/arch/ppc/kernel/Makefile Sat May 29 18:54:49 1999
+++ linux.jp/arch/ppc/kernel/Makefile Tue Jun 1 10:05:19 1999
@@ -65,7 +65,7 @@
$(HOSTCC) -o find_name find_name.c
checks: checks.c
- $(HOSTCC) ${CFLAGS} -D__KERNEL__ -o checks checks.c
+ $(CC) ${CFLAGS} -D__KERNEL__ -o checks checks.c
./checks
include $(TOPDIR)/Rules.make
diff -u -r --new-file linux-2.2.10_2/arch/ppc/kernel/i8259.c linux.jp/arch/ppc/kernel/i8259.c
--- linux-2.2.10_2/arch/ppc/kernel/i8259.c Sun May 23 14:15:37 1999
+++ linux.jp/arch/ppc/kernel/i8259.c Wed Jun 2 16:40:40 1999
@@ -13,33 +13,32 @@
int i8259_irq(int cpu)
{
int irq;
+ unsigned char irr;
/*
* Perform an interrupt acknowledge cycle on controller 1
- */
- outb(0x0C, 0x20);
- irq = inb(0x20) & 7;
- if (irq == 2)
- {
- /*
+ */
+ irr = inb(0x20) & ~cached_21;
+ if (!irr) return -1;
+ irq = 0;
+ while ((irq < 7) && !(irr&0x01))
+ {
+ irq++;
+ irr >>= 1;
+ }
+ if (irq == 2)
+ {
+ /*
* Interrupt is cascaded so perform interrupt
* acknowledge on controller 2
*/
- outb(0x0C, 0xA0);
- irq = (inb(0xA0) & 7) + 8;
- }
- else if (irq==7)
- {
- /*
- * This may be a spurious interrupt
- *
- * Read the interrupt status register. If the most
- * significant bit is not set then there is no valid
- * interrupt
- */
- outb(0x0b, 0x20);
- if(~inb(0x20)&0x80)
- return -1;
+ irr = inb(0xA0) & ~cached_A1;
+ irq = 8;
+ while ((irq < 15) && !(irr&0x01))
+ {
+ irq++;
+ irr >>= 1;
+ }
}
return irq;
}
@@ -53,13 +52,13 @@
cached_A1 |= 1 << (irq_nr-8);
inb(0xA1); /* DUMMY */
outb(cached_A1,0xA1);
- outb(0x20,0xA0); /* Non-specific EOI */
- outb(0x20,0x20); /* Non-specific EOI to cascade */
+ outb(0x62,0x20); /* Specific EOI to cascade */
+ outb(0x60|(irq_nr-8),0xA0); /* Specific EOI */
} else {
cached_21 |= 1 << irq_nr;
inb(0x21); /* DUMMY */
outb(cached_21,0x21);
- outb(0x20,0x20); /* Non-specific EOI */
+ outb(0x60|irq_nr,0x20); /* Specific EOI */
}
}
diff -u -r --new-file linux-2.2.10_2/arch/ppc/kernel/irq.c linux.jp/arch/ppc/kernel/irq.c
--- linux-2.2.10_2/arch/ppc/kernel/irq.c Sat May 29 18:54:49 1999
+++ linux.jp/arch/ppc/kernel/irq.c Tue Jun 1 10:05:21 1999
@@ -1,5 +1,5 @@
/*
- * $Id: irq.c,v 1.105.2.1 1999/05/29 19:10:05 cort Exp $
+ * $Id: irq.c,v 1.29 1999/06/01 17:05:21 jpeters Exp $
*
* arch/ppc/kernel/irq.c
*
@@ -139,13 +139,16 @@
/* Free */
for (p = &irq_desc[irq].action; (action = *p) != NULL; p = &action->next)
{
- /* Found it - now free it */
- save_flags(flags);
- cli();
- *p = action->next;
- restore_flags(flags);
- irq_kfree(action);
- return 0;
+ if (action->dev_id == dev_id)
+ {
+ /* Found it - now free it */
+ save_flags(flags);
+ cli();
+ *p = action->next;
+ restore_flags(flags);
+ irq_kfree(action);
+ return 0;
+ }
}
return -ENOENT;
}
diff -u -r --new-file linux-2.2.10_2/arch/ppc/kernel/prep_pci.c linux.jp/arch/ppc/kernel/prep_pci.c
--- linux-2.2.10_2/arch/ppc/kernel/prep_pci.c Sun May 23 14:15:39 1999
+++ linux.jp/arch/ppc/kernel/prep_pci.c Tue Jun 1 13:28:26 1999
@@ -34,6 +34,9 @@
/* How is the 82378 PIRQ mapping setup? */
unsigned char *Motherboard_routes;
+void (*Motherboard_non0)(struct pci_dev *);
+
+void Mesquite_Map_Non0(struct pci_dev *);
/* Used for Motorola to store system config register */
static unsigned long *ProcInfo;
@@ -682,7 +685,7 @@
#define MOT_RAVEN_PRESENT 0x1
#define MOT_HAWK_PRESENT 0x2
-int prep_keybd_present = 1;
+extern int kbd_present;
int MotMPIC = 0;
__initfunc(int raven_init(void))
@@ -746,7 +749,7 @@
base_mod = inb(MOTOROLA_BASETYPE_REG);
if ((MotMPIC == MOT_HAWK_PRESENT) || (base_mod == 0xF9) ||
(base_mod == 0xFA) || (base_mod == 0xE1))
- prep_keybd_present = 0;
+ kbd_present = 0;
return 1;
}
@@ -759,33 +762,34 @@
const char *name;
unsigned char *map;
unsigned char *routes;
+ void (*map_non0_bus)(struct pci_dev *); /* For boards with more than bus 0 devices. */
} mot_info[] = {
- {0x300, 0x00, 0x00, "MVME 2400", Genesis2_pci_IRQ_map, Raven_pci_IRQ_routes},
- {0x010, 0x00, 0x00, "Genesis", Genesis_pci_IRQ_map, Genesis_pci_IRQ_routes},
- {0x020, 0x00, 0x00, "Powerstack (Series E)", Comet_pci_IRQ_map, Comet_pci_IRQ_routes},
- {0x040, 0x00, 0x00, "Blackhawk (Powerstack)", Blackhawk_pci_IRQ_map, Blackhawk_pci_IRQ_routes},
- {0x050, 0x00, 0x00, "Omaha (PowerStack II Pro3000)", Omaha_pci_IRQ_map, Omaha_pci_IRQ_routes},
- {0x060, 0x00, 0x00, "Utah (Powerstack II Pro4000)", Utah_pci_IRQ_map, Utah_pci_IRQ_routes},
- {0x0A0, 0x00, 0x00, "Powerstack (Series EX)", Comet2_pci_IRQ_map, Comet2_pci_IRQ_routes},
- {0x1E0, 0xE0, 0x00, "Mesquite cPCI (MCP750)", Mesquite_pci_IRQ_map, Raven_pci_IRQ_routes},
- {0x1E0, 0xE1, 0x00, "Sitka cPCI (MCPN750)", Sitka_pci_IRQ_map, Raven_pci_IRQ_routes},
- {0x1E0, 0xE2, 0x00, "Mesquite cPCI (MCP750) w/ HAC", Mesquite_pci_IRQ_map, Raven_pci_IRQ_routes},
- {0x1E0, 0xF6, 0x80, "MTX Plus", MTXplus_pci_IRQ_map, Raven_pci_IRQ_routes},
- {0x1E0, 0xF6, 0x81, "Dual MTX Plus", MTXplus_pci_IRQ_map, Raven_pci_IRQ_routes},
- {0x1E0, 0xF7, 0x80, "MTX wo/ Parallel Port", MTX_pci_IRQ_map, Raven_pci_IRQ_routes},
- {0x1E0, 0xF7, 0x81, "Dual MTX wo/ Parallel Port", MTX_pci_IRQ_map, Raven_pci_IRQ_routes},
- {0x1E0, 0xF8, 0x80, "MTX w/ Parallel Port", MTX_pci_IRQ_map, Raven_pci_IRQ_routes},
- {0x1E0, 0xF8, 0x81, "Dual MTX w/ Parallel Port", MTX_pci_IRQ_map, Raven_pci_IRQ_routes},
- {0x1E0, 0xF9, 0x00, "MVME 2300", Genesis2_pci_IRQ_map, Raven_pci_IRQ_routes},
- {0x1E0, 0xFA, 0x00, "MVME 2300SC/2600", Genesis2_pci_IRQ_map, Raven_pci_IRQ_routes},
- {0x1E0, 0xFB, 0x00, "MVME 2600 with MVME712M", Genesis2_pci_IRQ_map, Raven_pci_IRQ_routes},
- {0x1E0, 0xFC, 0x00, "MVME 2600/2700 with MVME761", Genesis2_pci_IRQ_map, Raven_pci_IRQ_routes},
- {0x1E0, 0xFD, 0x80, "MVME 3600 with MVME712M", Genesis2_pci_IRQ_map, Raven_pci_IRQ_routes},
- {0x1E0, 0xFD, 0x81, "MVME 4600 with MVME712M", Genesis2_pci_IRQ_map, Raven_pci_IRQ_routes},
- {0x1E0, 0xFE, 0x80, "MVME 3600 with MVME761", Genesis2_pci_IRQ_map, Raven_pci_IRQ_routes},
- {0x1E0, 0xFE, 0x81, "MVME 4600 with MVME761", Genesis2_pci_IRQ_map, Raven_pci_IRQ_routes},
- {0x1E0, 0xFF, 0x00, "MVME 1600-001 or 1600-011", Genesis2_pci_IRQ_map, Raven_pci_IRQ_routes},
- {0x000, 0x00, 0x00, "", NULL, NULL}
+ {0x300, 0x00, 0x00, "MVME 2400", Genesis2_pci_IRQ_map, Raven_pci_IRQ_routes, NULL},
+ {0x010, 0x00, 0x00, "Genesis", Genesis_pci_IRQ_map, Genesis_pci_IRQ_routes, NULL},
+ {0x020, 0x00, 0x00, "Powerstack (Series E)", Comet_pci_IRQ_map, Comet_pci_IRQ_routes, NULL},
+ {0x040, 0x00, 0x00, "Blackhawk (Powerstack)", Blackhawk_pci_IRQ_map, Blackhawk_pci_IRQ_routes, NULL},
+ {0x050, 0x00, 0x00, "Omaha (PowerStack II Pro3000)", Omaha_pci_IRQ_map, Omaha_pci_IRQ_routes, NULL},
+ {0x060, 0x00, 0x00, "Utah (Powerstack II Pro4000)", Utah_pci_IRQ_map, Utah_pci_IRQ_routes, NULL},
+ {0x0A0, 0x00, 0x00, "Powerstack (Series EX)", Comet2_pci_IRQ_map, Comet2_pci_IRQ_routes, NULL},
+ {0x1E0, 0xE0, 0x00, "Mesquite cPCI (MCP750)", Mesquite_pci_IRQ_map, Raven_pci_IRQ_routes, NULL},
+ {0x1E0, 0xE1, 0x00, "Sitka cPCI (MCPN750)", Sitka_pci_IRQ_map, Raven_pci_IRQ_routes, NULL},
+ {0x1E0, 0xE2, 0x00, "Mesquite cPCI (MCP750) w/ HAC", Mesquite_pci_IRQ_map, Raven_pci_IRQ_routes, Mesquite_Map_Non0},
+ {0x1E0, 0xF6, 0x80, "MTX Plus", MTXplus_pci_IRQ_map, Raven_pci_IRQ_routes, NULL},
+ {0x1E0, 0xF6, 0x81, "Dual MTX Plus", MTXplus_pci_IRQ_map, Raven_pci_IRQ_routes, NULL},
+ {0x1E0, 0xF7, 0x80, "MTX wo/ Parallel Port", MTX_pci_IRQ_map, Raven_pci_IRQ_routes, NULL},
+ {0x1E0, 0xF7, 0x81, "Dual MTX wo/ Parallel Port", MTX_pci_IRQ_map, Raven_pci_IRQ_routes, NULL},
+ {0x1E0, 0xF8, 0x80, "MTX w/ Parallel Port", MTX_pci_IRQ_map, Raven_pci_IRQ_routes, NULL},
+ {0x1E0, 0xF8, 0x81, "Dual MTX w/ Parallel Port", MTX_pci_IRQ_map, Raven_pci_IRQ_routes, NULL},
+ {0x1E0, 0xF9, 0x00, "MVME 2300", Genesis2_pci_IRQ_map, Raven_pci_IRQ_routes, NULL},
+ {0x1E0, 0xFA, 0x00, "MVME 2300SC/2600", Genesis2_pci_IRQ_map, Raven_pci_IRQ_routes, NULL},
+ {0x1E0, 0xFB, 0x00, "MVME 2600 with MVME712M", Genesis2_pci_IRQ_map, Raven_pci_IRQ_routes, NULL},
+ {0x1E0, 0xFC, 0x00, "MVME 2600/2700 with MVME761", Genesis2_pci_IRQ_map, Raven_pci_IRQ_routes, NULL},
+ {0x1E0, 0xFD, 0x80, "MVME 3600 with MVME712M", Genesis2_pci_IRQ_map, Raven_pci_IRQ_routes, NULL},
+ {0x1E0, 0xFD, 0x81, "MVME 4600 with MVME712M", Genesis2_pci_IRQ_map, Raven_pci_IRQ_routes, NULL},
+ {0x1E0, 0xFE, 0x80, "MVME 3600 with MVME761", Genesis2_pci_IRQ_map, Raven_pci_IRQ_routes, NULL},
+ {0x1E0, 0xFE, 0x81, "MVME 4600 with MVME761", Genesis2_pci_IRQ_map, Raven_pci_IRQ_routes, NULL},
+ {0x1E0, 0xFF, 0x00, "MVME 1600-001 or 1600-011", Genesis2_pci_IRQ_map, Raven_pci_IRQ_routes, NULL},
+ {0x000, 0x00, 0x00, "", NULL, NULL, NULL}
};
__initfunc(unsigned long prep_route_pci_interrupts(void))
@@ -846,6 +850,7 @@
Motherboard_map_name = (unsigned char *)mot_info[mot_entry].name;
Motherboard_map = mot_info[mot_entry].map;
Motherboard_routes = mot_info[mot_entry].routes;
+ Motherboard_non0 = mot_info[mot_entry].map_non0_bus;
if (!(mot_info[entry].cpu_type & 0x100)) {
/* AJF adjust level/edge control according to routes */
@@ -976,6 +981,93 @@
return 0;
}
+static unsigned int pci_localpirqs[4] =
+{
+ 24,
+ 25,
+ 26,
+ 27
+};
+
+static unsigned int pci_remotepirqs[4] =
+{
+ 28,
+ 29,
+ 30,
+ 31
+};
+
+static unsigned int pci_remotedev = 0xc0;
+
+void
+Mesquite_Map_Non0(struct pci_dev *pdev)
+{
+ struct pci_bus *pbus; /* Parent Bus Structure Pointer */
+ unsigned int devnum; /* Accumulated Device Number */
+ unsigned int irq; /* IRQ Value */
+
+ /*
+ ** Device Interrupt Line register initialization.
+ ** The IRQ line number will be generated after
+ ** taking into account all the PCI-2-PCI bridge
+ ** devices between the device and the Host Bridge.
+ */
+ devnum = PCI_SLOT(pdev->devfn);
+ pbus = pdev->bus;
+
+ while ((pbus->parent)->primary != (pbus->parent)->secondary)
+ {
+ devnum += PCI_SLOT((pbus->self)->devfn);
+
+ pbus = pbus->parent;
+ }
+
+ devnum &= 0x03;
+
+ /*
+ ** By default, get the PCI local domain IRQ value.
+ */
+ irq = pci_localpirqs[devnum];
+
+ /*
+ ** Determine if the device is located in the
+ ** remote domain or not. We must find the
+ ** domain's bridge device located on bus 0.
+ */
+ pbus = pdev->bus;
+
+ while (pbus->primary != 0)
+ pbus = pbus->parent;
+
+ /*
+ ** Check the device/function of domain's bridge
+ ** device against the remote device/function.
+ ** If the same, then the device is located in
+ ** the remote domain. Thus, get the PCI remote
+ ** domain IRQ value.
+ */
+ if ((pbus->self)->devfn == pci_remotedev)
+ irq = pci_remotepirqs[devnum];
+
+ /*
+ ** Validate the IRQ number.
+ */
+ if (irq <= 255)
+ {
+ /*
+ ** Set the device's Interrupt Line register
+ ** to the IRQ number and save it in the
+ ** device's structure.
+ */
+
+ pci_write_config_byte(pdev, PCI_INTERRUPT_LINE, (u8)irq);
+
+ pdev->irq = irq;
+
+ }
+ return;
+}
+
__initfunc(
void
prep_pcibios_fixup(void))
@@ -1000,6 +1092,9 @@
if (dev->bus->number == 0) {
dev->irq = openpic_to_irq(Motherboard_map[PCI_SLOT(dev->devfn)]);
pcibios_write_config_byte(dev->bus->number, dev->devfn, PCI_INTERRUPT_PIN, dev->irq);
+ } else {
+ if (Motherboard_non0 != NULL)
+ Motherboard_non0(dev);
}
}
return;
diff -u -r --new-file linux-2.2.10_2/arch/ppc/kernel/prep_setup.c linux.jp/arch/ppc/kernel/prep_setup.c
--- linux-2.2.10_2/arch/ppc/kernel/prep_setup.c Sat May 29 18:54:50 1999
+++ linux.jp/arch/ppc/kernel/prep_setup.c Sat May 29 22:00:37 1999
@@ -84,7 +84,6 @@
extern unsigned char pckbd_sysrq_xlate[128];
extern void prep_setup_pci_ptrs(void);
-extern void chrp_do_IRQ(struct pt_regs *regs, int cpu, int isfake);
extern char saved_command_line[256];
int _prep_type;
diff -u -r --new-file linux-2.2.10_2/drivers/block/cmd646.c linux.jp/drivers/block/cmd646.c
--- linux-2.2.10_2/drivers/block/cmd646.c Sun May 23 14:15:57 1999
+++ linux.jp/drivers/block/cmd646.c Mon Dec 21 17:23:53 1998
@@ -1,4 +1,4 @@
-/* $Id: cmd646.c,v 1.11 1998/12/13 08:36:54 davem Exp $
+/* $Id: cmd646.c,v 1.3 1998/12/22 00:23:53 jpeters Exp $
* cmd646.c: Enable interrupts at initialization time on Ultra/PCI machines.
* Note, this driver is not used at all on other systems because
* there the "BIOS" has done all of the following already.
diff -u -r --new-file linux-2.2.10_2/drivers/block/genhd.c linux.jp/drivers/block/genhd.c
--- linux-2.2.10_2/drivers/block/genhd.c Sun May 23 14:15:58 1999
+++ linux.jp/drivers/block/genhd.c Wed May 26 13:16:46 1999
@@ -816,12 +831,12 @@
magic = label->magic_mushroom;
if(be32_to_cpu(magic) != SGI_LABEL_MAGIC) {
printk("Dev %s SGI disklabel: bad magic %08x\n",
kdevname(dev), magic);
brelse(bh);
return 0;
}
ui = ((unsigned int *) (label + 1)) - 1;
- for(csum = 0; ui >= ((unsigned int *) label);) {
+ or(csum = 0; ui >= ((unsigned int *) label);) {
cs = *ui--;
csum += be32_to_cpu(cs);
}
diff -u -r --new-file linux-2.2.10_2/drivers/char/Config.in linux.jp/drivers/char/Config.in
--- linux-2.2.10_2/drivers/char/Config.in Sun May 23 14:16:02 1999
+++ linux.jp/drivers/char/Config.in Mon May 10 11:43:17 1999
@@ -64,6 +64,9 @@
tristate 'Logitech busmouse support' CONFIG_BUSMOUSE
tristate 'Microsoft busmouse support' CONFIG_MS_BUSMOUSE
bool 'PS/2 mouse (aka "auxiliary device") support' CONFIG_PSMOUSE
+ if [ "$CONFIG_PSMOUSE" = "y" ]; then
+ bool ' Init PS/2 mouse' INITIALIZE_PSMOUSE
+ fi
tristate 'C&T 82C710 mouse port support (as on TI Travelmate)' CONFIG_82C710_MOUSE
tristate 'PC110 digitizer pad support' CONFIG_PC110_PAD
endmenu
diff -u -r --new-file linux-2.2.10_2/drivers/char/keyboard.c linux.jp/drivers/char/keyboard.c
--- linux-2.2.10_2/drivers/char/keyboard.c Sun May 23 14:16:04 1999
+++ linux.jp/drivers/char/keyboard.c Wed May 26 08:41:51 1999
@@ -67,6 +67,9 @@
struct wait_queue * keypress_wait = NULL;
struct console;
+/* Keyboard presence flag */
+int kbd_present = 1; /* Keyboard present by default */
+
int keyboard_wait_for_keypress(struct console *co)
{
sleep_on(&keypress_wait);
@@ -909,8 +913,15 @@
ttytab = console_driver.table;
- kbd_init_hw();
- init_bh(KEYBOARD_BH, kbd_bh);
- mark_bh(KEYBOARD_BH);
- return 0;
+ if (kbd_present)
+ {
+ kbd_init_hw();
+
+ init_bh(KEYBOARD_BH, kbd_bh);
+ mark_bh(KEYBOARD_BH);
+
+ return 0;
+ }
+ else
+ return 1;
}
diff -u -r --new-file linux-2.2.10_2/drivers/char/pc_keyb.c linux.jp/drivers/char/pc_keyb.c
--- linux-2.2.10_2/drivers/char/pc_keyb.c Sun May 23 14:16:05 1999
+++ linux.jp/drivers/char/pc_keyb.c Wed Apr 28 10:53:34 1999
@@ -848,7 +848,8 @@
aux_count--;
return -EBUSY;
}
+ kb_wait();
kbd_write(KBD_CNTL_REG, KBD_CCMD_MOUSE_ENABLE); /* Enable the
auxiliary port on
controller. */
aux_write_ack(AUX_ENABLE_DEV); /* Enable aux device */
@@ -966,8 +967,10 @@
queue->head = queue->tail = 0;
queue->proc_list = NULL;
-#ifdef INITIALIZE_MOUSE
- kbd_write(KBD_CNTL_REG, KBD_CCMD_MOUSE_ENABLE); /* Enable Aux. */
+#ifdef INITIALIZE_PSMOUSE
+ kbd_write(KBD_CNTL_REG, KBD_CCMD_MOUSE_ENABLE); /* Enable Aux. */
+ aux_write_ack(AUX_RESET);
+ aux_write_ack(AUX_SET_DEFAULT);
aux_write_ack(AUX_SET_SAMPLE);
aux_write_ack(100); /* 100 samples/sec */
aux_write_ack(AUX_SET_RES);
diff -u -r --new-file linux-2.2.10_2/drivers/char/pc_keyb.h linux.jp/drivers/char/pc_keyb.h
--- linux-2.2.10_2/drivers/char/pc_keyb.h Sun May 23 14:16:05 1999
+++ linux.jp/drivers/char/pc_keyb.h Tue Mar 16 22:11:10 1999
@@ -14,7 +14,6 @@
#define KBD_REPORT_UNKN /* Report unknown scan codes */
#define KBD_REPORT_TIMEOUTS /* Report keyboard timeouts */
#undef KBD_IS_FOCUS_9000 /* We have the brain-damaged FOCUS-9000 keyboard */
-#undef INITIALIZE_MOUSE /* Define if your PS/2 mouse needs initialization. */
@@ -113,6 +112,7 @@
#define AUX_SET_SAMPLE 0xF3 /* Set sample rate */
#define AUX_ENABLE_DEV 0xF4 /* Enable aux device */
#define AUX_DISABLE_DEV 0xF5 /* Disable aux device */
+#define AUX_SET_DEFAULT 0xF6 /* Set to default state */
#define AUX_RESET 0xFF /* Reset aux device */
#define AUX_ACK 0xFA /* Command byte ACK. */
diff -u -r --new-file linux-2.2.10_2/drivers/pci/oldproc.c linux.jp/drivers/pci/oldproc.c
--- linux-2.2.10_2/drivers/pci/oldproc.c Sun May 23 14:16:37 1999
+++ linux.jp/drivers/pci/oldproc.c Mon May 24 15:12:17 1999
@@ -763,6 +764,7 @@
case PCI_VENDOR_ID_SMC2: return "SMC";
case PCI_VENDOR_ID_VORTEX: return "VORTEX";
case PCI_VENDOR_ID_EF: return "Efficient Networks";
+ case PCI_VENDOR_ID_IDT: return "IDT";
case PCI_VENDOR_ID_FORE: return "Fore Systems";
case PCI_VENDOR_ID_IMAGINGTECH: return "Imaging Technology";
case PCI_VENDOR_ID_PHILIPS: return "Philips";
diff -u -r --new-file linux-2.2.10_2/include/asm-ppc/io.h linux.jp/include/asm-ppc/io.h
--- linux-2.2.10_2/include/asm-ppc/io.h Sun May 23 14:17:24 1999
+++ linux.jp/include/asm-ppc/io.h Thu Jun 3 12:41:15 1999
@@ -42,7 +42,7 @@
#define writeb(b,addr) out_8((volatile unsigned char *)(addr), (b))
#if defined(CONFIG_APUS)
#define readw(addr) (*(volatile unsigned short *) (addr))
-#define readl(addr) (*(volatile unsigned int *) (addr))
+#define readl(addr) in_le32((volatile unsigned *)(addr))
#define writew(b,addr) ((*(volatile unsigned short *) (addr)) = (b))
#define writel(b,addr) ((*(volatile unsigned int *) (addr)) = (b))
#else
@@ -77,7 +77,7 @@
#define outb_p(val, port) out_8((unsigned char *)((port)+_IO_BASE), (val))
#define inw_p(port) in_le16((unsigned short *)((port)+_IO_BASE))
#define outw_p(val, port) out_le16((unsigned short *)((port)+_IO_BASE), (val))
-#define inl_p(port) in_le32(((unsigned *)(port)+_IO_BASE))
+#define inl_p(port) in_le32((unsigned *)((port)+_IO_BASE))
#define outl_p(val, port) out_le32((unsigned *)((port)+_IO_BASE), (val))
extern void _insb(volatile unsigned char *port, void *buf, int ns);
diff -u -r --new-file linux-2.2.10_2/include/linux/pci.h linux.jp/include/linux/pci.h
--- linux-2.2.10_2/include/linux/pci.h Sun May 23 14:17:29 1999
+++ linux.jp/include/linux/pci.h Thu Jun 3 12:40:56 1999
@@ -794,6 +794,9 @@
#define PCI_DEVICE_ID_EF_ATM_FPGA 0x0000
#define PCI_DEVICE_ID_EF_ATM_ASIC 0x0002
+#define PCI_VENDOR_ID_IDT 0x111d
+#define PCI_DEVICE_ID_IDT_NICSTAR 0x0001
+
#define PCI_VENDOR_ID_FORE 0x1127
#define PCI_DEVICE_ID_FORE_PCA200PC 0x0210
#define PCI_DEVICE_ID_FORE_PCA200E 0x0300
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2006-03-23 16:37 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
1999-06-04 14:41 Support for Motorola Platforms Johnnie Peters
1999-06-04 14:37 ` Adrian Cox
1999-06-04 15:59 ` Michael Meissner
1999-06-04 19:19 ` Mark Lin
1999-06-04 21:33 ` Johnnie Peters
1999-06-04 21:26 ` Mark Lin
1999-06-04 23:18 ` Johnnie Peters
1999-06-04 22:37 ` Daniel Jacobowitz
1999-06-08 1:44 ` Mark Lin
-- strict thread matches above, loose matches on Subject: below --
2006-03-23 16:27 CJ Anderson
1999-06-04 0:52 Johnnie Peters
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).