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

Re: MVME5500 status, and on to PMC interrupts




On Feb 28, 2005, at 9:24 AM, Kate Feng wrote:


Perhaps, it will help if you can describe your complete PMC system
configuration
with the module names and function Exactly which card is on the PMC1,
PMC2,
and PMC_SPAN ? I got bits of information from different E-mail you
posted.
I am still not positive about what the complete system configuration is.




MVME5500 PMC1: ACROMAG PMC730 Multifunction Module PMC2: ACROMAG PMC341 Simultaneous Sampling Analog Input Module DEC 21150 PCI-PCI Bridge (PMCSPAN): PMC1: ACROMAG PMC730 Multifunction Module

Changed "bus<2" to bus<BusCountPCI() in pcifinddevice.c. The BusCountPCI calculation is wrong,
but I'm ignoring that for now since it is too big - I don't think that adds a problem.


Changed printout in BSP_PCIxFindDevice to include the pciNum passed in in pcifinddevice.c.

Changed pci.c to recognize the DEC 21150 PCI-PCI bridge.

During bootup I find the devices (see attachment)
PMC730-1: 0/0/6/0
PMC341:   1/0/6/0
PMC730-2: 0/2/2/0

XXX Look for "XXX" for my commentary.

Exception handling initialization done
-----------------------------------------
Welcome to rtems-4.6.99.1(PowerPC/PowerPC 7455/mvme5500) on MVME5500-0163
-----------------------------------------
Now BSP_mem_size = 0x1FE00000
BSP_Configuration.work_space_size = 80000
Marvell GT6426xA/B hostbridge detected at PCI0 bus0 slot0
PCI0_BASE_ADDRESS_0 0x8
PCI0_BASE_ADDRESS_1 0x10000008
PCI0_BASE_ADDRESS_2 0x8
PCI0_BASE_ADDRESS_3 0x8
PCI0_INTERRUPT_LINE 0x100
PCI0_MEM_BASE_ADDR 0x80100008
PCI0_IO_BASE_ADDR 0x1
PCI0 Slot 0x0 HEADER/LAT/CACHE 0x80800000
PCI0 Slot 0x0 Func 1 classID 0x5800020
PCI0 Slot 0x0 Func 2 classID 0x5800020
PCI0 Slot 0x0 Func 3 classID 0x5800020
PCI0 Slot 0x0 Func 4 classID 0x5800020
PCI0 Slot 0x0 Func 5 classID 0x5800020
PCI0 Slot 0x0 Func 6 classID 0x5800020
PCI0 Slot 0x0 Func 7 classID 0x5800020
MOTLoad command status 0x22B00006, Now command/status 0x2B00007
PCI0 Bus0 Slot6 DeviceID 0x445716D5
PCI0_BASE_ADDRESS_0 0x80200000
PCI0_BASE_ADDRESS_1 0x0
PCI0_BASE_ADDRESS_2 0x0
PCI0_BASE_ADDRESS_3 0x0
PCI0_INTERRUPT_LINE 0x108
PCI0_MEM_BASE_ADDR 0x0
PCI0_IO_BASE_ADDR 0x0
PCI0 Slot 0x6 HEADER/LAT/CACHE 0x0
MOTLoad command status 0x4000002, Now command/status 0x4000003
PLX PCI6154 PCI-PCI bridge detected at PCI0 bus0 slot10
PCI0_BASE_ADDRESS_0 0x0
PCI0_BASE_ADDRESS_1 0x0
PCI0_BASE_ADDRESS_2 0x80020100
PCI0_BASE_ADDRESS_3 0x2A0C191
PCI0_INTERRUPT_LINE 0x0
PCI0_MEM_BASE_ADDR 0xB5F08200
PCI0_IO_BASE_ADDR 0x1FFF1
PCI0 Slot 0xA HEADER/LAT/CACHE 0x18008
MOTLoad command status 0x2B00087, Now command/status 0x2B00087
TUNDRA PCI-VME bridge detected at PCI0 bus1 slot0
PCI0_BASE_ADDRESS_0 0x82000000
PCI0_BASE_ADDRESS_1 0x9001
PCI0_BASE_ADDRESS_2 0x0
PCI0_BASE_ADDRESS_3 0x0
PCI0_INTERRUPT_LINE 0x10C
PCI0_MEM_BASE_ADDR 0x0
PCI0_IO_BASE_ADDR 0x0
PCI0 Slot 0x0 HEADER/LAT/CACHE 0x8000
MOTLoad command status 0x2000007, Now command/status 0x2000007
XXX
XXX Found DEC bridge:
DEC 21150 PCI-PCI bridge detected at PCI0 bus1 slot4
PCI0_BASE_ADDRESS_0 0x0
PCI0_BASE_ADDRESS_1 0x0
PCI0_BASE_ADDRESS_2 0x80020201
PCI0_BASE_ADDRESS_3 0x2280C1B1
PCI0_INTERRUPT_LINE 0x0
PCI0_MEM_BASE_ADDR 0xB5F0B400
PCI0_IO_BASE_ADDR 0x1FFF1
PCI0 Slot 0x4 HEADER/LAT/CACHE 0x18008
MOTLoad command status 0x2900007, Now command/status 0x2900007
Marvell GT6426xA/B hostbridge detected at PCI1 bus0 slot0
PCI1_BASE_ADDRESS_0 0x8
PCI1_BASE_ADDRESS_1 0x10000008
PCI1_BASE_ADDRESS_2 0x8
PCI1_BASE_ADDRESS_3 0x8
PCI1_INTERRUPT_LINE 0x100
PCI1_MEM_BASE_ADDR 0xE1000008
PCI1_IO_BASE_ADDR 0x1
PCI1 Slot 0x0 HEADER/LAT/CACHE 0x80800000
PCI1 Slot 0x0 Func 1 classID 0x5800020
PCI1 Slot 0x0 Func 2 classID 0x5800020
PCI1 Slot 0x0 Func 3 classID 0x5800020
PCI1 Slot 0x0 Func 4 classID 0x5800020
PCI1 Slot 0x0 Func 5 classID 0x5800020
PCI1 Slot 0x0 Func 6 classID 0x5800020
PCI1 Slot 0x0 Func 7 classID 0x5800020
MOTLoad command status 0x22B00006, Now command/status 0x2B00007
PCI1 Bus0 Slot6 DeviceID 0x4D4D16D5
PCI1_BASE_ADDRESS_0 0xE1100000
PCI1_BASE_ADDRESS_1 0x0
PCI1_BASE_ADDRESS_2 0x0
PCI1_BASE_ADDRESS_3 0x0
PCI1_INTERRUPT_LINE 0x110
PCI1_MEM_BASE_ADDR 0x0
PCI1_IO_BASE_ADDR 0x0
PCI1 Slot 0x6 HEADER/LAT/CACHE 0x8008
MOTLoad command status 0x4000006, Now command/status 0x4000007
INTEL 82544EI COPPER network controller detected at PCI1 bus0 slot10
PCI1_BASE_ADDRESS_0 0xE1120000
PCI1_BASE_ADDRESS_1 0xE1140000
PCI1_BASE_ADDRESS_2 0x10001
PCI1_BASE_ADDRESS_3 0x0
PCI1_INTERRUPT_LINE 0x114
PCI1_MEM_BASE_ADDR 0x0
PCI1_IO_BASE_ADDR 0x0
PCI1 Slot 0xA HEADER/LAT/CACHE 0x8008
MOTLoad command status 0x2300007, Now command/status 0x2300007
BSP_PCIxFindDevice: found 0x643011AB at 0/0/0/0
BSP_PCIxFindDevice: found 0x643011AB at 0/0/0/1
BSP_PCIxFindDevice: found 0x643011AB at 0/0/0/2
BSP_PCIxFindDevice: found 0x643011AB at 0/0/0/3
BSP_PCIxFindDevice: found 0x643011AB at 0/0/0/4
BSP_PCIxFindDevice: found 0x643011AB at 0/0/0/5
BSP_PCIxFindDevice: found 0x643011AB at 0/0/0/6
BSP_PCIxFindDevice: found 0x643011AB at 0/0/0/7
BSP_PCIxFindDevice: found 0x445716D5 at 0/0/6/0
BSP_PCIxFindDevice: found 0x00263388 at 0/0/10/0
BSP_PCIxFindDevice: found 0x000010E3 at 0/1/0/0
Universe II PCI-VME bridge detected at 0x82000000, IRQ 12
Universe Master Ports:
Port  VME-Addr   Size       PCI-Adrs   Mode:
0:    0x20000000 0x0F000000 0x90000000 A32, Dat, Sup
1:    0x00000000 0x00FF0000 0x9F000000 A24, Dat, Sup
2:    0x00000000 0x00010000 0x9FFF0000 A16, Dat, Sup
Universe Slave Ports:
Port  VME-Addr   Size       PCI-Adrs   Mode:
0:    0x90000000 0x1FE00000 0x00000000 A32, Pgm, Dat, Sup, Usr
Overriding main IRQ line PCI info with 12
Registering /dev/console as minor 0 (==/dev/ttyS0)

