diff --git a/cpu/mpc5xxx/fec.c b/cpu/mpc5xxx/fec.c
index 2be4ca74134877f2b74f647d1c920cb315f12b30..c3d30a049d7fc6ebbf7a2b32af98ab5f86731baa 100644
--- a/cpu/mpc5xxx/fec.c
+++ b/cpu/mpc5xxx/fec.c
@@ -291,7 +291,8 @@ static int mpc5xxx_fec_init(struct eth_device *dev, bd_t * bis)
 	/*
 	 * Set Rx FIFO alarm and granularity value
 	 */
-	fec->eth->rfifo_cntrl = 0x0c000000;
+	fec->eth->rfifo_cntrl = 0x0c000000
+				| (fec->eth->rfifo_cntrl & ~0x0f000000);
 	fec->eth->rfifo_alarm = 0x0000030c;
 #if (DEBUG & 0x22)
 	if (fec->eth->rfifo_status & 0x00700000 ) {
@@ -302,7 +303,8 @@ static int mpc5xxx_fec_init(struct eth_device *dev, bd_t * bis)
 	/*
 	 * Set Tx FIFO granularity value
 	 */
-	fec->eth->tfifo_cntrl = 0x0c000000;
+	fec->eth->tfifo_cntrl = 0x0c000000
+				| (fec->eth->tfifo_cntrl & ~0x0f000000);
 #if (DEBUG & 0x2)
 	printf("tfifo_status: 0x%08x\n", fec->eth->tfifo_status);
 	printf("tfifo_alarm: 0x%08x\n", fec->eth->tfifo_alarm);