Port-sandpoint archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Error messgae when netbooting - ex0: device timeout



On 01-Aug-2001 Allen Briggs wrote:
> On Wed, Aug 01, 2001 at 04:31:48PM +0900, Boo Geum Jung wrote:
>> root device (default md0a): ex0
>> dump device:
>> file system (default generic):
>> root on ex0
>> nfs_boot: trying BOOTP
>> ex0: device timeout
> 
> This looks to me like the interrupt is not working correctly for some
> reason.  It is possible that the devices/slots do not map to interrupts
> the same on your Sandpoint_X3 as on the _X2 on which I have been working.
> To test this theory out, you could try enabling interrupts for all slots
> and see if any are tripped.
> 

FWIW:
On my Sandpoint_X3 with Altimus (and thus MPC107 host/pci bridge) the serial
demultiplexer is not initialised by the DINK ROM on boot and thus no interrupts
come through to the CPU from the Sandpoint board.
>From the dmesg of the original poster:
>vendor 0x1057 product 0x0004 (host bridge, revision 0x12) at pci0 dev 0
it seems, he too has a MPC107 on the MPPMC board.

What I did was to add the initialisation to serial interrupt demultiplexing
in sandpoint/extintr.c in openpic_init(), like this 

diff -u -r1.2 extintr.c
--- extintr.c   2001/02/05 19:22:25     1.2
+++ extintr.c   2001/08/02 08:40:57
@@ -444,6 +451,18 @@
        x = openpic_read(OPENPIC_CONFIG);
        x |= OPENPIC_CONFIG_8259_PASSTHRU_DISABLE;
        openpic_write(OPENPIC_CONFIG, x);
+
+/* use serial mode */
+#define OPENPIC_EICR 0x1030
+#define OPENPIC_EICR_SERIAL_MODE (1<<27)
+#define OPENPIC_EICR_SERIAL_RATIO_MASK 0x70000000
+#define OPENPIC_EICR_SERIAL_RATIO_SHIFT 28
+
+       x = openpic_read(OPENPIC_EICR);
+       x &=~OPENPIC_EICR_SERIAL_RATIO_MASK;
+       x |= 4<<OPENPIC_EICR_SERIAL_RATIO_SHIFT;
+       x |= OPENPIC_EICR_SERIAL_MODE;
+       openpic_write(OPENPIC_EICR,x);
 
        /* send all interrupts to cpu 0 */
        for (irq = 0; irq < ICU_LEN; irq++)

Naturally, this is a hack and should probably only be applied, if we are sure to
have a MPC107 in the system (I didn't check the differences between
MPC8240/106/107). [The clock ratio between system clock and serial int clock is
choosen as '4' in the above hack, just a wild guess ]

With this, interrupts finally came through.....


Anyhow, I can't get DMA to work properly.
I.e. whenever I access the floppy, the seek/recalibrate/etc stuff works fine,
DMA is started by doesn't seem to proceed, causing the floppy to abort with a
data overrun error.
Anyone encountered similair problems?

Best regards....
        Stephan




=  Tel.: +49-681-302-5571          = Universitaet des Saarlandes =
=  Fax.: +49-681-302-3065          = Postfach 15 11 50           =
=  Compiler Research Group         = 66041 Saarbruecken          =
=  FR 6.2 - Informatik             = GERMANY                     =



Home | Main Index | Thread Index | Old Index