Module Name:    src
Committed By:   simonb
Date:           Sat Jun 20 02:01:56 UTC 2020

Modified Files:
        src/sys/arch/evbmips/cavium: octeon_uboot.h

Log Message:
Add the structure of the CVMX boot descriptor.
Extend the U-boot bootinfo descriptor with latest members, add a few comments.
Add a few extra board type IDs.


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 src/sys/arch/evbmips/cavium/octeon_uboot.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/evbmips/cavium/octeon_uboot.h
diff -u src/sys/arch/evbmips/cavium/octeon_uboot.h:1.2 src/sys/arch/evbmips/cavium/octeon_uboot.h:1.3
--- src/sys/arch/evbmips/cavium/octeon_uboot.h:1.2	Fri Jun  5 07:17:38 2020
+++ src/sys/arch/evbmips/cavium/octeon_uboot.h	Sat Jun 20 02:01:56 2020
@@ -1,12 +1,49 @@
-/*	$NetBSD: octeon_uboot.h,v 1.2 2020/06/05 07:17:38 simonb Exp $	*/
+/*	$NetBSD: octeon_uboot.h,v 1.3 2020/06/20 02:01:56 simonb Exp $	*/
 
 #ifndef _EVBMIPS_OCTEON_UBOOT_H_
-#define _EVBMIPS_OCTEON_UBOOT_H_
+#define	_EVBMIPS_OCTEON_UBOOT_H_
 
-#define OCTEON_BTINFO_PADDR_OFFSET	392
-#define OCTEON_BTINFO_SERIAL_LEN	20
-#define OCTEON_BTINFO_MAJOR_VERSION	1
-#define OCTEON_BTINFO_MINOR_VERSION	2
+#define	OCTEON_BTDESC_ARGV_MAX		64
+#define	OCTEON_BTDESC_SERIAL_LEN	20
+#define	OCTEON_BTDESC_DEP2_LEN		6
+
+#define	OCTEON_BTINFO_PADDR_OFFSET	392
+#define	OCTEON_BTINFO_SERIAL_LEN	20
+#define	OCTEON_BTINFO_MAJOR_VERSION	1
+#define	OCTEON_BTINFO_MINOR_VERSION	2
+
+struct octeon_btdesc {
+	uint32_t	obt_desc_ver;
+	uint32_t	obt_desc_size;
+	uint64_t	obt_stack_top;			/* deprecated */
+	uint64_t	obt_heap_start;
+	uint64_t	obt_heap_end;
+	uint64_t	obt_deprecated17;
+	uint64_t	obt_deprecated16;
+	uint32_t	obt_deprecated18;
+	uint32_t	obt_deprecated15;
+	uint32_t	obt_deprecated14;
+	uint32_t	obt_argc;
+	uint32_t	obt_argv[OCTEON_BTDESC_ARGV_MAX];
+	uint32_t	obt_flags;			/* deprecated */
+	uint32_t	obt_core_mask;			/* deprecated */
+	uint32_t	obt_dram_size;			/* deprecated */
+	uint32_t	obt_phy_mem_desc_addr;		/* deprecated */
+	uint32_t	obt_debugger_flag_addr;
+	uint32_t	obt_eclock;
+	uint32_t	obt_deprecated10;
+	uint32_t	obt_deprecated9;
+	uint16_t	obt_deprecated8;
+	uint8_t		obt_deprecated7;
+	uint8_t		obt_deprecated6;
+	uint16_t	obt_deprecated5;
+	uint8_t		obt_deprecated4;
+	uint8_t		obt_deprecated3;
+	uint8_t		obt_deprecated2[OCTEON_BTDESC_SERIAL_LEN];
+	uint8_t		obt_deprecated1[OCTEON_BTDESC_DEP2_LEN];
+	uint8_t		obt_deprecated0;
+	uint64_t	obt_boot_info_addr;
+};
 
 struct octeon_btinfo {
 	uint32_t	obt_major_version;
@@ -20,12 +57,12 @@ struct octeon_btinfo {
 	uint32_t	obt_ebase_addr;
 	uint32_t	obt_stack_size;
 	uint32_t	obt_flags;
-	uint32_t	obt_core_mask;
+	uint32_t	obt_core_mask;			/* deprecated in v4 */
 	uint32_t	obt_dram_size;			/* in MB */
 	uint32_t	obt_phy_mem_desc_addr;
 	uint32_t	obt_dbg_flags_base_addr;
-	uint32_t	obt_eclock_hz;
-	uint32_t	obt_dclock_hz;
+	uint32_t	obt_eclock_hz;			/* CPU clock speed */
+	uint32_t	obt_dclock_hz;			/* DRAM clock speed */
 	uint32_t	obt_reserved0;
 
 	uint16_t	obt_board_type;
@@ -42,18 +79,40 @@ struct octeon_btinfo {
 	/* version minor 1 or newer */
 	uint64_t	obt_cf_common_base_addr;	/* paddr */
 	uint64_t	obt_cf_attr_base_addr;		/* paddr */
-	uint64_t	obt_led_display_base_addr;
+	uint64_t	obt_led_display_base_addr;	/* deprecated */
 
 	/* version minor 2 or newer */
-	uint32_t	obt_dfa_ref_clock_hz;
+	uint32_t	obt_dfa_ref_clock_hz;		/* DFA ref clock */
 	uint32_t	obt_config_flags;
 
+	/* version minor 3 or newer */
+	uint64_t	obt_fdt_addr;			/* FDT structure */
+
+	/* version minor 4 or newer */
+	uint64_t	obt_ext_core_mask;		/* 64-bit core mask */
 };
 
+extern struct octeon_btdesc octeon_btdesc;
 extern struct octeon_btinfo octeon_btinfo;
 
+#define	OCTEON_SUPPORTED_DESCRIPTOR_VERSION	7
+
 /* obt_board_type */
-#define BOARD_TYPE_UBIQUITI_E100	20002
+#define	BOARD_TYPE_UBIQUITI_E100	20002
+#define	BOARD_TYPE_UBIQUITI_E120		20004
+#define	BOARD_TYPE_UBIQUITI_E200		20003
+#define	BOARD_TYPE_UBIQUITI_E220		20005
+#define	BOARD_TYPE_UBIQUITI_E220		20005
+#define	BOARD_TYPE_UBIQUITI_E1000		20010
+#define	BOARD_TYPE_UBIQUITI_E300		20300
+
+/* obt_config_flags */
+#define	CONFIG_FLAGS_PCI_HOST			__BIT(0)
+#define	CONFIG_FLAGS_PCI_TARGET			__BIT(1)
+#define	CONFIG_FLAGS_DEBUG			__BIT(2)
+#define	CONFIG_FLAGS_NO_MAGIC			__BIT(3)
+#define	CONFIG_FLAGS_OVERSIZE_TLB_MAPPING	__BIT(4)
+#define	CONFIG_FLAGS_BREAK			__BIT(5)
 
 
 struct octeon_bootmem_desc {

Reply via email to