|
From: Rene B. <re...@we...> - 2001-09-27 19:03:52
|
Ken Tyler wrote: > > What kernel version are you running ? 2.4.9; checkout date: 12/September > > Something odd in 2.4.8 caused the 53c7xx.c A4091 driver to hang my syst= em > at boot time but only with a modular kernel, even though 53c7xx.c is no= t a > module. Monolithic kernels were OK. Hmm, I`m using a modular kernel, but the 53c770 are not compiled as a=20 module, will playing a little with that. > And it was hanging somewhere around : > > memset((void *)instance->hostdata[0], 0, 8192); > cache_push(virt_to_phys((void *)(instance->hostdata[0])), 8192); > cache_clear(virt_to_phys((void *)(instance->hostdata[0])), 8192); > kernel_set_cachemode(instance->hostdata[0], 8192, IOMAP_NOCACHE_SER); > > similar to what you have. > > The current 2.4.9 CVS is OK. > > (There are problems with the A4091 driver but that's a ZORRO bus glitch= ) >> Then the driver starts a test where the 53c770 is exchanging some 53c7= 70 >> register values with some values in np. >> The test fails, because np is cached! >> If I explicitly call: flush_dcache_range(np, np + sizeof(np)); before >> and after this test, the test doesn`t fail. > > > Have a look at the tests in 53c7xx.c, they work. I noticed the use of > barrier() in one test. I have slightly modified the 53c7xx.c and 53c7xx.h to get it run with=20 the 53c770 chip. Because the differences between these 2 chips are not=20 very large (only some register changes). But I notice that the driver=20 test hangs at barrier()... Is it right that you use APUS with the 53c7xx.c driver on a CSPPC? That means that the machnism I use to get some uncached mem is working=20 on an APUS-604e machine. So whats wrong here? I don`t understand this :-( Ciao, Ren=E8 |