Re: [PATCH] IP28 support

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

 




Hello Thomas,

unfortunately a little change to ip28_be_interrupt is needed (sorry, that
it was not yet applied):

---
diff -u -p a/arch/mips/sgi-ip22/ip28-berr.c b/arch/mips/sgi-ip22/ip28-berr.c
--- a/arch/mips/sgi-ip22/ip28-berr.c
+++ b/arch/mips/sgi-ip22/ip28-berr.c
@@ -597,7 +597,7 @@ static int ip28_be_interrupt(const struc
 			goto mips_be_fatal;

 	/* Any state other than "GIO transaction bus timed out" is fatal. */
-	if (gio_err_stat & GIO_ERRMASK & ~SGIMC_GSTAT_TIME)
+	if (gio_err_stat & GIO_ERRMASK /* & ~SGIMC_GSTAT_TIME */)
 		goto mips_be_fatal;

 	/* Finding `cpu_err_addr' in the insn at EPC is fatal. */
---

Since identification of HPC3-dma-addresses in ip28_be_interrupt does not
work as intended, currently any GIO-bus-error must be taken as fatal, or
a "real" bus-error might slip through undetected as "speculative":
When the bus-error occurs CBP is already advanced, so it won't match the
offending address. Examining the current dma-descriptor for a pbuf-address-
range, that might contain this address, isn't possible either, since NDP
is already advanced to the next descriptor.

GIO error 0x401:<TIME > @ 0x7e390000

HPC3 (scsi1) @ 1fb92000: ctl 00000014, ndp 2043c010, cbp 7e390180

Dumping sgiwd93_host1 dma-descriptors: 900000002043c000:
                pnext     pbuf  cntinfo
       [  0] 2043c010 7e390000 00002000 8192	cbp == [0].pbuf+0x180
ndp -> [  1] 2043c020 7e392000 00002000 8192
       [  2] 2043c030 7e394000 00002000 8192
       ...
       [255] 2043c000 00000000 80000000 0

So, for reliable detection of HPC3-dma-addresses the bus-error-handler would
need access to the descriptor-chain of each HPC3-driver, which would require
any such driver to register its descriptor chain with the bus-error-handler...

Experience suggests, that the possibility of false positives, caused by the
workaround, should be comparatively neglibible.


kind regards

peter



On Mon, 26 Nov 2007, Thomas Bogendoerfer wrote:

> Date: Mon, 26 Nov 2007 23:40:04 +0100 (CET)
> From: Thomas Bogendoerfer <tsbogend@xxxxxxxxxxxxxxxx>
> To: linux-mips@xxxxxxxxxxxxxx
> Cc: ralf@xxxxxxxxxxxxxx
> Subject: [PATCH] IP28 support
>
> Add support for SGI IP28 machines (Indigo 2 with R10k CPUs)
> This work is mainly based on Peter Fuersts work.
>
> Signed-off-by: Thomas Bogendoerfer <tsbogend@xxxxxxxxxxxxxxxx>
> ---
>
> ...
> diff --git a/arch/mips/sgi-ip22/ip28-berr.c b/arch/mips/sgi-ip22/ip28-berr.c
> new file mode 100644
> index 0000000..e61e8f3
> --- /dev/null
> +++ b/arch/mips/sgi-ip22/ip28-berr.c
> ...




[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux