arch/mips/include/asm/octeon/cvmx-sysinfo.h

Source file repositories/reference/linux-study-clean/arch/mips/include/asm/octeon/cvmx-sysinfo.h

File Facts

System
Linux kernel
Corpus path
arch/mips/include/asm/octeon/cvmx-sysinfo.h
Extension
.h
Size
4043 bytes
Lines
126
Domain
Architecture Layer
Bucket
arch/mips
Inferred role
Architecture Layer: implementation source
Status
source implementation candidate

Why This File Exists

CPU and platform-specific kernel glue: boot entry, traps, syscall entry, interrupts, page tables, context switch, and low-level barriers.

Dependency Surface

Detected Declarations

Annotated Snippet

struct cvmx_sysinfo {
	/* System wide variables */
	/* installed DRAM in system, in bytes */
	uint64_t system_dram_size;

	/* ptr to memory descriptor block */
	uint64_t phy_mem_desc_addr;

	/* Application image specific variables */
	/* stack top address (virtual) */
	uint64_t stack_top;
	/* heap base address (virtual) */
	uint64_t heap_base;
	/* stack size in bytes */
	uint32_t stack_size;
	/* heap size in bytes */
	uint32_t heap_size;
	/* coremask defining cores running application */
	struct cvmx_coremask core_mask;
	/* Deprecated, use cvmx_coremask_first_core() to select init core */
	uint32_t init_core;

	/* exception base address, as set by bootloader */
	uint64_t exception_base_addr;

	/* cpu clock speed in hz */
	uint32_t cpu_clock_hz;

	/* dram data rate in hz (data rate = 2 * clock rate */
	uint32_t dram_data_rate_hz;


	uint16_t board_type;
	uint8_t board_rev_major;
	uint8_t board_rev_minor;
	uint8_t mac_addr_base[6];
	uint8_t mac_addr_count;
	char board_serial_number[OCTEON_SERIAL_LEN];
	/*
	 * Several boards support compact flash on the Octeon boot
	 * bus.	 The CF memory spaces may be mapped to different
	 * addresses on different boards.  These values will be 0 if
	 * CF is not present.  Note that these addresses are physical
	 * addresses, and it is up to the application to use the
	 * proper addressing mode (XKPHYS, KSEG0, etc.)
	 */
	uint64_t compact_flash_common_base_addr;
	uint64_t compact_flash_attribute_base_addr;
	/*
	 * Base address of the LED display (as on EBT3000 board) This
	 * will be 0 if LED display not present.  Note that this
	 * address is a physical address, and it is up to the
	 * application to use the proper addressing mode (XKPHYS,
	 * KSEG0, etc.)
	 */
	uint64_t led_display_base_addr;
	/* DFA reference clock in hz (if applicable)*/
	uint32_t dfa_ref_clock_hz;
	/* configuration flags from bootloader */
	uint32_t bootloader_config_flags;

	/* Uart number used for console */
	uint8_t console_uart_num;
};

/**
 * This function returns the system/board information as obtained
 * by the bootloader.
 *
 *
 * Returns  Pointer to the boot information structure
 *
 */

extern struct cvmx_sysinfo *cvmx_sysinfo_get(void);

#endif /* __CVMX_SYSINFO_H__ */

Annotation

Implementation Notes