diff --git a/drivers/block/fsl_sata.c b/drivers/block/fsl_sata.c
index 2009d1ecdac095cdb2aa7b497833ac21d1909a9c..abcda6fb5fd6852a3bf775383df95666f3cf562b 100644
--- a/drivers/block/fsl_sata.c
+++ b/drivers/block/fsl_sata.c
@@ -81,7 +81,7 @@ void dprint_buffer(unsigned char *buf, int len)
 	printf("\n\r");
 }
 
-static void fsl_sata_dump_sfis(struct sfis *s)
+static void fsl_sata_dump_sfis(struct sata_fis_d2h *s)
 {
 	printf("Status FIS dump:\n\r");
 	printf("fis_type:		%02x\n\r", s->fis_type);
@@ -347,7 +347,7 @@ static void fsl_sata_dump_regs(fsl_sata_reg_t *reg)
 	printf("SYSPR:          %08x\n\r", in_be32(&reg->syspr));
 }
 
-static int fsl_ata_exec_ata_cmd(struct fsl_sata *sata, struct cfis *cfis,
+static int fsl_ata_exec_ata_cmd(struct fsl_sata *sata, struct sata_fis_h2d *cfis,
 				int is_ncq, int tag, u8 *buffer, u32 len)
 {
 	cmd_hdr_entry_t *cmd_hdr;
@@ -483,7 +483,7 @@ static int fsl_ata_exec_ata_cmd(struct fsl_sata *sata, struct cfis *cfis,
 
 	if (val32) {
 		u32 der;
-		fsl_sata_dump_sfis((struct sfis *)cmd_desc->sfis);
+		fsl_sata_dump_sfis((struct sata_fis_d2h *)cmd_desc->sfis);
 		printf("CE at device\n\r");
 		fsl_sata_dump_regs(reg);
 		der = in_le32(&reg->der);
@@ -498,13 +498,13 @@ static int fsl_ata_exec_ata_cmd(struct fsl_sata *sata, struct cfis *cfis,
 	return len;
 }
 
-static int fsl_ata_exec_reset_cmd(struct fsl_sata *sata, struct cfis *cfis,
+static int fsl_ata_exec_reset_cmd(struct fsl_sata *sata, struct sata_fis_h2d *cfis,
 				 int tag, u8 *buffer, u32 len)
 {
 	return 0;
 }
 
-static int fsl_sata_exec_cmd(struct fsl_sata *sata, struct cfis *cfis,
+static int fsl_sata_exec_cmd(struct fsl_sata *sata, struct sata_fis_h2d *cfis,
 		 enum cmd_type command_type, int tag, u8 *buffer, u32 len)
 {
 	int rc;
@@ -539,11 +539,9 @@ static int fsl_sata_exec_cmd(struct fsl_sata *sata, struct cfis *cfis,
 static void fsl_sata_identify(int dev, u16 *id)
 {
 	fsl_sata_t *sata = (fsl_sata_t *)sata_dev_desc[dev].priv;
-	struct sata_fis_h2d h2d;
-	struct cfis *cfis;
+	struct sata_fis_h2d h2d, *cfis = &h2d;
 
-	cfis = (struct cfis *)&h2d;
-	memset((void *)cfis, 0, sizeof(struct cfis));
+	memset(cfis, 0, sizeof(struct sata_fis_h2d));
 
 	cfis->fis_type = SATA_FIS_TYPE_REGISTER_H2D;
 	cfis->pm_port_c = 0x80; /* is command */
@@ -566,12 +564,10 @@ static void fsl_sata_xfer_mode(int dev, u16 *id)
 static void fsl_sata_set_features(int dev)
 {
 	fsl_sata_t *sata = (fsl_sata_t *)sata_dev_desc[dev].priv;
-	struct sata_fis_h2d h2d;
-	struct cfis *cfis;
+	struct sata_fis_h2d h2d, *cfis = &h2d;
 	u8 udma_cap;
 
-	cfis = (struct cfis *)&h2d;
-	memset((void *)cfis, 0, sizeof(struct cfis));
+	memset(cfis, 0, sizeof(struct sata_fis_h2d));
 
 	cfis->fis_type = SATA_FIS_TYPE_REGISTER_H2D;
 	cfis->pm_port_c = 0x80; /* is command */
@@ -597,14 +593,12 @@ static void fsl_sata_set_features(int dev)
 static u32 fsl_sata_rw_cmd(int dev, u32 start, u32 blkcnt, u8 *buffer, int is_write)
 {
 	fsl_sata_t *sata = (fsl_sata_t *)sata_dev_desc[dev].priv;
-	struct sata_fis_h2d h2d;
-	struct cfis *cfis;
+	struct sata_fis_h2d h2d, *cfis = &h2d;
 	u32 block;
 
 	block = start;
-	cfis = (struct cfis *)&h2d;
 
-	memset((void *)cfis, 0, sizeof(struct cfis));
+	memset(cfis, 0, sizeof(struct sata_fis_h2d));
 
 	cfis->fis_type = SATA_FIS_TYPE_REGISTER_H2D;
 	cfis->pm_port_c = 0x80; /* is command */
@@ -624,12 +618,9 @@ static u32 fsl_sata_rw_cmd(int dev, u32 start, u32 blkcnt, u8 *buffer, int is_wr
 void fsl_sata_flush_cache(int dev)
 {
 	fsl_sata_t *sata = (fsl_sata_t *)sata_dev_desc[dev].priv;
-	struct sata_fis_h2d h2d;
-	struct cfis *cfis;
+	struct sata_fis_h2d h2d, *cfis = &h2d;
 
-	cfis = (struct cfis *)&h2d;
-
-	memset((void *)cfis, 0, sizeof(struct cfis));
+	memset(cfis, 0, sizeof(struct sata_fis_h2d));
 
 	cfis->fis_type = SATA_FIS_TYPE_REGISTER_H2D;
 	cfis->pm_port_c = 0x80; /* is command */
@@ -641,14 +632,12 @@ void fsl_sata_flush_cache(int dev)
 static u32 fsl_sata_rw_cmd_ext(int dev, u32 start, u32 blkcnt, u8 *buffer, int is_write)
 {
 	fsl_sata_t *sata = (fsl_sata_t *)sata_dev_desc[dev].priv;
-	struct sata_fis_h2d h2d;
-	struct cfis *cfis;
+	struct sata_fis_h2d h2d, *cfis = &h2d;
 	u64 block;
 
 	block = (u64)start;
-	cfis = (struct cfis *)&h2d;
 
-	memset((void *)cfis, 0, sizeof(struct cfis));
+	memset(cfis, 0, sizeof(struct sata_fis_h2d));
 
 	cfis->fis_type = SATA_FIS_TYPE_REGISTER_H2D;
 	cfis->pm_port_c = 0x80; /* is command */
@@ -673,8 +662,7 @@ static u32 fsl_sata_rw_cmd_ext(int dev, u32 start, u32 blkcnt, u8 *buffer, int i
 u32 fsl_sata_rw_ncq_cmd(int dev, u32 start, u32 blkcnt, u8 *buffer, int is_write)
 {
 	fsl_sata_t *sata = (fsl_sata_t *)sata_dev_desc[dev].priv;
-	struct sata_fis_h2d h2d;
-	struct cfis *cfis;
+	struct sata_fis_h2d h2d, *cfis = &h2d;
 	int ncq_channel;
 	u64 block;
 
@@ -684,9 +672,8 @@ u32 fsl_sata_rw_ncq_cmd(int dev, u32 start, u32 blkcnt, u8 *buffer, int is_write
 	}
 
 	block = (u64)start;
-	cfis = (struct cfis *)&h2d;
 
-	memset((void *)cfis, 0, sizeof(struct cfis));
+	memset(cfis, 0, sizeof(struct sata_fis_h2d));
 
 	cfis->fis_type = SATA_FIS_TYPE_REGISTER_H2D;
 	cfis->pm_port_c = 0x80; /* is command */
@@ -718,12 +705,9 @@ u32 fsl_sata_rw_ncq_cmd(int dev, u32 start, u32 blkcnt, u8 *buffer, int is_write
 void fsl_sata_flush_cache_ext(int dev)
 {
 	fsl_sata_t *sata = (fsl_sata_t *)sata_dev_desc[dev].priv;
-	struct sata_fis_h2d h2d;
-	struct cfis *cfis;
-
-	cfis = (struct cfis *)&h2d;
+	struct sata_fis_h2d h2d, *cfis = &h2d;
 
-	memset((void *)cfis, 0, sizeof(struct cfis));
+	memset(cfis, 0, sizeof(struct sata_fis_h2d));
 
 	cfis->fis_type = SATA_FIS_TYPE_REGISTER_H2D;
 	cfis->pm_port_c = 0x80; /* is command */
diff --git a/drivers/block/fsl_sata.h b/drivers/block/fsl_sata.h
index 874c0dc740cc65fcd810317980e3cc3c3f2a8223..18e88fa4ad042b34cae9a93c6db5f63413bab6bd 100644
--- a/drivers/block/fsl_sata.h
+++ b/drivers/block/fsl_sata.h
@@ -288,52 +288,6 @@ typedef struct cmd_desc {
 #define SATA_HC_CMD_DESC_SIZE		sizeof(struct cmd_desc)
 #define SATA_HC_CMD_DESC_ALIGN		4
 
-/*
-* CFIS - Command FIS, which is H2D register FIS, the struct defination
-* of Non-Queued command is different than NCQ command. see them is sata2.h
-*/
-typedef struct cfis {
-	u8 fis_type;
-	u8 pm_port_c;
-	u8 command;
-	u8 features;
-	u8 lba_low;
-	u8 lba_mid;
-	u8 lba_high;
-	u8 device;
-	u8 lba_low_exp;
-	u8 lba_mid_exp;
-	u8 lba_high_exp;
-	u8 features_exp;
-	u8 sector_count;
-	u8 sector_count_exp;
-	u8 res1;
-	u8 control;
-	u8 res2[4];
-} __attribute__ ((packed)) cfis_t;
-
-/*
-* SFIS - Status FIS, which is D2H register FIS.
-*/
-typedef struct sfis {
-	u8 fis_type;
-	u8 pm_port_i;
-	u8 status;
-	u8 error;
-	u8 lba_low;
-	u8 lba_mid;
-	u8 lba_high;
-	u8 device;
-	u8 lba_low_exp;
-	u8 lba_mid_exp;
-	u8 lba_high_exp;
-	u8 res1;
-	u8 sector_count;
-	u8 sector_count_exp;
-	u8 res2[2];
-	u8 res3[4];
-} __attribute__ ((packed)) sfis_t;
-
 /*
  * SATA device driver info
  */