We are debugging a pci board and met some difficulties.

We are debugging a pci board and met some difficulties. The main chip is, the local device is SJA1000. We used 8-bit local bus(LAD[7:0]) as data-address multiplex mode, and using this local bus for PCI to communicate with SJA1000.

The difficulty I met is I can¡¯t read the register of SJA1000. I want to know the possible cause and how to solve it. And I want to know how to configure the ¡°Local Address Space (0~1) Bus Region Descriptor Register Description¡±, maybe there is some wrong with the timing between the PCI9052 and SJA1000.

Thanks for your time,

lynch

Reply to
lynch
Loading thread data ...

I don't know the PCI9052. The Infineon PITA chip used on the PCI board we support with can4linux need some extra commands to be written to registers before you can access the external memory: ptr = (unsigned long)ioremap(PCI_BASE_ADDRESS0(pdev), 256); /* enable memory access */ writel(0x04000000, ptr + 0x1c); the same for enabling interrupt processing. You should careful read the PCI9052 manual or look for another Linux driver using this PCI chip.

Getting all the board specific information is now very easy. just call struct pci_dev *pdev = NULL; pdev = pci_find_device (PCI_VENDOR, PCI_DEVICE, pdev); and the structure pdev is pointing to contains all what you need to know.

If it's not your board and no other technical reasons, consider to use a board already supported by a driver.

regards Heinz

Reply to
Heinz-Jürgen Oertel

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.