]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - include/ata.h
usb: dwc2: Call board_usb_init() from usb_lowlevel_init()
[karo-tx-uboot.git] / include / ata.h
index d07210b137f6ed2fcdba28a45d770cb2bd965df6..9d6f59c97bfaae7ea8482eb03468533465901d9c 100644 (file)
@@ -2,23 +2,7 @@
  * (C) Copyright 2000
  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
  *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
+ * SPDX-License-Identifier:    GPL-2.0+
  */
 
 /*
 #ifndef        _ATA_H
 #define _ATA_H
 
+#include <libata.h>
+
 /* Register addressing depends on the hardware design; for instance,
  * 8-bit (register) and 16-bit (data) accesses might use different
  * address spaces. This is implemented by the following definitions.
  */
-#ifndef CFG_ATA_STRIDE
-#define CFG_ATA_STRIDE 1
+#ifndef CONFIG_SYS_ATA_STRIDE
+#define CONFIG_SYS_ATA_STRIDE  1
 #endif
 
-#define ATA_IO_DATA(x) (CFG_ATA_DATA_OFFSET+((x) * CFG_ATA_STRIDE))
-#define ATA_IO_REG(x)  (CFG_ATA_REG_OFFSET +((x) * CFG_ATA_STRIDE))
-#define ATA_IO_ALT(x)  (CFG_ATA_ALT_OFFSET +((x) * CFG_ATA_STRIDE))
+#define ATA_IO_DATA(x) (CONFIG_SYS_ATA_DATA_OFFSET+((x) * CONFIG_SYS_ATA_STRIDE))
+#define ATA_IO_REG(x)  (CONFIG_SYS_ATA_REG_OFFSET +((x) * CONFIG_SYS_ATA_STRIDE))
+#define ATA_IO_ALT(x)  (CONFIG_SYS_ATA_ALT_OFFSET +((x) * CONFIG_SYS_ATA_STRIDE))
 
 /*
  * I/O Register Descriptions
@@ -80,7 +66,9 @@
 /*
  * Device / Head Register Bits
  */
+#ifndef ATA_DEVICE
 #define ATA_DEVICE(x)  ((x & 1)<<4)
+#endif /* ATA_DEVICE */
 #define ATA_LBA                0xE0
 
 /*
 #define ATA_CMD_WRITE_EXT      0x34    /* Write Sectores (with retries) with 48bit addressing */
 #define ATA_CMD_VRFY_EXT       0x42    /* Read Verify  (with retries)  with 48bit addressing */
 
+#define ATA_CMD_FLUSH 0xE7 /* Flush drive cache */
+#define ATA_CMD_FLUSH_EXT 0xEA /* Flush drive cache, with 48bit addressing */
+
 /*
  * ATAPI Commands
  */
@@ -208,7 +199,7 @@ typedef struct hd_driveid {
        unsigned short  word92;         /* reserved (word 92) */
        unsigned short  hw_config;      /* hardware config */
        unsigned short  words94_99[6];/* reserved words 94-99 */
-       //unsigned long long  lba48_capacity; /* 4 16bit values containing lba 48 total number of sectors */
+       /*unsigned long long  lba48_capacity; /--* 4 16bit values containing lba 48 total number of sectors */
        unsigned short  lba48_capacity[4]; /* 4 16bit values containing lba 48 total number of sectors */
        unsigned short  words104_125[22];/* reserved words 104-125 */
        unsigned short  last_lun;       /* reserved (word 126) */
@@ -234,7 +225,9 @@ typedef struct hd_driveid {
        unsigned short  words130_155[26];/* reserved vendor words 130-155 */
        unsigned short  word156;
        unsigned short  words157_159[3];/* reserved vendor words 157-159 */
-       unsigned short  words160_255[95];/* reserved words 160-255 */
+       unsigned short  words160_162[3];/* reserved words 160-162 */
+       unsigned short  cf_advanced_caps;
+       unsigned short  words164_255[92];/* reserved words 164-255 */
 } hd_driveid_t;