Error in fcc_enet driver in 2.6.10 version

Turconi Ennio Angelo Ennio.Turconi at italtel.it
Mon May 30 23:22:07 EST 2005


Hi everybody.
I think I found out an error in arch/ppc/8260io/fcc_enet.c source (kernel version Vanilla 2.6.10).
When obtaining the pointer to the CPM DPRAM, ioremap() is not used.
In 85xx architecture, it causes a bus error each time the driver attempts to access
a location in the CCSRBAR region.

I used the follwing patch (valid only for 85xx devices)

--- fcc_enet.c  2004-12-24 22:34:44.000000000 +0100
+++ fcc_enet_new.c      2005-05-30 15:00:38.000000000 +0200
@@ -1450,7 +1450,7 @@
        volatile        cpm2_map_t              *immap;
        volatile        iop_cpm2_t      *io;

-       immap = (cpm2_map_t *)CPM_MAP_ADDR;     /* and to internal registers */
+       immap = (cpm2_map_t *)ioremap(CPM_MAP_ADDR,MPC85xx_CPM_SIZE);   /* and to i
nternal registers */
        io = &immap->im_ioport;

        np = sizeof(fcc_ports) / sizeof(fcc_info_t);


Can anyone tell me why a 1 to 1 logical to physical mapping was assumed?

Ennio Turconi
Senior Fw Designer
Gateway Products
ITALTEL SpA
Settimo Mil., Italy


 



More information about the Linuxppc-embedded mailing list