]> git.sur5r.net Git - u-boot/blobdiff - include/efi_api.h
configs: Add DDR Kconfig support for Arria 10
[u-boot] / include / efi_api.h
index 433594f339c8b72bf2dbd749b4c3f2f0b4a17f7a..64c27e494bcdf38341510b2d0a5b83d38e9a5a57 100644 (file)
@@ -107,7 +107,7 @@ struct efi_boot_services {
        efi_status_t (EFIAPI *load_image)(bool boot_policiy,
                        efi_handle_t parent_image,
                        struct efi_device_path *file_path, void *source_buffer,
-                       unsigned long source_size, efi_handle_t *image);
+                       efi_uintn_t source_size, efi_handle_t *image);
        efi_status_t (EFIAPI *start_image)(efi_handle_t handle,
                                           unsigned long *exitdata_size,
                                           s16 **exitdata);
@@ -180,7 +180,8 @@ struct efi_boot_services {
 enum efi_reset_type {
        EFI_RESET_COLD = 0,
        EFI_RESET_WARM = 1,
-       EFI_RESET_SHUTDOWN = 2
+       EFI_RESET_SHUTDOWN = 2,
+       EFI_RESET_PLATFORM_SPECIFIC = 3,
 };
 
 /* EFI Runtime Services table */
@@ -317,8 +318,8 @@ struct efi_loaded_image {
        u32 revision;
        void *parent_handle;
        struct efi_system_table *system_table;
-       void *device_handle;
-       void *file_path;
+       efi_handle_t device_handle;
+       struct efi_device_path *file_path;
        void *reserved;
        u32 load_options_size;
        void *load_options;
@@ -330,6 +331,8 @@ struct efi_loaded_image {
 
        /* Below are efi loader private fields */
 #ifdef CONFIG_EFI_LOADER
+       void *reloc_base;
+       aligned_u64 reloc_size;
        efi_status_t exit_status;
        struct jmp_buf_data exit_jmp;
 #endif
@@ -340,6 +343,7 @@ struct efi_loaded_image {
                 0x8e, 0x39, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b )
 
 #define DEVICE_PATH_TYPE_END                   0x7f
+#  define DEVICE_PATH_SUB_TYPE_INSTANCE_END    0x01
 #  define DEVICE_PATH_SUB_TYPE_END             0xff
 
 struct efi_device_path {
@@ -665,6 +669,13 @@ struct efi_gop_mode
        unsigned long fb_size;
 };
 
+struct efi_gop_pixel {
+       u8 blue;
+       u8 green;
+       u8 red;
+       u8 reserved;
+};
+
 #define EFI_BLT_VIDEO_FILL             0
 #define EFI_BLT_VIDEO_TO_BLT_BUFFER    1
 #define EFI_BLT_BUFFER_TO_VIDEO                2
@@ -676,7 +687,8 @@ struct efi_gop
                                          efi_uintn_t *size_of_info,
                                          struct efi_gop_mode_info **info);
        efi_status_t (EFIAPI *set_mode)(struct efi_gop *this, u32 mode_number);
-       efi_status_t (EFIAPI *blt)(struct efi_gop *this, void *buffer,
+       efi_status_t (EFIAPI *blt)(struct efi_gop *this,
+                                  struct efi_gop_pixel *buffer,
                                   u32 operation, efi_uintn_t sx,
                                   efi_uintn_t sy, efi_uintn_t dx,
                                   efi_uintn_t dy, efi_uintn_t width,
@@ -694,7 +706,7 @@ struct efi_mac_address {
 
 struct efi_ip_address {
        u8 ip_addr[16];
-};
+} __attribute__((aligned(4)));
 
 enum efi_simple_network_state {
        EFI_NETWORK_STOPPED,
@@ -788,7 +800,28 @@ struct efi_pxe_packet {
 
 struct efi_pxe_mode
 {
-       u8 unused[52];
+       u8 started;
+       u8 ipv6_available;
+       u8 ipv6_supported;
+       u8 using_ipv6;
+       u8 bis_supported;
+       u8 bis_detected;
+       u8 auto_arp;
+       u8 send_guid;
+       u8 dhcp_discover_valid;
+       u8 dhcp_ack_received;
+       u8 proxy_offer_received;
+       u8 pxe_discover_valid;
+       u8 pxe_reply_received;
+       u8 pxe_bis_reply_received;
+       u8 icmp_error_received;
+       u8 tftp_error_received;
+       u8 make_callbacks;
+       u8 ttl;
+       u8 tos;
+       u8 pad;
+       struct efi_ip_address station_ip;
+       struct efi_ip_address subnet_mask;
        struct efi_pxe_packet dhcp_discover;
        struct efi_pxe_packet dhcp_ack;
        struct efi_pxe_packet proxy_offer;
@@ -826,17 +859,19 @@ struct efi_file_handle {
        efi_status_t (EFIAPI *close)(struct efi_file_handle *file);
        efi_status_t (EFIAPI *delete)(struct efi_file_handle *file);
        efi_status_t (EFIAPI *read)(struct efi_file_handle *file,
-                       u64 *buffer_size, void *buffer);
+                       efi_uintn_t *buffer_size, void *buffer);
        efi_status_t (EFIAPI *write)(struct efi_file_handle *file,
-                       u64 *buffer_size, void *buffer);
+                       efi_uintn_t *buffer_size, void *buffer);
        efi_status_t (EFIAPI *getpos)(struct efi_file_handle *file,
-                       u64 *pos);
+                       efi_uintn_t *pos);
        efi_status_t (EFIAPI *setpos)(struct efi_file_handle *file,
-                       u64 pos);
+                       efi_uintn_t pos);
        efi_status_t (EFIAPI *getinfo)(struct efi_file_handle *file,
-                       efi_guid_t *info_type, u64 *buffer_size, void *buffer);
+                       const efi_guid_t *info_type, efi_uintn_t *buffer_size,
+                       void *buffer);
        efi_status_t (EFIAPI *setinfo)(struct efi_file_handle *file,
-                       efi_guid_t *info_type, u64 buffer_size, void *buffer);
+                       const efi_guid_t *info_type, efi_uintn_t buffer_size,
+                       void *buffer);
        efi_status_t (EFIAPI *flush)(struct efi_file_handle *file);
 };
 
@@ -855,6 +890,10 @@ struct efi_simple_file_system_protocol {
        EFI_GUID(0x9576e92, 0x6d3f, 0x11d2, \
                 0x8e, 0x39, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b)
 
+#define EFI_FILE_SYSTEM_INFO_GUID \
+       EFI_GUID(0x09576e93, 0x6d3f, 0x11d2, \
+                0x8e, 0x39, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b)
+
 #define EFI_FILE_MODE_READ     0x0000000000000001
 #define EFI_FILE_MODE_WRITE    0x0000000000000002
 #define EFI_FILE_MODE_CREATE   0x8000000000000000
@@ -878,6 +917,15 @@ struct efi_file_info {
        s16 file_name[0];
 };
 
+struct efi_file_system_info {
+       u64 size;
+       u8 read_only;
+       u64 volume_size;
+       u64 free_space;
+       u32 block_size;
+       u16 volume_label[0];
+};
+
 #define EFI_DRIVER_BINDING_PROTOCOL_GUID \
        EFI_GUID(0x18a031ab, 0xb443, 0x4d1a,\
                 0xa5, 0xc0, 0x0c, 0x09, 0x26, 0x1e, 0x9f, 0x71)