[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.
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;
+/* 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;
/* 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?
= 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 =
Main Index |
Thread Index |