X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=cpu%2Fmpc85xx%2Fether_fcc.c;h=d15d2424929eacb0437130a50b702718b35d13dd;hb=6ede0c8b69ad1e6b16463ec75a6dccca152c4b17;hp=f78e5b4d7a67b7c162a8b5d03c1fb527264c9a61;hpb=42d1f0394bef0624fc9664714d54bb137931d6a6;p=oweals%2Fu-boot.git diff --git a/cpu/mpc85xx/ether_fcc.c b/cpu/mpc85xx/ether_fcc.c index f78e5b4d7a..d15d242492 100644 --- a/cpu/mpc85xx/ether_fcc.c +++ b/cpu/mpc85xx/ether_fcc.c @@ -48,7 +48,11 @@ #include #include -#if defined(CONFIG_MPC8560) +#if defined(CONFIG_MII) || (CONFIG_COMMANDS & CFG_CMD_MII) +#include +#endif + +#if defined(CONFIG_CPM2) #if defined(CONFIG_ETHER_ON_FCC) && (CONFIG_COMMANDS & CFG_CMD_NET) && \ defined(CONFIG_NET_MULTI) @@ -135,7 +139,7 @@ static RTXBD rtx __attribute__ ((aligned(8))); #error "rtx must be 64-bit aligned" #endif -#define ET_DEBUG +#undef ET_DEBUG static int fec_send(struct eth_device* dev, volatile void *packet, int length) { @@ -157,7 +161,7 @@ static int fec_send(struct eth_device* dev, volatile void *packet, int length) rtx.txbd[txIdx].cbd_bufaddr = (uint)packet; rtx.txbd[txIdx].cbd_datlen = length; rtx.txbd[txIdx].cbd_sc |= (BD_ENET_TX_READY | BD_ENET_TX_LAST | \ - BD_ENET_TX_TC ); + BD_ENET_TX_TC | BD_ENET_TX_PAD); for(i=0; rtx.txbd[txIdx].cbd_sc & BD_ENET_TX_READY; i++) { if (i >= TOUT_LOOP) { @@ -303,7 +307,9 @@ static int fec_init(struct eth_device* dev, bd_t *bis) * Allocate space in the reserved FCC area of DPRAM for the * internal buffers. No one uses this space (yet), so we * can do this. Later, we will add resource management for - * this area. CPM_FCC_SPECIAL_BASE: 0xb000. + * this area. + * CPM_FCC_SPECIAL_BASE: 0xB000 for MPC8540, MPC8560 + * 0x9000 for MPC8541, MPC8555 */ mem_addr = CPM_FCC_SPECIAL_BASE + ((info->ether_index) * 64); pram_ptr->fen_genfcc.fcc_riptr = mem_addr; @@ -414,7 +420,7 @@ static int fec_init(struct eth_device* dev, bd_t *bis) immr->im_cpm.im_cpm_fcc3.gfmr |= FCC_GFMR_ENT | FCC_GFMR_ENR; } - return 0; + return 1; } static void fec_halt(struct eth_device* dev) @@ -451,6 +457,12 @@ int fec_initialize(bd_t *bis) dev->recv = fec_recv; eth_register(dev); + +#if (defined(CONFIG_MII) || (CONFIG_COMMANDS & CFG_CMD_MII)) \ + && defined(CONFIG_BITBANGMII) + miiphy_register(dev->name, + bb_miiphy_read, bb_miiphy_write); +#endif } return 1; @@ -458,4 +470,4 @@ int fec_initialize(bd_t *bis) #endif /* CONFIG_ETHER_ON_FCC && CFG_CMD_NET && CONFIG_NET_MULTI */ -#endif /* CONFIG_MPC8560 */ +#endif /* CONFIG_CPM2 */