Port-ofppc archive

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

Re: Pegasos interrupt mapping and dmamem_alloc



Tim Rightnour wrote:

>> But then a new crash! The _dma_phys_to_bus_mem() function in the
>> pci_bus_dma_tag structure was not initialized! I don't know why you are
>> making a difference between pci_bus_dma_tag for macppc and for the rest?
>> Usng the macppc-version instead, which initializes the two missing
>> function pointers, fixes the problem:
> 
> Because the macppc one isn't correct. They are using thier own internal
> versions of the routines, as opposed to the generic powerpc ones.

I didn't find a difference.

Macppc only adds the two generic phys_to_bus_mem/bus_mem_to_phys functions,
which is exactly what we need. Nothing special here.


> I keep
> forgetting to ask Macallan if they still need this hack or not. I suspect
> they do not.

IMHO both can use the same pci_bus_dma_tag. When macppc uses the generic
one, it just have to define PHYS_TO_BUS_MEM and BUS_MEM_TO_PHYS.


> Initializing those is something that needs to be done on a per-port basis
> in include/bus.h. If you take a look at powerpc/include/prep_bus.h you can
> see that we define macros for PHYS_TO_BUS_MEM and BUS_MEM_TO_PHYS.
> 
> It looks like macppc uses the generic ones, so we can probably just set
> the PHYS_TO_BUS_MEM and BUS_MEM_TO_PHYS macros in ofppc/include/bus.h to
> those two functions, and things will be good to go.

Yes, exactly.

Ok, so I redid my changes in pci_machdep_common.c and added to
ofppc/include/bus.h:
#define PHYS_TO_BUS_MEM(t,x) (x)
#define BUS_MEM_TO_PHYS(t,x) (x)

(same should work for macppc)

-- 
    _  Frank Wille (frank%phoenix.owl.de@localhost)
 _ //  http://sun.hasenbraten.de/~frank/
 \X/   Phx @ #AmigaGer




Home | Main Index | Thread Index | Old Index