Hi,

Thanks for your suggestions. Your guess is right with the debugging statement. Output is at the end.

Weikuan

--------------------------------------
ib_mthca: Mellanox InfiniBand HCA driver v0.06 (June 23, 2005)
ib_mthca: Initializing  (0000:03:00.0)
ACPI: PCI Interrupt 0000:03:00.0[A] -> GSI 24 (level, low) -> IRQ 177
ib_mthca 0000:03:00.0: Found bridge:  (0000:02:03.0)
ib_mthca 0000:03:00.0: FW version 000300030002, max commands 64
ib_mthca 0000:03:00.0: FW size 6143 KB (start e7a00000, end e7ffffff)
ib_mthca 0000:03:00.0: HCA memory size 131071 KB (start e0000000, end e7ffffff)
ib_mthca 0000:03:00.0: Max port width: 2
ib_mthca 0000:03:00.0: Max QPs: 16777216, reserved QPs: 1024, entry size: 256
ib_mthca 0000:03:00.0: Max SRQs: 1024, reserved SRQs: 16, entry size: 32
ib_mthca 0000:03:00.0: Max CQs: 16777216, reserved CQs: 128, entry size: 64
ib_mthca 0000:03:00.0: Max EQs: 64, reserved EQs: 1, entry size: 64
ib_mthca 0000:03:00.0: reserved MPTs: 16, reserved MTTs: 16
ib_mthca 0000:03:00.0: Max PDs: 16777216, reserved PDs: 0, reserved UARs: 1
ib_mthca 0000:03:00.0: Max QP/MCG: 16777216, reserved MGMs: 0
ib_mthca 0000:03:00.0: Flags: 00370347
ib_mthca 0000:03:00.0: profile[ 0]--10/20 @ 0x e0000000 (size 0x 4000000) ib_mthca 0000:03:00.0: profile[ 1]-- 0/16 @ 0x e4000000 (size 0x 1000000) ib_mthca 0000:03:00.0: profile[ 2]-- 7/18 @ 0x e5000000 (size 0x 800000) ib_mthca 0000:03:00.0: profile[ 3]-- 9/17 @ 0x e5800000 (size 0x 800000) ib_mthca 0000:03:00.0: profile[ 4]-- 3/16 @ 0x e6000000 (size 0x 400000) ib_mthca 0000:03:00.0: profile[ 5]-- 4/16 @ 0x e6400000 (size 0x 200000) ib_mthca 0000:03:00.0: profile[ 6]--12/15 @ 0x e6600000 (size 0x 100000) ib_mthca 0000:03:00.0: profile[ 7]-- 8/13 @ 0x e6700000 (size 0x 80000) ib_mthca 0000:03:00.0: profile[ 8]--11/11 @ 0x e6780000 (size 0x 10000) ib_mthca 0000:03:00.0: profile[ 9]-- 2/10 @ 0x e6790000 (size 0x 8000) ib_mthca 0000:03:00.0: profile[10]-- 6/ 5 @ 0x e6798000 (size 0x 800) ib_mthca 0000:03:00.0: HCA memory: allocated 106082 KB/124928 KB (18846 KB free)
b_mthca 0000:03:00.0: Allocated EQ 1 with 65536 entries
ib_mthca 0000:03:00.0: Allocated EQ 2 with 128 entries
ib_mthca 0000:03:00.0: Allocated EQ 3 with 128 entries
ib_mthca 0000:03:00.0: Setting mask 00000000000f43fe for eqn 2
ib_mthca 0000:03:00.0: Setting mask 0000000000000400 for eqn 3
ib_mthca 0000:03:00.0: NOP command IRQ test passed
ib_mthca 0000:03:00.0: Command 09 completed with status 03
ib_mthca 0000:03:00.0: INIT_IB returned status 03.
ib_mthca 0000:03:00.0: Command 09 completed with status 03
ib_mthca 0000:03:00.0: INIT_IB returned status 03.



On Aug 11, 2005, at 6:30 PM, Roland Dreier wrote:

    Weikuan> At the end of this email, I have included the output from
    Weikuan> our system when enabling
    Weikuan> CONFIG_INFINIBAND_MTHCA_DEBUG=y. Note that there are
    Weikuan> additional four lines of warning message during the
    Weikuan> initiation of the device. These are generated from
    Weikuan> init_port() function, due to the incorrect return status
    Weikuan> of a command to the firmware, INIT_IB.

Did these warning messages about INIT_IB not show up in the kernel
before you enabled CONFIG_INFINIBAND_MTHCA_DEBUG?  They are printed
using mthca_warn(), which should be printed no matter what.

In any case I guess you built your firmware image without support for
1X.  Is this right?

Do you have any theory as to why the drivers worked in 64-bit mode and
failed in 32-bit mode?  I don't see any reason why the parameters
passed to INIT_IB would be any different.

Anyway, can you apply the debugging patch below and send the output
you get during device initialization (with CONFIG_INFINIBAND_MTHCA_DEBUG
enabled, of course)?  I'm guessing you'll see something like:

    ib_mthca 0000:02:00.0: Max port width: 2

If my guess is correct, then we can use that value to get the correct
width to pass back to INIT_IB.

Thanks,
  Roland

Index: infiniband/hw/mthca/mthca_cmd.c
===================================================================
--- infiniband/hw/mthca/mthca_cmd.c     (revision 3056)
+++ infiniband/hw/mthca/mthca_cmd.c     (working copy)
@@ -1031,6 +1031,7 @@ int mthca_QUERY_DEV_LIM(struct mthca_dev
        MTHCA_GET(size, outbox, QUERY_DEV_LIM_UAR_ENTRY_SZ_OFFSET);
        dev_lim->uar_scratch_entry_sz = size;

+       mthca_dbg(dev, "Max port width: %x\n", dev_lim->max_port_width);
        mthca_dbg(dev, "Max QPs: %d, reserved QPs: %d, entry size: %d\n",
                  dev_lim->max_qps, dev_lim->reserved_qps, 
dev_lim->qpc_entry_sz);
        mthca_dbg(dev, "Max SRQs: %d, reserved SRQs: %d, entry size: %d\n",


_______________________________________________
openib-general mailing list
[email protected]
http://openib.org/mailman/listinfo/openib-general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general

Reply via email to