XXX
XXX Now my code starts, adding my driver.  The NULL softc
XXX is just my code allocating a major number.
XXX

XXX First PMC730 finds itself at 0/0/6/0
Adding PMC730 minor number 0.
pmc_init: Called with NULL softc, returning.
BSP_PCIxFindDevice: found 0x643011AB at 0/0/0/0
BSP_PCIxFindDevice: found 0x643011AB at 0/0/0/1
BSP_PCIxFindDevice: found 0x643011AB at 0/0/0/2
BSP_PCIxFindDevice: found 0x643011AB at 0/0/0/3
BSP_PCIxFindDevice: found 0x643011AB at 0/0/0/4
BSP_PCIxFindDevice: found 0x643011AB at 0/0/0/5
BSP_PCIxFindDevice: found 0x643011AB at 0/0/0/6
BSP_PCIxFindDevice: found 0x643011AB at 0/0/0/7
BSP_PCIxFindDevice: found 0x445716D5 at 0/0/6/0
pmc730_0@0x01FFEE38: 0/0/6/0 base address 80200000 intr 08.

XXX Second PMC730 (other side of bridge) thinks it is at 0/2/2/0
XXX but that interrupt looks bogus.
Adding PMC730 minor number 1.
BSP_PCIxFindDevice: found 0x643011AB at 0/0/0/0
BSP_PCIxFindDevice: found 0x643011AB at 0/0/0/1
BSP_PCIxFindDevice: found 0x643011AB at 0/0/0/2
BSP_PCIxFindDevice: found 0x643011AB at 0/0/0/3
BSP_PCIxFindDevice: found 0x643011AB at 0/0/0/4
BSP_PCIxFindDevice: found 0x643011AB at 0/0/0/5
BSP_PCIxFindDevice: found 0x643011AB at 0/0/0/6
BSP_PCIxFindDevice: found 0x643011AB at 0/0/0/7
BSP_PCIxFindDevice: found 0x445716D5 at 0/0/6/0
BSP_PCIxFindDevice: found 0x00263388 at 0/0/10/0
BSP_PCIxFindDevice: found 0x000010E3 at 0/1/0/0
BSP_PCIxFindDevice: found 0x00221011 at 0/1/4/0
BSP_PCIxFindDevice: found 0x445716D5 at 0/2/2/0
pmc730_1@0x01FFED68: 0/2/2/0 base address B4000000 intr 0E.

