diff options
author | Paolo Bonzini <pbonzini@redhat.com> | 2016-09-06 15:05:08 +0200 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2016-09-06 15:57:15 +0200 |
commit | 14b459a6f9c9c02a0901a8a3de5e7c706305ffdd (patch) | |
tree | 0cdc0dc8eff9dcc73c8b1d40cbe635342b6738c3 /include/fw_cfg.h | |
parent | 96dbb2c0a24fdc6bbe4d8d834f0b879e01fdcae3 (diff) | |
download | qboot-14b459a6f9c9c02a0901a8a3de5e7c706305ffdd.zip qboot-14b459a6f9c9c02a0901a8a3de5e7c706305ffdd.tar.gz qboot-14b459a6f9c9c02a0901a8a3de5e7c706305ffdd.tar.bz2 |
use fw_cfg DMA for fw_cfg_read_entry
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'include/fw_cfg.h')
-rw-r--r-- | include/fw_cfg.h | 31 |
1 files changed, 16 insertions, 15 deletions
diff --git a/include/fw_cfg.h b/include/fw_cfg.h index 46fa869..52ed4e3 100644 --- a/include/fw_cfg.h +++ b/include/fw_cfg.h @@ -36,8 +36,18 @@ #define FW_CFG_IRQ0_OVERRIDE (FW_CFG_ARCH_LOCAL + 2) #define FW_CFG_E820_TABLE (FW_CFG_ARCH_LOCAL + 3) -#define FW_CFG_CTL 0x510 -#define FW_CFG_DATA 0x511 +#define FW_CFG_VERSION 0x01 +#define FW_CFG_VERSION_DMA 0x02 + +#define FW_CFG_DMA_CTL_ERROR 0x01 +#define FW_CFG_DMA_CTL_READ 0x02 +#define FW_CFG_DMA_CTL_SKIP 0x04 +#define FW_CFG_DMA_CTL_SELECT 0x08 + +#define FW_CFG_CTL 0x510 +#define FW_CFG_DATA 0x511 +#define FW_CFG_DMA_ADDR_HIGH 0x514 +#define FW_CFG_DMA_ADDR_LOW 0x518 #include "ioport.h" @@ -102,23 +112,14 @@ static inline void fw_cfg_skip(int len) inb(FW_CFG_DATA); } -static inline void -fw_cfg_read_entry(int e, void *buf, int len) -{ - fw_cfg_select(e); - fw_cfg_read(buf, len); -} - void fw_cfg_setup(void); int fw_cfg_file_id(char *name); uint32_t fw_cfg_file_size(int id); void fw_cfg_file_select(int id); -static inline void -fw_cfg_read_file(int id, void *buf, int len) -{ - fw_cfg_file_select(id); - fw_cfg_read(buf, len); -} +void fw_cfg_read(void *buf, int len); +void fw_cfg_read_entry(int e, void *buf, int len); +void fw_cfg_dma(int control, void *buf, int len); +void fw_cfg_read_file(int e, void *buf, int len); #endif |