1 1.2 simonb /* $NetBSD: octeon_uboot.h,v 1.2 2020/06/05 07:17:38 simonb Exp $ */ 2 1.1 hikaru 3 1.1 hikaru #ifndef _EVBMIPS_OCTEON_UBOOT_H_ 4 1.1 hikaru #define _EVBMIPS_OCTEON_UBOOT_H_ 5 1.1 hikaru 6 1.1 hikaru #define OCTEON_BTINFO_PADDR_OFFSET 392 7 1.1 hikaru #define OCTEON_BTINFO_SERIAL_LEN 20 8 1.1 hikaru #define OCTEON_BTINFO_MAJOR_VERSION 1 9 1.1 hikaru #define OCTEON_BTINFO_MINOR_VERSION 2 10 1.1 hikaru 11 1.1 hikaru struct octeon_btinfo { 12 1.1 hikaru uint32_t obt_major_version; 13 1.1 hikaru uint32_t obt_minor_version; 14 1.1 hikaru 15 1.1 hikaru uint64_t obt_stack_top; 16 1.1 hikaru uint64_t obt_heap_base; 17 1.1 hikaru uint64_t obt_heap_end; 18 1.1 hikaru uint64_t obt_desc_vaddr; 19 1.1 hikaru 20 1.1 hikaru uint32_t obt_ebase_addr; 21 1.1 hikaru uint32_t obt_stack_size; 22 1.1 hikaru uint32_t obt_flags; 23 1.1 hikaru uint32_t obt_core_mask; 24 1.1 hikaru uint32_t obt_dram_size; /* in MB */ 25 1.1 hikaru uint32_t obt_phy_mem_desc_addr; 26 1.1 hikaru uint32_t obt_dbg_flags_base_addr; 27 1.1 hikaru uint32_t obt_eclock_hz; 28 1.1 hikaru uint32_t obt_dclock_hz; 29 1.1 hikaru uint32_t obt_reserved0; 30 1.1 hikaru 31 1.1 hikaru uint16_t obt_board_type; 32 1.1 hikaru uint8_t obt_board_rev_major; 33 1.1 hikaru uint8_t obt_board_rev_minor; 34 1.1 hikaru uint16_t obt_reserved1; 35 1.1 hikaru uint8_t obt_reserved2; 36 1.1 hikaru uint8_t obt_reserved3; 37 1.1 hikaru char obt_board_serial_number[OCTEON_BTINFO_SERIAL_LEN]; 38 1.1 hikaru 39 1.1 hikaru uint8_t obt_mac_addr_base[6]; 40 1.1 hikaru uint8_t obt_mac_addr_count; 41 1.1 hikaru 42 1.1 hikaru /* version minor 1 or newer */ 43 1.1 hikaru uint64_t obt_cf_common_base_addr; /* paddr */ 44 1.1 hikaru uint64_t obt_cf_attr_base_addr; /* paddr */ 45 1.1 hikaru uint64_t obt_led_display_base_addr; 46 1.1 hikaru 47 1.1 hikaru /* version minor 2 or newer */ 48 1.1 hikaru uint32_t obt_dfa_ref_clock_hz; 49 1.1 hikaru uint32_t obt_config_flags; 50 1.1 hikaru 51 1.1 hikaru }; 52 1.1 hikaru 53 1.1 hikaru extern struct octeon_btinfo octeon_btinfo; 54 1.1 hikaru 55 1.1 hikaru /* obt_board_type */ 56 1.1 hikaru #define BOARD_TYPE_UBIQUITI_E100 20002 57 1.1 hikaru 58 1.2 simonb 59 1.2 simonb struct octeon_bootmem_desc { 60 1.2 simonb #if BYTE_ORDER == BIG_ENDIAN 61 1.2 simonb uint32_t bmd_lock; 62 1.2 simonb uint32_t bmd_flags; 63 1.2 simonb uint64_t bmd_head_addr; 64 1.2 simonb 65 1.2 simonb uint32_t bmd_major_version; 66 1.2 simonb uint32_t bmd_minor_version; 67 1.2 simonb uint64_t bmd_app_data_addr; 68 1.2 simonb uint64_t bmd_app_data_size; 69 1.2 simonb 70 1.2 simonb uint32_t bmd_named_block_num_blocks; 71 1.2 simonb uint32_t bmd_named_block_name_len; 72 1.2 simonb uint64_t bmd_named_block_array_addr; 73 1.2 simonb #endif 74 1.2 simonb #if BYTE_ORDER == LITTLE_ENDIAN 75 1.2 simonb uint32_t bmd_flags; 76 1.2 simonb uint32_t bmd_lock; 77 1.2 simonb uint64_t bmd_head_addr; 78 1.2 simonb 79 1.2 simonb uint32_t bmd_minor_version; 80 1.2 simonb uint32_t bmd_major_version; 81 1.2 simonb uint64_t bmd_app_data_addr; 82 1.2 simonb uint64_t bmd_app_data_size; 83 1.2 simonb 84 1.2 simonb uint32_t bmd_named_block_name_len; 85 1.2 simonb uint32_t bmd_named_block_num_blocks; 86 1.2 simonb uint64_t bmd_named_block_array_addr; 87 1.2 simonb #endif 88 1.2 simonb }; 89 1.2 simonb 90 1.2 simonb struct octeon_bootmem_block_header { 91 1.2 simonb uint64_t bbh_next_block_addr; 92 1.2 simonb uint64_t bbh_size; 93 1.2 simonb }; 94 1.2 simonb 95 1.1 hikaru #endif /* _EVBMIPS_OCTEON_UBOOT_H_ */ 96