XXX PMC341 finds itself at 1/0/6/0.
Adding PMC341 minor number 0.
pmc_init: Called with NULL softc, returning.
BSP_PCIxFindDevice: found 0x643011AB at 0/0/0/0
BSP_PCIxFindDevice: found 0x643011AB at 0/0/0/1
BSP_PCIxFindDevice: found 0x643011AB at 0/0/0/2
BSP_PCIxFindDevice: found 0x643011AB at 0/0/0/3
BSP_PCIxFindDevice: found 0x643011AB at 0/0/0/4
BSP_PCIxFindDevice: found 0x643011AB at 0/0/0/5
BSP_PCIxFindDevice: found 0x643011AB at 0/0/0/6
BSP_PCIxFindDevice: found 0x643011AB at 0/0/0/7
BSP_PCIxFindDevice: found 0x445716D5 at 0/0/6/0
BSP_PCIxFindDevice: found 0x00263388 at 0/0/10/0
BSP_PCIxFindDevice: found 0x000010E3 at 0/1/0/0
BSP_PCIxFindDevice: found 0x00221011 at 0/1/4/0
BSP_PCIxFindDevice: found 0x445716D5 at 0/2/2/0
BSP_PCIxFindDevice: found 0x643011AB at 1/0/0/0
BSP_PCIxFindDevice: found 0x643011AB at 1/0/0/1
BSP_PCIxFindDevice: found 0x643011AB at 1/0/0/2
BSP_PCIxFindDevice: found 0x643011AB at 1/0/0/3
BSP_PCIxFindDevice: found 0x643011AB at 1/0/0/4
BSP_PCIxFindDevice: found 0x643011AB at 1/0/0/5
BSP_PCIxFindDevice: found 0x643011AB at 1/0/0/6
BSP_PCIxFindDevice: found 0x643011AB at 1/0/0/7
BSP_PCIxFindDevice: found 0x4D4D16D5 at 1/0/6/0
pmc341_0@0x01FFEC80: 1/0/6/0 base address E1100000 intr 10.
Type 'cexp.help()' for help (no quotes)

