From: <fh...@at...> - 2000-12-08 12:29:16
|
In <200...@su...>, on 12/07/00 at 03:42 PM, gri...@ps... (Arno Griffioen) said: >> > This sort of thing kills the init when CONFIG_PCI is defined: >> > >> > #ifdef CONFIG_PCI >> > static int ncr53c8xx_pci_init(Scsi_Host_Template *tpnt, >> > uchar bus, uchar device_fn, ncr_device *device); >> > #else >> > static int ncr53c770_init(Scsi_Host_Template *tpnt, unsigned long base, >> > unsigned int irq, ncr_device *device); >> > #endif >> >> This doesn't make sense to me. I guess the 53c8xx code could just be removed >> from the 53c770 code? >Or a more elegant solution in which case there wouldn't need to be a >separate 53c770 driver, but included in an existing 53c8xx driver. This is the best solution IMHO. Basically all the current LSI chips have about the same scripts processor and share a lot of the same features. Of course the very new chips began to diverge. All of the 53c8xx drivers I have looked at have the same basic data structures. This is for the 53c810 chip on up. The biggest stumbling point I can see is that the 8xx series of chips is very PCI so the routines that heavily depend on PCI has to have the correct logic figured out to accommodate both. >As this is basically development code I don't really care. Just took me >a while to figure out why it didn't seem tohave any effect when I >compiled in the driver.. I am playing with different driver code at the moment, the sym53c8xx.c code. My reason for switching is that it shares the new style data structures and should be easier to merge into the newest versions, if that ever becomes possible. I have gotten the newer code to get to the cache test, where it fails to execute the SCSI scripts code, though everything looks "right". For example, the correct addresses and so forth appear. There is some very basic problem with making the 53c770 chip work with Linux or PowerPC. The problem has to be PPC or APUS related because those same 53c8xx chips are used in PCI cards that work on a variety of other architectures and Linuxes. I have been trying to figure out what the differences could be. BTW the newer drivers have a sort of generic mb() support as well. I really don't want to start looking at assembly code, but ultimately that may be what has to be done. i.e. find the driver sections that misbehave in the kernel assembler code and see if the code looks "right." (Any tips on how one goes about doing that would be appreciated.) Additionally, Richard Hirst has gotten the 770 chip to work on a HP system. He had to make a few modifications to the actual SCSI routines in the code to take into account small differences between the 8xx and 770 SCSI processors. There is another problem as well. All the PCI based cards have ROMs or NVRAM onboard that store the initial setting of the SCSI chip. The correct initial settings of the 53c770 chip has to be found. Sorry in advance for rambling on and probably repeating myself from previous posts. Fred |