XXX Now I try to generate an interrupt on the PMC730.
cexp_main>b=0x1ffee38 # Get first pmc730 pointer
0x01ffee38 (33549880)
cexp_main>pmc_dump(b)
pmc730_0@0x01ffee38
 0                             intr: 00000000
 1                     adc_ctl_stat: 00000000
 2                    adc_start_end: 00000000
 3      adc_cvt_timer_and_prescaler: 00000000
 4            adc_memory_threshhold: 000001ff
 5                        adc_start: 00000000
 6                          unused0: 00000000
 7                          unused1: 00000000
 8                     dac_ctl_stat: 00000000
 9             dac_conversion_timer: 00000000
10    dac_fifo_interrupt_threshhold: 00000000
11                        dac_start: 00000000
12              dac_fifo_write_port: 00000000
13                          unused2: 00000000
14                          dio_reg: 0000ffff
15                          dio_dir: 00000000
16            dio_status_and_enable: 00000000
17            dio_polarity_and_type: 00000000
18                 dio_debounce_0_7: 00000000
19                dio_debounce_8_15: 00000000
20                          ctr_ctl: 00000000
21                     ctr_readback: 00000000
22                    ctr_constant1: 00000000
23                    ctr_constant2: 00000000
24                         ctr_trig: 00000000
25                       cal_access: 00000000
26              cal_read_and_status: 00000000
27                 cal_write_enable: 00000000
0x01ffee38 (33549880)

XXX This enables counter interrupts and puts counter in
XXX watchdog mode, loads the watchdog with 0x400, and
XXX enables board interrupts.
cexp_main>pmc_o(b,20,0x103,22,0x400,0,1,-1)
0x01ffee38 (33549880)

XXX The interrupts are enabled, and the counter
XXX is preloaded with 0x400.
cexp_main>pmc_d(b,0,20,21,-1)
 0                             intr: 00000001
20                          ctr_ctl: 00000103
21                     ctr_readback: 00000400
0x01ffee38 (33549880)

XXX Now start the counter:
cexp_main>pmc_o(b,24,1,-1)
0x01ffee38 (33549880)

XXX And read back and see there is an interrupt pending
XXX (register 0 0x2), the cause is the counter
XXX (register 20 0x1000), and the counter has gone down to 0.
cexp_main>pmc_d(b,0,20,21,-1)
 0                             intr: 00000003
20                          ctr_ctl: 00001103
21                     ctr_readback: 00000000
0x01ffee38 (33549880)

XXX But no interrupt.
cexp_main>


Peter Dufault
HD Associates, Inc.