summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/bedbug/bedbug.h40
-rw-r--r--include/bedbug/ppc.h408
-rw-r--r--include/bedbug/regs.h400
-rw-r--r--include/bedbug/tables.h601
-rw-r--r--include/bedbug/type.h29
-rw-r--r--include/bloblist.h184
-rw-r--r--include/configs/am335x_evm.h5
-rw-r--r--include/configs/clearfog.h2
-rw-r--r--include/configs/db-88f6720.h15
-rw-r--r--include/configs/db-88f6820-amc.h2
-rw-r--r--include/configs/db-88f6820-gp.h2
-rw-r--r--include/configs/db-mv784mp-gp.h2
-rw-r--r--include/configs/ds414.h2
-rw-r--r--include/configs/helios4.h2
-rw-r--r--include/configs/maxbcm.h2
-rw-r--r--include/configs/qemu-arm.h32
-rw-r--r--include/configs/theadorable.h2
-rw-r--r--include/configs/ti_armv7_common.h1
-rw-r--r--include/configs/turris_omnia.h2
-rw-r--r--include/configs/x530.h2
-rw-r--r--include/dm/device.h209
-rw-r--r--include/dm/devres.h14
-rw-r--r--include/dm/fdtaddr.h25
-rw-r--r--include/dm/lists.h8
-rw-r--r--include/dm/of.h13
-rw-r--r--include/dm/of_access.h139
-rw-r--r--include/dm/of_addr.h33
-rw-r--r--include/dm/of_extra.h48
-rw-r--r--include/dm/ofnode.h330
-rw-r--r--include/dm/platdata.h4
-rw-r--r--include/dm/read.h161
-rw-r--r--include/dm/root.h20
-rw-r--r--include/dm/uclass.h83
-rw-r--r--include/dt-bindings/net/ti-dp83869.h60
-rw-r--r--include/dt-bindings/power/owl-s700-powergate.h19
-rw-r--r--include/efi.h64
-rw-r--r--include/efi_loader.h2
-rw-r--r--include/fdtdec.h6
-rw-r--r--include/fsl_esdhc_imx.h14
-rw-r--r--include/fsl_memac.h1
-rw-r--r--include/gt64120.h12
-rw-r--r--include/init.h10
-rw-r--r--include/kgdb.h11
-rw-r--r--include/linux/stddef.h8
-rw-r--r--include/miiphy.h8
-rw-r--r--include/mmc.h5
-rw-r--r--include/msc01.h9
-rw-r--r--include/os.h2
-rw-r--r--include/part.h2
-rw-r--r--include/pci.h66
-rw-r--r--include/u-boot/blake2.h94
-rw-r--r--include/vsprintf.h8
52 files changed, 1083 insertions, 2140 deletions
diff --git a/include/bedbug/bedbug.h b/include/bedbug/bedbug.h
deleted file mode 100644
index 0c5d687f83e..00000000000
--- a/include/bedbug/bedbug.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/* $Id$ */
-
-#ifndef _BEDBUG_H
-#define _BEDBUG_H
-
-#ifndef NULL
-#define NULL 0
-#endif
-
-#define _USE_PROTOTYPES
-
-#ifndef isblank
-#define isblank(c) isspace((int)(c))
-#endif
-
-#ifndef __P
-#if defined(_USE_PROTOTYPES) && (defined(__STDC__) || defined(__cplusplus))
-#define __P(protos) protos /* full-blown ANSI C */
-#else
-#define __P(protos) () /* traditional C preprocessor */
-#endif
-#endif
-
-#endif /* _BEDBUG_H */
-
-
-/*
- * Copyright (c) 2001 William L. Pitts
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms are freely
- * permitted provided that the above copyright notice and this
- * paragraph and the following disclaimer are duplicated in all
- * such forms.
- *
- * This software is provided "AS IS" and without any express or
- * implied warranties, including, without limitation, the implied
- * warranties of merchantability and fitness for a particular
- * purpose.
- */
diff --git a/include/bedbug/ppc.h b/include/bedbug/ppc.h
deleted file mode 100644
index 76d86fdbf76..00000000000
--- a/include/bedbug/ppc.h
+++ /dev/null
@@ -1,408 +0,0 @@
-/* $Id$ */
-
-#ifndef _PPC_H
-#define _PPC_H
-
-/*======================================================================
- *
- * OPERANDS
- *
- *======================================================================*/
-
-enum OP_FIELD {
- O_AA = 1, O_BD, O_BI, O_BO, O_crbD, O_crbA, O_crbB, O_CRM, O_d, O_frC, O_frD,
- O_frS, O_IMM, O_LI, O_LK, O_MB, O_ME, O_NB, O_OE, O_rA, O_rB, O_Rc, O_rD,
- O_rS, O_SH, O_SIMM, O_SR, O_TO, O_UIMM, O_crfD, O_crfS, O_L, O_spr, O_tbr,
- O_cr2 };
-
-struct operand {
- enum OP_FIELD field; /* The operand identifier from the
- enum above */
-
- char * name; /* Symbolic name of this operand */
-
- unsigned int bits; /* The number of bits used by this
- operand */
-
- unsigned int shift; /* How far to the right the operand
- should be shifted so that it is
- aligned at the beginning of the
- word */
-
- unsigned int hint; /* A bitwise-inclusive-OR of the
- values shown below. These are used
- tell the disassembler how to print
- this operand */
-};
-
-/* Values for operand hint */
-#define OH_SILENT 0x01 /* dont print this operand */
-#define OH_ADDR 0x02 /* this operand is an address */
-#define OH_REG 0x04 /* this operand is a register */
-#define OH_SPR 0x08 /* this operand is an SPR */
-#define OH_TBR 0x10 /* this operand is a TBR */
-#define OH_OFFSET 0x20 /* this operand is an offset */
-#define OH_LITERAL 0x40 /* a literal string */
-
-
-/*======================================================================
- *
- * OPCODES
- *
- *======================================================================*/
-
-/* From the MPCxxx instruction set documentation, all instructions are
- * 32 bits long and word aligned. Bits 0-5 always specify the primary
- * opcode. Many instructions also have an extended opcode.
- */
-
-#define GET_OPCD(i) (((unsigned long)(i) >> 26) & 0x3f)
-#define MAKE_OPCODE(i) ((((unsigned long)(i)) & 0x3f) << 26)
-
-/* The MPC860 User's Manual, Appendix D.4 contains the definitions of the
- * instruction forms
- */
-
-
-/*-------------------------------------------------
- * I-Form Instructions:
- * bX
- *-------------------------------------------------
- * OPCD | LI |AA|LK
- *-------------------------------------------------*/
-
-#define I_OPCODE(i,aa,lk) (MAKE_OPCODE(i) | (((aa) & 0x1) << 1) | ((lk) & 0x1))
-#define I_MASK I_OPCODE(0x3f,0x1,0x1)
-
-
-/*-------------------------------------------------
- * B-Form Instructions:
- * bcX
- *-------------------------------------------------
- * OPCD | BO | BI | BD |AA|LK
- *-------------------------------------------------*/
-
-#define B_OPCODE(i,aa,lk) (MAKE_OPCODE(i) | (((aa) & 0x1) << 1) | ((lk) & 0x1))
-#define B_MASK B_OPCODE(0x3f,0x1,0x1)
-
-
-/*-------------------------------------------------
- * SC-Form Instructions:
- * sc
- *-------------------------------------------------
- * OPCD | 00000 | 00000 | 00000000000000 |1|0
- *-------------------------------------------------*/
-
-#define SC_OPCODE(i) (MAKE_OPCODE(i) | 0x2)
-#define SC_MASK SC_OPCODE(0x3f)
-
-
-/*-------------------------------------------------
- * D-Form Instructions:
- * addi addic addic. addis andi. andis. cmpi cmpli
- * lbz lbzu lha lhau lhz lhzu lmw lwz lwzu mulli
- * ori oris stb stbu sth sthu stmw stw stwu subfic
- * twi xori xoris
- *-------------------------------------------------
- * OPCD | D | A | d
- * OPCD | D | A | SIMM
- * OPCD | S | A | d
- * OPCD | S | A | UIMM
- * OPCD |crfD|0|L| A | SIMM
- * OPCD |crfD|0|L| A | UIMM
- * OPCD | TO | A | SIMM
- *-------------------------------------------------*/
-
-#define D_OPCODE(i) MAKE_OPCODE(i)
-#define D_MASK MAKE_OPCODE(0x3f)
-
-
-/*-------------------------------------------------
- * DS-Form Instructions:
- * (none supported by MPC860)
- *-------------------------------------------------
- * OPCD | D | A | ds |XO
- * OPCD | S | A | ds |XO
- *-------------------------------------------------*/
-
-#define DS_OPCODE(i,xo) (MAKE_OPCODE(i) | ((xo) & 0x3))
-#define DS_MASK DS_OPCODE(0x3f,0x1)
-
-
-/*---------------------------------------------------
- * X-Form Instructions:
- * andX andcX cmp cmpl cntlzwX dcbf dcbi dcbst dcbt
- * dcbtst dcbz eciwx ecowx eieio eqvX extsbX extshX
- * icbi lbzux lbxz lhaux lhax lhbrx lhzux lhxz lswi
- * lswx lwarx lwbrx lwzux lwxz mcrfs mcrxr mfcr
- * mfmsr mfsr mfsrin mtmsr mtsr mtsrin nandX norX
- * orX orcX slwX srawX srawiX srwX stbux stbx
- * sthbrx sthuxsthx stswi stswx stwbrx stwcx. stwux
- * stwx sync tlbie tlbld tlbli tlbsync tw xorX
- *---------------------------------------------------
- * OPCD | D | A | B | XO |0
- * OPCD | D | A | NB | XO |0
- * OPCD | D | 00000 | B | XO |0
- * OPCD | D | 00000 | 00000 | XO |0
- * OPCD | D |0| SR | 00000 | XO |0
- * OPCD | S | A | B | XO |Rc
- * OPCD | S | A | B | XO |1
- * OPCD | S | A | B | XO |0
- * OPCD | S | A | NB | XO |0
- * OPCD | S | A | 00000 | XO |Rc
- * OPCD | S | 00000 | B | XO |0
- * OPCD | S | 00000 | 00000 | XO |0
- * OPCD | S |0| SR | 00000 | XO |0
- * OPCD | S | A | SH | XO |Rc
- * OPCD |crfD|0|L| A | SH | XO |0
- * OPCD |crfD |00| A | B | XO |0
- * OPCD |crfD |00|crfS |00| 00000 | XO |0
- * OPCD |crfD |00| 00000 | 00000 | XO |0
- * OPCD |crfD |00| 00000 | IMM |0| XO |Rc
- * OPCD | TO | A | B | XO |0
- * OPCD | D | 00000 | B | XO |Rc
- * OPCD | D | 00000 | 00000 | XO |Rc
- * OPCD | crbD | 00000 | 00000 | XO |Rc
- * OPCD | 00000 | A | B | XO |0
- * OPCD | 00000 | 00000 | B | XO |0
- * OPCD | 00000 | 00000 | 00000 | XO |0
- *---------------------------------------------------*/
-
-#define X_OPCODE(i,xo,rc) (MAKE_OPCODE(i) | (((xo) & 0x3ff) << 1) | \
- ((rc) & 0x1))
-#define X_MASK X_OPCODE(0x3f,0x3ff,0x1)
-
-
-/*---------------------------------------------------
- * XL-Form Instructions:
- * bcctrX bclrX crand crandc creqv crnand crnor cror
- * croc crxorisync mcrf rfi
- *---------------------------------------------------
- * OPCD | BO | BI | 00000 | XO |LK
- * OPCD | crbD | crbA | crbB | XO |0
- * OPCD |crfD |00|crfS |00| 00000 | XO |0
- * OPCD | 00000 | 00000 | 00000 | XO |0
- *---------------------------------------------------*/
-
-#define XL_OPCODE(i,xo,lk) (MAKE_OPCODE(i) | (((xo) & 0x3ff) << 1) | \
- ((lk) & 0x1))
-#define XL_MASK XL_OPCODE(0x3f,0x3ff,0x1)
-
-
-/*---------------------------------------------------
- * XFX-Form Instructions:
- * mfspr mftb mtcrf mtspr
- *---------------------------------------------------
- * OPCD | D | spr | XO |0
- * OPCD | D |0| CRM |0| XO |0
- * OPCD | S | spr | XO |0
- * OPCD | D | tbr | XO |0
- *---------------------------------------------------*/
-
-#define XFX_OPCODE(i,xo,rc) (MAKE_OPCODE(i) | (((xo) & 0x3ff) << 1) | \
- ((rc) & 0x1))
-#define XFX_MASK XFX_OPCODE(0x3f,0x3ff,0x1)
-
-
-/*---------------------------------------------------
- * XFL-Form Instructions:
- * (none supported by MPC860)
- *---------------------------------------------------
- * OPCD |0| FM |0| B | XO |0
- *---------------------------------------------------*/
-
-#define XFL_OPCODE(i,xo,rc) (MAKE_OPCODE(i) | (((xo) & 0x3ff) << 1) | \
- ((rc) & 0x1))
-#define XFL_MASK XFL_OPCODE(0x3f,0x3ff,0x1)
-
-
-/*---------------------------------------------------
- * XS-Form Instructions:
- * (none supported by MPC860)
- *---------------------------------------------------
- * OPCD | S | A | sh | XO |sh|LK
- *---------------------------------------------------*/
-
-#define XS_OPCODE(i,xo,rc) (MAKE_OPCODE(i) | (((xo) & 0x1ff) << 2) | \
- ((rc) & 0x1))
-#define XS_MASK XS_OPCODE(0x3f,0x1ff,0x1)
-
-
-/*---------------------------------------------------
- * XO-Form Instructions:
- * addX addcXaddeX addmeX addzeX divwX divwuX mulhwX
- * mulhwuX mullwX negX subfX subfcX subfeX subfmeX
- * subfzeX
- *---------------------------------------------------
- * OPCD | D | A | B |OE| XO |Rc
- * OPCD | D | A | B |0 | XO |Rc
- * OPCD | D | A | 00000 |OE| XO |Rc
- *---------------------------------------------------*/
-
-#define XO_OPCODE(i,xo,oe,rc) (MAKE_OPCODE(i) | (((oe) & 0x1) << 10) | \
- (((xo) & 0x1ff) << 1) | ((rc) & 0x1))
-#define XO_MASK XO_OPCODE(0x3f,0x1ff,0x1,0x1)
-
-
-/*---------------------------------------------------
- * A-Form Instructions:
- * (none supported by MPC860)
- *---------------------------------------------------
- * OPCD | D | A | B |00000| XO |Rc
- * OPCD | D | A | B | C | XO |Rc
- * OPCD | D | A | 00000 | C | XO |Rc
- * OPCD | D | 00000 | B |00000| XO |Rc
- *---------------------------------------------------*/
-
-#define A_OPCODE(i,xo,rc) (MAKE_OPCODE(i) | (((xo) & 0x1f) << 1) | \
- ((rc) & 0x1))
-#define A_MASK A_OPCODE(0x3f,0x1f,0x1)
-
-
-/*---------------------------------------------------
- * M-Form Instructions:
- * rlwimiX rlwinmX rlwnmX
- *---------------------------------------------------
- * OPCD | S | A | SH | MB | ME |Rc
- * OPCD | S | A | B | MB | ME |Rc
- *---------------------------------------------------*/
-
-#define M_OPCODE(i,rc) (MAKE_OPCODE(i) | ((rc) & 0x1))
-#define M_MASK M_OPCODE(0x3f,0x1)
-
-
-/*---------------------------------------------------
- * MD-Form Instructions:
- * (none supported by MPC860)
- *---------------------------------------------------
- * OPCD | S | A | sh | mb | XO |sh|Rc
- * OPCD | S | A | sh | me | XO |sh|Rc
- *---------------------------------------------------*/
-
-#define MD_OPCODE(i,xo,rc) (MAKE_OPCODE(i) | (((xo) & 0x7) << 2) | \
- ((rc) & 0x1))
-#define MD_MASK MD_OPCODE(0x3f,0x7,0x1)
-
-
-/*---------------------------------------------------
- * MDS-Form Instructions:
- * (none supported by MPC860)
- *---------------------------------------------------
- * OPCD | S | A | B | mb | XO |Rc
- * OPCD | S | A | B | me | XO |Rc
- *---------------------------------------------------*/
-
-#define MDS_OPCODE(i,xo,rc) (MAKE_OPCODE(i) | (((xo) & 0xf) << 1) | \
- ((rc) & 0x1))
-#define MDS_MASK MDS_OPCODE(0x3f,0xf,0x1)
-
-#define INSTRUCTION( memaddr ) ntohl(*(unsigned long *)(memaddr))
-
-#define MAX_OPERANDS 8
-
-struct ppc_ctx;
-
-struct opcode {
- unsigned long opcode; /* The complete opcode as produced by
- one of the XXX_OPCODE macros above */
-
- unsigned long mask; /* The mask to use on an instruction
- before comparing with the opcode
- field to see if it matches */
-
- enum OP_FIELD fields[MAX_OPERANDS];
- /* An array defining the operands for
- this opcode. The values of the
- array are the operand identifiers */
-
- int (*hfunc)(struct ppc_ctx *);
- /* Address of a function to handle the given
- mnemonic */
-
- char * name; /* The symbolic name of this opcode */
-
- unsigned int hint; /* A bitwise-inclusive-OR of the
- values shown below. These are used
- tell the disassembler how to print
- some operands for this opcode */
-};
-
-/* values for opcode hints */
-#define H_RELATIVE 0x1 /* The address operand is relative */
-#define H_IMM_HIGH 0x2 /* [U|S]IMM field shifted high */
-#define H_RA0_IS_0 0x4 /* If rA = 0 then treat as literal 0 */
-
-struct ppc_ctx {
- struct opcode * op;
- unsigned long instr;
- unsigned int flags;
- int datalen;
- char data[ 256 ];
- char radix_fmt[ 8 ];
- unsigned char * virtual;
-};
-
-
-/*======================================================================
- *
- * FUNCTIONS
- *
- *======================================================================*/
-
-/* Values for flags as passed to various ppc routines */
-#define F_RADOCTAL 0x1 /* output radix = unsigned octal */
-#define F_RADUDECIMAL 0x2 /* output radix = unsigned decimal */
-#define F_RADSDECIMAL 0x4 /* output radix = signed decimal */
-#define F_RADHEX 0x8 /* output radix = unsigned hex */
-#define F_SIMPLE 0x10 /* use simplified mnemonics */
-#define F_SYMBOL 0x20 /* use symbol lookups for addresses */
-#define F_INSTR 0x40 /* output the raw instruction */
-#define F_LOCALMEM 0x80 /* retrieve opcodes from local memory
- rather than from the HMI */
-#define F_LINENO 0x100 /* show line number info if available */
-#define F_VALIDONLY 0x200 /* cache: valid entries only */
-
-/* Values for assembler error codes */
-#define E_ASM_BAD_OPCODE 1
-#define E_ASM_NUM_OPERANDS 2
-#define E_ASM_BAD_REGISTER 3
-#define E_ASM_BAD_SPR 4
-#define E_ASM_BAD_TBR 5
-
-extern int disppc __P((unsigned char *,unsigned char *,int,
- int (*)(const char *), unsigned long));
-extern int print_source_line __P((char *,char *,int,
- int (*pfunc)(const char *)));
-extern int find_next_address __P((unsigned char *,int,struct pt_regs *));
-extern int handle_bc __P((struct ppc_ctx *));
-extern unsigned long asmppc __P((unsigned long,char*,int*));
-extern char *asm_error_str __P((int));
-
-/*======================================================================
- *
- * GLOBAL VARIABLES
- *
- *======================================================================*/
-
-extern struct operand operands[];
-extern const unsigned int n_operands;
-extern struct opcode opcodes[];
-extern const unsigned int n_opcodes;
-
-#endif /* _PPC_H */
-
-
-/*
- * Copyright (c) 2000 William L. Pitts and W. Gerald Hicks
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms are freely
- * permitted provided that the above copyright notice and this
- * paragraph and the following disclaimer are duplicated in all
- * such forms.
- *
- * This software is provided "AS IS" and without any express or
- * implied warranties, including, without limitation, the implied
- * warranties of merchantability and fitness for a particular
- * purpose.
- */
diff --git a/include/bedbug/regs.h b/include/bedbug/regs.h
deleted file mode 100644
index 304a336cc20..00000000000
--- a/include/bedbug/regs.h
+++ /dev/null
@@ -1,400 +0,0 @@
-/* $Id$ */
-
-#ifndef _REGS_H
-#define _REGS_H
-
-/* Special Purpose Registers */
-
-#define SPR_CR -1
-#define SPR_MSR -2
-
-#define SPR_XER 1
-#define SPR_LR 8
-#define SPR_CTR 9
-#define SPR_DSISR 18
-#define SPR_DAR 19
-#define SPR_DEC 22
-#define SPR_SRR0 26
-#define SPR_SRR1 27
-#define SPR_EIE 80
-#define SPR_EID 81
-#define SPR_CMPA 144
-#define SPR_CMPB 145
-#define SPR_CMPC 146
-#define SPR_CMPD 147
-#define SPR_ICR 148
-#define SPR_DER 149
-#define SPR_COUNTA 150
-#define SPR_COUNTB 151
-#define SPR_CMPE 152
-#define SPR_CMPF 153
-#define SPR_CMPG 154
-#define SPR_CMPH 155
-#define SPR_LCTRL1 156
-#define SPR_LCTRL2 157
-#define SPR_ICTRL 158
-#define SPR_BAR 159
-#define SPR_USPRG0 256
-#define SPR_SPRG4_RO 260
-#define SPR_SPRG5_RO 261
-#define SPR_SPRG6_RO 262
-#define SPR_SPRG7_RO 263
-#define SPR_SPRG0 272
-#define SPR_SPRG1 273
-#define SPR_SPRG2 274
-#define SPR_SPRG3 275
-#define SPR_SPRG4 276
-#define SPR_SPRG5 277
-#define SPR_SPRG6 278
-#define SPR_SPRG7 279
-#define SPR_EAR 282 /* MPC603e core */
-#define SPR_TBL 284
-#define SPR_TBU 285
-#define SPR_PVR 287
-#define SPR_IC_CST 560
-#define SPR_IC_ADR 561
-#define SPR_IC_DAT 562
-#define SPR_DC_CST 568
-#define SPR_DC_ADR 569
-#define SPR_DC_DAT 570
-#define SPR_DPDR 630
-#define SPR_IMMR 638
-#define SPR_MI_CTR 784
-#define SPR_MI_AP 786
-#define SPR_MI_EPN 787
-#define SPR_MI_TWC 789
-#define SPR_MI_RPN 790
-#define SPR_MD_CTR 792
-#define SPR_M_CASID 793
-#define SPR_MD_AP 794
-#define SPR_MD_EPN 795
-#define SPR_M_TWB 796
-#define SPR_MD_TWC 797
-#define SPR_MD_RPN 798
-#define SPR_M_TW 799
-#define SPR_MI_DBCAM 816
-#define SPR_MI_DBRAM0 817
-#define SPR_MI_DBRAM1 818
-#define SPR_MD_DBCAM 824
-#define SPR_MD_DBRAM0 825
-#define SPR_MD_DBRAM1 826
-#define SPR_ZPR 944
-#define SPR_PID 945
-#define SPR_CCR0 947
-#define SPR_IAC3 948
-#define SPR_IAC4 949
-#define SPR_DVC1 950
-#define SPR_DVC2 951
-#define SPR_SGR 953
-#define SPR_DCWR 954
-#define SPR_SLER 955
-#define SPR_SU0R 956
-#define SPR_DBCR1 957
-#define SPR_ICDBDR 979
-#define SPR_ESR 980
-#define SPR_DEAR 981
-#define SPR_EVPR 982
-#define SPR_TSR 984
-#define SPR_TCR 986
-#define SPR_PIT 987
-#define SPR_SRR2 990
-#define SPR_SRR3 991
-#define SPR_DBSR 1008
-#define SPR_DBCR0 1010
-#define SPR_IABR 1010 /* MPC603e core */
-#define SPR_IAC1 1012
-#define SPR_IAC2 1013
-#define SPR_DAC1 1014
-#define SPR_DAC2 1015
-#define SPR_DCCR 1018
-#define SPR_ICCR 1019
-
-/* Bits for the DBCR0 register */
-#define DBCR0_EDM 0x80000000
-#define DBCR0_IDM 0x40000000
-#define DBCR0_RST 0x30000000
-#define DBCR0_IC 0x08000000
-#define DBCR0_BT 0x04000000
-#define DBCR0_EDE 0x02000000
-#define DBCR0_TDE 0x01000000
-#define DBCR0_IA1 0x00800000
-#define DBCR0_IA2 0x00400000
-#define DBCR0_IA12 0x00200000
-#define DBCR0_IA12X 0x00100000
-#define DBCR0_IA3 0x00080000
-#define DBCR0_IA4 0x00040000
-#define DBCR0_IA34 0x00020000
-#define DBCR0_IA34X 0x00010000
-#define DBCR0_IA12T 0x00008000
-#define DBCR0_IA34T 0x00004000
-#define DBCR0_FT 0x00000001
-
-/* Bits for the DBCR1 register */
-#define DBCR1_D1R 0x80000000
-#define DBCR1_D2R 0x40000000
-#define DBCR1_D1W 0x20000000
-#define DBCR1_D2W 0x10000000
-#define DBCR1_D1S 0x0C000000
-#define DBCR1_D2S 0x03000000
-#define DBCR1_DA12 0x00800000
-#define DBCR1_DA12X 0x00400000
-#define DBCR1_DV1M 0x000C0000
-#define DBCR1_DV2M 0x00030000
-#define DBCR1_DV1BE 0x0000F000
-#define DBCR1_DV2BE 0x00000F00
-
-/*
- * DBSR bits which have conflicting definitions on true Book E versus PPC40x
- */
-#ifdef CONFIG_BOOKE
-#define DBSR_IA1 0x00800000 /* Instr Address Compare 1 Event */
-#define DBSR_IA2 0x00400000 /* Instr Address Compare 2 Event */
-#define DBSR_IA3 0x00200000 /* Instr Address Compare 3 Event */
-#define DBSR_IA4 0x00100000 /* Instr Address Compare 4 Event */
-#endif
-#define DBSR_IA1 0x04000000 /* Instr Address Compare 1 Event */
-#define DBSR_IA2 0x02000000 /* Instr Address Compare 2 Event */
-#define DBSR_IA3 0x00080000 /* Instr Address Compare 3 Event */
-#define DBSR_IA4 0x00040000 /* Instr Address Compare 4 Event */
-
-struct spr_info {
- int spr_val;
- char spr_name[ 10 ];
-};
-
-extern struct spr_info spr_map[];
-extern const unsigned int n_sprs;
-
-
-#define SET_REGISTER( str, val ) \
-({ unsigned long __value = (val); \
- asm volatile( str : : "r" (__value)); \
- __value; })
-
-#define GET_REGISTER( str ) \
-({ unsigned long __value; \
- asm volatile( str : "=r" (__value) : ); \
- __value; })
-
-#define GET_CR() GET_REGISTER( "mfcr %0" )
-#define SET_CR(val) SET_REGISTER( "mtcr %0", val )
-#define GET_MSR() GET_REGISTER( "mfmsr %0" )
-#define SET_MSR(val) SET_REGISTER( "mtmsr %0", val )
-#define GET_XER() GET_REGISTER( "mfspr %0,1" )
-#define SET_XER(val) SET_REGISTER( "mtspr 1,%0", val )
-#define GET_LR() GET_REGISTER( "mfspr %0,8" )
-#define SET_LR(val) SET_REGISTER( "mtspr 8,%0", val )
-#define GET_CTR() GET_REGISTER( "mfspr %0,9" )
-#define SET_CTR(val) SET_REGISTER( "mtspr 9,%0", val )
-#define GET_DSISR() GET_REGISTER( "mfspr %0,18" )
-#define SET_DSISR(val) SET_REGISTER( "mtspr 18,%0", val )
-#define GET_DAR() GET_REGISTER( "mfspr %0,19" )
-#define SET_DAR(val) SET_REGISTER( "mtspr 19,%0", val )
-#define GET_DEC() GET_REGISTER( "mfspr %0,22" )
-#define SET_DEC(val) SET_REGISTER( "mtspr 22,%0", val )
-#define GET_SRR0() GET_REGISTER( "mfspr %0,26" )
-#define SET_SRR0(val) SET_REGISTER( "mtspr 26,%0", val )
-#define GET_SRR1() GET_REGISTER( "mfspr %0,27" )
-#define SET_SRR1(val) SET_REGISTER( "mtspr 27,%0", val )
-#define GET_EIE() GET_REGISTER( "mfspr %0,80" )
-#define SET_EIE(val) SET_REGISTER( "mtspr 80,%0", val )
-#define GET_EID() GET_REGISTER( "mfspr %0,81" )
-#define SET_EID(val) SET_REGISTER( "mtspr 81,%0", val )
-#define GET_CMPA() GET_REGISTER( "mfspr %0,144" )
-#define SET_CMPA(val) SET_REGISTER( "mtspr 144,%0", val )
-#define GET_CMPB() GET_REGISTER( "mfspr %0,145" )
-#define SET_CMPB(val) SET_REGISTER( "mtspr 145,%0", val )
-#define GET_CMPC() GET_REGISTER( "mfspr %0,146" )
-#define SET_CMPC(val) SET_REGISTER( "mtspr 146,%0", val )
-#define GET_CMPD() GET_REGISTER( "mfspr %0,147" )
-#define SET_CMPD(val) SET_REGISTER( "mtspr 147,%0", val )
-#define GET_ICR() GET_REGISTER( "mfspr %0,148" )
-#define SET_ICR(val) SET_REGISTER( "mtspr 148,%0", val )
-#define GET_DER() GET_REGISTER( "mfspr %0,149" )
-#define SET_DER(val) SET_REGISTER( "mtspr 149,%0", val )
-#define GET_COUNTA() GET_REGISTER( "mfspr %0,150" )
-#define SET_COUNTA(val) SET_REGISTER( "mtspr 150,%0", val )
-#define GET_COUNTB() GET_REGISTER( "mfspr %0,151" )
-#define SET_COUNTB(val) SET_REGISTER( "mtspr 151,%0", val )
-#define GET_CMPE() GET_REGISTER( "mfspr %0,152" )
-#define SET_CMPE(val) SET_REGISTER( "mtspr 152,%0", val )
-#define GET_CMPF() GET_REGISTER( "mfspr %0,153" )
-#define SET_CMPF(val) SET_REGISTER( "mtspr 153,%0", val )
-#define GET_CMPG() GET_REGISTER( "mfspr %0,154" )
-#define SET_CMPG(val) SET_REGISTER( "mtspr 154,%0", val )
-#define GET_CMPH() GET_REGISTER( "mfspr %0,155" )
-#define SET_CMPH(val) SET_REGISTER( "mtspr 155,%0", val )
-#define GET_LCTRL1() GET_REGISTER( "mfspr %0,156" )
-#define SET_LCTRL1(val) SET_REGISTER( "mtspr 156,%0", val )
-#define GET_LCTRL2() GET_REGISTER( "mfspr %0,157" )
-#define SET_LCTRL2(val) SET_REGISTER( "mtspr 157,%0", val )
-#define GET_ICTRL() GET_REGISTER( "mfspr %0,158" )
-#define SET_ICTRL(val) SET_REGISTER( "mtspr 158,%0", val )
-#define GET_BAR() GET_REGISTER( "mfspr %0,159" )
-#define SET_BAR(val) SET_REGISTER( "mtspr 159,%0", val )
-#define GET_USPRG0() GET_REGISTER( "mfspr %0,256" )
-#define SET_USPRG0(val) SET_REGISTER( "mtspr 256,%0", val )
-#define GET_SPRG4_RO() GET_REGISTER( "mfspr %0,260" )
-#define SET_SPRG4_RO(val) SET_REGISTER( "mtspr 260,%0", val )
-#define GET_SPRG5_RO() GET_REGISTER( "mfspr %0,261" )
-#define SET_SPRG5_RO(val) SET_REGISTER( "mtspr 261,%0", val )
-#define GET_SPRG6_RO() GET_REGISTER( "mfspr %0,262" )
-#define SET_SPRG6_RO(val) SET_REGISTER( "mtspr 262,%0", val )
-#define GET_SPRG7_RO() GET_REGISTER( "mfspr %0,263" )
-#define SET_SPRG7_RO(val) SET_REGISTER( "mtspr 263,%0", val )
-#define GET_SPRG0() GET_REGISTER( "mfspr %0,272" )
-#define SET_SPRG0(val) SET_REGISTER( "mtspr 272,%0", val )
-#define GET_SPRG1() GET_REGISTER( "mfspr %0,273" )
-#define SET_SPRG1(val) SET_REGISTER( "mtspr 273,%0", val )
-#define GET_SPRG2() GET_REGISTER( "mfspr %0,274" )
-#define SET_SPRG2(val) SET_REGISTER( "mtspr 274,%0", val )
-#define GET_SPRG3() GET_REGISTER( "mfspr %0,275" )
-#define SET_SPRG3(val) SET_REGISTER( "mtspr 275,%0", val )
-#define GET_SPRG4() GET_REGISTER( "mfspr %0,276" )
-#define SET_SPRG4(val) SET_REGISTER( "mtspr 276,%0", val )
-#define GET_SPRG5() GET_REGISTER( "mfspr %0,277" )
-#define SET_SPRG5(val) SET_REGISTER( "mtspr 277,%0", val )
-#define GET_SPRG6() GET_REGISTER( "mfspr %0,278" )
-#define SET_SPRG6(val) SET_REGISTER( "mtspr 278,%0", val )
-#define GET_SPRG7() GET_REGISTER( "mfspr %0,279" )
-#define SET_SPRG7(val) SET_REGISTER( "mtspr 279,%0", val )
-#define GET_EAR() GET_REGISTER( "mfspr %0,282" )
-#define SET_EAR(val) SET_REGISTER( "mtspr 282,%0", val )
-#define GET_TBL() GET_REGISTER( "mfspr %0,284" )
-#define SET_TBL(val) SET_REGISTER( "mtspr 284,%0", val )
-#define GET_TBU() GET_REGISTER( "mfspr %0,285" )
-#define SET_TBU(val) SET_REGISTER( "mtspr 285,%0", val )
-#define GET_PVR() GET_REGISTER( "mfspr %0,287" )
-#define SET_PVR(val) SET_REGISTER( "mtspr 287,%0", val )
-#define GET_IC_CST() GET_REGISTER( "mfspr %0,560" )
-#define SET_IC_CST(val) SET_REGISTER( "mtspr 560,%0", val )
-#define GET_IC_ADR() GET_REGISTER( "mfspr %0,561" )
-#define SET_IC_ADR(val) SET_REGISTER( "mtspr 561,%0", val )
-#define GET_IC_DAT() GET_REGISTER( "mfspr %0,562" )
-#define SET_IC_DAT(val) SET_REGISTER( "mtspr 562,%0", val )
-#define GET_DC_CST() GET_REGISTER( "mfspr %0,568" )
-#define SET_DC_CST(val) SET_REGISTER( "mtspr 568,%0", val )
-#define GET_DC_ADR() GET_REGISTER( "mfspr %0,569" )
-#define SET_DC_ADR(val) SET_REGISTER( "mtspr 569,%0", val )
-#define GET_DC_DAT() GET_REGISTER( "mfspr %0,570" )
-#define SET_DC_DAT(val) SET_REGISTER( "mtspr 570,%0", val )
-#define GET_DPDR() GET_REGISTER( "mfspr %0,630" )
-#define SET_DPDR(val) SET_REGISTER( "mtspr 630,%0", val )
-#define GET_IMMR() GET_REGISTER( "mfspr %0,638" )
-#define SET_IMMR(val) SET_REGISTER( "mtspr 638,%0", val )
-#define GET_MI_CTR() GET_REGISTER( "mfspr %0,784" )
-#define SET_MI_CTR(val) SET_REGISTER( "mtspr 784,%0", val )
-#define GET_MI_AP() GET_REGISTER( "mfspr %0,786" )
-#define SET_MI_AP(val) SET_REGISTER( "mtspr 786,%0", val )
-#define GET_MI_EPN() GET_REGISTER( "mfspr %0,787" )
-#define SET_MI_EPN(val) SET_REGISTER( "mtspr 787,%0", val )
-#define GET_MI_TWC() GET_REGISTER( "mfspr %0,789" )
-#define SET_MI_TWC(val) SET_REGISTER( "mtspr 789,%0", val )
-#define GET_MI_RPN() GET_REGISTER( "mfspr %0,790" )
-#define SET_MI_RPN(val) SET_REGISTER( "mtspr 790,%0", val )
-#define GET_MD_CTR() GET_REGISTER( "mfspr %0,792" )
-#define SET_MD_CTR(val) SET_REGISTER( "mtspr 792,%0", val )
-#define GET_M_CASID() GET_REGISTER( "mfspr %0,793" )
-#define SET_M_CASID(val) SET_REGISTER( "mtspr 793,%0", val )
-#define GET_MD_AP() GET_REGISTER( "mfspr %0,794" )
-#define SET_MD_AP(val) SET_REGISTER( "mtspr ,794%0", val )
-#define GET_MD_EPN() GET_REGISTER( "mfspr %0,795" )
-#define SET_MD_EPN(val) SET_REGISTER( "mtspr 795,%0", val )
-#define GET_M_TWB() GET_REGISTER( "mfspr %0,796" )
-#define SET_M_TWB(val) SET_REGISTER( "mtspr 796,%0", val )
-#define GET_MD_TWC() GET_REGISTER( "mfspr %0,797" )
-#define SET_MD_TWC(val) SET_REGISTER( "mtspr 797,%0", val )
-#define GET_MD_RPN() GET_REGISTER( "mfspr %0,798" )
-#define SET_MD_RPN(val) SET_REGISTER( "mtspr 798,%0", val )
-#define GET_M_TW() GET_REGISTER( "mfspr %0,799" )
-#define SET_M_TW(val) SET_REGISTER( "mtspr 799,%0", val )
-#define GET_MI_DBCAM() GET_REGISTER( "mfspr %0,816" )
-#define SET_MI_DBCAM(val) SET_REGISTER( "mtspr 816,%0", val )
-#define GET_MI_DBRAM0() GET_REGISTER( "mfspr %0,817" )
-#define SET_MI_DBRAM0(val) SET_REGISTER( "mtspr 817,%0", val )
-#define GET_MI_DBRAM1() GET_REGISTER( "mfspr %0,818" )
-#define SET_MI_DBRAM1(val) SET_REGISTER( "mtspr 818,%0", val )
-#define GET_MD_DBCAM() GET_REGISTER( "mfspr %0,824" )
-#define SET_MD_DBCA(val) SET_REGISTER( "mtspr 824,%0", val )
-#define GET_MD_DBRAM0() GET_REGISTER( "mfspr %0,825" )
-#define SET_MD_DBRAM0(val) SET_REGISTER( "mtspr 825,%0", val )
-#define GET_MD_DBRAM1() GET_REGISTER( "mfspr %0,826" )
-#define SET_MD_DBRAM1(val) SET_REGISTER( "mtspr 826,%0", val )
-#define GET_ZPR() GET_REGISTER( "mfspr %0,944" )
-#define SET_ZPR(val) SET_REGISTER( "mtspr 944,%0", val )
-#define GET_PID() GET_REGISTER( "mfspr %0,945" )
-#define SET_PID(val) SET_REGISTER( "mtspr 945,%0", val )
-#define GET_CCR0() GET_REGISTER( "mfspr %0,947" )
-#define SET_CCR0(val) SET_REGISTER( "mtspr 947,%0", val )
-#define GET_IAC3() GET_REGISTER( "mfspr %0,948" )
-#define SET_IAC3(val) SET_REGISTER( "mtspr 948,%0", val )
-#define GET_IAC4() GET_REGISTER( "mfspr %0,949" )
-#define SET_IAC4(val) SET_REGISTER( "mtspr 949,%0", val )
-#define GET_DVC1() GET_REGISTER( "mfspr %0,950" )
-#define SET_DVC1(val) SET_REGISTER( "mtspr 950,%0", val )
-#define GET_DVC2() GET_REGISTER( "mfspr %0,951" )
-#define SET_DVC2(val) SET_REGISTER( "mtspr 951,%0", val )
-#define GET_SGR() GET_REGISTER( "mfspr %0,953" )
-#define SET_SGR(val) SET_REGISTER( "mtspr 953,%0", val )
-#define GET_DCWR() GET_REGISTER( "mfspr %0,954" )
-#define SET_DCWR(val) SET_REGISTER( "mtspr 954,%0", val )
-#define GET_SLER() GET_REGISTER( "mfspr %0,955" )
-#define SET_SLER(val) SET_REGISTER( "mtspr 955,%0", val )
-#define GET_SU0R() GET_REGISTER( "mfspr %0,956" )
-#define SET_SU0R(val) SET_REGISTER( "mtspr 956,%0", val )
-#define GET_DBCR1() GET_REGISTER( "mfspr %0,957" )
-#define SET_DBCR1(val) SET_REGISTER( "mtspr 957,%0", val )
-#define GET_ICDBDR() GET_REGISTER( "mfspr %0,979" )
-#define SET_ICDBDR(val) SET_REGISTER( "mtspr 979,%0", val )
-#define GET_ESR() GET_REGISTER( "mfspr %0,980" )
-#define SET_ESR(val) SET_REGISTER( "mtspr 980,%0", val )
-#define GET_DEAR() GET_REGISTER( "mfspr %0,981" )
-#define SET_DEAR(val) SET_REGISTER( "mtspr 981,%0", val )
-#define GET_EVPR() GET_REGISTER( "mfspr %0,982" )
-#define SET_EVPR(val) SET_REGISTER( "mtspr 982,%0", val )
-#define GET_TSR() GET_REGISTER( "mfspr %0,984" )
-#define SET_TSR(val) SET_REGISTER( "mtspr 984,%0", val )
-#define GET_TCR() GET_REGISTER( "mfspr %0,986" )
-#define SET_TCR(val) SET_REGISTER( "mtspr 986,%0", val )
-#define GET_PIT() GET_REGISTER( "mfspr %0,987" )
-#define SET_PIT(val) SET_REGISTER( "mtspr 987,%0", val )
-#define GET_SRR2() GET_REGISTER( "mfspr %0,990" )
-#define SET_SRR2(val) SET_REGISTER( "mtspr 990,%0", val )
-#define GET_SRR3() GET_REGISTER( "mfspr %0,991" )
-#define SET_SRR3(val) SET_REGISTER( "mtspr 991,%0", val )
-#define GET_DBSR() GET_REGISTER( "mfspr %0,1008" )
-#define SET_DBSR(val) SET_REGISTER( "mtspr 1008,%0", val )
-#define GET_DBCR0() GET_REGISTER( "mfspr %0,1010" )
-#define SET_DBCR0(val) SET_REGISTER( "mtspr 1010,%0", val )
-#define GET_IABR() GET_REGISTER( "mfspr %0,1010" )
-#define SET_IABR(val) SET_REGISTER( "mtspr 1010,%0", val )
-#define GET_IAC1() GET_REGISTER( "mfspr %0,1012" )
-#define SET_IAC1(val) SET_REGISTER( "mtspr 1012,%0", val )
-#define GET_IAC2() GET_REGISTER( "mfspr %0,1013" )
-#define SET_IAC2(val) SET_REGISTER( "mtspr 1013,%0", val )
-#define GET_DAC1() GET_REGISTER( "mfspr %0,1014" )
-#define SET_DAC1(val) SET_REGISTER( "mtspr 1014,%0", val )
-#define GET_DAC2() GET_REGISTER( "mfspr %0,1015" )
-#define SET_DAC2(val) SET_REGISTER( "mtspr 1015,%0", val )
-#define GET_DCCR() GET_REGISTER( "mfspr %0,1018" )
-#define SET_DCCR(val) SET_REGISTER( "mtspr 1018,%0", val )
-#define GET_ICCR() GET_REGISTER( "mfspr %0,1019" )
-#define SET_ICCR(val) SET_REGISTER( "mtspr 1019,%0", val )
-
-#endif /* _REGS_H */
-
-
-/*
- * Copyright (c) 2000 William L. Pitts and W. Gerald Hicks
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms are freely
- * permitted provided that the above copyright notice and this
- * paragraph and the following disclaimer are duplicated in all
- * such forms.
- *
- * This software is provided "AS IS" and without any express or
- * implied warranties, including, without limitation, the implied
- * warranties of merchantability and fitness for a particular
- * purpose.
- */
diff --git a/include/bedbug/tables.h b/include/bedbug/tables.h
deleted file mode 100644
index e675de3209f..00000000000
--- a/include/bedbug/tables.h
+++ /dev/null
@@ -1,601 +0,0 @@
-/* $Id$ */
-
-#ifndef TABLES_H
-#define TABLES_H
-
-/* This is only included by common/bedbug.c, and depends on the following
- * files to already be included
- * common.h
- * bedbug/bedbug.h
- * bedbug/ppc.h
- * bedbug/regs.h
- */
-
-struct operand operands[] = {
- /*Field Name Bits Shift Hint Position */
- /*----- ------ ----- ----- ---- ------------ */
- { O_AA, "O_AA", 1, 1, OH_SILENT }, /* 30 */
- { O_BD, "O_BD", 14, 2, OH_ADDR }, /* 16-29 */
- { O_BI, "O_BI", 5, 16, 0 }, /* 11-15 */
- { O_BO, "O_BO", 5, 21, 0 }, /* 6-10 */
- { O_crbD, "O_crbD", 5, 21, 0 }, /* 6-10 */
- { O_crbA, "O_crbA", 5, 16, 0 }, /* 11-15 */
- { O_crbB, "O_crbB", 5, 11, 0 }, /* 16-20 */
- { O_CRM, "O_CRM", 8, 12, 0 }, /* 12-19 */
- { O_d, "O_d", 15, 0, OH_OFFSET }, /* 16-31 */
- { O_frC, "O_frC", 5, 6, 0 }, /* 21-25 */
- { O_frD, "O_frD", 5, 21, 0 }, /* 6-10 */
- { O_frS, "O_frS", 5, 21, 0 }, /* 6-10 */
- { O_IMM, "O_IMM", 4, 12, 0 }, /* 16-19 */
- { O_LI, "O_LI", 24, 2, OH_ADDR }, /* 6-29 */
- { O_LK, "O_LK", 1, 0, OH_SILENT }, /* 31 */
- { O_MB, "O_MB", 5, 6, 0 }, /* 21-25 */
- { O_ME, "O_ME", 5, 1, 0 }, /* 26-30 */
- { O_NB, "O_NB", 5, 11, 0 }, /* 16-20 */
- { O_OE, "O_OE", 1, 10, OH_SILENT }, /* 21 */
- { O_rA, "O_rA", 5, 16, OH_REG }, /* 11-15 */
- { O_rB, "O_rB", 5, 11, OH_REG }, /* 16-20 */
- { O_Rc, "O_Rc", 1, 0, OH_SILENT }, /* 31 */
- { O_rD, "O_rD", 5, 21, OH_REG }, /* 6-10 */
- { O_rS, "O_rS", 5, 21, OH_REG }, /* 6-10 */
- { O_SH, "O_SH", 5, 11, 0 }, /* 16-20 */
- { O_SIMM, "O_SIMM", 16, 0, 0 }, /* 16-31 */
- { O_SR, "O_SR", 4, 16, 0 }, /* 12-15 */
- { O_TO, "O_TO", 5, 21, 0 }, /* 6-10 */
- { O_UIMM, "O_UIMM", 16, 0, 0 }, /* 16-31 */
- { O_crfD, "O_crfD", 3, 23, 0 }, /* 6- 8 */
- { O_crfS, "O_crfS", 3, 18, 0 }, /* 11-13 */
- { O_L, "O_L", 1, 21, 0 }, /* 10 */
- { O_spr, "O_spr", 10, 11, OH_SPR }, /* 11-20 */
- { O_tbr, "O_tbr", 10, 11, OH_TBR }, /* 11-20 */
- { O_cr2, "O_cr2", 0, 0, OH_LITERAL }, /* "cr2" */
-};
-
-const unsigned int n_operands = sizeof(operands) / sizeof(operands[0]);
-
-/* A note about the fields array in the opcodes structure:
- The operands are listed in the order they appear in the output.
-
- This table is arranged in numeric order of the opcode. Note that some
- opcodes have defined bits in odd places so not all forms of a command
- will be in the same place. This is done so that a binary search can be
- done to find the opcodes. Note that table D.2 in the MPC860 User's
- Manual "Instructions Sorted by Opcode" does not account for these
- bit locations */
-
-struct opcode opcodes[] = {
- { D_OPCODE(3), D_MASK, {O_TO, O_rA, O_SIMM, 0},
- 0, "twi", 0 },
- { D_OPCODE(7), D_MASK, {O_rD, O_rA, O_SIMM, 0},
- 0, "mulli", 0 },
- { D_OPCODE(8), D_MASK, {O_rD, O_rA, O_SIMM, 0},
- 0, "subfic", 0 },
- { D_OPCODE(10), D_MASK, {O_crfD, O_L, O_rA, O_UIMM, 0},
- 0, "cmpli", 0 },
- { D_OPCODE(11), D_MASK, {O_crfD, O_L, O_rA, O_SIMM, 0},
- 0, "cmpi", 0 },
- { D_OPCODE(12), D_MASK, {O_rD, O_rA, O_SIMM, 0},
- 0, "addic", 0 },
- { D_OPCODE(13), D_MASK, {O_rD, O_rA, O_SIMM, 0},
- 0, "addic.", 0 },
- { D_OPCODE(14), D_MASK, {O_rD, O_rA, O_SIMM, 0},
- 0, "addi", H_RA0_IS_0 },
- { D_OPCODE(15), D_MASK, {O_rD, O_rA, O_SIMM, 0},
- 0, "addis", H_RA0_IS_0|H_IMM_HIGH },
- { B_OPCODE(16,0,0), B_MASK, {O_BO, O_BI, O_BD, O_AA, O_LK, 0},
- handle_bc, "bc", H_RELATIVE },
- { B_OPCODE(16,0,1), B_MASK, {O_BO, O_BI, O_BD, O_AA, O_LK, 0},
- 0, "bcl", H_RELATIVE },
- { B_OPCODE(16,1,0), B_MASK, {O_BO, O_BI, O_BD, O_AA, O_LK, 0},
- 0, "bca", 0 },
- { B_OPCODE(16,1,1), B_MASK, {O_BO, O_BI, O_BD, O_AA, O_LK, 0},
- 0, "bcla", 0 },
- { SC_OPCODE(17), SC_MASK, {0},
- 0, "sc", 0 },
- { I_OPCODE(18,0,0), I_MASK, {O_LI, O_AA, O_LK, 0},
- 0, "b", H_RELATIVE },
- { I_OPCODE(18,0,1), I_MASK, {O_LI, O_AA, O_LK, 0},
- 0, "bl", H_RELATIVE },
- { I_OPCODE(18,1,0), I_MASK, {O_LI, O_AA, O_LK, 0},
- 0, "ba", 0 },
- { I_OPCODE(18,1,1), I_MASK, {O_LI, O_AA, O_LK, 0},
- 0, "bla", 0 },
- { XL_OPCODE(19,0,0), XL_MASK, {O_crfD, O_crfS},
- 0, "mcrf", 0 },
- { XL_OPCODE(19,16,0), XL_MASK, {O_BO, O_BI, O_LK, 0},
- 0, "bclr", 0 },
- { XL_OPCODE(19,16,1), XL_MASK, {O_BO, O_BI, O_LK, 0},
- 0, "bclrl", 0 },
- { XL_OPCODE(19,33,0), XL_MASK, {O_crbD, O_crbA, O_crbB, 0},
- 0, "crnor", 0 },
- { XL_OPCODE(19,50,0), XL_MASK, {0},
- 0, "rfi", 0 },
- { XL_OPCODE(19,129,0), XL_MASK, {O_crbD, O_crbA, O_crbB, 0},
- 0, "crandc", 0 },
- { XL_OPCODE(19,150,0), XL_MASK, {0},
- 0, "isync", 0 },
- { XL_OPCODE(19,193,0), XL_MASK, {O_crbD, O_crbA, O_crbB, 0},
- 0, "crxor", 0 },
- { XL_OPCODE(19,225,0), XL_MASK, {O_crbD, O_crbA, O_crbB, 0},
- 0, "crnand", 0 },
- { XL_OPCODE(19,257,0), XL_MASK, {O_crbD, O_crbA, O_crbB, 0},
- 0, "crand", 0 },
- { XL_OPCODE(19,289,0), XL_MASK, {O_crbD, O_crbA, O_crbB, 0},
- 0, "creqv", 0 },
- { XL_OPCODE(19,417,0), XL_MASK, {O_crbD, O_crbA, O_crbB, 0},
- 0, "crorc", 0 },
- { XL_OPCODE(19,449,0), XL_MASK, {O_crbD, O_crbA, O_crbB, 0},
- 0, "cror", 0 },
- { XL_OPCODE(19,528,0), XL_MASK, {O_BO, O_BI, O_LK, 0},
- 0, "bcctr", 0 },
- { XL_OPCODE(19,528,1), XL_MASK, {O_BO, O_BI, O_LK, 0},
- 0, "bcctrl", 0 },
- { M_OPCODE(20,0), M_MASK, {O_rA, O_rS, O_SH, O_MB, O_ME, O_Rc, 0},
- 0, "rlwimi", 0 },
- { M_OPCODE(20,1), M_MASK, {O_rA, O_rS, O_SH, O_MB, O_ME, O_Rc, 0},
- 0, "rlwimi.", 0 },
- { M_OPCODE(21,0), M_MASK, {O_rA, O_rS, O_SH, O_MB, O_ME, O_Rc, 0},
- 0, "rlwinm", 0 },
- { M_OPCODE(21,1), M_MASK, {O_rA, O_rS, O_SH, O_MB, O_ME, O_Rc, 0},
- 0, "rlwinm.", 0 },
- { M_OPCODE(23,0), M_MASK, {O_rA, O_rS, O_rB, O_MB, O_ME, O_Rc, 0},
- 0, "rlwnm", 0 },
- { M_OPCODE(23,1), M_MASK, {O_rA, O_rS, O_rB, O_MB, O_ME, O_Rc, 0},
- 0, "rlwnm.", 0 },
- { D_OPCODE(24), D_MASK, {O_rA, O_rS, O_UIMM, 0},
- 0, "ori", 0 },
- { D_OPCODE(25), D_MASK, {O_rA, O_rS, O_UIMM, 0},
- 0, "oris", H_IMM_HIGH },
- { D_OPCODE(26), D_MASK, {O_rA, O_rS, O_UIMM, 0},
- 0, "xori", 0 },
- { D_OPCODE(27), D_MASK, {O_rA, O_rS, O_UIMM, 0},
- 0, "xoris", H_IMM_HIGH },
- { D_OPCODE(28), D_MASK, {O_rA, O_rS, O_UIMM, 0},
- 0, "andi.", 0 },
- { D_OPCODE(29), D_MASK, {O_rA, O_rS, O_UIMM, 0},
- 0, "andis.", H_IMM_HIGH },
- { X_OPCODE(31,0,0), X_MASK, {O_crfD, O_L, O_rA, O_rB, 0},
- 0, "cmp", 0 },
- { X_OPCODE(31,4,0), X_MASK, {O_TO, O_rA, O_rB, 0},
- 0, "tw", 0 },
- { XO_OPCODE(31,8,0,0), XO_MASK, {O_rD, O_rA, O_rB, O_OE, O_Rc, 0},
- 0, "subfc", 0 },
- { XO_OPCODE(31,8,0,1), XO_MASK, {O_rD, O_rA, O_rB, O_OE, O_Rc, 0},
- 0, "subfc.", 0 },
- { XO_OPCODE(31,10,0,0), XO_MASK, {O_rD, O_rA, O_rB, O_OE, O_Rc, 0},
- 0, "addc", 0 },
- { XO_OPCODE(31,10,0,1), XO_MASK, {O_rD, O_rA, O_rB, O_OE, O_Rc, 0},
- 0, "addc.", 0 },
- { XO_OPCODE(31,11,0,0), XO_MASK, {O_rD, O_rA, O_rB, O_Rc, 0},
- 0, "mulhwu", 0 },
- { XO_OPCODE(31,11,0,1), XO_MASK, {O_rD, O_rA, O_rB, O_Rc, 0},
- 0, "mulhwu.", 0 },
- { X_OPCODE(31,19,0), X_MASK, {O_rD, 0},
- 0, "mfcr", 0 },
- { X_OPCODE(31,20,0), X_MASK, {O_rD, O_rA, O_rB, 0},
- 0, "lwarx", H_RA0_IS_0 },
- { X_OPCODE(31,23,0), X_MASK, {O_rD, O_rA, O_rB, 0},
- 0, "lwzx", H_RA0_IS_0 },
- { X_OPCODE(31,24,0), X_MASK, {O_rA, O_rS, O_rB, O_Rc, 0},
- 0, "slw", 0 },
- { X_OPCODE(31,24,1), X_MASK, {O_rA, O_rS, O_rB, O_Rc, 0},
- 0, "slw.", 0 },
- { X_OPCODE(31,26,0), X_MASK, {O_rA, O_rS, O_Rc, 0 },
- 0, "cntlzw", 0 },
- { X_OPCODE(31,26,1), X_MASK, {O_rA, O_rS, O_Rc, 0},
- 0, "cntlzw.", 0 },
- { X_OPCODE(31,28,0), X_MASK, {O_rA, O_rS, O_rB, O_Rc, 0},
- 0, "and", 0 },
- { X_OPCODE(31,28,1), X_MASK, {O_rA, O_rS, O_rB, O_Rc, 0},
- 0, "and.", 0 },
- { X_OPCODE(31,32,0), X_MASK, {O_crfD, O_L, O_rA, O_rB, 0},
- 0, "cmpl", 0 },
- { XO_OPCODE(31,40,0,0), XO_MASK, {O_rD, O_rA, O_rB, O_OE, O_Rc, 0},
- 0, "subf", 0 },
- { XO_OPCODE(31,40,0,1), XO_MASK, {O_rD, O_rA, O_rB, O_OE, O_Rc, 0},
- 0, "subf.", 0 },
- { X_OPCODE(31,54,0), X_MASK, {O_rA, O_rB, 0},
- 0, "dcbst", H_RA0_IS_0 },
- { X_OPCODE(31,55,0), X_MASK, {O_rD, O_rA, O_rB, 0},
- 0, "lwzux", 0 },
- { X_OPCODE(31,60,0), X_MASK, {O_rA, O_rS, O_rB, O_Rc, 0},
- 0, "andc", 0 },
- { X_OPCODE(31,60,1), X_MASK, {O_rA, O_rS, O_rB, O_Rc, 0},
- 0, "andc.", 0 },
- { XO_OPCODE(31,75,0,0), XO_MASK, {O_rD, O_rA, O_rB, O_Rc, 0},
- 0, "mulhw", 0 },
- { XO_OPCODE(31,75,0,1), XO_MASK, {O_rD, O_rA, O_rB, O_Rc, 0},
- 0, "mulhw.", 0 },
- { X_OPCODE(31,83,0), X_MASK, {O_rD, 0},
- 0, "mfmsr", 0 },
- { X_OPCODE(31,86,0), X_MASK, {O_rA, O_rB, 0},
- 0, "dcbf", H_RA0_IS_0 },
- { X_OPCODE(31,87,0), X_MASK, {O_rD, O_rA, O_rB, 0},
- 0, "lbzx", H_RA0_IS_0 },
- { XO_OPCODE(31,104,0,0), XO_MASK, {O_rD, O_rA, O_OE, O_Rc, 0},
- 0, "neg", 0 },
- { XO_OPCODE(31,104,0,1), XO_MASK, {O_rD, O_rA, O_OE, O_Rc, 0},
- 0, "neg.", 0 },
- { X_OPCODE(31,119,0), X_MASK, {O_rD, O_rA, O_rB, 0},
- 0, "lbzux", 0 },
- { X_OPCODE(31,124,0), X_MASK, {O_rA, O_rS, O_rB, O_Rc, 0},
- 0, "nor", 0 },
- { X_OPCODE(31,124,1), X_MASK, {O_rA, O_rS, O_rB, O_Rc, 0},
- 0, "nor.", 0 },
- { XO_OPCODE(31,136,0,0), XO_MASK, {O_rD, O_rA, O_rB, O_OE, O_Rc, 0},
- 0, "subfe", 0 },
- { XO_OPCODE(31,136,0,1), XO_MASK, {O_rD, O_rA, O_rB, O_OE, O_Rc, 0},
- 0, "subfe.", 0 },
- { XO_OPCODE(31,138,0,0), XO_MASK, {O_rD, O_rA, O_rB, O_OE, O_Rc, 0},
- 0, "adde", 0 },
- { XO_OPCODE(31,138,0,1), XO_MASK, {O_rD, O_rA, O_rB, O_OE, O_Rc, 0},
- 0, "adde.", 0 },
- { XFX_OPCODE(31,144,0), XFX_MASK, {O_CRM, O_rS, 0},
- 0, "mtcrf", 0 },
- { X_OPCODE(31,146,0), X_MASK, {O_rS, 0},
- 0, "mtmsr", 0 },
- { X_OPCODE(31,150,1), X_MASK, {O_rS, O_rA, O_rB, 0},
- 0, "stwcx.", 0 },
- { X_OPCODE(31,151,0), X_MASK, {O_rS, O_rA, O_rB, 0},
- 0, "stwx", 0 },
- { X_OPCODE(31,183,0), X_MASK, {O_rS, O_rA, O_rB, 0},
- 0, "stwux", 0 },
- { XO_OPCODE(31,200,0,0), XO_MASK, {O_rD, O_rA, O_OE, O_Rc, 0},
- 0, "subfze", 0 },
- { XO_OPCODE(31,200,0,1), XO_MASK, {O_rD, O_rA, O_OE, O_Rc, 0},
- 0, "subfze.", 0 },
- { XO_OPCODE(31,202,0,0), XO_MASK, {O_rD, O_rA, O_OE, O_Rc, 0},
- 0, "addze", 0 },
- { XO_OPCODE(31,202,0,1), XO_MASK, {O_rD, O_rA, O_OE, O_Rc, 0},
- 0, "addze.", 0 },
- { X_OPCODE(31,210,0), X_MASK, {O_SR, O_rS, 0},
- 0, "mtsr", 0 },
- { X_OPCODE(31,215,0), X_MASK, {O_rS, O_rA, O_rB, 0},
- 0, "stbx", H_RA0_IS_0 },
- { XO_OPCODE(31,232,0,0), XO_MASK, {O_rD, O_rA, O_OE, O_Rc, 0},
- 0, "subfme", 0 },
- { XO_OPCODE(31,232,0,1), XO_MASK, {O_rD, O_rA, O_OE, O_Rc, 0},
- 0, "subfme.", 0 },
- { XO_OPCODE(31,234,0,0), XO_MASK, {O_rD, O_rA, O_OE, O_Rc, 0},
- 0, "addme", 0 },
- { XO_OPCODE(31,234,0,1), XO_MASK, {O_rD, O_rA, O_OE, O_Rc, 0},
- 0, "addme.", 0 },
- { XO_OPCODE(31,235,0,0), XO_MASK, {O_rD, O_rA, O_rB, O_OE, O_Rc, 0},
- 0, "mullw", 0 },
- { XO_OPCODE(31,235,0,1), XO_MASK, {O_rD, O_rA, O_rB, O_OE, O_Rc, 0},
- 0, "mullw.", 0 },
- { X_OPCODE(31,242,0), X_MASK, {O_rS, O_rB, 0},
- 0, "mtsrin", 0 },
- { X_OPCODE(31,246,0), X_MASK, {O_rA, O_rB, 0},
- 0, "dcbtst", H_RA0_IS_0 },
- { X_OPCODE(31,247,0), X_MASK, {O_rS, O_rA, O_rB, 0},
- 0, "stbux", 0 },
- { XO_OPCODE(31,266,0,0), XO_MASK, {O_rD, O_rA, O_rB, O_OE, O_Rc, 0},
- 0, "add", 0 },
- { XO_OPCODE(31,266,0,1), XO_MASK, {O_rD, O_rA, O_rB, O_OE, O_Rc, 0},
- 0, "add.", 0 },
- { X_OPCODE(31,278,0), X_MASK, {O_rA, O_rB, 0},
- 0, "dcbt", H_RA0_IS_0 },
- { X_OPCODE(31,279,0), X_MASK, {O_rD, O_rA, O_rB, 0},
- 0, "lhzx", H_RA0_IS_0 },
- { X_OPCODE(31,284,0), X_MASK, {O_rA, O_rS, O_rB, O_Rc, 0},
- 0, "eqv", 0 },
- { X_OPCODE(31,284,1), X_MASK, {O_rA, O_rS, O_rB, O_Rc, 0},
- 0, "eqv.", 0 },
- { X_OPCODE(31,306,0), X_MASK, {O_rB, 0},
- 0, "tlbie", 0 },
- { X_OPCODE(31,310,0), X_MASK, {O_rD, O_rA, O_rB, 0},
- 0, "eciwx", H_RA0_IS_0 },
- { X_OPCODE(31,311,0), X_MASK, {O_rD, O_rA, O_rB, 0},
- 0, "lhzux", 0 },
- { X_OPCODE(31,316,0), X_MASK, {O_rA, O_rS, O_rB, O_Rc, 0},
- 0, "xor", 0 },
- { X_OPCODE(31,316,1), X_MASK, {O_rA, O_rS, O_rB, O_Rc, 0},
- 0, "xor.", 0 },
- { XFX_OPCODE(31,339,0), XFX_MASK, {O_rD, O_spr, 0},
- 0, "mfspr", 0 },
- { X_OPCODE(31,343,0), X_MASK, {O_rD, O_rA, O_rB, 0},
- 0, "lhax", H_RA0_IS_0 },
- { X_OPCODE(31,370,0), X_MASK, {0},
- 0, "tlbia", 0 },
- { XFX_OPCODE(31,371,0), XFX_MASK, {O_rD, O_tbr, 0},
- 0, "mftb", 0 },
- { X_OPCODE(31,375,0), X_MASK, {O_rD, O_rA, O_rB, 0},
- 0, "lhaux", 0 },
- { X_OPCODE(31,407,0), X_MASK, {O_rS, O_rA, O_rB, 0},
- 0, "sthx", H_RA0_IS_0 },
- { X_OPCODE(31,412,0), X_MASK, {O_rA, O_rS, O_rB, O_Rc, 0},
- 0, "orc", 0 },
- { X_OPCODE(31,412,1), X_MASK, {O_rA, O_rS, O_rB, O_Rc, 0},
- 0, "orc.", 0 },
- { X_OPCODE(31,438,0), X_MASK, {O_rS, O_rA, O_rB, 0},
- 0, "ecowx", H_RA0_IS_0 },
- { X_OPCODE(31,439,0), X_MASK, {O_rS, O_rA, O_rB, 0},
- 0, "sthux", 0 },
- { X_OPCODE(31,444,0), X_MASK, {O_rA, O_rS, O_rB, O_Rc, 0},
- 0, "or", 0 },
- { X_OPCODE(31,444,1), X_MASK, {O_rA, O_rS, O_rB, O_Rc, 0},
- 0, "or.", 0 },
- { XO_OPCODE(31,459,0,0), XO_MASK, {O_rD, O_rA, O_rB, O_OE, O_Rc, 0},
- 0, "divwu", 0 },
- { XO_OPCODE(31,459,0,1), XO_MASK, {O_rD, O_rA, O_rB, O_OE, O_Rc, 0},
- 0, "divwu.", 0 },
- { XFX_OPCODE(31,467,0), XFX_MASK, {O_spr, O_rS, 0},
- 0, "mtspr", 0 },
- { X_OPCODE(31,470,0), X_MASK, {O_rA, O_rB, 0},
- 0, "dcbi", H_RA0_IS_0 },
- { X_OPCODE(31,476,0), X_MASK, {O_rA, O_rS, O_rB, O_Rc, 0},
- 0, "nand", 0 },
- { X_OPCODE(31,476,1), X_MASK, {O_rA, O_rS, O_rB, O_Rc,0},
- 0, "nand.", 0 },
- { XO_OPCODE(31,491,0,0), XO_MASK, {O_rD, O_rA, O_rB, O_OE, O_Rc, 0},
- 0, "divw", 0 },
- { XO_OPCODE(31,491,0,1), XO_MASK, {O_rD, O_rA, O_rB, O_OE, O_Rc, 0},
- 0, "divw.", 0 },
- { X_OPCODE(31,512,0), X_MASK, {O_crfD, 0},
- 0, "mcrxr", 0 },
- { XO_OPCODE(31,8,1,0), XO_MASK, {O_rD, O_rA, O_rB, O_OE, O_Rc, 0},
- 0, "subfco", 0 },
- { XO_OPCODE(31,8,1,1), XO_MASK, {O_rD, O_rA, O_rB, O_OE, O_Rc, 0},
- 0, "subfco.", 0 },
- { XO_OPCODE(31,10,1,0), XO_MASK, {O_rD, O_rA, O_rB, O_OE, O_Rc, 0},
- 0, "addco", 0 },
- { XO_OPCODE(31,10,1,1), XO_MASK, {O_rD, O_rA, O_rB, O_OE, O_Rc, 0},
- 0, "addco.", 0 },
- { X_OPCODE(31,533,0), X_MASK, {O_rD, O_rA, O_rB, 0},
- 0, "lswx", H_RA0_IS_0 },
- { X_OPCODE(31,534,0), X_MASK, {O_rD, O_rA, O_rB, 0},
- 0, "lwbrx", H_RA0_IS_0 },
- { X_OPCODE(31,536,0), X_MASK, {O_rA, O_rS, O_rB, O_Rc, 0},
- 0, "srw", 0 },
- { X_OPCODE(31,536,1), X_MASK, {O_rA, O_rS, O_rB, O_Rc, 0},
- 0, "srw.", 0 },
- { XO_OPCODE(31,40,1,0), XO_MASK, {O_rD, O_rA, O_rB, O_OE, O_Rc, 0},
- 0, "subfo", 0 },
- { XO_OPCODE(31,40,1,1), XO_MASK, {O_rD, O_rA, O_rB, O_OE, O_Rc, 0},
- 0, "subfo.", 0 },
- { X_OPCODE(31,566,0), X_MASK, {0},
- 0, "tlbsync", 0 },
- { X_OPCODE(31,595,0), X_MASK, {O_rD, O_SR, 0},
- 0, "mfsr", 0 },
- { X_OPCODE(31,597,0), X_MASK, {O_rD, O_rA, O_NB, 0},
- 0, "lswi", H_RA0_IS_0 },
- { X_OPCODE(31,598,0), X_MASK, {0},
- 0, "sync", 0 },
- { XO_OPCODE(31,104,1,0), XO_MASK, {O_rD, O_rA, O_OE, O_Rc, 0},
- 0, "nego", 0 },
- { XO_OPCODE(31,104,1,1), XO_MASK, {O_rD, O_rA, O_OE, O_Rc, 0},
- 0, "nego.", 0 },
- { XO_OPCODE(31,136,1,0), XO_MASK, {O_rD, O_rA, O_rB, O_OE, O_Rc, 0},
- 0, "subfeo", 0 },
- { XO_OPCODE(31,136,1,1), XO_MASK, {O_rD, O_rA, O_rB, O_OE, O_Rc, 0},
- 0, "subfeo.", 0 },
- { XO_OPCODE(31,138,1,0), XO_MASK, {O_rD, O_rA, O_rB, O_OE, O_Rc, 0},
- 0, "addeo", 0 },
- { XO_OPCODE(31,138,1,1), XO_MASK, {O_rD, O_rA, O_rB, O_OE, O_Rc, 0},
- 0, "addeo.", 0 },
- { X_OPCODE(31,659,0), X_MASK, {O_rD, O_rB, 0},
- 0, "mfsrin", 0 },
- { X_OPCODE(31,661,0), X_MASK, {O_rS, O_rA, O_rB, 0},
- 0, "stswx", H_RA0_IS_0 },
- { X_OPCODE(31,662,0), X_MASK, {O_rS, O_rA, O_rB, 0},
- 0, "stwbrx", H_RA0_IS_0 },
- { XO_OPCODE(31,200,1,0), XO_MASK, {O_rD, O_rA, O_OE, O_Rc, 0},
- 0, "subfzeo", 0 },
- { XO_OPCODE(31,200,1,1), XO_MASK, {O_rD, O_rA, O_OE, O_Rc, 0},
- 0, "subfzeo.", 0 },
- { XO_OPCODE(31,202,1,0), XO_MASK, {O_rD, O_rA, O_OE, O_Rc, 0},
- 0, "addzeo", 0 },
- { XO_OPCODE(31,202,1,1), XO_MASK, {O_rD, O_rA, O_OE, O_Rc, 0},
- 0, "addzeo.", 0 },
- { X_OPCODE(31,725,0), X_MASK, {O_rS, O_rA, O_NB, 0},
- 0, "stswi", H_RA0_IS_0 },
- { XO_OPCODE(31,232,1,0), XO_MASK, {O_rD, O_rA, O_OE, O_Rc, 0},
- 0, "subfmeo", 0 },
- { XO_OPCODE(31,232,1,1), XO_MASK, {O_rD, O_rA, O_OE, O_Rc, 0},
- 0, "subfmeo.", 0 },
- { XO_OPCODE(31,234,1,0), XO_MASK, {O_rD, O_rA, O_OE, O_Rc, 0},
- 0, "addmeo", 0 },
- { XO_OPCODE(31,234,1,1), XO_MASK, {O_rD, O_rA, O_OE, O_Rc, 0},
- 0, "addmeo.", 0 },
- { XO_OPCODE(31,235,1,0), XO_MASK, {O_rD, O_rA, O_rB, O_OE, O_Rc, 0},
- 0, "mullwo", 0 },
- { XO_OPCODE(31,235,1,1), XO_MASK, {O_rD, O_rA, O_rB, O_OE, O_Rc, 0},
- 0, "mullwo.", 0 },
- { XO_OPCODE(31,266,1,0), XO_MASK, {O_rD, O_rA, O_rB, O_OE, O_Rc, 0},
- 0, "addo", 0 },
- { XO_OPCODE(31,266,1,1), XO_MASK, {O_rD, O_rA, O_rB, O_OE, O_Rc, 0},
- 0, "addo.", 0 },
- { X_OPCODE(31,790,0), X_MASK, {O_rD, O_rA, O_rB, 0},
- 0, "lhbrx", H_RA0_IS_0 },
- { X_OPCODE(31,792,0), X_MASK, {O_rA, O_rS, O_rB, O_Rc, 0},
- 0, "sraw", 0 },
- { X_OPCODE(31,792,1), X_MASK, {O_rA, O_rS, O_rB, O_Rc, 0},
- 0, "sraw.", 0 },
- { X_OPCODE(31,824,0), X_MASK, {O_rA, O_rS, O_SH, O_Rc, 0},
- 0, "srawi", 0 },
- { X_OPCODE(31,824,1), X_MASK, {O_rA, O_rS, O_SH, O_Rc, 0},
- 0, "srawi.", 0 },
- { X_OPCODE(31,854,0), X_MASK, {0},
- 0, "eieio", 0 },
- { X_OPCODE(31,918,0), X_MASK, {O_rS, O_rA, O_rB, 0},
- 0, "sthbrx", H_RA0_IS_0 },
- { X_OPCODE(31,922,0), X_MASK, {O_rA, O_rS, O_Rc, 0},
- 0, "extsh", 0 },
- { X_OPCODE(31,922,1), X_MASK, {O_rA, O_rS, O_Rc, 0},
- 0, "extsh.", 0 },
- { X_OPCODE(31,954,0), X_MASK, {O_rA, O_rS, O_Rc, 0},
- 0, "extsb", 0 },
- { X_OPCODE(31,954,1), X_MASK, {O_rA, O_rS, O_Rc, 0},
- 0, "extsb.", 0 },
- { XO_OPCODE(31,459,1,0), XO_MASK, {O_rD, O_rA, O_rB, O_OE, O_Rc, 0},
- 0, "divwuo", 0 },
- { XO_OPCODE(31,459,1,1), XO_MASK, {O_rD, O_rA, O_rB, O_OE, O_Rc, 0},
- 0, "divwuo.", 0 },
- { X_OPCODE(31,978,0), X_MASK, {O_rB, 0},
- 0, "tlbld", 0 },
- { X_OPCODE(31,982,0), X_MASK, {O_rA, O_rB, 0},
- 0, "icbi", H_RA0_IS_0 },
- { XO_OPCODE(31,491,1,0), XO_MASK, {O_rD, O_rA, O_rB, O_OE, O_Rc, 0},
- 0, "divwo", 0 },
- { XO_OPCODE(31,491,1,1), XO_MASK, {O_rD, O_rA, O_rB, O_OE, O_Rc, 0},
- 0, "divwo.", 0 },
- { X_OPCODE(31,1010,0), X_MASK, {O_rB, 0},
- 0, "tlbli", 0 },
- { X_OPCODE(31,1014,0), X_MASK, {O_rA, O_rB, 0},
- 0, "dcbz", H_RA0_IS_0 },
- { D_OPCODE(32), D_MASK, {O_rD, O_d, O_rA, 0},
- 0, "lwz", H_RA0_IS_0 },
- { D_OPCODE(33), D_MASK, {O_rD, O_d, O_rA, 0},
- 0, "lwzu", 0 },
- { D_OPCODE(34), D_MASK, {O_rD, O_d, O_rA, 0},
- 0, "lbz", H_RA0_IS_0 },
- { D_OPCODE(35), D_MASK, {O_rD, O_d, O_rA, 0},
- 0, "lbzu", 0 },
- { D_OPCODE(36), D_MASK, {O_rS, O_d, O_rA, 0},
- 0, "stw", H_RA0_IS_0 },
- { D_OPCODE(37), D_MASK, {O_rS, O_d, O_rA, 0},
- 0, "stwu", 0 },
- { D_OPCODE(38), D_MASK, {O_rS, O_d, O_rA, 0},
- 0, "stb", H_RA0_IS_0 },
- { D_OPCODE(39), D_MASK, {O_rS, O_d, O_rA, 0},
- 0, "stbu", 0 },
- { D_OPCODE(40), D_MASK, {O_rD, O_d, O_rA, 0},
- 0, "lhz", H_RA0_IS_0 },
- { D_OPCODE(41), D_MASK, {O_rD, O_d, O_rA, 0},
- 0, "lhzu", 0 },
- { D_OPCODE(42), D_MASK, {O_rD, O_d, O_rA, 0},
- 0, "lha", H_RA0_IS_0 },
- { D_OPCODE(43), D_MASK, {O_rD, O_d, O_rA, 0},
- 0, "lhau", 0 },
- { D_OPCODE(44), D_MASK, {O_rS, O_d, O_rA, 0},
- 0, "sth", H_RA0_IS_0 },
- { D_OPCODE(45), D_MASK, {O_rS, O_d, O_rA, 0},
- 0, "sthu", 0 },
- { D_OPCODE(46), D_MASK, {O_rD, O_d, O_rA, 0},
- 0, "lmw", H_RA0_IS_0 },
- { D_OPCODE(47), D_MASK, {O_rS, O_d, O_rA, 0},
- 0, "stmw", H_RA0_IS_0 },
-};
-
-const unsigned int n_opcodes = sizeof(opcodes) / sizeof(opcodes[0]);
-
-struct spr_info spr_map[] = {
- { SPR_XER, "XER" },
- { SPR_LR, "LR" },
- { SPR_CTR, "CTR" },
- { SPR_DSISR, "DSISR" },
- { SPR_DAR, "DAR" },
- { SPR_DEC, "DEC" },
- { SPR_SRR0, "SRR0" },
- { SPR_SRR1, "SRR1" },
- { SPR_EIE, "EIE" },
- { SPR_EID, "EID" },
- { SPR_CMPA, "CMPA" },
- { SPR_CMPB, "CMPB" },
- { SPR_CMPC, "CMPC" },
- { SPR_CMPD, "CMPD" },
- { SPR_ICR, "ICR" },
- { SPR_DER, "DER" },
- { SPR_COUNTA, "COUNTA" },
- { SPR_COUNTB, "COUNTB" },
- { SPR_CMPE, "CMPE" },
- { SPR_CMPF, "CMPF" },
- { SPR_CMPG, "CMPG" },
- { SPR_CMPH, "CMPH" },
- { SPR_LCTRL1, "LCTRL1" },
- { SPR_LCTRL2, "LCTRL2" },
- { SPR_ICTRL, "ICTRL" },
- { SPR_BAR, "BAR" },
- { SPR_USPRG0, "USPRG0" },
- { SPR_SPRG4_RO, "SPRG4_RO" },
- { SPR_SPRG5_RO, "SPRG5_RO" },
- { SPR_SPRG6_RO, "SPRG6_RO" },
- { SPR_SPRG7_RO, "SPRG7_RO" },
- { SPR_SPRG0, "SPRG0" },
- { SPR_SPRG1, "SPRG1" },
- { SPR_SPRG2, "SPRG2" },
- { SPR_SPRG3, "SPRG3" },
- { SPR_SPRG4, "SPRG4" },
- { SPR_SPRG5, "SPRG5" },
- { SPR_SPRG6, "SPRG6" },
- { SPR_SPRG7, "SPRG7" },
- { SPR_EAR, "EAR" },
- { SPR_TBL, "TBL" },
- { SPR_TBU, "TBU" },
- { SPR_IC_CST, "IC_CST" },
- { SPR_IC_ADR, "IC_ADR" },
- { SPR_IC_DAT, "IC_DAT" },
- { SPR_DC_CST, "DC_CST" },
- { SPR_DC_ADR, "DC_ADR" },
- { SPR_DC_DAT, "DC_DAT" },
- { SPR_DPDR, "DPDR" },
- { SPR_IMMR, "IMMR" },
- { SPR_MI_CTR, "MI_CTR" },
- { SPR_MI_AP, "MI_AP" },
- { SPR_MI_EPN, "MI_EPN" },
- { SPR_MI_TWC, "MI_TWC" },
- { SPR_MI_RPN, "MI_RPN" },
- { SPR_MD_CTR, "MD_CTR" },
- { SPR_M_CASID, "M_CASID" },
- { SPR_MD_AP, "MD_AP" },
- { SPR_MD_EPN, "MD_EPN" },
- { SPR_M_TWB, "M_TWB" },
- { SPR_MD_TWC, "MD_TWC" },
- { SPR_MD_RPN, "MD_RPN" },
- { SPR_M_TW, "M_TW" },
- { SPR_MI_DBCAM, "MI_DBCAM" },
- { SPR_MI_DBRAM0, "MI_DBRAM0" },
- { SPR_MI_DBRAM1, "MI_DBRAM1" },
- { SPR_MD_DBCAM, "MD_DBCAM" },
- { SPR_MD_DBRAM0, "MD_DBRAM0" },
- { SPR_MD_DBRAM1, "MD_DBRAM1" },
- { SPR_ZPR, "ZPR" },
- { SPR_PID, "PID" },
- { SPR_CCR0, "CCR0" },
- { SPR_IAC3, "IAC3" },
- { SPR_IAC4, "IAC4" },
- { SPR_DVC1, "DVC1" },
- { SPR_DVC2, "DVC2" },
- { SPR_SGR, "SGR" },
- { SPR_DCWR, "DCWR" },
- { SPR_SLER, "SLER" },
- { SPR_SU0R, "SU0R" },
- { SPR_DBCR1, "DBCR1" },
- { SPR_ICDBDR, "ICDBDR" },
- { SPR_ESR, "ESR" },
- { SPR_DEAR, "DEAR" },
- { SPR_EVPR, "EVPR" },
- { SPR_TSR, "TSR" },
- { SPR_TCR, "TCR" },
- { SPR_PIT, "PIT" },
- { SPR_SRR2, "SRR2" },
- { SPR_SRR3, "SRR3" },
- { SPR_DBSR, "DBSR" },
- { SPR_DBCR0, "DBCR0" },
- { SPR_IAC1, "IAC1" },
- { SPR_IAC2, "IAC2" },
- { SPR_DAC1, "DAC1" },
- { SPR_DAC2, "DAC2" },
- { SPR_DCCR, "DCCR" },
- { SPR_ICCR, "ICCR" },
-};
-
-const unsigned int n_sprs = sizeof(spr_map) / sizeof(spr_map[0]);
-
-#endif
-
-/*
- * Copyright (c) 2000 William L. Pitts and W. Gerald Hicks
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms are freely
- * permitted provided that the above copyright notice and this
- * paragraph and the following disclaimer are duplicated in all
- * such forms.
- *
- * This software is provided "AS IS" and without any express or
- * implied warranties, including, without limitation, the implied
- * warranties of merchantability and fitness for a particular
- * purpose.
- */
diff --git a/include/bedbug/type.h b/include/bedbug/type.h
deleted file mode 100644
index f7a719caf0a..00000000000
--- a/include/bedbug/type.h
+++ /dev/null
@@ -1,29 +0,0 @@
-#ifndef _TYPE_BEDBUG_H
-#define _TYPE_BEDBUG_H
-
-struct cmd_tbl;
-
-/* Supporting routines */
-int bedbug_puts (const char *);
-int bedbug_init(void);
-void bedbug860_init (void);
-void do_bedbug_breakpoint (struct pt_regs *);
-void bedbug_main_loop (unsigned long, struct pt_regs *);
-
-
-typedef struct {
- int hw_debug_enabled;
- int stopped;
- int current_bp;
- struct pt_regs *regs;
-
- void (*do_break)(struct cmd_tbl *cmd, int flags, int argc,
- char *const argv[]);
- void (*break_isr) (struct pt_regs *);
- int (*find_empty) (void);
- int (*set) (int, unsigned long);
- int (*clear) (int);
-} CPU_DEBUG_CTX;
-
-
-#endif /* _TYPE_BEDBUG_H */
diff --git a/include/bloblist.h b/include/bloblist.h
index 9f007c7a94d..173129b0273 100644
--- a/include/bloblist.h
+++ b/include/bloblist.h
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: GPL-2.0+ BSD-3-Clause */
/*
* This provides a standard way of passing information between boot phases
* (TPL -> SPL -> U-Boot proper.)
@@ -13,6 +13,8 @@
#ifndef __BLOBLIST_H
#define __BLOBLIST_H
+#include <mapmem.h>
+
enum {
BLOBLIST_VERSION = 0,
BLOBLIST_MAGIC = 0xb00757a3,
@@ -23,23 +25,57 @@ enum {
enum bloblist_tag_t {
BLOBLISTT_NONE = 0,
- /* Vendor-specific tags are permitted here */
- BLOBLISTT_EC_HOSTEVENT, /* Chromium OS EC host-event mask */
- BLOBLISTT_SPL_HANDOFF, /* Hand-off info from SPL */
- BLOBLISTT_VBOOT_CTX, /* Chromium OS verified boot context */
- BLOBLISTT_VBOOT_HANDOFF, /* Chromium OS internal handoff info */
+ /*
+ * Standard area to allocate blobs used across firmware components, for
+ * things that are very commonly used, particularly in multiple
+ * projects.
+ */
+ BLOBLISTT_AREA_FIRMWARE_TOP = 0x1,
+
+ /* Standard area to allocate blobs used across firmware components */
+ BLOBLISTT_AREA_FIRMWARE = 0x100,
/*
* Advanced Configuration and Power Interface Global Non-Volatile
* Sleeping table. This forms part of the ACPI tables passed to Linux.
*/
- BLOBLISTT_ACPI_GNVS,
- BLOBLISTT_INTEL_VBT, /* Intel Video-BIOS table */
- BLOBLISTT_TPM2_TCG_LOG, /* TPM v2 log space */
- BLOBLISTT_TCPA_LOG, /* TPM log space */
- BLOBLISTT_ACPI_TABLES, /* ACPI tables for x86 */
- BLOBLISTT_SMBIOS_TABLES, /* SMBIOS tables for x86 */
-
- BLOBLISTT_COUNT
+ BLOBLISTT_ACPI_GNVS = 0x100,
+ BLOBLISTT_INTEL_VBT = 0x101, /* Intel Video-BIOS table */
+ BLOBLISTT_TPM2_TCG_LOG = 0x102, /* TPM v2 log space */
+ BLOBLISTT_TCPA_LOG = 0x103, /* TPM log space */
+ BLOBLISTT_ACPI_TABLES = 0x104, /* ACPI tables for x86 */
+ BLOBLISTT_SMBIOS_TABLES = 0x105, /* SMBIOS tables for x86 */
+ BLOBLISTT_VBOOT_CTX = 0x106, /* Chromium OS verified boot context */
+
+ /*
+ * Project-specific tags are permitted here. Projects can be open source
+ * or not, but the format of the data must be fuily documented in an
+ * open source project, including all fields, bits, etc. Naming should
+ * be: BLOBLISTT_<project>_<purpose_here>
+ */
+ BLOBLISTT_PROJECT_AREA = 0x8000,
+ BLOBLISTT_U_BOOT_SPL_HANDOFF = 0x8000, /* Hand-off info from SPL */
+
+ /*
+ * Vendor-specific tags are permitted here. Projects can be open source
+ * or not, but the format of the data must be fuily documented in an
+ * open source project, including all fields, bits, etc. Naming should
+ * be BLOBLISTT_<vendor>_<purpose_here>
+ */
+ BLOBLISTT_VENDOR_AREA = 0xc000,
+
+ /* Tags after this are not allocated for now */
+ BLOBLISTT_EXPANSION = 0x10000,
+
+ /*
+ * Tags from here are on reserved for private use within a single
+ * firmware binary (i.e. a single executable or phase of a project).
+ * These tags can be passed between binaries within a local
+ * implementation, but cannot be used in upstream code. Allocate a
+ * tag in one of the areas above if you want that.
+ *
+ * This area may move in future.
+ */
+ BLOBLISTT_PRIVATE_AREA = 0xffff0000,
};
/**
@@ -50,8 +86,8 @@ enum bloblist_tag_t {
* same place in memory as SPL and U-Boot execute, but it can be safely moved
* around.
*
- * None of the bloblist structures contain pointers but it is possible to put
- * pointers inside a bloblist record if desired. This is not encouraged,
+ * None of the bloblist headers themselves contain pointers but it is possible
+ * to put pointers inside a bloblist record if desired. This is not encouraged,
* since it can make part of the bloblist inaccessible if the pointer is
* no-longer valid. It is better to just store all the data inside a bloblist
* record.
@@ -59,11 +95,11 @@ enum bloblist_tag_t {
* Each bloblist record is aligned to a 16-byte boundary and follows immediately
* from the last.
*
+ * @magic: BLOBLIST_MAGIC
* @version: BLOBLIST_VERSION
* @hdr_size: Size of this header, normally sizeof(struct bloblist_hdr). The
* first bloblist_rec starts at this offset from the start of the header
- * @flags: Space for BLOBLISTF_... flags (none yet)
- * @magic: BLOBLIST_MAGIC
+ * @flags: Space for BLOBLISTF... flags (none yet)
* @size: Total size of the bloblist (non-zero if valid) including this header.
* The bloblist extends for this many bytes from the start of this header.
* When adding new records, the bloblist can grow up to this size.
@@ -74,14 +110,14 @@ enum bloblist_tag_t {
* @chksum: CRC32 for the entire bloblist allocated area. Since any of the
* blobs can be altered after being created, this checksum is only valid
* when the bloblist is finalised before jumping to the next stage of boot.
- * Note: @chksum is last to make it easier to exclude it from the checksum
- * calculation.
+ * Note that chksum is last to make it easier to exclude it from the
+ * checksum calculation.
*/
struct bloblist_hdr {
+ u32 magic;
u32 version;
u32 hdr_size;
u32 flags;
- u32 magic;
u32 size;
u32 alloced;
@@ -92,11 +128,11 @@ struct bloblist_hdr {
/**
* struct bloblist_rec - record for the bloblist
*
- * NOTE: Only exported for testing purposes. Do not use this struct.
- *
* The bloblist contains a number of records each consisting of this record
* structure followed by the data contained. Each records is 16-byte aligned.
*
+ * NOTE: Only exported for testing purposes. Do not use this struct.
+ *
* @tag: Tag indicating what the record contains
* @hdr_size: Size of this header, normally sizeof(struct bloblist_rec). The
* record's data starts at this offset from the start of the record
@@ -111,6 +147,35 @@ struct bloblist_rec {
u32 spare;
};
+/* access CONFIG_BLOBLIST_ADDR, dealing with it possibly not being defined */
+static inline ulong bloblist_addr(void)
+{
+#ifdef CONFIG_BLOBLIST_FIXED
+ return CONFIG_BLOBLIST_ADDR;
+#else
+ return 0;
+#endif
+}
+
+/**
+ * bloblist_check_magic() - return a bloblist if the magic matches
+ *
+ * @addr: Address to check
+ * Return: pointer to bloblist, if the magic matches, else NULL
+ */
+static inline void *bloblist_check_magic(ulong addr)
+{
+ u32 *ptr;
+
+ if (!addr)
+ return NULL;
+ ptr = map_sysmem(addr, 0);
+ if (*ptr != BLOBLIST_MAGIC)
+ return NULL;
+
+ return ptr;
+}
+
/**
* bloblist_find() - Find a blob
*
@@ -118,8 +183,8 @@ struct bloblist_rec {
*
* @tag: Tag to search for (enum bloblist_tag_t)
* @size: Expected size of the blob, or 0 for any size
- * @return pointer to blob if found, or NULL if not found, or a blob was found
- * but it is the wrong size
+ * Return: pointer to blob if found, or NULL if not found, or a blob was found
+ * but it is the wrong size
*/
void *bloblist_find(uint tag, int size);
@@ -135,8 +200,8 @@ void *bloblist_find(uint tag, int size);
* @tag: Tag to add (enum bloblist_tag_t)
* @size: Size of the blob
* @align: Alignment of the blob (in bytes), 0 for default
- * @return pointer to the newly added block, or NULL if there is not enough
- * space for the blob
+ * Return: pointer to the newly added block, or NULL if there is not enough
+ * space for the blob
*/
void *bloblist_add(uint tag, int size, int align);
@@ -149,8 +214,8 @@ void *bloblist_add(uint tag, int size, int align);
* @size: Size of the blob
* @blobp: Returns a pointer to blob on success
* @align: Alignment of the blob (in bytes), 0 for default
- * @return 0 if OK, -ENOSPC if it is missing and could not be added due to lack
- * of space, or -ESPIPE it exists but has the wrong size
+ * Return: 0 if OK, -ENOSPC if it is missing and could not be added due to lack
+ * of space, or -ESPIPE it exists but has the wrong size
*/
int bloblist_ensure_size(uint tag, int size, int align, void **blobp);
@@ -161,8 +226,8 @@ int bloblist_ensure_size(uint tag, int size, int align, void **blobp);
*
* @tag: Tag to add (enum bloblist_tag_t)
* @size: Size of the blob
- * @return pointer to blob, or NULL if it is missing and could not be added due
- * to lack of space, or it exists but has the wrong size
+ * Return: pointer to blob, or NULL if it is missing and could not be added due
+ * to lack of space, or it exists but has the wrong size
*/
void *bloblist_ensure(uint tag, int size);
@@ -174,8 +239,8 @@ void *bloblist_ensure(uint tag, int size);
* @tag: Tag to add (enum bloblist_tag_t)
* @sizep: Size of the blob to create; returns size of actual blob
* @blobp: Returns a pointer to blob on success
- * @return 0 if OK, -ENOSPC if it is missing and could not be added due to lack
- * of space
+ * Return: 0 if OK, -ENOSPC if it is missing and could not be added due to lack
+ * of space
*/
int bloblist_ensure_size_ret(uint tag, int *sizep, void **blobp);
@@ -187,8 +252,8 @@ int bloblist_ensure_size_ret(uint tag, int *sizep, void **blobp);
*
* @tag: Tag to add (enum bloblist_tag_t)
* @new_size: New size of the blob (>0 to expand, <0 to contract)
- * @return 0 if OK, -ENOSPC if the bloblist does not have enough space, -ENOENT
- * if the tag is not found
+ * Return: 0 if OK, -ENOSPC if the bloblist does not have enough space, -ENOENT
+ * if the tag is not found
*/
int bloblist_resize(uint tag, int new_size);
@@ -198,8 +263,8 @@ int bloblist_resize(uint tag, int new_size);
* @addr: Address of bloblist
* @size: Initial size for bloblist
* @flags: Flags to use for bloblist
- * @return 0 if OK, -EFAULT if addr is not aligned correctly, -ENOSPC is the
- * area is not large enough
+ * Return: 0 if OK, -EFAULT if addr is not aligned correctly, -ENOSPC is the
+ * area is not large enough
*/
int bloblist_new(ulong addr, uint size, uint flags);
@@ -208,11 +273,11 @@ int bloblist_new(ulong addr, uint size, uint flags);
*
* @addr: Address of bloblist
* @size: Expected size of blobsize, or 0 to detect the size
- * @return 0 if OK, -ENOENT if the magic number doesn't match (indicating that
- * there problem is no bloblist at the given address), -EPROTONOSUPPORT
- * if the version does not match, -EIO if the checksum does not match,
- * -EFBIG if the expected size does not match the detected size, -ENOSPC
- * if the size is not large enough to hold the headers
+ * Return: 0 if OK, -ENOENT if the magic number doesn't match (indicating that
+ * there problem is no bloblist at the given address), -EPROTONOSUPPORT
+ * if the version does not match, -EIO if the checksum does not match,
+ * -EFBIG if the expected size does not match the detected size, -ENOSPC
+ * if the size is not large enough to hold the headers
*/
int bloblist_check(ulong addr, uint size);
@@ -222,7 +287,7 @@ int bloblist_check(ulong addr, uint size);
* This sets the correct checksum for the bloblist. This ensures that the
* bloblist will be detected correctly by the next phase of U-Boot.
*
- * @return 0
+ * Return: 0
*/
int bloblist_finish(void);
@@ -238,6 +303,20 @@ int bloblist_finish(void);
void bloblist_get_stats(ulong *basep, ulong *sizep, ulong *allocedp);
/**
+ * bloblist_get_base() - Get the base address of the bloblist
+ *
+ * Return: base address of bloblist
+ */
+ulong bloblist_get_base(void);
+
+/**
+ * bloblist_get_size() - Get the size of the bloblist
+ *
+ * Return: the size in bytes
+ */
+ulong bloblist_get_size(void);
+
+/**
* bloblist_show_stats() - Show information about the bloblist
*
* This shows useful information about the bloblist on the console
@@ -255,7 +334,7 @@ void bloblist_show_list(void);
* bloblist_tag_name() - Get the name for a tag
*
* @tag: Tag to check
- * @return name of tag, or "invalid" if an invalid tag is provided
+ * Return: name of tag, or "invalid" if an invalid tag is provided
*/
const char *bloblist_tag_name(enum bloblist_tag_t tag);
@@ -263,7 +342,7 @@ const char *bloblist_tag_name(enum bloblist_tag_t tag);
* bloblist_reloc() - Relocate the bloblist and optionally resize it
*
* @to: Pointer to new bloblist location (must not overlap old location)
- * @to:size: New size for bloblist (must be larger than from_size)
+ * @to_size: New size for bloblist (must be larger than from_size)
* @from: Pointer to bloblist to relocate
* @from_size: Size of bloblist to relocate
*/
@@ -272,8 +351,19 @@ void bloblist_reloc(void *to, uint to_size, void *from, uint from_size);
/**
* bloblist_init() - Init the bloblist system with a single bloblist
*
- * This uses CONFIG_BLOBLIST_ADDR and CONFIG_BLOBLIST_SIZE to set up a bloblist
- * for use by U-Boot.
+ * This locates and sets up the blocklist for use.
+ *
+ * If CONFIG_BLOBLIST_FIXED is selected, it uses CONFIG_BLOBLIST_ADDR and
+ * CONFIG_BLOBLIST_SIZE to set up a bloblist for use by U-Boot.
+ *
+ * If CONFIG_BLOBLIST_ALLOC is selected, it allocates memory for a bloblist of
+ * size CONFIG_BLOBLIST_SIZE.
+ *
+ * If CONFIG_BLOBLIST_PASSAGE is selected, it uses the bloblist in the incoming
+ * standard passage. The size is detected automatically so CONFIG_BLOBLIST_SIZE
+ * can be 0.
+ *
+ * Return: 0 if OK, -ve on error
*/
int bloblist_init(void);
diff --git a/include/configs/am335x_evm.h b/include/configs/am335x_evm.h
index 7fb1b3a3e3f..0f340806efc 100644
--- a/include/configs/am335x_evm.h
+++ b/include/configs/am335x_evm.h
@@ -143,7 +143,10 @@
"if test $board_name = A335X_SK; then " \
"setenv fdtfile am335x-evmsk.dtb; fi; " \
"if test $board_name = A335_ICE; then " \
- "setenv fdtfile am335x-icev2.dtb; fi; " \
+ "setenv fdtfile am335x-icev2.dtb; " \
+ "if test $ice_mii = mii; then " \
+ "setenv pxe_label_override Pruss; fi;" \
+ "fi; " \
"if test $fdtfile = undefined; then " \
"echo WARNING: Could not determine device tree to use; fi; \0" \
"init_console=" \
diff --git a/include/configs/clearfog.h b/include/configs/clearfog.h
index a30bca5147a..c9af5a40cec 100644
--- a/include/configs/clearfog.h
+++ b/include/configs/clearfog.h
@@ -53,7 +53,7 @@
/* Defines for SPL */
#define CONFIG_SPL_SIZE (140 << 10)
-#define CONFIG_SPL_MAX_SIZE (CONFIG_SPL_SIZE - 0x0030)
+#define CONFIG_SPL_MAX_SIZE (CONFIG_SPL_SIZE - (CONFIG_SPL_TEXT_BASE - 0x40000000))
#define CONFIG_SPL_BSS_START_ADDR (0x40000000 + CONFIG_SPL_SIZE)
#define CONFIG_SPL_BSS_MAX_SIZE (16 << 10)
diff --git a/include/configs/db-88f6720.h b/include/configs/db-88f6720.h
index 19fc669f89d..16c83a88dac 100644
--- a/include/configs/db-88f6720.h
+++ b/include/configs/db-88f6720.h
@@ -32,22 +32,9 @@
*/
#include "mv-common.h"
-/*
- * Memory layout while starting into the bin_hdr via the
- * BootROM:
- *
- * 0x4000.4000 - 0x4003.4000 headers space (192KiB)
- * 0x4000.4030 bin_hdr start address
- * 0x4003.4000 - 0x4004.7c00 BootROM memory allocations (15KiB)
- * 0x4007.fffc BootROM stack top
- *
- * The address space between 0x4007.fffc and 0x400f.fff is not locked in
- * L2 cache thus cannot be used.
- */
-
/* SPL */
/* Defines for SPL */
-#define CONFIG_SPL_MAX_SIZE ((128 << 10) - 0x4030)
+#define CONFIG_SPL_MAX_SIZE ((128 << 10) - (CONFIG_SPL_TEXT_BASE - 0x40000000))
#define CONFIG_SPL_BSS_START_ADDR (0x40000000 + (128 << 10))
#define CONFIG_SPL_BSS_MAX_SIZE (16 << 10)
diff --git a/include/configs/db-88f6820-amc.h b/include/configs/db-88f6820-amc.h
index 1f70c609d23..6538e66052a 100644
--- a/include/configs/db-88f6820-amc.h
+++ b/include/configs/db-88f6820-amc.h
@@ -41,7 +41,7 @@
/* Defines for SPL */
#define CONFIG_SPL_SIZE (140 << 10)
-#define CONFIG_SPL_MAX_SIZE (CONFIG_SPL_SIZE - 0x0030)
+#define CONFIG_SPL_MAX_SIZE (CONFIG_SPL_SIZE - (CONFIG_SPL_TEXT_BASE - 0x40000000))
#define CONFIG_SPL_BSS_START_ADDR (0x40000000 + CONFIG_SPL_SIZE)
#define CONFIG_SPL_BSS_MAX_SIZE (16 << 10)
diff --git a/include/configs/db-88f6820-gp.h b/include/configs/db-88f6820-gp.h
index 41dadfebb94..5f2611995d3 100644
--- a/include/configs/db-88f6820-gp.h
+++ b/include/configs/db-88f6820-gp.h
@@ -50,7 +50,7 @@
/* Defines for SPL */
#define CONFIG_SPL_SIZE (140 << 10)
-#define CONFIG_SPL_MAX_SIZE (CONFIG_SPL_SIZE - 0x0030)
+#define CONFIG_SPL_MAX_SIZE (CONFIG_SPL_SIZE - (CONFIG_SPL_TEXT_BASE - 0x40000000))
#define CONFIG_SPL_BSS_START_ADDR (0x40000000 + CONFIG_SPL_SIZE)
#define CONFIG_SPL_BSS_MAX_SIZE (16 << 10)
diff --git a/include/configs/db-mv784mp-gp.h b/include/configs/db-mv784mp-gp.h
index dbbc33ebf9c..449a56753b1 100644
--- a/include/configs/db-mv784mp-gp.h
+++ b/include/configs/db-mv784mp-gp.h
@@ -59,7 +59,7 @@
/* SPL */
/* Defines for SPL */
-#define CONFIG_SPL_MAX_SIZE ((128 << 10) - 0x4030)
+#define CONFIG_SPL_MAX_SIZE ((128 << 10) - (CONFIG_SPL_TEXT_BASE - 0x40000000))
#define CONFIG_SPL_BSS_START_ADDR (0x40000000 + (128 << 10))
#define CONFIG_SPL_BSS_MAX_SIZE (16 << 10)
diff --git a/include/configs/ds414.h b/include/configs/ds414.h
index 7fba2b4cc42..dbccd46bbdb 100644
--- a/include/configs/ds414.h
+++ b/include/configs/ds414.h
@@ -45,7 +45,7 @@
/* SPL */
/* Defines for SPL */
-#define CONFIG_SPL_MAX_SIZE ((128 << 10) - 0x4030)
+#define CONFIG_SPL_MAX_SIZE ((128 << 10) - (CONFIG_SPL_TEXT_BASE - 0x40000000))
#define CONFIG_SPL_BSS_START_ADDR (0x40000000 + (128 << 10))
#define CONFIG_SPL_BSS_MAX_SIZE (16 << 10)
diff --git a/include/configs/helios4.h b/include/configs/helios4.h
index 56d35d6fdbc..de1ebbf3751 100644
--- a/include/configs/helios4.h
+++ b/include/configs/helios4.h
@@ -53,7 +53,7 @@
/* Defines for SPL */
#define CONFIG_SPL_SIZE (140 << 10)
-#define CONFIG_SPL_MAX_SIZE (CONFIG_SPL_SIZE - 0x0030)
+#define CONFIG_SPL_MAX_SIZE (CONFIG_SPL_SIZE - (CONFIG_SPL_TEXT_BASE - 0x40000000))
#define CONFIG_SPL_BSS_START_ADDR (0x40000000 + CONFIG_SPL_SIZE)
#define CONFIG_SPL_BSS_MAX_SIZE (16 << 10)
diff --git a/include/configs/maxbcm.h b/include/configs/maxbcm.h
index 53ba64909e1..073c5a57b2c 100644
--- a/include/configs/maxbcm.h
+++ b/include/configs/maxbcm.h
@@ -48,7 +48,7 @@
/* SPL */
/* Defines for SPL */
-#define CONFIG_SPL_MAX_SIZE ((128 << 10) - 0x4030)
+#define CONFIG_SPL_MAX_SIZE ((128 << 10) - (CONFIG_SPL_TEXT_BASE - 0x40000000))
#define CONFIG_SPL_BSS_START_ADDR (0x40000000 + (128 << 10))
#define CONFIG_SPL_BSS_MAX_SIZE (16 << 10)
diff --git a/include/configs/qemu-arm.h b/include/configs/qemu-arm.h
index 1287fd16715..9fc53b4739b 100644
--- a/include/configs/qemu-arm.h
+++ b/include/configs/qemu-arm.h
@@ -21,11 +21,35 @@
/* Environment options */
+#if CONFIG_IS_ENABLED(CMD_USB)
+# define BOOT_TARGET_USB(func) func(USB, usb, 0)
+#else
+# define BOOT_TARGET_USB(func)
+#endif
+
+#if CONFIG_IS_ENABLED(CMD_SCSI)
+# define BOOT_TARGET_SCSI(func) func(SCSI, scsi, 0)
+#else
+# define BOOT_TARGET_SCSI(func)
+#endif
+
+#if CONFIG_IS_ENABLED(CMD_VIRTIO)
+# define BOOT_TARGET_VIRTIO(func) func(VIRTIO, virtio, 0)
+#else
+# define BOOT_TARGET_VIRTIO(func)
+#endif
+
+#if CONFIG_IS_ENABLED(CMD_DHCP)
+# define BOOT_TARGET_DHCP(func) func(DHCP, dhcp, na)
+#else
+# define BOOT_TARGET_DHCP(func)
+#endif
+
#define BOOT_TARGET_DEVICES(func) \
- func(USB, usb, 0) \
- func(SCSI, scsi, 0) \
- func(VIRTIO, virtio, 0) \
- func(DHCP, dhcp, na)
+ BOOT_TARGET_USB(func) \
+ BOOT_TARGET_SCSI(func) \
+ BOOT_TARGET_VIRTIO(func) \
+ BOOT_TARGET_DHCP(func)
#include <config_distro_bootcmd.h>
diff --git a/include/configs/theadorable.h b/include/configs/theadorable.h
index b43c03d3e8a..3c942cc6fa0 100644
--- a/include/configs/theadorable.h
+++ b/include/configs/theadorable.h
@@ -77,7 +77,7 @@
/* SPL */
/* Defines for SPL */
-#define CONFIG_SPL_MAX_SIZE ((128 << 10) - 0x4030)
+#define CONFIG_SPL_MAX_SIZE ((128 << 10) - (CONFIG_SPL_TEXT_BASE - 0x40000000))
#define CONFIG_SPL_BSS_START_ADDR (0x40000000 + (128 << 10))
#define CONFIG_SPL_BSS_MAX_SIZE (16 << 10)
diff --git a/include/configs/ti_armv7_common.h b/include/configs/ti_armv7_common.h
index fa48cd2818c..797e1211980 100644
--- a/include/configs/ti_armv7_common.h
+++ b/include/configs/ti_armv7_common.h
@@ -37,6 +37,7 @@
"fdtaddr=0x88000000\0" \
"dtboaddr=0x89000000\0" \
"fdt_addr_r=0x88000000\0" \
+ "fdtoverlay_addr_r=0x89000000\0" \
"rdaddr=0x88080000\0" \
"ramdisk_addr_r=0x88080000\0" \
"scriptaddr=0x80000000\0" \
diff --git a/include/configs/turris_omnia.h b/include/configs/turris_omnia.h
index 9436a623d6f..b35299b2fbb 100644
--- a/include/configs/turris_omnia.h
+++ b/include/configs/turris_omnia.h
@@ -28,7 +28,7 @@
/* Defines for SPL */
#define CONFIG_SPL_SIZE (140 << 10)
-#define CONFIG_SPL_MAX_SIZE (CONFIG_SPL_SIZE - 0x0030)
+#define CONFIG_SPL_MAX_SIZE (CONFIG_SPL_SIZE - (CONFIG_SPL_TEXT_BASE - 0x40000000))
#define CONFIG_SPL_BSS_START_ADDR (0x40000000 + CONFIG_SPL_SIZE)
#define CONFIG_SPL_BSS_MAX_SIZE (16 << 10)
diff --git a/include/configs/x530.h b/include/configs/x530.h
index e78e249e41a..67ff01db904 100644
--- a/include/configs/x530.h
+++ b/include/configs/x530.h
@@ -68,7 +68,7 @@
/* Defines for SPL */
#define CONFIG_SPL_SIZE (140 << 10)
-#define CONFIG_SPL_MAX_SIZE (CONFIG_SPL_SIZE - 0x0030)
+#define CONFIG_SPL_MAX_SIZE (CONFIG_SPL_SIZE - (CONFIG_SPL_TEXT_BASE - 0x40000000))
#define CONFIG_SPL_BSS_START_ADDR (0x40000000 + CONFIG_SPL_SIZE)
#define CONFIG_SPL_BSS_MAX_SIZE (16 << 10)
diff --git a/include/dm/device.h b/include/dm/device.h
index cf785f7ae21..435a1114f1c 100644
--- a/include/dm/device.h
+++ b/include/dm/device.h
@@ -145,7 +145,7 @@ enum {
* @uclass_node: Used by uclass to link its devices
* @child_head: List of children of this device
* @sibling_node: Next device in list of all devices
- * @flags_: Flags for this device DM_FLAG_... (do not access outside driver
+ * @flags_: Flags for this device `DM_FLAG_...` (do not access outside driver
* model)
* @seq_: Allocated sequence number for this device (-1 = none). This is set up
* when the device is bound and is unique within the device's uclass. If the
@@ -193,14 +193,14 @@ struct udevice {
};
/**
- * udevice_rt - runtime information set up by U-Boot
+ * struct udevice_rt - runtime information set up by U-Boot
*
* This is only used with OF_PLATDATA_RT
*
* There is one of these for every udevice in the linker list, indexed by
* the udevice_info idx value.
*
- * @flags_: Flags for this device DM_FLAG_... (do not access outside driver
+ * @flags_: Flags for this device `DM_FLAG_...` (do not access outside driver
* model)
*/
struct udevice_rt {
@@ -239,7 +239,7 @@ static inline void dev_bic_flags(struct udevice *dev, u32 bic)
* dev_ofnode() - get the DT node reference associated with a udevice
*
* @dev: device to check
- * @return reference of the the device's DT node
+ * Return: reference of the device's DT node
*/
static inline ofnode dev_ofnode(const struct udevice *dev)
{
@@ -351,7 +351,7 @@ struct udevice_id {
* @ops: Driver-specific operations. This is typically a list of function
* pointers defined by the driver, to implement driver functions required by
* the uclass.
- * @flags: driver flags - see DM_FLAGS_...
+ * @flags: driver flags - see `DM_FLAGS_...`
* @acpi_ops: Advanced Configuration and Power Interface (ACPI) operations,
* allowing the device to add things to the ACPI tables passed to Linux
*/
@@ -378,11 +378,24 @@ struct driver {
#endif
};
-/* Declare a new U-Boot driver */
+/**
+ * U_BOOT_DRIVER() - Declare a new U-Boot driver
+ * @__name: name of the driver
+ */
#define U_BOOT_DRIVER(__name) \
ll_entry_declare(struct driver, __name, driver)
-/* Get a pointer to a given driver */
+/**
+ * DM_DRIVER_GET() - Get a pointer to a given driver
+ *
+ * This is useful in code for referencing a driver at build time.
+ * Before this is used, an extern U_BOOT_DRIVER() must have been
+ * declared.
+ *
+ * @__name: Name of the driver. This must be a valid C identifier,
+ * used by the linker_list
+ * Return: struct driver * for the driver
+ */
#define DM_DRIVER_GET(__name) \
ll_entry_get(struct driver, __name, driver)
@@ -392,60 +405,69 @@ struct driver {
* This is useful in data structures and code for referencing a driver at
* build time. Before this is used, an extern U_BOOT_DRIVER() must have been
* declared.
+ * This is like DM_DRIVER_GET, but without the extra code, so it is suitable
+ * for putting into data structures.
*
- * For example:
- *
- * extern U_BOOT_DRIVER(sandbox_fixed_clock);
+ * For example::
*
- * struct driver *drvs[] = {
- * DM_DRIVER_REF(sandbox_fixed_clock),
- * };
+ * extern U_BOOT_DRIVER(sandbox_fixed_clock);
+ * struct driver *drvs[] = {
+ * DM_DRIVER_REF(sandbox_fixed_clock),
+ * };
*
- * @_name: Name of the driver. This must be a valid C identifier, used by the
- * linker_list
- * @returns struct driver * for the driver
+ * @_name: Name of the driver. This must be a valid C identifier,
+ * used by the linker_list
+ * Return: struct driver * for the driver
*/
#define DM_DRIVER_REF(_name) \
ll_entry_ref(struct driver, _name, driver)
/**
- * Declare a macro to state a alias for a driver name. This macro will
- * produce no code but its information will be parsed by tools like
- * dtoc
+ * DM_DRIVER_ALIAS() - Declare a macro to state an alias for a driver name
+ *
+ * This macro will produce no code but its information will be parsed by tools
+ * like dtoc
+ *
+ * @__name: name of driver
+ * @__alias: alias for the driver name
*/
#define DM_DRIVER_ALIAS(__name, __alias)
/**
- * Declare a macro to indicate which phase of U-Boot this driver is fore.
- *
+ * DM_PHASE() - Declare a macro to indicate which phase of U-Boot this driver is for.
*
* This macro produces no code but its information will be parsed by dtoc. The
* macro can be only be used once in a driver. Put it within the U_BOOT_DRIVER()
- * declaration, e.g.:
+ * declaration, e.g.::
+ *
+ * U_BOOT_DRIVER(cpu) = {
+ * .name = ...
+ * ...
+ * DM_PHASE(tpl)
+ * };
*
- * U_BOOT_DRIVER(cpu) = {
- * .name = ...
- * ...
- * DM_PHASE(tpl)
- * };
+ * @_phase: Associated phase of U-Boot ("spl", "tpl")
*/
#define DM_PHASE(_phase)
/**
- * Declare a macro to declare a header needed for a driver. Often the correct
- * header can be found automatically, but only for struct declarations. For
- * enums and #defines used in the driver declaration and declared in a different
- * header from the structs, this macro must be used.
+ * DM_HEADER() - Declare a macro to declare a header needed for a driver.
+ *
+ * Often the correct header can be found automatically, but only for struct
+ * declarations. For enums and #defines used in the driver declaration and
+ * declared in a different header from the structs, this macro must be used.
*
* This macro produces no code but its information will be parsed by dtoc. The
* macro can be used multiple times with different headers, for the same driver.
- * Put it within the U_BOOT_DRIVER() declaration, e.g.:
+ * Put it within the U_BOOT_DRIVER() declaration, e.g.::
+ *
+ * U_BOOT_DRIVER(cpu) = {
+ * .name = ...
+ * ...
+ * DM_HEADER(<asm/cpu.h>)
+ * };
*
- * U_BOOT_DRIVER(cpu) = {
- * .name = ...
- * ...
- * DM_HEADER(<asm/cpu.h>)
- * };
+ * @_hdr: header needed for a driver
*/
#define DM_HEADER(_hdr)
@@ -454,8 +476,8 @@ struct driver {
*
* This checks that dev is not NULL, but no other checks for now
*
- * @dev Device to check
- * @return platform data, or NULL if none
+ * @dev: Device to check
+ * Return: platform data, or NULL if none
*/
void *dev_get_plat(const struct udevice *dev);
@@ -464,8 +486,8 @@ void *dev_get_plat(const struct udevice *dev);
*
* This checks that dev is not NULL, but no other checks for now
*
- * @dev Device to check
- * @return parent's platform data, or NULL if none
+ * @dev: Device to check
+ * Return: parent's platform data, or NULL if none
*/
void *dev_get_parent_plat(const struct udevice *dev);
@@ -474,8 +496,8 @@ void *dev_get_parent_plat(const struct udevice *dev);
*
* This checks that dev is not NULL, but no other checks for now
*
- * @dev Device to check
- * @return uclass's platform data, or NULL if none
+ * @dev: Device to check
+ * Return: uclass's platform data, or NULL if none
*/
void *dev_get_uclass_plat(const struct udevice *dev);
@@ -484,8 +506,8 @@ void *dev_get_uclass_plat(const struct udevice *dev);
*
* This checks that dev is not NULL, but no other checks for now
*
- * @dev Device to check
- * @return private data, or NULL if none
+ * @dev: Device to check
+ * Return: private data, or NULL if none
*/
void *dev_get_priv(const struct udevice *dev);
@@ -498,8 +520,8 @@ void *dev_get_priv(const struct udevice *dev);
*
* This checks that dev is not NULL, but no other checks for now
*
- * @dev Device to check
- * @return parent data, or NULL if none
+ * @dev: Device to check
+ * Return: parent data, or NULL if none
*/
void *dev_get_parent_priv(const struct udevice *dev);
@@ -508,16 +530,16 @@ void *dev_get_parent_priv(const struct udevice *dev);
*
* This checks that dev is not NULL, but no other checks for now
*
- * @dev Device to check
- * @return private uclass data for this device, or NULL if none
+ * @dev: Device to check
+ * Return: private uclass data for this device, or NULL if none
*/
void *dev_get_uclass_priv(const struct udevice *dev);
/**
- * struct dev_get_parent() - Get the parent of a device
+ * dev_get_parent() - Get the parent of a device
*
* @child: Child to check
- * @return parent of child, or NULL if this is the root device
+ * Return: parent of child, or NULL if this is the root device
*/
struct udevice *dev_get_parent(const struct udevice *child);
@@ -529,13 +551,14 @@ struct udevice *dev_get_parent(const struct udevice *child);
* returns the associated data value for that compatible string. This is
* the 'data' field in struct udevice_id.
*
- * As an example, consider this structure:
- * static const struct udevice_id tegra_i2c_ids[] = {
- * { .compatible = "nvidia,tegra114-i2c", .data = TYPE_114 },
- * { .compatible = "nvidia,tegra20-i2c", .data = TYPE_STD },
- * { .compatible = "nvidia,tegra20-i2c-dvc", .data = TYPE_DVC },
- * { }
- * };
+ * As an example, consider this structure::
+ *
+ * static const struct udevice_id tegra_i2c_ids[] = {
+ * { .compatible = "nvidia,tegra114-i2c", .data = TYPE_114 },
+ * { .compatible = "nvidia,tegra20-i2c", .data = TYPE_STD },
+ * { .compatible = "nvidia,tegra20-i2c-dvc", .data = TYPE_DVC },
+ * { }
+ * };
*
* When driver model finds a driver for this it will store the 'data' value
* corresponding to the compatible string it matches. This function returns
@@ -544,7 +567,7 @@ struct udevice *dev_get_parent(const struct udevice *child);
* For USB devices, this is the driver_info field in struct usb_device_id.
*
* @dev: Device to check
- * @return driver data (0 if none is provided)
+ * Return: driver data (0 if none is provided)
*/
ulong dev_get_driver_data(const struct udevice *dev);
@@ -555,7 +578,7 @@ ulong dev_get_driver_data(const struct udevice *dev);
* driver's operations.
*
* @dev: Device to check
- * @return void pointer to driver's operations or NULL for NULL-dev or NULL-ops
+ * Return: void pointer to driver's operations or NULL for NULL-dev or NULL-ops
*/
const void *dev_get_driver_ops(const struct udevice *dev);
@@ -563,7 +586,7 @@ const void *dev_get_driver_ops(const struct udevice *dev);
* device_get_uclass_id() - return the uclass ID of a device
*
* @dev: Device to check
- * @return uclass ID for the device
+ * Return: uclass ID for the device
*/
enum uclass_id device_get_uclass_id(const struct udevice *dev);
@@ -573,7 +596,7 @@ enum uclass_id device_get_uclass_id(const struct udevice *dev);
* This checks that dev is not NULL.
*
* @dev: Device to check
- * @return pointer to the uclass name for the device
+ * Return: pointer to the uclass name for the device
*/
const char *dev_get_uclass_name(const struct udevice *dev);
@@ -583,11 +606,11 @@ const char *dev_get_uclass_name(const struct udevice *dev);
* Returns the numbered child, 0 being the first. This does not use
* sequence numbers, only the natural order.
*
- * @dev: Parent device to check
+ * @parent: Parent device to check
* @index: Child index
* @devp: Returns pointer to device
- * @return 0 if OK, -ENODEV if no such device, other error if the device fails
- * to probe
+ * Return:
+ * 0 if OK, -ENODEV if no such device, other error if the device fails to probe
*/
int device_get_child(const struct udevice *parent, int index,
struct udevice **devp);
@@ -619,7 +642,7 @@ int device_get_decendent_count(const struct udevice *parent);
* @seq: Sequence number to find (0=first)
* @devp: Returns pointer to device (there is only one per for each seq).
* Set to NULL if none is found
- * @return 0 if OK, -ENODEV if not found
+ * Return: 0 if OK, -ENODEV if not found
*/
int device_find_child_by_seq(const struct udevice *parent, int seq,
struct udevice **devp);
@@ -637,7 +660,7 @@ int device_find_child_by_seq(const struct udevice *parent, int seq,
* @seq: Sequence number to find (0=first)
* @devp: Returns pointer to device (there is only one per for each seq)
* Set to NULL if none is found
- * @return 0 if OK, -ve on error
+ * Return: 0 if OK, -ve on error
*/
int device_get_child_by_seq(const struct udevice *parent, int seq,
struct udevice **devp);
@@ -650,7 +673,7 @@ int device_get_child_by_seq(const struct udevice *parent, int seq,
* @parent: Parent device
* @of_offset: Device tree offset to find
* @devp: Returns pointer to device if found, otherwise this is set to NULL
- * @return 0 if OK, -ve on error
+ * Return: 0 if OK, -ve on error
*/
int device_find_child_by_of_offset(const struct udevice *parent, int of_offset,
struct udevice **devp);
@@ -665,7 +688,7 @@ int device_find_child_by_of_offset(const struct udevice *parent, int of_offset,
* @parent: Parent device
* @of_offset: Device tree offset to find
* @devp: Returns pointer to device if found, otherwise this is set to NULL
- * @return 0 if OK, -ve on error
+ * Return: 0 if OK, -ve on error
*/
int device_get_child_by_of_offset(const struct udevice *parent, int of_offset,
struct udevice **devp);
@@ -680,7 +703,7 @@ int device_get_child_by_of_offset(const struct udevice *parent, int of_offset,
*
* @node: Device tree ofnode to find
* @devp: Returns pointer to device if found, otherwise this is set to NULL
- * @return 0 if OK, -ve on error
+ * Return: 0 if OK, -ve on error
*/
int device_find_global_by_ofnode(ofnode node, struct udevice **devp);
@@ -695,7 +718,7 @@ int device_find_global_by_ofnode(ofnode node, struct udevice **devp);
*
* @node: Device tree ofnode to find
* @devp: Returns pointer to device if found, otherwise this is set to NULL
- * @return 0 if OK, -ve on error
+ * Return: 0 if OK, -ve on error
*/
int device_get_global_by_ofnode(ofnode node, struct udevice **devp);
@@ -715,7 +738,7 @@ int device_get_global_by_ofnode(ofnode node, struct udevice **devp);
*
* @idx: Index number of the driver_info/udevice structure (0=first)
* @devp: Returns pointer to device if found, otherwise this is set to NULL
- * @return 0 if OK, -ve on error
+ * Return: 0 if OK, -ve on error
*/
int device_get_by_ofplat_idx(uint idx, struct udevice **devp);
@@ -724,7 +747,7 @@ int device_get_by_ofplat_idx(uint idx, struct udevice **devp);
*
* @parent: Parent device to search
* @devp: Returns first child device, or NULL if none
- * @return 0
+ * Return: 0
*/
int device_find_first_child(const struct udevice *parent,
struct udevice **devp);
@@ -734,7 +757,7 @@ int device_find_first_child(const struct udevice *parent,
*
* @devp: Pointer to previous child device on entry. Returns pointer to next
* child device, or NULL if none
- * @return 0
+ * Return: 0
*/
int device_find_next_child(struct udevice **devp);
@@ -749,7 +772,7 @@ int device_find_next_child(struct udevice **devp);
* @parent: Parent device to search
* @uclass_id: Uclass to look for
* @devp: Returns device found, if any, else NULL
- * @return 0 if found, else -ENODEV
+ * Return: 0 if found, else -ENODEV
*/
int device_find_first_inactive_child(const struct udevice *parent,
enum uclass_id uclass_id,
@@ -761,7 +784,7 @@ int device_find_first_inactive_child(const struct udevice *parent,
* @parent: Parent device to search
* @uclass_id: Uclass to look for
* @devp: Returns first child device in that uclass, if any, else NULL
- * @return 0 if found, else -ENODEV
+ * Return: 0 if found, else -ENODEV
*/
int device_find_first_child_by_uclass(const struct udevice *parent,
enum uclass_id uclass_id,
@@ -774,7 +797,7 @@ int device_find_first_child_by_uclass(const struct udevice *parent,
* @name: Name to look for
* @len: Length of the name
* @devp: Returns device found, if any
- * @return 0 if found, else -ENODEV
+ * Return: 0 if found, else -ENODEV
*/
int device_find_child_by_namelen(const struct udevice *parent, const char *name,
int len, struct udevice **devp);
@@ -785,7 +808,7 @@ int device_find_child_by_namelen(const struct udevice *parent, const char *name,
* @parent: Parent device to search
* @name: Name to look for
* @devp: Returns device found, if any
- * @return 0 if found, else -ENODEV
+ * Return: 0 if found, else -ENODEV
*/
int device_find_child_by_name(const struct udevice *parent, const char *name,
struct udevice **devp);
@@ -798,7 +821,7 @@ int device_find_child_by_name(const struct udevice *parent, const char *name,
*
* @parent: Parent to check
* @devp: Returns child that was found, if any
- * @return 0 on success, -ENODEV if no children, other -ve on error
+ * Return: 0 on success, -ENODEV if no children, other -ve on error
*/
int device_first_child_ofdata_err(struct udevice *parent,
struct udevice **devp);
@@ -811,7 +834,7 @@ int device_first_child_ofdata_err(struct udevice *parent,
*
* @devp: On entry, points to the previous child; on exit returns the child that
* was found, if any
- * @return 0 on success, -ENODEV if no children, other -ve on error
+ * Return: 0 on success, -ENODEV if no children, other -ve on error
*/
int device_next_child_ofdata_err(struct udevice **devp);
@@ -822,7 +845,7 @@ int device_next_child_ofdata_err(struct udevice **devp);
*
* @parent: Parent device to search
* @devp: Returns device found, if any
- * @return 0 if found, -ENODEV if not, -ve error if device failed to probe
+ * Return: 0 if found, -ENODEV if not, -ve error if device failed to probe
*/
int device_first_child_err(struct udevice *parent, struct udevice **devp);
@@ -833,7 +856,7 @@ int device_first_child_err(struct udevice *parent, struct udevice **devp);
*
* @devp: On entry, pointer to device to lookup. On exit, returns pointer
* to the next sibling if no error occurred
- * @return 0 if found, -ENODEV if not, -ve error if device failed to probe
+ * Return: 0 if found, -ENODEV if not, -ve error if device failed to probe
*/
int device_next_child_err(struct udevice **devp);
@@ -841,7 +864,7 @@ int device_next_child_err(struct udevice **devp);
* device_has_children() - check if a device has any children
*
* @dev: Device to check
- * @return true if the device has one or more children
+ * Return: true if the device has one or more children
*/
bool device_has_children(const struct udevice *dev);
@@ -849,7 +872,7 @@ bool device_has_children(const struct udevice *dev);
* device_has_active_children() - check if a device has any active children
*
* @dev: Device to check
- * @return true if the device has one or more children and at least one of
+ * Return: true if the device has one or more children and at least one of
* them is active (probed).
*/
bool device_has_active_children(const struct udevice *dev);
@@ -862,7 +885,7 @@ bool device_has_active_children(const struct udevice *dev);
* view of devices is being displayed.
*
* @dev: Device to check
- * @return true if there are no more siblings after this one - i.e. is it
+ * Return: true if there are no more siblings after this one - i.e. is it
* last in the list.
*/
bool device_is_last_sibling(const struct udevice *dev);
@@ -880,7 +903,7 @@ bool device_is_last_sibling(const struct udevice *dev);
* @dev: Device to update
* @name: New name (this string is allocated new memory and attached to
* the device)
- * @return 0 if OK, -ENOMEM if there is not enough memory to allocate the
+ * Return: 0 if OK, -ENOMEM if there is not enough memory to allocate the
* string
*/
int device_set_name(struct udevice *dev, const char *name);
@@ -903,7 +926,7 @@ void device_set_name_alloced(struct udevice *dev);
* @dev: udevice pointer for which compatible needs to be verified.
* @compat: Compatible string which needs to verified in the given
* device
- * @return true if OK, false if the compatible is not found
+ * Return: true if OK, false if the compatible is not found
*/
bool device_is_compatible(const struct udevice *dev, const char *compat);
@@ -914,7 +937,7 @@ bool device_is_compatible(const struct udevice *dev, const char *compat);
* This allows to check whether the machine is comaptible with the compat.
*
* @compat: Compatible string which needs to verified
- * @return true if OK, false if the compatible is not found
+ * Return: true if OK, false if the compatible is not found
*/
bool of_machine_is_compatible(const char *compat);
@@ -922,7 +945,7 @@ bool of_machine_is_compatible(const char *compat);
* dev_disable_by_path() - Disable a device given its device tree path
*
* @path: The device tree path identifying the device to be disabled
- * @return 0 on success, -ve on error
+ * Return: 0 on success, -ve on error
*/
int dev_disable_by_path(const char *path);
@@ -930,7 +953,7 @@ int dev_disable_by_path(const char *path);
* dev_enable_by_path() - Enable a device given its device tree path
*
* @path: The device tree path identifying the device to be enabled
- * @return 0 on success, -ve on error
+ * Return: 0 on success, -ve on error
*/
int dev_enable_by_path(const char *path);
@@ -938,7 +961,7 @@ int dev_enable_by_path(const char *path);
* device_is_on_pci_bus - Test if a device is on a PCI bus
*
* @dev: device to test
- * @return: true if it is on a PCI bus, false otherwise
+ * Return: true if it is on a PCI bus, false otherwise
*/
static inline bool device_is_on_pci_bus(const struct udevice *dev)
{
@@ -971,7 +994,7 @@ static inline bool device_is_on_pci_bus(const struct udevice *dev)
*
* This stops when it gets an error, with @pos set to the device that failed to
* read ofdata.
-
+ *
* This creates a for() loop which works through the available children of
* a device in order from start to end. Device ofdata is read by calling
* device_of_to_plat() on each one. The devices are not probed.
@@ -1012,7 +1035,7 @@ static inline bool device_is_on_pci_bus(const struct udevice *dev)
* be bound.
*
* @dev: Device to scan
- * @return 0 if OK, -ve on error
+ * Return: 0 if OK, -ve on error
*/
int dm_scan_fdt_dev(struct udevice *dev);
diff --git a/include/dm/devres.h b/include/dm/devres.h
index 17bb1ee8dad..0ab277ec38e 100644
--- a/include/dm/devres.h
+++ b/include/dm/devres.h
@@ -51,7 +51,7 @@ void *_devres_alloc(dr_release_t release, size_t size, gfp_t gfp);
* with @release. The returned pointer can be passed to
* other devres_*() functions.
*
- * RETURNS:
+ * Return:
* Pointer to allocated devres on success, NULL on failure.
*/
#define devres_alloc(release, size, gfp) \
@@ -87,7 +87,7 @@ void devres_add(struct udevice *dev, void *res);
* and for which @match returns 1. If @match is NULL, it's considered
* to match all.
*
- * @return pointer to found devres, NULL if not found.
+ * Return: pointer to found devres, NULL if not found.
*/
void *devres_find(struct udevice *dev, dr_release_t release,
dr_match_t match, void *match_data);
@@ -103,7 +103,7 @@ void *devres_find(struct udevice *dev, dr_release_t release,
* as @new_res and for which @match return 1. If found, @new_res is
* freed; otherwise, @new_res is added atomically.
*
- * @return ointer to found or added devres.
+ * Return: pointer to found or added devres.
*/
void *devres_get(struct udevice *dev, void *new_res,
dr_match_t match, void *match_data);
@@ -120,7 +120,7 @@ void *devres_get(struct udevice *dev, void *new_res,
* match all. If found, the resource is removed atomically and
* returned.
*
- * @return ointer to removed devres on success, NULL if not found.
+ * Return: pointer to removed devres on success, NULL if not found.
*/
void *devres_remove(struct udevice *dev, dr_release_t release,
dr_match_t match, void *match_data);
@@ -140,7 +140,7 @@ void *devres_remove(struct udevice *dev, dr_release_t release,
* only the devres-allocated data will be freed. The caller becomes
* responsible for freeing any other data.
*
- * @return 0 if devres is found and freed, -ENOENT if not found.
+ * Return: 0 if devres is found and freed, -ENOENT if not found.
*/
int devres_destroy(struct udevice *dev, dr_release_t release,
dr_match_t match, void *match_data);
@@ -157,7 +157,7 @@ int devres_destroy(struct udevice *dev, dr_release_t release,
* match all. If found, the resource is removed atomically, the
* release function called and the resource freed.
*
- * @return 0 if devres is found and freed, -ENOENT if not found.
+ * Return: 0 if devres is found and freed, -ENOENT if not found.
*/
int devres_release(struct udevice *dev, dr_release_t release,
dr_match_t match, void *match_data);
@@ -173,7 +173,7 @@ int devres_release(struct udevice *dev, dr_release_t release,
* automatically freed on driver detach. Like all other devres
* resources, guaranteed alignment is unsigned long long.
*
- * @return pointer to allocated memory on success, NULL on failure.
+ * Return: pointer to allocated memory on success, NULL on failure.
*/
void *devm_kmalloc(struct udevice *dev, size_t size, gfp_t gfp);
static inline void *devm_kzalloc(struct udevice *dev, size_t size, gfp_t gfp)
diff --git a/include/dm/fdtaddr.h b/include/dm/fdtaddr.h
index d2c19942916..c9d2b27ba6e 100644
--- a/include/dm/fdtaddr.h
+++ b/include/dm/fdtaddr.h
@@ -19,7 +19,7 @@ struct udevice;
*
* @dev: Pointer to a device
*
- * @return addr
+ * Return: addr
*/
fdt_addr_t devfdt_get_addr(const struct udevice *dev);
@@ -29,7 +29,7 @@ fdt_addr_t devfdt_get_addr(const struct udevice *dev);
*
* @dev: Pointer to a device
*
- * @return Pointer to addr, or NULL if there is no such property
+ * Return: Pointer to addr, or NULL if there is no such property
*/
void *devfdt_get_addr_ptr(const struct udevice *dev);
@@ -39,7 +39,7 @@ void *devfdt_get_addr_ptr(const struct udevice *dev);
*
* @dev: Pointer to a device
*
- * @return Pointer to addr, or NULL if there is no such property
+ * Return: Pointer to addr, or NULL if there is no such property
*/
void *devfdt_remap_addr(const struct udevice *dev);
@@ -51,7 +51,7 @@ void *devfdt_remap_addr(const struct udevice *dev);
*
* @dev: Pointer to a device
*
- * @return Pointer to addr, or NULL if there is no such property
+ * Return: Pointer to addr, or NULL if there is no such property
*/
void *devfdt_remap_addr_index(const struct udevice *dev, int index);
@@ -64,7 +64,7 @@ void *devfdt_remap_addr_index(const struct udevice *dev, int index);
*
* @dev: Pointer to a device
*
- * @return Pointer to addr, or NULL if there is no such property
+ * Return: Pointer to addr, or NULL if there is no such property
*/
void *devfdt_remap_addr_name(const struct udevice *dev, const char *name);
@@ -76,8 +76,7 @@ void *devfdt_remap_addr_name(const struct udevice *dev, const char *name);
* @dev: Pointer to device
* @size: size of the memory to map
*
- * @return mapped address, or NULL if the device does not have reg
- * property.
+ * Return: mapped address, or NULL if the device does not have reg property.
*/
void *devfdt_map_physmem(const struct udevice *dev, unsigned long size);
@@ -88,7 +87,7 @@ void *devfdt_map_physmem(const struct udevice *dev, unsigned long size);
* @index: the 'reg' property can hold a list of <addr, size> pairs
* and @index is used to select which one is required
*
- * @return addr
+ * Return: addr
*/
fdt_addr_t devfdt_get_addr_index(const struct udevice *dev, int index);
@@ -100,7 +99,7 @@ fdt_addr_t devfdt_get_addr_index(const struct udevice *dev, int index);
* @index: the 'reg' property can hold a list of <addr, size> pairs
* and @index is used to select which one is required
*
- * @return Pointer to addr, or NULL if there is no such property
+ * Return: Pointer to addr, or NULL if there is no such property
*/
void *devfdt_get_addr_index_ptr(const struct udevice *dev, int index);
@@ -115,7 +114,7 @@ void *devfdt_get_addr_index_ptr(const struct udevice *dev, int index);
* @size: Pointer to size varible - this function returns the size
* specified in the 'reg' property here
*
- * @return addr
+ * Return: addr
*/
fdt_addr_t devfdt_get_addr_size_index(const struct udevice *dev, int index,
fdt_size_t *size);
@@ -128,7 +127,7 @@ fdt_addr_t devfdt_get_addr_size_index(const struct udevice *dev, int index,
* 'reg-names' property providing named-based identification. @index
* indicates the value to search for in 'reg-names'.
*
- * @return addr
+ * Return: addr
*/
fdt_addr_t devfdt_get_addr_name(const struct udevice *dev, const char *name);
@@ -145,7 +144,7 @@ fdt_addr_t devfdt_get_addr_name(const struct udevice *dev, const char *name);
* @size: Pointer to size variable - this function returns the size
* specified in the 'reg' property here
*
- * @return addr
+ * Return: addr
*/
fdt_addr_t devfdt_get_addr_size_name(const struct udevice *dev,
const char *name, fdt_size_t *size);
@@ -154,7 +153,7 @@ fdt_addr_t devfdt_get_addr_size_name(const struct udevice *dev,
* devfdt_get_addr_pci() - Read an address and handle PCI address translation
*
* @dev: Device to read from
- * @return address or FDT_ADDR_T_NONE if not found
+ * Return: address or FDT_ADDR_T_NONE if not found
*/
fdt_addr_t devfdt_get_addr_pci(const struct udevice *dev);
diff --git a/include/dm/lists.h b/include/dm/lists.h
index 5896ae36583..fc3b4ae5850 100644
--- a/include/dm/lists.h
+++ b/include/dm/lists.h
@@ -19,13 +19,14 @@
* for binding a driver given its name and plat.
*
* @name: Name of driver to look up
- * @return pointer to driver, or NULL if not found
+ * Return: pointer to driver, or NULL if not found
*/
struct driver *lists_driver_lookup_name(const char *name);
/**
* lists_uclass_lookup() - Return uclass_driver based on ID of the class
- * id: ID of the class
+ *
+ * @id: ID of the class
*
* This function returns the pointer to uclass_driver, which is the class's
* base structure based on the ID of the class. Returns NULL on error.
@@ -56,7 +57,8 @@ int lists_bind_drivers(struct udevice *parent, bool pre_reloc_only);
* @drv: if non-NULL, force this driver to be bound
* @pre_reloc_only: If true, bind only nodes with special devicetree properties,
* or drivers with the DM_FLAG_PRE_RELOC flag. If false bind all drivers.
- * @return 0 if device was bound, -EINVAL if the device tree is invalid,
+ *
+ * Return: 0 if device was bound, -EINVAL if the device tree is invalid,
* other -ve value on error
*/
int lists_bind_fdt(struct udevice *parent, ofnode node, struct udevice **devp,
diff --git a/include/dm/of.h b/include/dm/of.h
index 5cb6f44a6c6..9c9065b7932 100644
--- a/include/dm/of.h
+++ b/include/dm/of.h
@@ -58,14 +58,13 @@ struct device_node {
* struct of_phandle_args - structure to hold phandle and arguments
*
* This is used when decoding a phandle in a device tree property. Typically
- * these look like this:
+ * these look like this::
*
- * wibble {
- * phandle = <5>;
- * };
- *
- * ...
- * some-prop = <&wibble 1 2 3>
+ * wibble {
+ * phandle = <5>;
+ * };
+ * ...
+ * some-prop = <&wibble 1 2 3>
*
* Here &node is the phandle of the node 'wibble', i.e. 5. There are three
* arguments: 1, 2, 3.
diff --git a/include/dm/of_access.h b/include/dm/of_access.h
index cc382b1671c..ec6e6e2c7c0 100644
--- a/include/dm/of_access.h
+++ b/include/dm/of_access.h
@@ -44,7 +44,7 @@ static inline void of_node_put(const struct device_node *np) { }
* which controls the given node.
*
* @np: Node pointer to check
- * @return number of address cells this node uses
+ * Return: number of address cells this node uses
*/
int of_n_addr_cells(const struct device_node *np);
@@ -55,7 +55,7 @@ int of_n_addr_cells(const struct device_node *np);
* which controls the given node.
*
* @np: Node pointer to check
- * @return number of size cells this node uses
+ * Return: number of size cells this node uses
*/
int of_n_size_cells(const struct device_node *np);
@@ -65,7 +65,7 @@ int of_n_size_cells(const struct device_node *np);
* This function matches fdt_address_cells().
*
* @np: Node pointer to check
- * @return value of #address-cells property in this node, or 2 if none
+ * Return: value of #address-cells property in this node, or 2 if none
*/
int of_simple_addr_cells(const struct device_node *np);
@@ -75,7 +75,7 @@ int of_simple_addr_cells(const struct device_node *np);
* This function matches fdt_size_cells().
*
* @np: Node pointer to check
- * @return value of #size-cells property in this node, or 2 if none
+ * Return: value of #size-cells property in this node, or 2 if none
*/
int of_simple_size_cells(const struct device_node *np);
@@ -85,7 +85,7 @@ int of_simple_size_cells(const struct device_node *np);
* @np: Pointer to device node holding property
* @name: Name of property
* @lenp: If non-NULL, returns length of property
- * @return pointer to property, or NULL if not found
+ * Return: pointer to property, or NULL if not found
*/
struct property *of_find_property(const struct device_node *np,
const char *name, int *lenp);
@@ -98,7 +98,7 @@ struct property *of_find_property(const struct device_node *np,
* @np: Pointer to device node holding property
* @name: Name of property
* @lenp: If non-NULL, returns length of property
- * @return pointer to property value, or NULL if not found
+ * Return: pointer to property value, or NULL if not found
*/
const void *of_get_property(const struct device_node *np, const char *name,
int *lenp);
@@ -110,7 +110,7 @@ const void *of_get_property(const struct device_node *np, const char *name,
* and read all the property with of_get_next_property_by_prop().
*
* @np: Pointer to device node
- * @return pointer to property or NULL if not found
+ * Return: pointer to property or NULL if not found
*/
const struct property *of_get_first_property(const struct device_node *np);
@@ -122,7 +122,7 @@ const struct property *of_get_first_property(const struct device_node *np);
*
* @np: Pointer to device node
* @property: pointer of the current property
- * @return pointer to next property or NULL if not found
+ * Return: pointer to next property or NULL if not found
*/
const struct property *of_get_next_property(const struct device_node *np,
const struct property *property);
@@ -132,11 +132,11 @@ const struct property *of_get_next_property(const struct device_node *np,
*
* Get value for the property identified by node and property pointer.
*
- * @node: node to read
+ * @np: Pointer to device node
* @property: pointer of the property to read
- * @propname: place to property name on success
+ * @name: place to property name on success
* @lenp: place to put length on success
- * @return pointer to property value or NULL if error
+ * Return: pointer to property value or NULL if error
*/
const void *of_get_property_by_prop(const struct device_node *np,
const struct property *property,
@@ -145,7 +145,7 @@ const void *of_get_property_by_prop(const struct device_node *np,
/**
* of_device_is_compatible() - Check if the node matches given constraints
- * @device: pointer to node
+ * @np: Pointer to device node
* @compat: required compatible string, NULL or "" for any match
* @type: required device_type value, NULL or "" for any match
* @name: required node name, NULL or "" for any match
@@ -154,7 +154,7 @@ const void *of_get_property_by_prop(const struct device_node *np,
* properties of the given @device. A constraints can be skipped by
* passing NULL or an empty string as the constraint.
*
- * @return 0 for no match, and a positive integer on match. The return
+ * Return: 0 for no match, and a positive integer on match. The return
* value is a relative score with larger values indicating better
* matches. The score is weighted for the most specific compatible value
* to get the highest score. Matching type is next, followed by matching
@@ -179,9 +179,9 @@ int of_device_is_compatible(const struct device_node *np, const char *compat,
/**
* of_device_is_available() - check if a device is available for use
*
- * @device: Node to check for availability
+ * @np: Pointer to device node to check for availability
*
- * @return true if the status property is absent or set to "okay", false
+ * Return: true if the status property is absent or set to "okay", false
* otherwise
*/
bool of_device_is_available(const struct device_node *np);
@@ -189,8 +189,8 @@ bool of_device_is_available(const struct device_node *np);
/**
* of_get_parent() - Get a node's parent, if any
*
- * @node: Node to check
- * @eturns a node pointer, or NULL if none
+ * @np: Pointer to device node to check
+ * Return: a node pointer, or NULL if none
*/
struct device_node *of_get_parent(const struct device_node *np);
@@ -208,7 +208,7 @@ struct device_node *of_get_parent(const struct device_node *np);
* foo Valid alias
* foo/bar Valid alias + relative path
*
- * @return a node pointer or NULL if not found
+ * Return: a node pointer or NULL if not found
*/
struct device_node *of_find_node_opts_by_path(const char *path,
const char **opts);
@@ -228,7 +228,7 @@ static inline struct device_node *of_find_node_by_path(const char *path)
* @type: The type string to match "device_type" or NULL to ignore
* @compatible: The string to match to one of the tokens in the device
* "compatible" list.
- * @return node pointer or NULL if not found
+ * Return: node pointer or NULL if not found
*/
struct device_node *of_find_compatible_node(struct device_node *from,
const char *type, const char *compatible);
@@ -243,7 +243,7 @@ struct device_node *of_find_compatible_node(struct device_node *from,
* @propname: property name to check
* @propval: property value to search for
* @proplen: length of the value in propval
- * @return node pointer or NULL if not found
+ * Return: node pointer or NULL if not found
*/
struct device_node *of_find_node_by_prop_value(struct device_node *from,
const char *propname,
@@ -254,7 +254,7 @@ struct device_node *of_find_node_by_prop_value(struct device_node *from,
*
* @handle: phandle of the node to find
*
- * @return node pointer, or NULL if not found
+ * Return: node pointer, or NULL if not found
*/
struct device_node *of_find_node_by_phandle(phandle handle);
@@ -268,7 +268,7 @@ struct device_node *of_find_node_by_phandle(phandle handle);
* @propname: name of the property to be searched.
* @outp: pointer to return value, modified only if return value is 0.
*
- * @return 0 on success, -EINVAL if the property does not exist,
+ * Return: 0 on success, -EINVAL if the property does not exist,
* -ENODATA if property does not have a value, and -EOVERFLOW if the
* property data isn't large enough.
*/
@@ -286,9 +286,10 @@ int of_read_u32(const struct device_node *np, const char *propname, u32 *outp);
* @index: index of the u32 in the list of values
* @outp: pointer to return value, modified only if return value is 0.
*
- * @return 0 on success, -EINVAL if the property does not exist,
- * -ENODATA if property does not have a value, and -EOVERFLOW if the
- * property data isn't large enough.
+ * Return:
+ * 0 on success, -EINVAL if the property does not exist,
+ * -ENODATA if property does not have a value, and -EOVERFLOW if the
+ * property data isn't large enough.
*/
int of_read_u32_index(const struct device_node *np, const char *propname,
int index, u32 *outp);
@@ -303,9 +304,10 @@ int of_read_u32_index(const struct device_node *np, const char *propname,
* @propname: name of the property to be searched.
* @outp: pointer to return value, modified only if return value is 0.
*
- * @return 0 on success, -EINVAL if the property does not exist,
- * -ENODATA if property does not have a value, and -EOVERFLOW if the
- * property data isn't large enough.
+ * Return:
+ * 0 on success, -EINVAL if the property does not exist,
+ * -ENODATA if property does not have a value, and -EOVERFLOW if the
+ * property data isn't large enough.
*/
int of_read_u64(const struct device_node *np, const char *propname, u64 *outp);
@@ -319,8 +321,9 @@ int of_read_u64(const struct device_node *np, const char *propname, u64 *outp);
* @propname: name of the property to be searched.
* @out_values: pointer to return value, modified only if return value is 0.
* @sz: number of array elements to read
- * @return 0 on success, -EINVAL if the property does not exist, -ENODATA
- * if property does not have a value, and -EOVERFLOW is longer than sz.
+ * Return:
+ * 0 on success, -EINVAL if the property does not exist, -ENODATA
+ * if property does not have a value, and -EOVERFLOW is longer than sz.
*/
int of_read_u32_array(const struct device_node *np, const char *propname,
u32 *out_values, size_t sz);
@@ -334,8 +337,9 @@ int of_read_u32_array(const struct device_node *np, const char *propname,
* @np: pointer to node containing string list property
* @propname: string list property name
* @string: pointer to string to search for in string list
- * @return 0 on success, -EINVAL if the property does not exist, -ENODATA
- * if property does not have a value, and -EOVERFLOW is longer than sz.
+ * Return:
+ * 0 on success, -EINVAL if the property does not exist, -ENODATA
+ * if property does not have a value, and -EOVERFLOW is longer than sz.
*/
int of_property_match_string(const struct device_node *np, const char *propname,
const char *string);
@@ -350,15 +354,17 @@ int of_property_read_string_helper(const struct device_node *np,
* @np: device node from which the property value is to be read.
* @propname: name of the property to be searched.
* @index: index of the string in the list of strings
- * @out_string: pointer to null terminated return string, modified only if
+ * @output: pointer to null terminated return string, modified only if
* return value is 0.
*
* Search for a property in a device tree node and retrieve a null
* terminated string value (pointer to data, not a copy) in the list of strings
* contained in that property.
- * Returns 0 on success, -EINVAL if the property does not exist, -ENODATA if
- * property does not have a value, and -EILSEQ if the string is not
- * null-terminated within the length of the property data.
+ *
+ * Return:
+ * 0 on success, -EINVAL if the property does not exist, -ENODATA if
+ * property does not have a value, and -EILSEQ if the string is not
+ * null-terminated within the length of the property data.
*
* The out_string pointer is modified only if a valid string can be decoded.
*/
@@ -377,10 +383,12 @@ static inline int of_property_read_string_index(const struct device_node *np,
* @propname: name of the property to be searched.
*
* Search for a property in a device tree node and retrieve the number of null
- * terminated string contain in it. Returns the number of strings on
- * success, -EINVAL if the property does not exist, -ENODATA if property
- * does not have a value, and -EILSEQ if the string is not null-terminated
- * within the length of the property data.
+ * terminated string contain in it.
+ *
+ * Return:
+ * the number of strings on success, -EINVAL if the property does not exist,
+ * -ENODATA if property does not have a value, and -EILSEQ if the string is
+ * not null-terminated within the length of the property data.
*/
static inline int of_property_count_strings(const struct device_node *np,
const char *propname)
@@ -395,8 +403,9 @@ static inline int of_property_count_strings(const struct device_node *np,
* @index: For properties holding a table of phandles, this is the index into
* the table
*
- * Returns the device_node pointer with refcount incremented. Use
- * of_node_put() on it when done.
+ * Return:
+ * the device_node pointer with refcount incremented. Use
+ * of_node_put() on it when done.
*/
struct device_node *of_parse_phandle(const struct device_node *np,
const char *phandle_name, int index);
@@ -410,10 +419,11 @@ struct device_node *of_parse_phandle(const struct device_node *np,
* @cells_count: Cell count to use if @cells_name is NULL
* @index: index of a phandle to parse out
* @out_args: optional pointer to output arguments structure (will be filled)
- * @return 0 on success (with @out_args filled out if not NULL), -ENOENT if
- * @list_name does not exist, -EINVAL if a phandle was not found,
- * @cells_name could not be found, the arguments were truncated or there
- * were too many arguments.
+ * Return:
+ * 0 on success (with @out_args filled out if not NULL), -ENOENT if
+ * @list_name does not exist, -EINVAL if a phandle was not found,
+ * @cells_name could not be found, the arguments were truncated or there
+ * were too many arguments.
*
* This function is useful to parse lists of phandles and their arguments.
* Returns 0 on success and fills out_args, on error returns appropriate
@@ -424,17 +434,17 @@ struct device_node *of_parse_phandle(const struct device_node *np,
*
* Example:
*
- * phandle1: node1 {
- * #list-cells = <2>;
- * }
+ * .. code-block::
*
- * phandle2: node2 {
- * #list-cells = <1>;
- * }
- *
- * node3 {
- * list = <&phandle1 1 2 &phandle2 3>;
- * }
+ * phandle1: node1 {
+ * #list-cells = <2>;
+ * };
+ * phandle2: node2 {
+ * #list-cells = <1>;
+ * };
+ * node3 {
+ * list = <&phandle1 1 2 &phandle2 3>;
+ * };
*
* To get a device_node of the `node2' node you may call this:
* of_parse_phandle_with_args(node3, "list", "#list-cells", 1, &args);
@@ -451,14 +461,13 @@ int of_parse_phandle_with_args(const struct device_node *np,
* @list_name: property name that contains a list
* @cells_name: property name that specifies phandles' arguments count
* @cells_count: Cell count to use if @cells_name is NULL
- * @return number of phandle found, -ENOENT if
- * @list_name does not exist, -EINVAL if a phandle was not found,
- * @cells_name could not be found, the arguments were truncated or there
- * were too many arguments.
+ * Return:
+ * number of phandle found, -ENOENT if @list_name does not exist,
+ * -EINVAL if a phandle was not found, @cells_name could not be found,
+ * the arguments were truncated or there were too many arguments.
*
* Returns number of phandle found on success, on error returns appropriate
* errno value.
- *
*/
int of_count_phandle_with_args(const struct device_node *np,
const char *list_name, const char *cells_name,
@@ -471,7 +480,7 @@ int of_count_phandle_with_args(const struct device_node *np,
* the lookup table with the properties. It returns the number of alias
* properties found, or an error code in case of failure.
*
- * @return 9 if OK, -ENOMEM if not enough memory
+ * Return: 9 if OK, -ENOMEM if not enough memory
*/
int of_alias_scan(void);
@@ -483,7 +492,7 @@ int of_alias_scan(void);
*
* @np: Pointer to the given device_node
* @stem: Alias stem of the given device_node
- * @return alias ID, if found, else -ENODEV
+ * Return: alias ID, if found, else -ENODEV
*/
int of_alias_get_id(const struct device_node *np, const char *stem);
@@ -493,14 +502,14 @@ int of_alias_get_id(const struct device_node *np, const char *stem);
*
* The function travels the lookup table to get the highest alias id for the
* given alias stem.
- * @return alias ID, if found, else -1
+ * Return: alias ID, if found, else -1
*/
int of_alias_get_highest_id(const char *stem);
/**
* of_get_stdout() - Get node to use for stdout
*
- * @return node referred to by stdout-path alias, or NULL if none
+ * Return: node referred to by stdout-path alias, or NULL if none
*/
struct device_node *of_get_stdout(void);
diff --git a/include/dm/of_addr.h b/include/dm/of_addr.h
index ee21d5cf4fc..e7f3a280817 100644
--- a/include/dm/of_addr.h
+++ b/include/dm/of_addr.h
@@ -20,11 +20,11 @@
* that can be mapped to a cpu physical address). This is not really specified
* that way, but this is traditionally the way IBM at least do things
*
- * @np: node to check
+ * @np: pointer to node to check
* @in_addr: pointer to input address
- * @return translated address or OF_BAD_ADDR on error
+ * Return: translated address or OF_BAD_ADDR on error
*/
-u64 of_translate_address(const struct device_node *no, const __be32 *in_addr);
+u64 of_translate_address(const struct device_node *np, const __be32 *in_addr);
/**
* of_translate_dma_address() - translate a device-tree DMA address to a CPU
@@ -38,11 +38,11 @@ u64 of_translate_address(const struct device_node *no, const __be32 *in_addr);
* that can be mapped to a cpu physical address). This is not really specified
* that way, but this is traditionally the way IBM at least do things
*
- * @np: node to check
+ * @np: ne
* @in_addr: pointer to input DMA address
- * @return translated DMA address or OF_BAD_ADDR on error
+ * Return: translated DMA address or OF_BAD_ADDR on error
*/
-u64 of_translate_dma_address(const struct device_node *no, const __be32 *in_addr);
+u64 of_translate_dma_address(const struct device_node *np, const __be32 *in_addr);
/**
@@ -51,14 +51,13 @@ u64 of_translate_dma_address(const struct device_node *no, const __be32 *in_addr
* Get DMA ranges for a specifc node, this is useful to perform bus->cpu and
* cpu->bus address translations
*
- * @param blob Pointer to device tree blob
- * @param node_offset Node DT offset
- * @param cpu Pointer to variable storing the range's cpu address
- * @param bus Pointer to variable storing the range's bus address
- * @param size Pointer to variable storing the range's size
- * @return translated DMA address or OF_BAD_ADDR on error
+ * @np: Pointer to device tree blob
+ * @cpu: Pointer to variable storing the range's cpu address
+ * @bus: Pointer to variable storing the range's bus address
+ * @size: Pointer to variable storing the range's size
+ * Return: translated DMA address or OF_BAD_ADDR on error
*/
-int of_get_dma_range(const struct device_node *dev, phys_addr_t *cpu,
+int of_get_dma_range(const struct device_node *np, phys_addr_t *cpu,
dma_addr_t *bus, u64 *size);
/**
@@ -72,9 +71,9 @@ int of_get_dma_range(const struct device_node *dev, phys_addr_t *cpu,
* @index: Index of address to read (0 = first)
* @size: place to put size on success
* @flags: place to put flags on success
- * @return pointer to address which can be read
+ * Return: pointer to address which can be read
*/
-const __be32 *of_get_address(const struct device_node *no, int index,
+const __be32 *of_get_address(const struct device_node *np, int index,
u64 *size, unsigned int *flags);
struct resource;
@@ -90,9 +89,9 @@ struct resource;
* @np: node to check
* @index: index of address to read (0 = first)
* @r: place to put resource information
- * @return 0 if OK, -ve on error
+ * Return: 0 if OK, -ve on error
*/
-int of_address_to_resource(const struct device_node *no, int index,
+int of_address_to_resource(const struct device_node *np, int index,
struct resource *r);
#endif
diff --git a/include/dm/of_extra.h b/include/dm/of_extra.h
index c2498aa5859..17e85a819be 100644
--- a/include/dm/of_extra.h
+++ b/include/dm/of_extra.h
@@ -41,11 +41,11 @@ struct fmap_entry {
};
/**
- * Read a flash entry from the fdt
+ * ofnode_read_fmap_entry() - Read a flash entry from the fdt
*
- * @param node Reference to node to read
- * @param entry Place to put offset and size of this node
- * @return 0 if ok, -ve on error
+ * @node: Reference to node to read
+ * @entry: Place to put offset and size of this node
+ * Return: 0 if ok, -ve on error
*/
int ofnode_read_fmap_entry(ofnode node, struct fmap_entry *entry);
@@ -58,11 +58,11 @@ int ofnode_read_fmap_entry(ofnode node, struct fmap_entry *entry);
* The property must hold one address with a length. This is only tested on
* 32-bit machines.
*
- * @param node ofnode to examine
- * @param prop_name name of property to find
- * @param basep Returns base address of region
- * @param size Returns size of region
- * @return 0 if ok, -1 on error (property not found)
+ * @node: ofnode to examine
+ * @prop_name: name of property to find
+ * @basep: Returns base address of region
+ * @sizep: Returns size of region
+ * Return: 0 if ok, -1 on error (property not found)
*/
int ofnode_decode_region(ofnode node, const char *prop_name, fdt_addr_t *basep,
fdt_size_t *sizep);
@@ -81,14 +81,14 @@ int ofnode_decode_region(ofnode node, const char *prop_name, fdt_addr_t *basep,
* The property value must have an offset and a size. The function checks
* that the region is entirely within the memory bank.5
*
- * @param node ofnode containing the properties (-1 for /config)
- * @param mem_type Type of memory to use, which is a name, such as
- * "u-boot" or "kernel".
- * @param suffix String to append to the memory/offset
- * property names
- * @param basep Returns base of region
- * @param sizep Returns size of region
- * @return 0 if OK, -ive on error
+ * @config_node: ofnode containing the properties (invalid for "/config")
+ * @mem_type: Type of memory to use, which is a name, such as
+ * "u-boot" or "kernel".
+ * @suffix: String to append to the memory/offset
+ * property names
+ * @basep: Returns base of region
+ * @sizep: Returns size of region
+ * Return: 0 if OK, -ive on error
*/
int ofnode_decode_memory_region(ofnode config_node, const char *mem_type,
const char *suffix, fdt_addr_t *basep,
@@ -102,15 +102,15 @@ int ofnode_decode_memory_region(ofnode config_node, const char *mem_type,
*
* This function supports the following two DT bindings:
* - the new DT binding, where 'fixed-link' is a sub-node of the
- * Ethernet device
+ * Ethernet device
* - the old DT binding, where 'fixed-link' is a property with 5
- * cells encoding various information about the fixed PHY
+ * cells encoding various information about the fixed PHY
*
* If both new and old bindings exist, the new one is preferred.
*
- * @param eth_node ofnode containing the fixed-link subnode/property
- * @param phy_node if fixed-link PHY detected, containing the PHY ofnode
- * @return true if a fixed-link pseudo-PHY device exists, false otherwise
+ * @eth_node: ofnode containing the fixed-link subnode/property
+ * @phy_node: if fixed-link PHY detected, containing the PHY ofnode
+ * Return: true if a fixed-link pseudo-PHY device exists, false otherwise
*/
bool ofnode_phy_is_fixed_link(ofnode eth_node, ofnode *phy_node);
@@ -123,8 +123,8 @@ bool ofnode_phy_is_fixed_link(ofnode eth_node, ofnode *phy_node);
* is connected to an on-board PHY or an SFP cage, and is not relevant when it
* has a fixed link (in that case, in-band autoneg should not be used).
*
- * @param eth_node ofnode belonging to the Ethernet controller
- * @return true if in-band autoneg should be used, false otherwise
+ * @eth_node: ofnode belonging to the Ethernet controller
+ * Return: true if in-band autoneg should be used, false otherwise
*/
bool ofnode_eth_uses_inband_aneg(ofnode eth_node);
diff --git a/include/dm/ofnode.h b/include/dm/ofnode.h
index 6601bd83189..0cb324c8b0c 100644
--- a/include/dm/ofnode.h
+++ b/include/dm/ofnode.h
@@ -19,7 +19,7 @@
struct resource;
/**
- * ofnode - reference to a device tree node
+ * typedef union ofnode_union ofnode - reference to a device tree node
*
* This union can hold either a straightforward pointer to a struct device_node
* in the live device tree, or an offset within the flat device tree. In the
@@ -27,7 +27,7 @@ struct resource;
*
* Thus we can reference nodes in both the live tree (once available) and the
* flat tree (until then). Functions are available to translate between an
- * ofnode and either an offset or a struct device_node *.
+ * ofnode and either an offset or a `struct device_node *`.
*
* The reference can also hold a null offset, in which case the pointer value
* here is NULL. This corresponds to a struct device_node * value of
@@ -61,7 +61,7 @@ struct ofnode_phandle_args {
};
/**
- * ofprop - reference to a property of a device tree node
+ * struct ofprop - reference to a property of a device tree node
*
* This struct hold the reference on one property of one node,
* using struct ofnode and an offset within the flat device tree or either
@@ -91,7 +91,7 @@ struct ofprop {
* This cannot be called if the reference contains an offset.
*
* @node: Reference containing struct device_node * (possibly invalid)
- * @return pointer to device node (can be NULL)
+ * Return: pointer to device node (can be NULL)
*/
static inline const struct device_node *ofnode_to_np(ofnode node)
{
@@ -108,7 +108,7 @@ static inline const struct device_node *ofnode_to_np(ofnode node)
* This cannot be called if the reference contains a node pointer.
*
* @node: Reference containing offset (possibly invalid)
- * @return DT offset (can be -1)
+ * Return: DT offset (can be -1)
*/
static inline int ofnode_to_offset(ofnode node)
{
@@ -122,7 +122,8 @@ static inline int ofnode_to_offset(ofnode node)
/**
* ofnode_valid() - check if an ofnode is valid
*
- * @return true if the reference contains a valid ofnode, false if it is NULL
+ * @node: Reference containing offset (possibly invalid)
+ * Return: true if the reference contains a valid ofnode, false if it is NULL
*/
static inline bool ofnode_valid(ofnode node)
{
@@ -136,7 +137,7 @@ static inline bool ofnode_valid(ofnode node)
* offset_to_ofnode() - convert a DT offset to an ofnode
*
* @of_offset: DT offset (either valid, or -1)
- * @return reference to the associated DT offset
+ * Return: reference to the associated DT offset
*/
static inline ofnode offset_to_ofnode(int of_offset)
{
@@ -154,7 +155,7 @@ static inline ofnode offset_to_ofnode(int of_offset)
* np_to_ofnode() - convert a node pointer to an ofnode
*
* @np: Live node pointer (can be NULL)
- * @return reference to the associated node pointer
+ * Return: reference to the associated node pointer
*/
static inline ofnode np_to_ofnode(const struct device_node *np)
{
@@ -173,7 +174,7 @@ static inline ofnode np_to_ofnode(const struct device_node *np)
* is valid is not permitted.
*
* @node: reference to check (possibly invalid)
- * @return true if the reference is a live node pointer, false if it is a DT
+ * Return: true if the reference is a live node pointer, false if it is a DT
* offset
*/
static inline bool ofnode_is_np(ofnode node)
@@ -193,7 +194,9 @@ static inline bool ofnode_is_np(ofnode node)
/**
* ofnode_equal() - check if two references are equal
*
- * @return true if equal, else false
+ * @ref1: first reference to check (possibly invalid)
+ * @ref2: second reference to check (possibly invalid)
+ * Return: true if equal, else false
*/
static inline bool ofnode_equal(ofnode ref1, ofnode ref2)
{
@@ -237,28 +240,28 @@ static inline ofnode ofnode_root(void)
*
* @node: valid node reference that has to be compared
* @name: name that has to be compared with the node name
- * @return true if matches, false if it doesn't match
+ * Return: true if matches, false if it doesn't match
*/
bool ofnode_name_eq(ofnode node, const char *name);
/**
* ofnode_read_u32() - Read a 32-bit integer from a property
*
- * @ref: valid node reference to read property from
+ * @node: valid node reference to read property from
* @propname: name of the property to read from
* @outp: place to put value (if found)
- * @return 0 if OK, -ve on error
+ * Return: 0 if OK, -ve on error
*/
int ofnode_read_u32(ofnode node, const char *propname, u32 *outp);
/**
* ofnode_read_u32_index() - Read a 32-bit integer from a multi-value property
*
- * @ref: valid node reference to read property from
+ * @node: valid node reference to read property from
* @propname: name of the property to read from
* @index: index of the integer to return
* @outp: place to put value (if found)
- * @return 0 if OK, -ve on error
+ * Return: 0 if OK, -ve on error
*/
int ofnode_read_u32_index(ofnode node, const char *propname, int index,
u32 *outp);
@@ -266,47 +269,47 @@ int ofnode_read_u32_index(ofnode node, const char *propname, int index,
/**
* ofnode_read_s32() - Read a 32-bit integer from a property
*
- * @ref: valid node reference to read property from
+ * @node: valid node reference to read property from
* @propname: name of the property to read from
* @outp: place to put value (if found)
- * @return 0 if OK, -ve on error
+ * Return: 0 if OK, -ve on error
*/
static inline int ofnode_read_s32(ofnode node, const char *propname,
- s32 *out_value)
+ s32 *outp)
{
- return ofnode_read_u32(node, propname, (u32 *)out_value);
+ return ofnode_read_u32(node, propname, (u32 *)outp);
}
/**
* ofnode_read_u32_default() - Read a 32-bit integer from a property
*
- * @ref: valid node reference to read property from
+ * @node: valid node reference to read property from
* @propname: name of the property to read from
* @def: default value to return if the property has no value
- * @return property value, or @def if not found
+ * Return: property value, or @def if not found
*/
-u32 ofnode_read_u32_default(ofnode ref, const char *propname, u32 def);
+u32 ofnode_read_u32_default(ofnode node, const char *propname, u32 def);
/**
* ofnode_read_u32_index_default() - Read a 32-bit integer from a multi-value
* property
*
- * @ref: valid node reference to read property from
+ * @node: valid node reference to read property from
* @propname: name of the property to read from
* @index: index of the integer to return
* @def: default value to return if the property has no value
- * @return property value, or @def if not found
+ * Return: property value, or @def if not found
*/
-u32 ofnode_read_u32_index_default(ofnode ref, const char *propname, int index,
+u32 ofnode_read_u32_index_default(ofnode node, const char *propname, int index,
u32 def);
/**
* ofnode_read_s32_default() - Read a 32-bit integer from a property
*
- * @ref: valid node reference to read property from
+ * @node: valid node reference to read property from
* @propname: name of the property to read from
* @def: default value to return if the property has no value
- * @return property value, or @def if not found
+ * Return: property value, or @def if not found
*/
int ofnode_read_s32_default(ofnode node, const char *propname, s32 def);
@@ -316,17 +319,17 @@ int ofnode_read_s32_default(ofnode node, const char *propname, s32 def);
* @node: valid node reference to read property from
* @propname: name of the property to read from
* @outp: place to put value (if found)
- * @return 0 if OK, -ve on error
+ * Return: 0 if OK, -ve on error
*/
int ofnode_read_u64(ofnode node, const char *propname, u64 *outp);
/**
* ofnode_read_u64_default() - Read a 64-bit integer from a property
*
- * @ref: valid node reference to read property from
+ * @node: valid node reference to read property from
* @propname: name of the property to read from
* @def: default value to return if the property has no value
- * @return property value, or @def if not found
+ * Return: property value, or @def if not found
*/
u64 ofnode_read_u64_default(ofnode node, const char *propname, u64 def);
@@ -336,8 +339,8 @@ u64 ofnode_read_u64_default(ofnode node, const char *propname, u64 def);
* @node: valid node reference to read property from
* @propname: name of the property to read
* @sizep: if non-NULL, returns the size of the property, or an error code
- if not found
- * @return property value, or NULL if there is no such property
+ * if not found
+ * Return: property value, or NULL if there is no such property
*/
const void *ofnode_read_prop(ofnode node, const char *propname, int *sizep);
@@ -346,7 +349,7 @@ const void *ofnode_read_prop(ofnode node, const char *propname, int *sizep);
*
* @node: valid node reference to read property from
* @propname: name of the property to read
- * @return string from property value, or NULL if there is no such property
+ * Return: string from property value, or NULL if there is no such property
*/
const char *ofnode_read_string(ofnode node, const char *propname);
@@ -357,7 +360,7 @@ const char *ofnode_read_string(ofnode node, const char *propname);
* @propname: name of the property to read
* @out_values: pointer to return value, modified only if return value is 0
* @sz: number of array elements to read
- * @return 0 if OK, -ve on error
+ * Return: 0 if OK, -ve on error
*
* Search for a property in a device node and read 32-bit value(s) from
* it. Returns 0 on success, -EINVAL if the property does not exist,
@@ -374,7 +377,7 @@ int ofnode_read_u32_array(ofnode node, const char *propname,
*
* @node: valid node reference to read property from
* @propname: name of property to read
- * @return true if property is present (meaning true), false if not present
+ * Return: true if property is present (meaning true), false if not present
*/
bool ofnode_read_bool(ofnode node, const char *propname);
@@ -383,7 +386,7 @@ bool ofnode_read_bool(ofnode node, const char *propname);
*
* @node: valid reference to parent node
* @subnode_name: name of subnode to find
- * @return reference to subnode (which can be invalid if there is no such
+ * Return: reference to subnode (which can be invalid if there is no such
* subnode)
*/
ofnode ofnode_find_subnode(ofnode node, const char *subnode_name);
@@ -429,7 +432,7 @@ static inline ofnode ofnode_next_subnode(ofnode node)
* by default.
*
* @node: node to examine
- * @return false (not enabled) or true (enabled)
+ * Return: false (not enabled) or true (enabled)
*/
bool ofnode_is_enabled(ofnode node);
@@ -437,7 +440,7 @@ bool ofnode_is_enabled(ofnode node);
* ofnode_first_subnode() - find the first subnode of a parent node
*
* @node: valid reference to a valid parent node
- * @return reference to the first subnode (which can be invalid if the parent
+ * Return: reference to the first subnode (which can be invalid if the parent
* node has no subnodes)
*/
ofnode ofnode_first_subnode(ofnode node);
@@ -446,7 +449,7 @@ ofnode ofnode_first_subnode(ofnode node);
* ofnode_next_subnode() - find the next sibling of a subnode
*
* @node: valid reference to previous node (sibling)
- * @return reference to the next subnode (which can be invalid if the node
+ * Return: reference to the next subnode (which can be invalid if the node
* has no more siblings)
*/
ofnode ofnode_next_subnode(ofnode node);
@@ -456,7 +459,7 @@ ofnode ofnode_next_subnode(ofnode node);
* ofnode_get_parent() - get the ofnode's parent (enclosing ofnode)
*
* @node: valid node to look up
- * @return ofnode reference of the parent node
+ * Return: ofnode reference of the parent node
*/
ofnode ofnode_get_parent(ofnode node);
@@ -464,7 +467,7 @@ ofnode ofnode_get_parent(ofnode node);
* ofnode_get_name() - get the name of a node
*
* @node: valid node to look up
- * @return name of node
+ * Return: name of node
*/
const char *ofnode_get_name(ofnode node);
@@ -474,7 +477,7 @@ const char *ofnode_get_name(ofnode node);
* @node: valid node to look up
* @buf: buffer to write the node path into
* @buflen: buffer size
- * @return 0 if OK, -ve on error
+ * Return: 0 if OK, -ve on error
*/
int ofnode_get_path(ofnode node, char *buf, int buflen);
@@ -482,7 +485,7 @@ int ofnode_get_path(ofnode node, char *buf, int buflen);
* ofnode_get_by_phandle() - get ofnode from phandle
*
* @phandle: phandle to look up
- * @return ofnode reference to the phandle
+ * Return: ofnode reference to the phandle
*/
ofnode ofnode_get_by_phandle(uint phandle);
@@ -491,7 +494,7 @@ ofnode ofnode_get_by_phandle(uint phandle);
*
* @node: node to check
* @propname: property to check
- * @return size of property if present, or -EINVAL if not
+ * Return: size of property if present, or -EINVAL if not
*/
int ofnode_read_size(ofnode node, const char *propname);
@@ -504,7 +507,7 @@ int ofnode_read_size(ofnode node, const char *propname);
* @node: node to read from
* @index: Index of address to read (0 for first)
* @size: Pointer to size of the address
- * @return address, or FDT_ADDR_T_NONE if not present or invalid
+ * Return: address, or FDT_ADDR_T_NONE if not present or invalid
*/
phys_addr_t ofnode_get_addr_size_index(ofnode node, int index,
fdt_size_t *size);
@@ -521,7 +524,7 @@ phys_addr_t ofnode_get_addr_size_index(ofnode node, int index,
* @node: node to read from
* @index: Index of address to read (0 for first)
* @size: Pointer to size of the address
- * @return address, or FDT_ADDR_T_NONE if not present or invalid
+ * Return: address, or FDT_ADDR_T_NONE if not present or invalid
*/
phys_addr_t ofnode_get_addr_size_index_notrans(ofnode node, int index,
fdt_size_t *size);
@@ -533,7 +536,7 @@ phys_addr_t ofnode_get_addr_size_index_notrans(ofnode node, int index,
*
* @node: node to read from
* @index: Index of address to read (0 for first)
- * @return address, or FDT_ADDR_T_NONE if not present or invalid
+ * Return: address, or FDT_ADDR_T_NONE if not present or invalid
*/
phys_addr_t ofnode_get_addr_index(ofnode node, int index);
@@ -543,7 +546,7 @@ phys_addr_t ofnode_get_addr_index(ofnode node, int index);
* This reads the register address from a node
*
* @node: node to read from
- * @return address, or FDT_ADDR_T_NONE if not present or invalid
+ * Return: address, or FDT_ADDR_T_NONE if not present or invalid
*/
phys_addr_t ofnode_get_addr(ofnode node);
@@ -553,7 +556,7 @@ phys_addr_t ofnode_get_addr(ofnode node);
* This reads the register size from a node
*
* @node: node to read from
- * @return size of the address, or FDT_SIZE_T_NONE if not present or invalid
+ * Return: size of the address, or FDT_SIZE_T_NONE if not present or invalid
*/
fdt_size_t ofnode_get_size(ofnode node);
@@ -570,7 +573,7 @@ fdt_size_t ofnode_get_size(ofnode node);
* @propname: name of the property containing the string list
* @string: string to look up in the string list
*
- * @return:
+ * Return:
* the index of the string in the list of strings
* -ENODATA if the property is not found
* -EINVAL on some other error
@@ -591,9 +594,9 @@ int ofnode_stringlist_search(ofnode node, const char *propname,
* @node: node to check
* @propname: name of the property containing the string list
* @index: index of the string to return (cannot be negative)
- * @lenp: return location for the string length or an error code on failure
+ * @outp: return location for the string
*
- * @return:
+ * Return:
* 0 if found or -ve error value if not found
*/
int ofnode_read_string_index(ofnode node, const char *propname, int index,
@@ -603,8 +606,8 @@ int ofnode_read_string_index(ofnode node, const char *propname, int index,
* ofnode_read_string_count() - find the number of strings in a string list
*
* @node: node to check
- * @propname: name of the property containing the string list
- * @return:
+ * @property: name of the property containing the string list
+ * Return:
* number of strings in the list, or -ve error value if not found
*/
int ofnode_read_string_count(ofnode node, const char *property);
@@ -620,11 +623,12 @@ int ofnode_read_string_count(ofnode node, const char *property);
* changed as they point directly into the devicetree property.
*
* @node: node to check
+ * @property: name of the property containing the string list
* @listp: returns an allocated, NULL-terminated list of strings if the return
* value is > 0, else is set to NULL
- * @return number of strings in list, 0 if none, -ENOMEM if out of memory,
- * -EINVAL if no such property, -EENODATA if property is empty
- * @return: NULL-terminated list of strings (NULL if no property or empty)
+ * Return:
+ * number of strings in list, 0 if none, -ENOMEM if out of memory,
+ * -EINVAL if no such property, -EENODATA if property is empty
*/
int ofnode_read_string_list(ofnode node, const char *property,
const char ***listp);
@@ -641,17 +645,17 @@ int ofnode_read_string_list(ofnode node, const char *property,
*
* Example:
*
- * phandle1: node1 {
- * #list-cells = <2>;
- * }
- *
- * phandle2: node2 {
- * #list-cells = <1>;
- * }
+ * .. code-block::
*
- * node3 {
- * list = <&phandle1 1 2 &phandle2 3>;
- * }
+ * phandle1: node1 {
+ * #list-cells = <2>;
+ * };
+ * phandle2: node2 {
+ * #list-cells = <1>;
+ * };
+ * node3 {
+ * list = <&phandle1 1 2 &phandle2 3>;
+ * };
*
* To get a device_node of the `node2' node you may call this:
* ofnode_parse_phandle_with_args(node3, "list", "#list-cells", 0, 1, &args);
@@ -659,13 +663,14 @@ int ofnode_read_string_list(ofnode node, const char *property,
* @node: device tree node containing a list
* @list_name: property name that contains a list
* @cells_name: property name that specifies phandles' arguments count
- * @cells_count: Cell count to use if @cells_name is NULL
+ * @cell_count: Cell count to use if @cells_name is NULL
* @index: index of a phandle to parse out
* @out_args: optional pointer to output arguments structure (will be filled)
- * @return 0 on success (with @out_args filled out if not NULL), -ENOENT if
- * @list_name does not exist, -EINVAL if a phandle was not found,
- * @cells_name could not be found, the arguments were truncated or there
- * were too many arguments.
+ * Return:
+ * 0 on success (with @out_args filled out if not NULL), -ENOENT if
+ * @list_name does not exist, -EINVAL if a phandle was not found,
+ * @cells_name could not be found, the arguments were truncated or there
+ * were too many arguments.
*/
int ofnode_parse_phandle_with_args(ofnode node, const char *list_name,
const char *cells_name, int cell_count,
@@ -682,10 +687,10 @@ int ofnode_parse_phandle_with_args(ofnode node, const char *list_name,
* @node: device tree node containing a list
* @list_name: property name that contains a list
* @cells_name: property name that specifies phandles' arguments count
- * @cells_count: Cell count to use if @cells_name is NULL
- * @return number of phandle on success, -ENOENT if @list_name does not
- * exist, -EINVAL if a phandle was not found, @cells_name could not
- * be found.
+ * @cell_count: Cell count to use if @cells_name is NULL
+ * Return:
+ * number of phandle on success, -ENOENT if @list_name does not exist,
+ * -EINVAL if a phandle was not found, @cells_name could not be found.
*/
int ofnode_count_phandle_with_args(ofnode node, const char *list_name,
const char *cells_name, int cell_count);
@@ -694,7 +699,7 @@ int ofnode_count_phandle_with_args(ofnode node, const char *list_name,
* ofnode_path() - find a node by full path
*
* @path: Full path to node, e.g. "/bus/spi@1"
- * @return reference to the node found. Use ofnode_valid() to check if it exists
+ * Return: reference to the node found. Use ofnode_valid() to check if it exists
*/
ofnode ofnode_path(const char *path);
@@ -704,9 +709,9 @@ ofnode ofnode_path(const char *path);
* This looks for a property within the /chosen node and returns its value
*
* @propname: Property name to look for
- * @sizep: Returns size of property, or FDT_ERR_... error code if function
+ * @sizep: Returns size of property, or `FDT_ERR_...` error code if function
* returns NULL
- * @return property value if found, else NULL
+ * Return: property value if found, else NULL
*/
const void *ofnode_read_chosen_prop(const char *propname, int *sizep);
@@ -717,7 +722,7 @@ const void *ofnode_read_chosen_prop(const char *propname, int *sizep);
* checking that it is a valid nul-terminated string
*
* @propname: Property name to look for
- * @return string value if found, else NULL
+ * Return: string value if found, else NULL
*/
const char *ofnode_read_chosen_string(const char *propname);
@@ -727,7 +732,8 @@ const char *ofnode_read_chosen_string(const char *propname);
* This looks up a named property in the chosen node and uses that as a path to
* look up a code.
*
- * @return the referenced node if present, else ofnode_null()
+ * @propname: Property name to look for
+ * Return: the referenced node if present, else ofnode_null()
*/
ofnode ofnode_get_chosen_node(const char *propname);
@@ -737,9 +743,9 @@ ofnode ofnode_get_chosen_node(const char *propname);
* This looks for a property within the /aliases node and returns its value
*
* @propname: Property name to look for
- * @sizep: Returns size of property, or FDT_ERR_... error code if function
+ * @sizep: Returns size of property, or `FDT_ERR_...` error code if function
* returns NULL
- * @return property value if found, else NULL
+ * Return: property value if found, else NULL
*/
const void *ofnode_read_aliases_prop(const char *propname, int *sizep);
@@ -749,7 +755,8 @@ const void *ofnode_read_aliases_prop(const char *propname, int *sizep);
* This looks up a named property in the aliases node and uses that as a path to
* look up a code.
*
- * @return the referenced node if present, else ofnode_null()
+ * @propname: Property name to look for
+ * Return: the referenced node if present, else ofnode_null()
*/
ofnode ofnode_get_aliases_node(const char *propname);
@@ -761,10 +768,10 @@ struct display_timing;
* See doc/device-tree-bindings/video/display-timing.txt for binding
* information.
*
- * @node 'display-timing' node containing the timing subnodes
- * @index Index number to read (0=first timing subnode)
- * @config Place to put timings
- * @return 0 if OK, -FDT_ERR_NOTFOUND if not found
+ * @node: 'display-timing' node containing the timing subnodes
+ * @index: Index number to read (0=first timing subnode)
+ * @config: Place to put timings
+ * Return: 0 if OK, -FDT_ERR_NOTFOUND if not found
*/
int ofnode_decode_display_timing(ofnode node, int index,
struct display_timing *config);
@@ -775,7 +782,7 @@ int ofnode_decode_display_timing(ofnode node, int index,
* @node: node to read
* @propname: property to read
* @lenp: place to put length on success
- * @return pointer to property, or NULL if not found
+ * Return: pointer to property, or NULL if not found
*/
const void *ofnode_get_property(ofnode node, const char *propname, int *lenp);
@@ -787,7 +794,7 @@ const void *ofnode_get_property(ofnode node, const char *propname, int *lenp);
*
* @node: node to read
* @prop: place to put argument reference
- * @return 0 if OK, -ve on error. -FDT_ERR_NOTFOUND if not found
+ * Return: 0 if OK, -ve on error. -FDT_ERR_NOTFOUND if not found
*/
int ofnode_get_first_property(ofnode node, struct ofprop *prop);
@@ -798,7 +805,7 @@ int ofnode_get_first_property(ofnode node, struct ofprop *prop);
* and read all the property with ofnode_get_property_by_prop().
*
* @prop: reference of current argument and place to put reference of next one
- * @return 0 if OK, -ve on error. -FDT_ERR_NOTFOUND if not found
+ * Return: 0 if OK, -ve on error. -FDT_ERR_NOTFOUND if not found
*/
int ofnode_get_next_property(struct ofprop *prop);
@@ -810,7 +817,7 @@ int ofnode_get_next_property(struct ofprop *prop);
* @prop: reference on property
* @propname: If non-NULL, place to property name on success,
* @lenp: If non-NULL, place to put length on success
- * @return 0 if OK, -ve on error. -FDT_ERR_NOTFOUND if not found
+ * Return: 0 if OK, -ve on error. -FDT_ERR_NOTFOUND if not found
*/
const void *ofnode_get_property_by_prop(const struct ofprop *prop,
const char **propname, int *lenp);
@@ -819,7 +826,7 @@ const void *ofnode_get_property_by_prop(const struct ofprop *prop,
* ofnode_is_available() - check if a node is marked available
*
* @node: node to check
- * @return true if node's 'status' property is "okay" (or is missing)
+ * Return: true if node's 'status' property is "okay" (or is missing)
*/
bool ofnode_is_available(ofnode node);
@@ -832,7 +839,7 @@ bool ofnode_is_available(ofnode node);
* @node: node to read from
* @propname: property to read
* @sizep: place to put size value (on success)
- * @return address value, or FDT_ADDR_T_NONE on error
+ * Return: address value, or FDT_ADDR_T_NONE on error
*/
phys_addr_t ofnode_get_addr_size(ofnode node, const char *propname,
phys_size_t *sizep);
@@ -845,11 +852,12 @@ phys_addr_t ofnode_get_addr_size(ofnode node, const char *propname,
* for the array (count bytes). It may have more, but this will be ignored.
* The data is not copied.
*
- * @node node to examine
- * @propname name of property to find
- * @sz number of array elements
- * @return pointer to byte array if found, or NULL if the property is not
- * found or there is not enough data
+ * @node: node to examine
+ * @propname: name of property to find
+ * @sz: number of array elements
+ * Return:
+ * pointer to byte array if found, or NULL if the property is not found or
+ * there is not enough data
*/
const uint8_t *ofnode_read_u8_array_ptr(ofnode node, const char *propname,
size_t sz);
@@ -861,13 +869,14 @@ const uint8_t *ofnode_read_u8_array_ptr(ofnode node, const char *propname,
* corresponds to the given type in the form of fdt_pci_addr.
* The property must hold one fdt_pci_addr with a lengh.
*
- * @node node to examine
- * @type pci address type (FDT_PCI_SPACE_xxx)
- * @propname name of property to find
- * @addr returns pci address in the form of fdt_pci_addr
- * @return 0 if ok, -ENOENT if the property did not exist, -EINVAL if the
- * format of the property was invalid, -ENXIO if the requested
- * address type was not found
+ * @node: node to examine
+ * @type: pci address type (FDT_PCI_SPACE_xxx)
+ * @propname: name of property to find
+ * @addr: returns pci address in the form of fdt_pci_addr
+ * Return:
+ * 0 if ok, -ENOENT if the property did not exist, -EINVAL if the
+ * format of the property was invalid, -ENXIO if the requested
+ * address type was not found
*/
int ofnode_read_pci_addr(ofnode node, enum fdt_pci_space type,
const char *propname, struct fdt_pci_addr *addr);
@@ -878,10 +887,10 @@ int ofnode_read_pci_addr(ofnode node, enum fdt_pci_space type,
* Look at the compatible property of a device node that represents a PCI
* device and extract pci vendor id and device id from it.
*
- * @param node node to examine
- * @param vendor vendor id of the pci device
- * @param device device id of the pci device
- * @return 0 if ok, negative on error
+ * @node: node to examine
+ * @vendor: vendor id of the pci device
+ * @device: device id of the pci device
+ * Return: 0 if ok, negative on error
*/
int ofnode_read_pci_vendev(ofnode node, u16 *vendor, u16 *device);
@@ -892,7 +901,7 @@ int ofnode_read_pci_vendev(ofnode node, u16 *vendor, u16 *device);
* which controls the given node.
*
* @node: Node to check
- * @return number of address cells this node uses
+ * Return: number of address cells this node uses
*/
int ofnode_read_addr_cells(ofnode node);
@@ -903,7 +912,7 @@ int ofnode_read_addr_cells(ofnode node);
* which controls the given node.
*
* @node: Node to check
- * @return number of size cells this node uses
+ * Return: number of size cells this node uses
*/
int ofnode_read_size_cells(ofnode node);
@@ -912,8 +921,8 @@ int ofnode_read_size_cells(ofnode node);
*
* This function matches fdt_address_cells().
*
- * @np: Node pointer to check
- * @return value of #address-cells property in this node, or 2 if none
+ * @node: Node to check
+ * Return: value of #address-cells property in this node, or 2 if none
*/
int ofnode_read_simple_addr_cells(ofnode node);
@@ -922,8 +931,8 @@ int ofnode_read_simple_addr_cells(ofnode node);
*
* This function matches fdt_size_cells().
*
- * @np: Node pointer to check
- * @return value of #size-cells property in this node, or 2 if none
+ * @node: Node to check
+ * Return: value of #size-cells property in this node, or 2 if none
*/
int ofnode_read_simple_size_cells(ofnode node);
@@ -942,14 +951,13 @@ int ofnode_read_simple_size_cells(ofnode node);
* There are 4 settings currently in use
* - u-boot,dm-pre-proper: U-Boot proper pre-relocation only
* - u-boot,dm-pre-reloc: legacy and indicates any of TPL or SPL
- * Existing platforms only use it to indicate nodes needed in
- * SPL. Should probably be replaced by u-boot,dm-spl for
- * new platforms.
+ * Existing platforms only use it to indicate nodes needed in
+ * SPL. Should probably be replaced by u-boot,dm-spl for new platforms.
* - u-boot,dm-spl: SPL and U-Boot pre-relocation
* - u-boot,dm-tpl: TPL and U-Boot pre-relocation
*
* @node: node to check
- * @return true if node is needed in SPL/TL, false otherwise
+ * Return: true if node is needed in SPL/TL, false otherwise
*/
bool ofnode_pre_reloc(ofnode node);
@@ -961,7 +969,7 @@ bool ofnode_pre_reloc(ofnode node);
* @node: Node to read from
* @index: Index of resource to read (0 = first)
* @res: Returns resource that was read, on success
- * @return 0 if OK, -ve on error
+ * Return: 0 if OK, -ve on error
*/
int ofnode_read_resource(ofnode node, uint index, struct resource *res);
@@ -975,7 +983,7 @@ int ofnode_read_resource(ofnode node, uint index, struct resource *res);
* @node: Node to read from
* @name: Name of resource to read
* @res: Returns resource that was read, on success
- * @return 0 if OK, -ve on error
+ * Return: 0 if OK, -ve on error
*/
int ofnode_read_resource_byname(ofnode node, const char *name,
struct resource *res);
@@ -987,7 +995,7 @@ int ofnode_read_resource_byname(ofnode node, const char *name,
*
* @from: ofnode to start from (use ofnode_null() to start at the beginning)
* @compat: Compatible string to match
- * @return ofnode found, or ofnode_null() if none
+ * Return: ofnode found, or ofnode_null() if none
*/
ofnode ofnode_by_compatible(ofnode from, const char *compat);
@@ -998,9 +1006,11 @@ ofnode ofnode_by_compatible(ofnode from, const char *compat);
* @propval and a length @proplen.
*
* @from: ofnode to start from (use ofnode_null() to start at the
- * beginning) @propname: property name to check @propval: property value to
- * search for @proplen: length of the value in propval @return ofnode
- * found, or ofnode_null() if none
+ * beginning)
+ * @propname: property name to check
+ * @propval: property value to search for
+ * @proplen: length of the value in propval
+ * Return: ofnode found, or ofnode_null() if none
*/
ofnode ofnode_by_prop_value(ofnode from, const char *propname,
const void *propval, int proplen);
@@ -1011,14 +1021,13 @@ ofnode ofnode_by_prop_value(ofnode from, const char *propname,
* @node: child node (ofnode, lvalue)
* @parent: parent node (ofnode)
*
- * This is a wrapper around a for loop and is used like so:
+ * This is a wrapper around a for loop and is used like so::
*
- * ofnode node;
- *
- * ofnode_for_each_subnode(node, parent) {
- * Use node
- * ...
- * }
+ * ofnode node;
+ * ofnode_for_each_subnode(node, parent) {
+ * Use node
+ * ...
+ * }
*
* Note that this is implemented as a macro and @node is used as
* iterator in the loop. The parent variable can be a constant or even a
@@ -1036,14 +1045,13 @@ ofnode ofnode_by_prop_value(ofnode from, const char *propname,
* @node: child node (ofnode, lvalue)
* @compat: compatible string to match
*
- * This is a wrapper around a for loop and is used like so:
- *
- * ofnode node;
+ * This is a wrapper around a for loop and is used like so::
*
- * ofnode_for_each_compatible_node(node, parent, compatible) {
- * Use node
- * ...
- * }
+ * ofnode node;
+ * ofnode_for_each_compatible_node(node, parent, compatible) {
+ * Use node
+ * ...
+ * }
*
* Note that this is implemented as a macro and @node is used as
* iterator in the loop.
@@ -1056,8 +1064,8 @@ ofnode ofnode_by_prop_value(ofnode from, const char *propname,
/**
* ofnode_get_child_count() - get the child count of a ofnode
*
- * @node: valid node to get its child count
- * @return the number of subnodes
+ * @parent: valid node to get its child count
+ * Return: the number of subnodes
*/
int ofnode_get_child_count(ofnode parent);
@@ -1068,10 +1076,9 @@ int ofnode_get_child_count(ofnode parent);
* function walks up the tree and applies the various bus mappings along the
* way.
*
- * @ofnode: Device tree node giving the context in which to translate the
- * address
+ * @node: Device tree node giving the context in which to translate the address
* @in_addr: pointer to the address to translate
- * @return the translated address; OF_BAD_ADDR on error
+ * Return: the translated address; OF_BAD_ADDR on error
*/
u64 ofnode_translate_address(ofnode node, const fdt32_t *in_addr);
@@ -1082,10 +1089,10 @@ u64 ofnode_translate_address(ofnode node, const fdt32_t *in_addr);
* This function walks up the tree and applies the various bus mappings along
* the way.
*
- * @ofnode: Device tree node giving the context in which to translate the
- * DMA address
+ * @node: Device tree node giving the context in which to translate the
+ * DMA address
* @in_addr: pointer to the DMA address to translate
- * @return the translated DMA address; OF_BAD_ADDR on error
+ * Return: the translated DMA address; OF_BAD_ADDR on error
*/
u64 ofnode_translate_dma_address(ofnode node, const fdt32_t *in_addr);
@@ -1095,12 +1102,11 @@ u64 ofnode_translate_dma_address(ofnode node, const fdt32_t *in_addr);
* Get DMA ranges for a specifc node, this is useful to perform bus->cpu and
* cpu->bus address translations
*
- * @param blob Pointer to device tree blob
- * @param node_offset Node DT offset
- * @param cpu Pointer to variable storing the range's cpu address
- * @param bus Pointer to variable storing the range's bus address
- * @param size Pointer to variable storing the range's size
- * @return translated DMA address or OF_BAD_ADDR on error
+ * @node: Device tree node
+ * @cpu: Pointer to variable storing the range's cpu address
+ * @bus: Pointer to variable storing the range's bus address
+ * @size: Pointer to variable storing the range's size
+ * Return: translated DMA address or OF_BAD_ADDR on error
*/
int ofnode_get_dma_range(ofnode node, phys_addr_t *cpu, dma_addr_t *bus,
u64 *size);
@@ -1112,7 +1118,7 @@ int ofnode_get_dma_range(ofnode node, phys_addr_t *cpu, dma_addr_t *bus,
*
* @node: Device tree node for which compatible needs to be verified.
* @compat: Compatible string which needs to verified in the given node.
- * @return true if OK, false if the compatible is not found
+ * Return: true if OK, false if the compatible is not found
*/
int ofnode_device_is_compatible(ofnode node, const char *compat);
@@ -1127,7 +1133,7 @@ int ofnode_device_is_compatible(ofnode node, const char *compat);
* @len: The length of the new value of the property
* @value: The new value of the property (must be valid prior to calling
* the function)
- * @return 0 if successful, -ve on error
+ * Return: 0 if successful, -ve on error
*/
int ofnode_write_prop(ofnode node, const char *propname, int len,
const void *value);
@@ -1142,7 +1148,7 @@ int ofnode_write_prop(ofnode node, const char *propname, int len,
* @propname: The name of the string property to set
* @value: The new value of the string property (must be valid prior to
* calling the function)
- * @return 0 if successful, -ve on error
+ * Return: 0 if successful, -ve on error
*/
int ofnode_write_string(ofnode node, const char *propname, const char *value);
@@ -1157,7 +1163,7 @@ int ofnode_write_string(ofnode node, const char *propname, const char *value);
* @node: The node to enable
* @value: Flag that tells the function to either disable or enable the
* node
- * @return 0 if successful, -ve on error
+ * Return: 0 if successful, -ve on error
*/
int ofnode_set_enabled(ofnode node, bool value);
@@ -1168,8 +1174,8 @@ int ofnode_set_enabled(ofnode node, bool value);
*
* See doc/config.txt for bindings
*
- * @prop_name property name to look up
- * @return true, if it exists, false if not
+ * @prop_name: property name to look up
+ * Return: true, if it exists, false if not
*/
bool ofnode_conf_read_bool(const char *prop_name);
@@ -1182,7 +1188,7 @@ bool ofnode_conf_read_bool(const char *prop_name);
*
* @prop_name: property name to look up
* @default_val: default value to return if the property is not found
- * @return integer value, if found, or @default_val if not
+ * Return: integer value, if found, or @default_val if not
*/
int ofnode_conf_read_int(const char *prop_name, int default_val);
@@ -1194,7 +1200,7 @@ int ofnode_conf_read_int(const char *prop_name, int default_val);
* See doc/config.txt for bindings
*
* @prop_name: property name to look up
- * @return string value, if found, or NULL if not
+ * Return: string value, if found, or NULL if not
*/
const char *ofnode_conf_read_str(const char *prop_name);
diff --git a/include/dm/platdata.h b/include/dm/platdata.h
index 4efb1dfe12d..47ba8aab7ae 100644
--- a/include/dm/platdata.h
+++ b/include/dm/platdata.h
@@ -40,7 +40,7 @@ struct driver_info {
#endif
/**
- * driver_rt - runtime information set up by U-Boot
+ * struct driver_rt - runtime information set up by U-Boot
*
* There is one of these for every driver_info in the linker list, indexed by
* the driver_info idx value.
@@ -51,7 +51,7 @@ struct driver_rt {
struct udevice *dev;
};
-/**
+/*
* NOTE: Avoid using these except in extreme circumstances, where device tree
* is not feasible (e.g. serial driver in SPL where <8KB of SRAM is
* available). U-Boot's driver model uses device tree for configuration.
diff --git a/include/dm/read.h b/include/dm/read.h
index 75c6ad6ee49..233af3c0634 100644
--- a/include/dm/read.h
+++ b/include/dm/read.h
@@ -37,7 +37,7 @@ static inline const struct device_node *dev_np(const struct udevice *dev)
* @dev: device to read DT property from
* @propname: name of the property to read from
* @outp: place to put value (if found)
- * @return 0 if OK, -ve on error
+ * Return: 0 if OK, -ve on error
*/
int dev_read_u32(const struct udevice *dev, const char *propname, u32 *outp);
@@ -47,7 +47,7 @@ int dev_read_u32(const struct udevice *dev, const char *propname, u32 *outp);
* @dev: device to read DT property from
* @propname: name of the property to read from
* @def: default value to return if the property has no value
- * @return property value, or @def if not found
+ * Return: property value, or @def if not found
*/
int dev_read_u32_default(const struct udevice *dev, const char *propname,
int def);
@@ -60,7 +60,7 @@ int dev_read_u32_default(const struct udevice *dev, const char *propname,
* @propname: name of the property to read from
* @index: index of the integer to return
* @outp: place to put value (if found)
- * @return 0 if OK, -ve on error
+ * Return: 0 if OK, -ve on error
*/
int dev_read_u32_index(struct udevice *dev, const char *propname, int index,
u32 *outp);
@@ -73,7 +73,7 @@ int dev_read_u32_index(struct udevice *dev, const char *propname, int index,
* @propname: name of the property to read from
* @index: index of the integer to return
* @def: default value to return if the property has no value
- * @return property value, or @def if not found
+ * Return: property value, or @def if not found
*/
u32 dev_read_u32_index_default(struct udevice *dev, const char *propname,
int index, u32 def);
@@ -84,7 +84,7 @@ u32 dev_read_u32_index_default(struct udevice *dev, const char *propname,
* @dev: device to read DT property from
* @propname: name of the property to read from
* @outp: place to put value (if found)
- * @return 0 if OK, -ve on error
+ * Return: 0 if OK, -ve on error
*/
int dev_read_s32(const struct udevice *dev, const char *propname, s32 *outp);
@@ -94,7 +94,7 @@ int dev_read_s32(const struct udevice *dev, const char *propname, s32 *outp);
* @dev: device to read DT property from
* @propname: name of the property to read from
* @def: default value to return if the property has no value
- * @return property value, or @def if not found
+ * Return: property value, or @def if not found
*/
int dev_read_s32_default(const struct udevice *dev, const char *propname,
int def);
@@ -107,7 +107,7 @@ int dev_read_s32_default(const struct udevice *dev, const char *propname,
* @dev: device to read DT property from
* @propname: name of the property to read from
* @outp: place to put value (if found)
- * @return 0 if OK, -ve on error
+ * Return: 0 if OK, -ve on error
*/
int dev_read_u32u(const struct udevice *dev, const char *propname, uint *outp);
@@ -117,7 +117,7 @@ int dev_read_u32u(const struct udevice *dev, const char *propname, uint *outp);
* @dev: device to read DT property from
* @propname: name of the property to read from
* @outp: place to put value (if found)
- * @return 0 if OK, -ve on error
+ * Return: 0 if OK, -ve on error
*/
int dev_read_u64(const struct udevice *dev, const char *propname, u64 *outp);
@@ -127,7 +127,7 @@ int dev_read_u64(const struct udevice *dev, const char *propname, u64 *outp);
* @dev: device to read DT property from
* @propname: name of the property to read from
* @def: default value to return if the property has no value
- * @return property value, or @def if not found
+ * Return: property value, or @def if not found
*/
u64 dev_read_u64_default(const struct udevice *dev, const char *propname,
u64 def);
@@ -137,7 +137,7 @@ u64 dev_read_u64_default(const struct udevice *dev, const char *propname,
*
* @dev: device to read DT property from
* @propname: name of the property to read
- * @return string from property value, or NULL if there is no such property
+ * Return: string from property value, or NULL if there is no such property
*/
const char *dev_read_string(const struct udevice *dev, const char *propname);
@@ -146,7 +146,7 @@ const char *dev_read_string(const struct udevice *dev, const char *propname);
*
* @dev: device to read DT property from
* @propname: name of property to read
- * @return true if property is present (meaning true), false if not present
+ * Return: true if property is present (meaning true), false if not present
*/
bool dev_read_bool(const struct udevice *dev, const char *propname);
@@ -155,17 +155,17 @@ bool dev_read_bool(const struct udevice *dev, const char *propname);
*
* @dev: device whose DT node contains the subnode
* @subnode_name: name of subnode to find
- * @return reference to subnode (which can be invalid if there is no such
+ * Return: reference to subnode (which can be invalid if there is no such
* subnode)
*/
-ofnode dev_read_subnode(const struct udevice *dev, const char *subbnode_name);
+ofnode dev_read_subnode(const struct udevice *dev, const char *subnode_name);
/**
* dev_read_size() - read the size of a property
*
* @dev: device to check
* @propname: property to check
- * @return size of property if present, or -EINVAL if not
+ * Return: size of property if present, or -EINVAL if not
*/
int dev_read_size(const struct udevice *dev, const char *propname);
@@ -176,7 +176,7 @@ int dev_read_size(const struct udevice *dev, const char *propname);
* @index: the 'reg' property can hold a list of <addr, size> pairs
* and @index is used to select which one is required
*
- * @return address or FDT_ADDR_T_NONE if not found
+ * Return: address or FDT_ADDR_T_NONE if not found
*/
fdt_addr_t dev_read_addr_index(const struct udevice *dev, int index);
@@ -188,7 +188,7 @@ fdt_addr_t dev_read_addr_index(const struct udevice *dev, int index);
* @index: the 'reg' property can hold a list of <addr, size> pairs
* and @index is used to select which one is required
*
- * @return pointer or NULL if not found
+ * Return: pointer or NULL if not found
*/
void *dev_read_addr_index_ptr(const struct udevice *dev, int index);
@@ -200,7 +200,7 @@ void *dev_read_addr_index_ptr(const struct udevice *dev, int index);
* and @index is used to select which one is required
* @size: place to put size value (on success)
*
- * @return address or FDT_ADDR_T_NONE if not found
+ * Return: address or FDT_ADDR_T_NONE if not found
*/
fdt_addr_t dev_read_addr_size_index(const struct udevice *dev, int index,
fdt_size_t *size);
@@ -213,7 +213,7 @@ fdt_addr_t dev_read_addr_size_index(const struct udevice *dev, int index,
* @index: the 'reg' property can hold a list of <addr, size> pairs
* and @index is used to select which one is required
*
- * @return pointer or NULL if not found
+ * Return: pointer or NULL if not found
*/
void *dev_remap_addr_index(const struct udevice *dev, int index);
@@ -225,7 +225,7 @@ void *dev_remap_addr_index(const struct udevice *dev, int index);
* 'reg-names' property providing named-based identification. @index
* indicates the value to search for in 'reg-names'.
*
- * @return address or FDT_ADDR_T_NONE if not found
+ * Return: address or FDT_ADDR_T_NONE if not found
*/
fdt_addr_t dev_read_addr_name(const struct udevice *dev, const char *name);
@@ -238,7 +238,7 @@ fdt_addr_t dev_read_addr_name(const struct udevice *dev, const char *name);
* indicates the value to search for in 'reg-names'.
* @size: place to put size value (on success)
*
- * @return address or FDT_ADDR_T_NONE if not found
+ * Return: address or FDT_ADDR_T_NONE if not found
*/
fdt_addr_t dev_read_addr_size_name(const struct udevice *dev, const char *name,
fdt_size_t *size);
@@ -252,7 +252,7 @@ fdt_addr_t dev_read_addr_size_name(const struct udevice *dev, const char *name,
* 'reg-names' property providing named-based identification. @index
* indicates the value to search for in 'reg-names'.
*
- * @return pointer or NULL if not found
+ * Return: pointer or NULL if not found
*/
void *dev_remap_addr_name(const struct udevice *dev, const char *name);
@@ -261,7 +261,7 @@ void *dev_remap_addr_name(const struct udevice *dev, const char *name);
*
* @dev: Device to read from
*
- * @return address or FDT_ADDR_T_NONE if not found
+ * Return: address or FDT_ADDR_T_NONE if not found
*/
fdt_addr_t dev_read_addr(const struct udevice *dev);
@@ -271,7 +271,7 @@ fdt_addr_t dev_read_addr(const struct udevice *dev);
*
* @dev: Device to read from
*
- * @return pointer or NULL if not found
+ * Return: pointer or NULL if not found
*/
void *dev_read_addr_ptr(const struct udevice *dev);
@@ -291,7 +291,7 @@ void *dev_read_addr_ptr(const struct udevice *dev);
* fdtdec_get_addr() and friends.
*
* @dev: Device to read from
- * @return address or FDT_ADDR_T_NONE if not found
+ * Return: address or FDT_ADDR_T_NONE if not found
*/
fdt_addr_t dev_read_addr_pci(const struct udevice *dev);
@@ -301,7 +301,7 @@ fdt_addr_t dev_read_addr_pci(const struct udevice *dev);
*
* @dev: Device to read from
*
- * @return pointer or NULL if not found
+ * Return: pointer or NULL if not found
*/
void *dev_remap_addr(const struct udevice *dev);
@@ -314,7 +314,7 @@ void *dev_remap_addr(const struct udevice *dev);
* @dev: Device to read from
* @propname: property to read
* @sizep: place to put size value (on success)
- * @return address value, or FDT_ADDR_T_NONE on error
+ * Return: address value, or FDT_ADDR_T_NONE on error
*/
fdt_addr_t dev_read_addr_size(const struct udevice *dev, const char *propname,
fdt_size_t *sizep);
@@ -323,7 +323,7 @@ fdt_addr_t dev_read_addr_size(const struct udevice *dev, const char *propname,
* dev_read_name() - get the name of a device's node
*
* @dev: Device to read from
- * @return name of node
+ * Return: name of node
*/
const char *dev_read_name(const struct udevice *dev);
@@ -340,12 +340,12 @@ const char *dev_read_name(const struct udevice *dev);
* @propname: name of the property containing the string list
* @string: string to look up in the string list
*
- * @return:
+ * Return:
* the index of the string in the list of strings
* -ENODATA if the property is not found
* -EINVAL on some other error
*/
-int dev_read_stringlist_search(const struct udevice *dev, const char *property,
+int dev_read_stringlist_search(const struct udevice *dev, const char *propname,
const char *string);
/**
@@ -354,9 +354,9 @@ int dev_read_stringlist_search(const struct udevice *dev, const char *property,
* @dev: device to examine
* @propname: name of the property containing the string list
* @index: index of the string to return
- * @out: return location for the string
+ * @outp: return location for the string
*
- * @return:
+ * Return:
* length of string, if found or -ve error value if not found
*/
int dev_read_string_index(const struct udevice *dev, const char *propname,
@@ -367,7 +367,7 @@ int dev_read_string_index(const struct udevice *dev, const char *propname,
*
* @dev: device to examine
* @propname: name of the property containing the string list
- * @return:
+ * Return:
* number of strings in the list, or -ve error value if not found
*/
int dev_read_string_count(const struct udevice *dev, const char *propname);
@@ -386,8 +386,9 @@ int dev_read_string_count(const struct udevice *dev, const char *propname);
* @propname: name of the property containing the string list
* @listp: returns an allocated, NULL-terminated list of strings if the return
* value is > 0, else is set to NULL
- * @return number of strings in list, 0 if none, -ENOMEM if out of memory,
- * -ENOENT if no such property
+ * Return:
+ * number of strings in list, 0 if none, -ENOMEM if out of memory,
+ * -ENOENT if no such property
*/
int dev_read_string_list(const struct udevice *dev, const char *propname,
const char ***listp);
@@ -404,17 +405,17 @@ int dev_read_string_list(const struct udevice *dev, const char *propname,
*
* Example:
*
- * phandle1: node1 {
- * #list-cells = <2>;
- * }
+ * .. code-block::
*
- * phandle2: node2 {
- * #list-cells = <1>;
- * }
- *
- * node3 {
- * list = <&phandle1 1 2 &phandle2 3>;
- * }
+ * phandle1: node1 {
+ * #list-cells = <2>;
+ * };
+ * phandle2: node2 {
+ * #list-cells = <1>;
+ * };
+ * node3 {
+ * list = <&phandle1 1 2 &phandle2 3>;
+ * };
*
* To get a device_node of the `node2' node you may call this:
* dev_read_phandle_with_args(dev, "list", "#list-cells", 0, 1, &args);
@@ -422,10 +423,10 @@ int dev_read_string_list(const struct udevice *dev, const char *propname,
* @dev: device whose node containing a list
* @list_name: property name that contains a list
* @cells_name: property name that specifies phandles' arguments count
- * @cells_count: Cell count to use if @cells_name is NULL
+ * @cell_count: Cell count to use if @cells_name is NULL
* @index: index of a phandle to parse out
* @out_args: optional pointer to output arguments structure (will be filled)
- * @return 0 on success (with @out_args filled out if not NULL), -ENOENT if
+ * Return: 0 on success (with @out_args filled out if not NULL), -ENOENT if
* @list_name does not exist, -EINVAL if a phandle was not found,
* @cells_name could not be found, the arguments were truncated or there
* were too many arguments.
@@ -441,12 +442,11 @@ int dev_read_phandle_with_args(const struct udevice *dev, const char *list_name,
* For example, this allows to allocate the right amount of memory to keep
* clock's reference contained into the "clocks" property.
*
- *
* @dev: device whose node containing a list
* @list_name: property name that contains a list
* @cells_name: property name that specifies phandles' arguments count
- * @cells_count: Cell count to use if @cells_name is NULL
- * @Returns number of phandle found on success, on error returns appropriate
+ * @cell_count: Cell count to use if @cells_name is NULL
+ * Return: number of phandle found on success, on error returns appropriate
* errno value.
*/
@@ -461,7 +461,7 @@ int dev_count_phandle_with_args(const struct udevice *dev,
* which controls the given node.
*
* @dev: device to check
- * @return number of address cells this node uses
+ * Return: number of address cells this node uses
*/
int dev_read_addr_cells(const struct udevice *dev);
@@ -472,7 +472,7 @@ int dev_read_addr_cells(const struct udevice *dev);
* which controls the given node.
*
* @dev: device to check
- * @return number of size cells this node uses
+ * Return: number of size cells this node uses
*/
int dev_read_size_cells(const struct udevice *dev);
@@ -482,7 +482,7 @@ int dev_read_size_cells(const struct udevice *dev);
* This function matches fdt_address_cells().
*
* @dev: device to check
- * @return number of address cells this node uses
+ * Return: number of address cells this node uses
*/
int dev_read_simple_addr_cells(const struct udevice *dev);
@@ -492,7 +492,7 @@ int dev_read_simple_addr_cells(const struct udevice *dev);
* This function matches fdt_size_cells().
*
* @dev: device to check
- * @return number of size cells this node uses
+ * Return: number of size cells this node uses
*/
int dev_read_simple_size_cells(const struct udevice *dev);
@@ -500,7 +500,7 @@ int dev_read_simple_size_cells(const struct udevice *dev);
* dev_read_phandle() - Get the phandle from a device
*
* @dev: device to check
- * @return phandle (1 or greater), or 0 if no phandle or other error
+ * Return: phandle (1 or greater), or 0 if no phandle or other error
*/
int dev_read_phandle(const struct udevice *dev);
@@ -510,7 +510,7 @@ int dev_read_phandle(const struct udevice *dev);
* @dev: device to check
* @propname: property to read
* @lenp: place to put length on success
- * @return pointer to property, or NULL if not found
+ * Return: pointer to property, or NULL if not found
*/
const void *dev_read_prop(const struct udevice *dev, const char *propname,
int *lenp);
@@ -523,7 +523,7 @@ const void *dev_read_prop(const struct udevice *dev, const char *propname,
*
* @dev: device to check
* @prop: place to put argument reference
- * @return 0 if OK, -ve on error. -FDT_ERR_NOTFOUND if not found
+ * Return: 0 if OK, -ve on error. -FDT_ERR_NOTFOUND if not found
*/
int dev_read_first_prop(const struct udevice *dev, struct ofprop *prop);
@@ -534,7 +534,7 @@ int dev_read_first_prop(const struct udevice *dev, struct ofprop *prop);
* and read all the property with dev_read_prop_by_prop().
*
* @prop: reference of current argument and place to put reference of next one
- * @return 0 if OK, -ve on error. -FDT_ERR_NOTFOUND if not found
+ * Return: 0 if OK, -ve on error. -FDT_ERR_NOTFOUND if not found
*/
int dev_read_next_prop(struct ofprop *prop);
@@ -546,7 +546,7 @@ int dev_read_next_prop(struct ofprop *prop);
* @prop: reference on property
* @propname: If non-NULL, place to property name on success,
* @lenp: If non-NULL, place to put length on success
- * @return 0 if OK, -ve on error. -FDT_ERR_NOTFOUND if not found
+ * Return: 0 if OK, -ve on error. -FDT_ERR_NOTFOUND if not found
*/
const void *dev_read_prop_by_prop(struct ofprop *prop,
const char **propname, int *lenp);
@@ -560,7 +560,7 @@ const void *dev_read_prop_by_prop(struct ofprop *prop,
*
* @dev: device to look up
* @devnump: set to the sequence number if one is found
- * @return 0 if a sequence was found, -ve if not
+ * Return: 0 if a sequence was found, -ve if not
*/
int dev_read_alias_seq(const struct udevice *dev, int *devnump);
@@ -576,7 +576,7 @@ int dev_read_alias_seq(const struct udevice *dev, int *devnump);
* @propname: name of the property to read
* @out_values: pointer to return value, modified only if return value is 0
* @sz: number of array elements to read
- * @return 0 on success, -EINVAL if the property does not exist, -ENODATA if
+ * Return: 0 on success, -EINVAL if the property does not exist, -ENODATA if
* property does not have a value, and -EOVERFLOW if the property data isn't
* large enough.
*/
@@ -587,7 +587,7 @@ int dev_read_u32_array(const struct udevice *dev, const char *propname,
* dev_read_first_subnode() - find the first subnode of a device's node
*
* @dev: device to look up
- * @return reference to the first subnode (which can be invalid if the device's
+ * Return: reference to the first subnode (which can be invalid if the device's
* node has no subnodes)
*/
ofnode dev_read_first_subnode(const struct udevice *dev);
@@ -596,7 +596,7 @@ ofnode dev_read_first_subnode(const struct udevice *dev);
* ofnode_next_subnode() - find the next sibling of a subnode
*
* @node: valid reference to previous node (sibling)
- * @return reference to the next subnode (which can be invalid if the node
+ * Return: reference to the next subnode (which can be invalid if the node
* has no more siblings)
*/
ofnode dev_read_next_subnode(ofnode node);
@@ -612,8 +612,9 @@ ofnode dev_read_next_subnode(ofnode node);
* @dev: device to look up
* @propname: name of property to find
* @sz: number of array elements
- * @return pointer to byte array if found, or NULL if the property is not
- * found or there is not enough data
+ * Return:
+ * pointer to byte array if found, or NULL if the property is not found or
+ * there is not enough data
*/
const uint8_t *dev_read_u8_array_ptr(const struct udevice *dev,
const char *propname, size_t sz);
@@ -627,7 +628,7 @@ const uint8_t *dev_read_u8_array_ptr(const struct udevice *dev,
* by default.
*
* @dev: device to examine
- * @return integer value 0 (not enabled) or 1 (enabled)
+ * Return: integer value 0 (not enabled) or 1 (enabled)
*/
int dev_read_enabled(const struct udevice *dev);
@@ -635,9 +636,9 @@ int dev_read_enabled(const struct udevice *dev);
* dev_read_resource() - obtain an indexed resource from a device.
*
* @dev: device to examine
- * @index index of the resource to retrieve (0 = first)
- * @res returns the resource
- * @return 0 if ok, negative on error
+ * @index: index of the resource to retrieve (0 = first)
+ * @res: returns the resource
+ * Return: 0 if ok, negative on error
*/
int dev_read_resource(const struct udevice *dev, uint index,
struct resource *res);
@@ -648,7 +649,7 @@ int dev_read_resource(const struct udevice *dev, uint index,
* @dev: device to examine
* @name: name of the resource to retrieve
* @res: returns the resource
- * @return 0 if ok, negative on error
+ * Return: 0 if ok, negative on error
*/
int dev_read_resource_byname(const struct udevice *dev, const char *name,
struct resource *res);
@@ -662,7 +663,7 @@ int dev_read_resource_byname(const struct udevice *dev, const char *name,
*
* @dev: device giving the context in which to translate the address
* @in_addr: pointer to the address to translate
- * @return the translated address; OF_BAD_ADDR on error
+ * Return: the translated address; OF_BAD_ADDR on error
*/
u64 dev_translate_address(const struct udevice *dev, const fdt32_t *in_addr);
@@ -675,7 +676,7 @@ u64 dev_translate_address(const struct udevice *dev, const fdt32_t *in_addr);
*
* @dev: device giving the context in which to translate the DMA address
* @in_addr: pointer to the DMA address to translate
- * @return the translated DMA address; OF_BAD_ADDR on error
+ * Return: the translated DMA address; OF_BAD_ADDR on error
*/
u64 dev_translate_dma_address(const struct udevice *dev,
const fdt32_t *in_addr);
@@ -690,7 +691,7 @@ u64 dev_translate_dma_address(const struct udevice *dev,
* @cpu: base address for CPU's view of memory
* @bus: base address for BUS's view of memory
* @size: size of the address space
- * @return 0 if ok, negative on error
+ * Return: 0 if ok, negative on error
*/
int dev_get_dma_range(const struct udevice *dev, phys_addr_t *cpu,
dma_addr_t *bus, u64 *size);
@@ -701,15 +702,15 @@ int dev_get_dma_range(const struct udevice *dev, phys_addr_t *cpu,
*
* The function travels the lookup table to get the highest alias id for the
* given alias stem.
- * @return alias ID, if found, else -1
+ * Return: alias ID, if found, else -1
*/
int dev_read_alias_highest_id(const char *stem);
/**
* dev_get_child_count() - get the child count of a device
*
- * @dev: device to use for interation (struct udevice *)
- * @return the count of child subnode
+ * @dev: device to use for interation (`struct udevice *`)
+ * Return: the count of child subnode
*/
int dev_get_child_count(const struct udevice *dev);
@@ -720,8 +721,8 @@ int dev_get_child_count(const struct udevice *dev);
* range for this node.
*
* @dev: device to examine
- * @res returns the resource
- * @return 0 if ok, negative on error
+ * @res: returns the resource
+ * Return: 0 if ok, negative on error
*/
int dev_read_pci_bus_range(const struct udevice *dev, struct resource *res);
@@ -737,7 +738,7 @@ int dev_read_pci_bus_range(const struct udevice *dev, struct resource *res);
* one or more display timing nodes.
* @index: index number to read (0=first timing subnode)
* @config: place to put timings
- * @return 0 if OK, -FDT_ERR_NOTFOUND if not found
+ * Return: 0 if OK, -FDT_ERR_NOTFOUND if not found
*/
int dev_decode_display_timing(const struct udevice *dev, int index,
struct display_timing *config);
@@ -1100,7 +1101,7 @@ static inline int dev_decode_display_timing(const struct udevice *dev,
* device-tree node.
*
* @subnode: ofnode holding the current subnode
- * @dev: device to use for interation (struct udevice *)
+ * @dev: device to use for interation (`struct udevice *`)
*/
#define dev_for_each_subnode(subnode, dev) \
for (subnode = dev_read_first_subnode(dev); \
@@ -1114,7 +1115,7 @@ static inline int dev_decode_display_timing(const struct udevice *dev,
* device-tree node.
*
* @prop: struct ofprop holding the current property
- * @dev: device to use for interation (struct udevice *)
+ * @dev: device to use for interation (`struct udevice *`)
*/
#define dev_for_each_property(prop, dev) \
for (int ret_prop = dev_read_first_prop(dev, &prop); \
diff --git a/include/dm/root.h b/include/dm/root.h
index 780f269db65..e888fb993c0 100644
--- a/include/dm/root.h
+++ b/include/dm/root.h
@@ -19,7 +19,7 @@ extern struct list_head uclass_head;
*
* This function returns pointer to the root node of the driver tree,
*
- * @return pointer to root device, or NULL if not inited yet
+ * Return: pointer to root device, or NULL if not inited yet
*/
struct udevice *dm_root(void);
@@ -27,6 +27,8 @@ struct global_data;
/**
* dm_fixup_for_gd_move() - Handle global_data moving to a new place
*
+ * @new_gd: Pointer to the new global data
+ *
* The uclass list is part of global_data. Due to the way lists work, moving
* the list will cause it to become invalid. This function fixes that up so
* that the uclass list will work correctly.
@@ -40,7 +42,7 @@ void dm_fixup_for_gd_move(struct global_data *new_gd);
*
* @pre_reloc_only: If true, bind only drivers with the DM_FLAG_PRE_RELOC
* flag. If false bind all drivers.
- * @return 0 if OK, -ve on error
+ * Return: 0 if OK, -ve on error
*/
int dm_scan_plat(bool pre_reloc_only);
@@ -52,7 +54,7 @@ int dm_scan_plat(bool pre_reloc_only);
*
* @pre_reloc_only: If true, bind only nodes with special devicetree properties,
* or drivers with the DM_FLAG_PRE_RELOC flag. If false bind all drivers.
- * @return 0 if OK, -ve on error
+ * Return: 0 if OK, -ve on error
*/
int dm_scan_fdt(bool pre_reloc_only);
@@ -65,7 +67,7 @@ int dm_scan_fdt(bool pre_reloc_only);
*
* @pre_reloc_only: If true, bind only nodes with special devicetree properties,
* or drivers with the DM_FLAG_PRE_RELOC flag. If false bind all drivers.
- * @return 0 if OK, -ve on error
+ * Return: 0 if OK, -ve on error
*/
int dm_extended_scan(bool pre_reloc_only);
@@ -79,7 +81,7 @@ int dm_extended_scan(bool pre_reloc_only);
*
* @pre_reloc_only: If true, bind only nodes with special devicetree properties,
* or drivers with the DM_FLAG_PRE_RELOC flag. If false bind all drivers.
- * @return 0 if OK, -ve on error
+ * Return: 0 if OK, -ve on error
*/
int dm_scan_other(bool pre_reloc_only);
@@ -92,7 +94,7 @@ int dm_scan_other(bool pre_reloc_only);
*
* @pre_reloc_only: If true, bind only nodes with special devicetree properties,
* or drivers with the DM_FLAG_PRE_RELOC flag. If false bind all drivers.
- * @return 0 if OK, -ve on error
+ * Return: 0 if OK, -ve on error
*/
int dm_init_and_scan(bool pre_reloc_only);
@@ -103,7 +105,7 @@ int dm_init_and_scan(bool pre_reloc_only);
* This needs to be called before anything uses the DM
*
* @of_live: Enable live device tree
- * @return 0 if OK, -ve on error
+ * Return: 0 if OK, -ve on error
*/
int dm_init(bool of_live);
@@ -111,7 +113,7 @@ int dm_init(bool of_live);
* dm_uninit - Uninitialise Driver Model structures
*
* All devices will be removed and unbound
- * @return 0 if OK, -ve on error
+ * Return: 0 if OK, -ve on error
*/
int dm_uninit(void);
@@ -124,7 +126,7 @@ int dm_uninit(void);
* All devices with the matching flags set will be removed
*
* @flags: Flags for selective device removal
- * @return 0 if OK, -ve on error
+ * Return: 0 if OK, -ve on error
*/
int dm_remove_devices_flags(uint flags);
#else
diff --git a/include/dm/uclass.h b/include/dm/uclass.h
index f1fd2ba2463..7f33c34214e 100644
--- a/include/dm/uclass.h
+++ b/include/dm/uclass.h
@@ -84,7 +84,7 @@ struct udevice;
* its children. If non-zero this is the size of this data, to be allocated
* in the child device's parent_plat pointer. This value is only used as
* a fallback if this member is 0 in the driver.
- * @flags: Flags for this uclass (DM_UC_...)
+ * @flags: Flags for this uclass ``(DM_UC_...)``
*/
struct uclass_driver {
const char *name;
@@ -127,17 +127,16 @@ struct uclass_driver {
* build time. Before this is used, an extern UCLASS_DRIVER() must have been
* declared.
*
- * For example:
+ * For example::
*
- * extern UCLASS_DRIVER(clk);
- *
- * struct uclass_driver *drvs[] = {
- * DM_UCLASS_DRIVER_REF(clk),
- * };
+ * extern UCLASS_DRIVER(clk);
+ * struct uclass_driver *drvs[] = {
+ * DM_UCLASS_DRIVER_REF(clk),
+ * };
*
* @_name: Name of the uclass_driver. This must be a valid C identifier, used by
* the linker_list.
- * @returns struct uclass_driver * for the uclass driver
+ * Return: struct uclass_driver * for the uclass driver
*/
#define DM_UCLASS_DRIVER_REF(_name) \
ll_entry_ref(struct uclass_driver, _name, uclass_driver)
@@ -145,8 +144,8 @@ struct uclass_driver {
/**
* uclass_get_priv() - Get the private data for a uclass
*
- * @uc Uclass to check
- * @return private data, or NULL if none
+ * @uc: Uclass to check
+ * Return: private data, or NULL if none
*/
void *uclass_get_priv(const struct uclass *uc);
@@ -159,8 +158,9 @@ void *uclass_get_priv(const struct uclass *uc);
*
* @key: ID to look up
* @ucp: Returns pointer to uclass (there is only one per ID)
- * @return 0 if OK, -EDEADLK if driver model is not yet inited, other -ve on
- * other error
+ * Return:
+ * 0 if OK, -EDEADLK if driver model is not yet inited,
+ * other -ve on other error
*/
int uclass_get(enum uclass_id key, struct uclass **ucp);
@@ -168,16 +168,16 @@ int uclass_get(enum uclass_id key, struct uclass **ucp);
* uclass_get_name() - Get the name of a uclass driver
*
* @id: ID to look up
- * @returns the name of the uclass driver for that ID, or NULL if none
+ * Return: the name of the uclass driver for that ID, or NULL if none
*/
const char *uclass_get_name(enum uclass_id id);
/**
- * uclass_get_by_name() - Look up a uclass by its driver name
+ * uclass_get_by_name_len() - Look up a uclass by its partial driver name
*
* @name: Name to look up
- * @len: Length of name
- * @returns the associated uclass ID, or UCLASS_INVALID if not found
+ * @len: Length of the partial name
+ * Return: the associated uclass ID, or UCLASS_INVALID if not found
*/
enum uclass_id uclass_get_by_name_len(const char *name, int len);
@@ -185,7 +185,7 @@ enum uclass_id uclass_get_by_name_len(const char *name, int len);
* uclass_get_by_name() - Look up a uclass by its driver name
*
* @name: Name to look up
- * @returns the associated uclass ID, or UCLASS_INVALID if not found
+ * Return: the associated uclass ID, or UCLASS_INVALID if not found
*/
enum uclass_id uclass_get_by_name(const char *name);
@@ -197,7 +197,7 @@ enum uclass_id uclass_get_by_name(const char *name);
* @id: ID to look up
* @index: Device number within that uclass (0=first)
* @devp: Returns pointer to device (there is only one per for each ID)
- * @return 0 if OK, -ve on error
+ * Return: 0 if OK, -ve on error
*/
int uclass_get_device(enum uclass_id id, int index, struct udevice **devp);
@@ -211,7 +211,7 @@ int uclass_get_device(enum uclass_id id, int index, struct udevice **devp);
* @id: ID to look up
* @name: name of a device to get
* @devp: Returns pointer to device (the first one with the name)
- * @return 0 if OK, -ve on error
+ * Return: 0 if OK, -ve on error
*/
int uclass_get_device_by_name(enum uclass_id id, const char *name,
struct udevice **devp);
@@ -228,7 +228,7 @@ int uclass_get_device_by_name(enum uclass_id id, const char *name,
* @id: ID to look up
* @seq: Sequence number to find (0=first)
* @devp: Returns pointer to device (there is only one for each seq)
- * @return 0 if OK, -ve on error
+ * Return: 0 if OK, -ve on error
*/
int uclass_get_device_by_seq(enum uclass_id id, int seq, struct udevice **devp);
@@ -243,7 +243,7 @@ int uclass_get_device_by_seq(enum uclass_id id, int seq, struct udevice **devp);
* @id: ID to look up
* @node: Device tree offset to search for (if -ve then -ENODEV is returned)
* @devp: Returns pointer to device (there is only one for each node)
- * @return 0 if OK, -ve on error
+ * Return: 0 if OK, -ve on error
*/
int uclass_get_device_by_of_offset(enum uclass_id id, int node,
struct udevice **devp);
@@ -257,9 +257,9 @@ int uclass_get_device_by_of_offset(enum uclass_id id, int node,
* The device is probed to activate it ready for use.
*
* @id: ID to look up
- * @np: Device tree node to search for (if NULL then -ENODEV is returned)
+ * @node: Device tree node to search for (if NULL then -ENODEV is returned)
* @devp: Returns pointer to device (there is only one for each node)
- * @return 0 if OK, -ve on error
+ * Return: 0 if OK, -ve on error
*/
int uclass_get_device_by_ofnode(enum uclass_id id, ofnode node,
struct udevice **devp);
@@ -271,12 +271,13 @@ int uclass_get_device_by_ofnode(enum uclass_id id, ofnode node,
*
* The device is probed to activate it ready for use.
*
- * @id: uclass ID to look up
+ * @id: uclass ID to look up
* @phandle_id: the phandle id to look up
- * @devp: Returns pointer to device (there is only one for each node). NULL if
- * there is no such device.
- * @return 0 if OK, -ENODEV if there is no device match the phandle, other
- * -ve on error
+ * @devp: Returns pointer to device (there is only one for each node).
+ * NULL if there is no such device.
+ * Return:
+ * 0 if OK, -ENODEV if there is no device match the phandle,
+ * other -ve on error
*/
int uclass_get_device_by_phandle_id(enum uclass_id id, uint phandle_id,
struct udevice **devp);
@@ -292,8 +293,8 @@ int uclass_get_device_by_phandle_id(enum uclass_id id, uint phandle_id,
* @parent: Parent device containing the phandle pointer
* @name: Name of property in the parent device node
* @devp: Returns pointer to device (there is only one for each node)
- * @return 0 if OK, -ENOENT if there is no @name present in the node, other
- * -ve on error
+ * Return: 0 if OK, -ENOENT if there is no @name present in the node, other
+ * -ve on error
*/
int uclass_get_device_by_phandle(enum uclass_id id, struct udevice *parent,
const char *name, struct udevice **devp);
@@ -310,7 +311,7 @@ int uclass_get_device_by_phandle(enum uclass_id id, struct udevice *parent,
* @id: ID to look up
* @drv: Driver to look for
* @devp: Returns pointer to the first device with that driver
- * @return 0 if OK, -ve on error
+ * Return: 0 if OK, -ve on error
*/
int uclass_get_device_by_driver(enum uclass_id id, const struct driver *drv,
struct udevice **devp);
@@ -327,7 +328,7 @@ int uclass_get_device_by_driver(enum uclass_id id, const struct driver *drv,
* @devp: Returns pointer to the first device in that uclass if no error
* occurred, or NULL if there is no first device, or an error occurred with
* that device.
- * @return 0 if OK (found or not found), other -ve on error
+ * Return: 0 if OK (found or not found), other -ve on error
*/
int uclass_first_device(enum uclass_id id, struct udevice **devp);
@@ -338,7 +339,7 @@ int uclass_first_device(enum uclass_id id, struct udevice **devp);
*
* @id: Uclass ID to look up
* @devp: Returns pointer to the first device in that uclass, or NULL if none
- * @return 0 if found, -ENODEV if not found, other -ve on error
+ * Return: 0 if found, -ENODEV if not found, other -ve on error
*/
int uclass_first_device_err(enum uclass_id id, struct udevice **devp);
@@ -353,7 +354,7 @@ int uclass_first_device_err(enum uclass_id id, struct udevice **devp);
* @devp: On entry, pointer to device to lookup. On exit, returns pointer
* to the next device in the uclass if no error occurred, or NULL if there is
* no next device, or an error occurred with that next device.
- * @return 0 if OK (found or not found), other -ve on error
+ * Return: 0 if OK (found or not found), other -ve on error
*/
int uclass_next_device(struct udevice **devp);
@@ -365,7 +366,7 @@ int uclass_next_device(struct udevice **devp);
* @devp: On entry, pointer to device to lookup. On exit, returns pointer
* to the next device in the uclass if no error occurred, or NULL if
* there is no next device.
- * @return 0 if found, -ENODEV if not found, other -ve on error
+ * Return: 0 if found, -ENODEV if not found, other -ve on error
*/
int uclass_next_device_err(struct udevice **devp);
@@ -380,7 +381,7 @@ int uclass_next_device_err(struct udevice **devp);
* @id: Uclass ID to look up
* @devp: Returns pointer to the first device in that uclass, or NULL if there
* is no first device
- * @return 0 if OK (found or not found), other -ve on error. If an error occurs
+ * Return: 0 if OK (found or not found), other -ve on error. If an error occurs
* it is still possible to move to the next device.
*/
int uclass_first_device_check(enum uclass_id id, struct udevice **devp);
@@ -395,7 +396,7 @@ int uclass_first_device_check(enum uclass_id id, struct udevice **devp);
*
* @devp: On entry, pointer to device to lookup. On exit, returns pointer
* to the next device in the uclass if any
- * @return 0 if OK (found or not found), other -ve on error. If an error occurs
+ * Return: 0 if OK (found or not found), other -ve on error. If an error occurs
* it is still possible to move to the next device.
*/
int uclass_next_device_check(struct udevice **devp);
@@ -409,7 +410,7 @@ int uclass_next_device_check(struct udevice **devp);
* @id: Uclass ID to check
* @driver_data: Driver data to search for
* @devp: Returns pointer to the first matching device in that uclass, if found
- * @return 0 if found, -ENODEV if not found, other -ve on error
+ * Return: 0 if found, -ENODEV if not found, other -ve on error
*/
int uclass_first_device_drvdata(enum uclass_id id, ulong driver_data,
struct udevice **devp);
@@ -421,7 +422,7 @@ int uclass_first_device_drvdata(enum uclass_id id, ulong driver_data,
* looking for its ID.
*
* @id: uclass ID to look up
- * @return 0 if OK, other -ve on error
+ * Return: 0 if OK, other -ve on error
*/
int uclass_probe_all(enum uclass_id id);
@@ -429,7 +430,7 @@ int uclass_probe_all(enum uclass_id id);
* uclass_id_count() - Count the number of devices in a uclass
*
* @id: uclass ID to look up
- * @return number of devices in that uclass (0 if none)
+ * Return: number of devices in that uclass (0 if none)
*/
int uclass_id_count(enum uclass_id id);
@@ -444,7 +445,7 @@ int uclass_id_count(enum uclass_id id);
* @id: enum uclass_id ID to use
* @pos: struct udevice * to hold the current device. Set to NULL when there
* are no more devices.
- * @uc: temporary uclass variable (struct uclass *)
+ * @uc: temporary uclass variable (``struct uclass *``)
*/
#define uclass_id_foreach_dev(id, pos, uc) \
if (!uclass_get(id, &uc)) \
diff --git a/include/dt-bindings/net/ti-dp83869.h b/include/dt-bindings/net/ti-dp83869.h
new file mode 100644
index 00000000000..b3a5ac4a17b
--- /dev/null
+++ b/include/dt-bindings/net/ti-dp83869.h
@@ -0,0 +1,60 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * TI DP83869 PHY drivers
+ *
+ */
+
+#ifndef _DT_BINDINGS_TI_DP83869_H
+#define _DT_BINDINGS_TI_DP83869_H
+
+/* PHY CTRL bits */
+#define DP83869_PHYCR_FIFO_DEPTH_3_B_NIB 0x00
+#define DP83869_PHYCR_FIFO_DEPTH_4_B_NIB 0x01
+#define DP83869_PHYCR_FIFO_DEPTH_6_B_NIB 0x02
+#define DP83869_PHYCR_FIFO_DEPTH_8_B_NIB 0x03
+
+/* RGMIIDCTL internal delay for rx and tx */
+#define DP83869_RGMIIDCTL_250_PS 0x0
+#define DP83869_RGMIIDCTL_500_PS 0x1
+#define DP83869_RGMIIDCTL_750_PS 0x2
+#define DP83869_RGMIIDCTL_1_NS 0x3
+#define DP83869_RGMIIDCTL_1_25_NS 0x4
+#define DP83869_RGMIIDCTL_1_50_NS 0x5
+#define DP83869_RGMIIDCTL_1_75_NS 0x6
+#define DP83869_RGMIIDCTL_2_00_NS 0x7
+#define DP83869_RGMIIDCTL_2_25_NS 0x8
+#define DP83869_RGMIIDCTL_2_50_NS 0x9
+#define DP83869_RGMIIDCTL_2_75_NS 0xa
+#define DP83869_RGMIIDCTL_3_00_NS 0xb
+#define DP83869_RGMIIDCTL_3_25_NS 0xc
+#define DP83869_RGMIIDCTL_3_50_NS 0xd
+#define DP83869_RGMIIDCTL_3_75_NS 0xe
+#define DP83869_RGMIIDCTL_4_00_NS 0xf
+
+/* IO_MUX_CFG - Clock output selection */
+#define DP83869_CLK_O_SEL_CHN_A_RCLK 0x0
+#define DP83869_CLK_O_SEL_CHN_B_RCLK 0x1
+#define DP83869_CLK_O_SEL_CHN_C_RCLK 0x2
+#define DP83869_CLK_O_SEL_CHN_D_RCLK 0x3
+#define DP83869_CLK_O_SEL_CHN_A_RCLK_DIV5 0x4
+#define DP83869_CLK_O_SEL_CHN_B_RCLK_DIV5 0x5
+#define DP83869_CLK_O_SEL_CHN_C_RCLK_DIV5 0x6
+#define DP83869_CLK_O_SEL_CHN_D_RCLK_DIV5 0x7
+#define DP83869_CLK_O_SEL_CHN_A_TCLK 0x8
+#define DP83869_CLK_O_SEL_CHN_B_TCLK 0x9
+#define DP83869_CLK_O_SEL_CHN_C_TCLK 0xA
+#define DP83869_CLK_O_SEL_CHN_D_TCLK 0xB
+#define DP83869_CLK_O_SEL_REF_CLK 0xC
+/* Special flag to indicate clock should be off */
+#define DP83869_CLK_O_SEL_OFF 0xFFFFFFFF
+
+/* OPMODE - Operation mode */
+#define DP83869_RGMII_COPPER_ETHERNET 0x00
+#define DP83869_RGMII_1000_BASE 0x01
+#define DP83869_RGMII_100_BASE 0x02
+#define DP83869_RGMII_SGMII_BRIDGE 0x03
+#define DP83869_1000M_MEDIA_CONVERT 0x04
+#define DP83869_100M_MEDIA_CONVERT 0x05
+#define DP83869_SGMII_COPPER_ETHERNET 0x06
+
+#endif
diff --git a/include/dt-bindings/power/owl-s700-powergate.h b/include/dt-bindings/power/owl-s700-powergate.h
new file mode 100644
index 00000000000..4cf1aefbf09
--- /dev/null
+++ b/include/dt-bindings/power/owl-s700-powergate.h
@@ -0,0 +1,19 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Actions Semi S700 SPS
+ *
+ * Copyright (c) 2017 Andreas Färber
+ */
+#ifndef DT_BINDINGS_POWER_OWL_S700_POWERGATE_H
+#define DT_BINDINGS_POWER_OWL_S700_POWERGATE_H
+
+#define S700_PD_VDE 0
+#define S700_PD_VCE_SI 1
+#define S700_PD_USB2_1 2
+#define S700_PD_HDE 3
+#define S700_PD_DMA 4
+#define S700_PD_DS 5
+#define S700_PD_USB3 6
+#define S700_PD_USB2_0 7
+
+#endif
diff --git a/include/efi.h b/include/efi.h
index 877a2e5a8d3..6159f34ad2b 100644
--- a/include/efi.h
+++ b/include/efi.h
@@ -395,9 +395,9 @@ struct efi_entry_systable {
};
static inline struct efi_mem_desc *efi_get_next_mem_desc(
- struct efi_entry_memmap *map, struct efi_mem_desc *desc)
+ struct efi_mem_desc *desc, int desc_size)
{
- return (struct efi_mem_desc *)((ulong)desc + map->desc_size);
+ return (struct efi_mem_desc *)((ulong)desc + desc_size);
}
/**
@@ -407,6 +407,12 @@ static inline struct efi_mem_desc *efi_get_next_mem_desc(
* @sys_table: Pointer to system table
* @boot: Pointer to boot-services table
* @run: Pointer to runtime-services table
+ * @memmap_key: Key returned from get_memory_map()
+ * @memmap_desc: List of memory-map records
+ * @memmap_alloc: Amount of memory allocated for memory map list
+ * @memmap_size Size of memory-map list in bytes
+ * @memmap_desc_size: Size of an individual memory-map record, in bytes
+ * @memmap_version: Memory-map version
*
* @use_pool_for_malloc: true if all allocation should go through the EFI 'pool'
* methods allocate_pool() and free_pool(); false to use 'pages' methods
@@ -424,6 +430,12 @@ struct efi_priv {
struct efi_system_table *sys_table;
struct efi_boot_services *boot;
struct efi_runtime_services *run;
+ efi_uintn_t memmap_key;
+ struct efi_mem_desc *memmap_desc;
+ efi_uintn_t memmap_alloc;
+ efi_uintn_t memmap_size;
+ efi_uintn_t memmap_desc_size;
+ u32 memmap_version;
/* app: */
bool use_pool_for_malloc;
@@ -498,14 +510,14 @@ void efi_set_priv(struct efi_priv *priv);
/**
* efi_get_sys_table() - Get access to the main EFI system table
*
- * @return pointer to EFI system table
+ * Returns: pointer to EFI system table
*/
struct efi_system_table *efi_get_sys_table(void);
/**
* efi_get_boot() - Get access to the EFI boot services table
*
- * @return pointer to EFI boot services table
+ * Returns: pointer to EFI boot services table
*/
struct efi_boot_services *efi_get_boot(void);
@@ -514,7 +526,7 @@ struct efi_boot_services *efi_get_boot(void);
*
* This is used when U-Boot is built as an EFI application.
*
- * @return the base of RAM as known to U-Boot
+ * Returns: the base of RAM as known to U-Boot
*/
unsigned long efi_get_ram_base(void);
@@ -525,6 +537,7 @@ unsigned long efi_get_ram_base(void);
* @banner: Banner to display when starting
* @image: The image handle passed to efi_main()
* @sys_table: The EFI system table pointer passed to efi_main()
+ * Return: 0 on succcess, EFI error code on failure
*/
int efi_init(struct efi_priv *priv, const char *banner, efi_handle_t image,
struct efi_system_table *sys_table);
@@ -535,7 +548,7 @@ int efi_init(struct efi_priv *priv, const char *banner, efi_handle_t image,
* @priv: Pointer to private EFI structure
* @size: Number of bytes to allocate
* @retp: Return EFI status result
- * @return pointer to memory allocated, or NULL on error
+ * Returns: pointer to memory allocated, or NULL on error
*/
void *efi_malloc(struct efi_priv *priv, int size, efi_status_t *retp);
@@ -572,10 +585,45 @@ void efi_putc(struct efi_priv *priv, const char ch);
*
* @type: Entry type to search for
* @datap: Returns pointer to entry data
- * @sizep: Returns pointer to entry size
- * @return 0 if OK, -ENODATA if there is no table, -ENOENT if there is no entry
+ * @sizep: Returns entry size
+ * Return: 0 if OK, -ENODATA if there is no table, -ENOENT if there is no entry
* of the requested type, -EPROTONOSUPPORT if the table has the wrong version
*/
int efi_info_get(enum efi_entry_t type, void **datap, int *sizep);
+/**
+ * efi_store_memory_map() - Collect the memory-map info from EFI
+ *
+ * Collect the memory info and store it for later use, e.g. in calling
+ * exit_boot_services()
+ *
+ * @priv: Pointer to private EFI structure
+ * Returns: 0 if OK, non-zero on error
+ */
+int efi_store_memory_map(struct efi_priv *priv);
+
+/**
+ * efi_call_exit_boot_services() - Handle the exit-boot-service procedure
+ *
+ * Tell EFI we don't want their boot services anymore
+ *
+ * Return: 0 if OK, non-zero on error
+ */
+int efi_call_exit_boot_services(void);
+
+/**
+ * efi_get_mmap() - Get the memory map from EFI
+ *
+ * This is used in the app. The caller must free *@descp when done
+ *
+ * @descp: Returns allocated pointer to EFI memory map table
+ * @sizep: Returns size of table in bytes
+ * @keyp: Returns memory-map key
+ * @desc_sizep: Returns size of each @desc_base record
+ * @versionp: Returns version number of memory map
+ * Returns: 0 on success, -ve on error
+ */
+int efi_get_mmap(struct efi_mem_desc **descp, int *sizep, uint *keyp,
+ int *desc_sizep, uint *versionp);
+
#endif /* _LINUX_EFI_H */
diff --git a/include/efi_loader.h b/include/efi_loader.h
index f4860e87fc1..f20d3618765 100644
--- a/include/efi_loader.h
+++ b/include/efi_loader.h
@@ -517,6 +517,8 @@ efi_status_t EFIAPI efi_convert_pointer(efi_uintn_t debug_disposition,
void **address);
/* Carve out DT reserved memory ranges */
void efi_carve_out_dt_rsv(void *fdt);
+/* Purge unused kaslr-seed */
+void efi_try_purge_kaslr_seed(void *fdt);
/* Called by bootefi to make console interface available */
efi_status_t efi_console_register(void);
/* Called by bootefi to make all disk storage accessible as EFI objects */
diff --git a/include/fdtdec.h b/include/fdtdec.h
index 09525ce510a..15f2d2bbbaa 100644
--- a/include/fdtdec.h
+++ b/include/fdtdec.h
@@ -49,12 +49,6 @@ struct fdt_memory {
struct bd_info;
-#ifdef CONFIG_SPL_BUILD
-#define SPL_BUILD 1
-#else
-#define SPL_BUILD 0
-#endif
-
/**
* enum fdt_source_t - indicates where the devicetree came from
*
diff --git a/include/fsl_esdhc_imx.h b/include/fsl_esdhc_imx.h
index 12e91633826..2153f29bef2 100644
--- a/include/fsl_esdhc_imx.h
+++ b/include/fsl_esdhc_imx.h
@@ -24,12 +24,10 @@
#define SYSCTL_INITA 0x08000000
#define SYSCTL_TIMEOUT_MASK 0x000f0000
#define SYSCTL_CLOCK_MASK 0x0000fff0
-#if !defined(CONFIG_FSL_USDHC)
#define SYSCTL_CKEN 0x00000008
#define SYSCTL_PEREN 0x00000004
#define SYSCTL_HCKEN 0x00000002
#define SYSCTL_IPGEN 0x00000001
-#endif
#define SYSCTL_RSTA 0x01000000
#define SYSCTL_RSTC 0x02000000
#define SYSCTL_RSTD 0x04000000
@@ -164,12 +162,12 @@
#define BLKATTR_SIZE(x) (x & 0x1fff)
#define MAX_BLK_CNT 0x7fff /* so malloc will have enough room with 32M */
-#define ESDHC_HOSTCAPBLT_VS18 0x04000000
-#define ESDHC_HOSTCAPBLT_VS30 0x02000000
-#define ESDHC_HOSTCAPBLT_VS33 0x01000000
-#define ESDHC_HOSTCAPBLT_SRS 0x00800000
-#define ESDHC_HOSTCAPBLT_DMAS 0x00400000
-#define ESDHC_HOSTCAPBLT_HSS 0x00200000
+#define HOSTCAPBLT_VS18 0x04000000
+#define HOSTCAPBLT_VS30 0x02000000
+#define HOSTCAPBLT_VS33 0x01000000
+#define HOSTCAPBLT_SRS 0x00800000
+#define HOSTCAPBLT_DMAS 0x00400000
+#define HOSTCAPBLT_HSS 0x00200000
#define ESDHC_VENDORSPEC_VSELECT 0x00000002 /* Use 1.8V */
diff --git a/include/fsl_memac.h b/include/fsl_memac.h
index d067f1511c6..6ac1e558b97 100644
--- a/include/fsl_memac.h
+++ b/include/fsl_memac.h
@@ -254,7 +254,6 @@ struct memac_mdio_controller {
#define MDIO_CTL_READ (1 << 15)
#define MDIO_DATA(x) (x & 0xffff)
-#define MDIO_DATA_BSY (1 << 31)
struct fsl_enet_mac;
diff --git a/include/gt64120.h b/include/gt64120.h
index 0b577f3f44b..b58afe3c4af 100644
--- a/include/gt64120.h
+++ b/include/gt64120.h
@@ -491,18 +491,6 @@
#define GT_INTRCAUSE_TARABORT0_BIT GT_INTRCAUSE_TARABORT0_MSK
-#define GT_PCI0_CFGADDR_REGNUM_SHF 2
-#define GT_PCI0_CFGADDR_REGNUM_MSK (MSK(6) << GT_PCI0_CFGADDR_REGNUM_SHF)
-#define GT_PCI0_CFGADDR_FUNCTNUM_SHF 8
-#define GT_PCI0_CFGADDR_FUNCTNUM_MSK (MSK(3) << GT_PCI0_CFGADDR_FUNCTNUM_SHF)
-#define GT_PCI0_CFGADDR_DEVNUM_SHF 11
-#define GT_PCI0_CFGADDR_DEVNUM_MSK (MSK(5) << GT_PCI0_CFGADDR_DEVNUM_SHF)
-#define GT_PCI0_CFGADDR_BUSNUM_SHF 16
-#define GT_PCI0_CFGADDR_BUSNUM_MSK (MSK(8) << GT_PCI0_CFGADDR_BUSNUM_SHF)
-#define GT_PCI0_CFGADDR_CONFIGEN_SHF 31
-#define GT_PCI0_CFGADDR_CONFIGEN_MSK (MSK(1) << GT_PCI0_CFGADDR_CONFIGEN_SHF)
-#define GT_PCI0_CFGADDR_CONFIGEN_BIT GT_PCI0_CFGADDR_CONFIGEN_MSK
-
#define GT_PCI0_CMD_MBYTESWAP_SHF 0
#define GT_PCI0_CMD_MBYTESWAP_MSK (MSK(1) << GT_PCI0_CMD_MBYTESWAP_SHF)
#define GT_PCI0_CMD_MBYTESWAP_BIT GT_PCI0_CMD_MBYTESWAP_MSK
diff --git a/include/init.h b/include/init.h
index dcd682c1bf6..20c3976af09 100644
--- a/include/init.h
+++ b/include/init.h
@@ -311,6 +311,16 @@ int board_early_init_r(void);
int arch_initr_trap(void);
/**
+ * init_addr_map()
+ *
+ * Initialize non-identity virtual-physical memory mappings for 32bit CPUs.
+ * It is called during the generic board init sequence, after relocation.
+ *
+ * Return: 0 if OK
+ */
+int init_addr_map(void);
+
+/**
* main_loop() - Enter the main loop of U-Boot
*
* This normally runs the command line.
diff --git a/include/kgdb.h b/include/kgdb.h
index 616ce4451f1..bdba347a7f3 100644
--- a/include/kgdb.h
+++ b/include/kgdb.h
@@ -39,7 +39,16 @@ typedef
kgdb_data;
/* these functions are provided by the generic kgdb support */
-extern void kgdb_init(void);
+/**
+ * kgdb_init()
+ *
+ * Perform initializations to allow debugging U-Boot with gdb over a serial
+ * link. It is called during the generic board init sequence.
+ *
+ * Return: 0 if OK
+ */
+int kgdb_init(void);
+
extern void kgdb_error(int);
extern int kgdb_output_string(const char *, unsigned int);
extern void breakpoint(void);
diff --git a/include/linux/stddef.h b/include/linux/stddef.h
index c540f6100d4..a7f546fdfe5 100644
--- a/include/linux/stddef.h
+++ b/include/linux/stddef.h
@@ -1,6 +1,8 @@
#ifndef _LINUX_STDDEF_H
#define _LINUX_STDDEF_H
+#include <linux/compiler_types.h>
+
#undef NULL
#if defined(__cplusplus)
#define NULL 0
@@ -14,7 +16,11 @@
#ifndef __CHECKER__
#undef offsetof
-#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
+#ifdef __compiler_offsetof
+#define offsetof(TYPE, MEMBER) __compiler_offsetof(TYPE, MEMBER)
+#else
+#define offsetof(TYPE, MEMBER) ((size_t)&((TYPE *)0)->MEMBER)
+#endif
#endif
#endif
diff --git a/include/miiphy.h b/include/miiphy.h
index 8b77bac01e6..77a00359587 100644
--- a/include/miiphy.h
+++ b/include/miiphy.h
@@ -126,8 +126,6 @@ int bb_miiphy_write(struct mii_dev *miidev, int addr, int devad, int reg,
#define ESTATUS_1000XF 0x8000
#define ESTATUS_1000XH 0x4000
-#ifdef CONFIG_DM_MDIO
-
/**
* struct mdio_perdev_priv - Per-device class data for MDIO DM
*
@@ -185,10 +183,6 @@ struct phy_device *dm_mdio_phy_connect(struct udevice *mdiodev, int phyaddr,
*/
struct phy_device *dm_eth_phy_connect(struct udevice *ethdev);
-#endif
-
-#ifdef CONFIG_DM_MDIO_MUX
-
/* indicates none of the child buses is selected */
#define MDIO_MUX_SELECT_NONE -1
@@ -206,5 +200,3 @@ struct mdio_mux_ops {
#define mdio_mux_get_ops(dev) ((struct mdio_mux_ops *)(dev)->driver->ops)
#endif
-
-#endif
diff --git a/include/mmc.h b/include/mmc.h
index b92e2553402..244d2dc5921 100644
--- a/include/mmc.h
+++ b/include/mmc.h
@@ -786,12 +786,7 @@ int mmc_init_device(int num);
int mmc_init(struct mmc *mmc);
int mmc_send_tuning(struct mmc *mmc, u32 opcode, int *cmd_error);
int mmc_send_cmd(struct mmc *mmc, struct mmc_cmd *cmd, struct mmc_data *data);
-
-#if CONFIG_IS_ENABLED(MMC_UHS_SUPPORT) || \
- CONFIG_IS_ENABLED(MMC_HS200_SUPPORT) || \
- CONFIG_IS_ENABLED(MMC_HS400_SUPPORT)
int mmc_deinit(struct mmc *mmc);
-#endif
/**
* mmc_of_parse() - Parse the device tree to get the capabilities of the host
diff --git a/include/msc01.h b/include/msc01.h
index ec18a724eb9..20158123494 100644
--- a/include/msc01.h
+++ b/include/msc01.h
@@ -71,15 +71,6 @@
#define MSC01_PCI_INTSTAT_MA_SHF 7
#define MSC01_PCI_INTSTAT_MA_MSK (0x1 << MSC01_PCI_INTSTAT_MA_SHF)
-#define MSC01_PCI_CFGADDR_BNUM_SHF 16
-#define MSC01_PCI_CFGADDR_BNUM_MSK (0xff << MSC01_PCI_CFGADDR_BNUM_SHF)
-#define MSC01_PCI_CFGADDR_DNUM_SHF 11
-#define MSC01_PCI_CFGADDR_DNUM_MSK (0x1f << MSC01_PCI_CFGADDR_DNUM_SHF)
-#define MSC01_PCI_CFGADDR_FNUM_SHF 8
-#define MSC01_PCI_CFGADDR_FNUM_MSK (0x3 << MSC01_PCI_CFGADDR_FNUM_SHF)
-#define MSC01_PCI_CFGADDR_RNUM_SHF 2
-#define MSC01_PCI_CFGADDR_RNUM_MSK (0x3f << MSC01_PCI_CFGADDR_RNUM_SHF)
-
#define MSC01_PCI_HEAD0_VENDORID_SHF 0
#define MSC01_PCI_HEAD0_DEVICEID_SHF 16
diff --git a/include/os.h b/include/os.h
index 4cbcbd93a71..10e198cf503 100644
--- a/include/os.h
+++ b/include/os.h
@@ -266,7 +266,7 @@ const char *os_dirent_get_typename(enum os_dirent_t type);
* @size: size of file is returned if no error
* Return: 0 on success or -1 if an error ocurred
*/
-int os_get_filesize(const char *fname, loff_t *size);
+int os_get_filesize(const char *fname, long long *size);
/**
* os_putc() - write a character to the controlling OS terminal
diff --git a/include/part.h b/include/part.h
index b66b07a1f04..b8d8e1ff0de 100644
--- a/include/part.h
+++ b/include/part.h
@@ -50,7 +50,7 @@ struct block_drvr {
#define PART_NAME_LEN 32
#define PART_TYPE_LEN 32
-#define MAX_SEARCH_PARTITIONS 64
+#define MAX_SEARCH_PARTITIONS 128
#define PART_BOOTABLE ((int)BIT(0))
#define PART_EFI_SYSTEM_PARTITION ((int)BIT(1))
diff --git a/include/pci.h b/include/pci.h
index 6c1094d7299..ad1171b0a2a 100644
--- a/include/pci.h
+++ b/include/pci.h
@@ -5,6 +5,7 @@
*
* (C) Copyright 2002
* Wolfgang Denk, DENX Software Engineering, wd@denx.de.
+ * Copyright (c) 2021 Maciej W. Rozycki <macro@orcam.me.uk>
*/
#ifndef _PCI_H
@@ -475,16 +476,24 @@
/* PCI Express capabilities */
#define PCI_EXP_FLAGS 2 /* Capabilities register */
+#define PCI_EXP_FLAGS_VERS 0x000f /* Capability Version */
#define PCI_EXP_FLAGS_TYPE 0x00f0 /* Device/Port type */
-#define PCI_EXP_TYPE_ROOT_PORT 0x4 /* Root Port */
+#define PCI_EXP_TYPE_ROOT_PORT 0x4 /* Root Port */
+#define PCI_EXP_TYPE_DOWNSTREAM 0x6 /* Downstream Port */
+#define PCI_EXP_TYPE_PCIE_BRIDGE 0x8 /* PCI/PCI-X to PCIe Bridge */
#define PCI_EXP_DEVCAP 4 /* Device capabilities */
#define PCI_EXP_DEVCAP_FLR 0x10000000 /* Function Level Reset */
#define PCI_EXP_DEVCTL 8 /* Device Control */
#define PCI_EXP_DEVCTL_BCR_FLR 0x8000 /* Bridge Configuration Retry / FLR */
#define PCI_EXP_LNKCAP 12 /* Link Capabilities */
#define PCI_EXP_LNKCAP_SLS 0x0000000f /* Supported Link Speeds */
+#define PCI_EXP_LNKCAP_SLS_2_5GB 0x00000001 /* LNKCAP2 SLS Vector bit 0 */
+#define PCI_EXP_LNKCAP_SLS_5_0GB 0x00000002 /* LNKCAP2 SLS Vector bit 1 */
+#define PCI_EXP_LNKCAP_SLS_8_0GB 0x00000003 /* LNKCAP2 SLS Vector bit 2 */
#define PCI_EXP_LNKCAP_MLW 0x000003f0 /* Maximum Link Width */
#define PCI_EXP_LNKCAP_DLLLARC 0x00100000 /* Data Link Layer Link Active Reporting Capable */
+#define PCI_EXP_LNKCTL 16 /* Link Control */
+#define PCI_EXP_LNKCTL_RL 0x0020 /* Retrain Link */
#define PCI_EXP_LNKSTA 18 /* Link Status */
#define PCI_EXP_LNKSTA_CLS 0x000f /* Current Link Speed */
#define PCI_EXP_LNKSTA_CLS_2_5GB 0x0001 /* Current Link Speed 2.5GT/s */
@@ -492,7 +501,9 @@
#define PCI_EXP_LNKSTA_CLS_8_0GB 0x0003 /* Current Link Speed 8.0GT/s */
#define PCI_EXP_LNKSTA_NLW 0x03f0 /* Negotiated Link Width */
#define PCI_EXP_LNKSTA_NLW_SHIFT 4 /* start of NLW mask in link status */
+#define PCI_EXP_LNKSTA_LT 0x0800 /* Link Training */
#define PCI_EXP_LNKSTA_DLLLA 0x2000 /* Data Link Layer Link Active */
+#define PCI_EXP_LNKSTA_LBMS 0x4000 /* Link Bandwidth Management Status */
#define PCI_EXP_SLTCAP 20 /* Slot Capabilities */
#define PCI_EXP_SLTCAP_PSN 0xfff80000 /* Physical Slot Number */
#define PCI_EXP_RTCTL 28 /* Root Control */
@@ -503,8 +514,14 @@
#define PCI_EXP_DEVCAP2_ARI 0x00000020 /* ARI Forwarding Supported */
#define PCI_EXP_DEVCTL2 40 /* Device Control 2 */
#define PCI_EXP_DEVCTL2_ARI 0x0020 /* Alternative Routing-ID */
-
+#define PCI_EXP_LNKCAP2 44 /* Link Capability 2 */
+#define PCI_EXP_LNKCAP2_SLS 0x000000fe /* Supported Link Speeds Vector */
#define PCI_EXP_LNKCTL2 48 /* Link Control 2 */
+#define PCI_EXP_LNKCTL2_TLS 0x000f /* Target Link Speed */
+#define PCI_EXP_LNKCTL2_TLS_2_5GT 0x0001 /* Target Link Speed 2.5GT/s */
+#define PCI_EXP_LNKCTL2_TLS_5_0GT 0x0002 /* Target Link Speed 5.0GT/s */
+#define PCI_EXP_LNKCTL2_TLS_8_0GT 0x0003 /* Target Link Speed 8.0GT/s */
+
/* Single Root I/O Virtualization Registers */
#define PCI_SRIOV_CAP 0x04 /* SR-IOV Capabilities */
#define PCI_SRIOV_CTRL 0x08 /* SR-IOV Control */
@@ -523,6 +540,51 @@
#include <pci_ids.h>
/*
+ * Config Address for PCI Configuration Mechanism #1
+ *
+ * See PCI Local Bus Specification, Revision 3.0,
+ * Section 3.2.2.3.2, Figure 3-2, p. 50.
+ */
+
+#define PCI_CONF1_BUS_SHIFT 16 /* Bus number */
+#define PCI_CONF1_DEV_SHIFT 11 /* Device number */
+#define PCI_CONF1_FUNC_SHIFT 8 /* Function number */
+
+#define PCI_CONF1_BUS_MASK 0xff
+#define PCI_CONF1_DEV_MASK 0x1f
+#define PCI_CONF1_FUNC_MASK 0x7
+#define PCI_CONF1_REG_MASK 0xfc /* Limit aligned offset to a maximum of 256B */
+
+#define PCI_CONF1_ENABLE BIT(31)
+#define PCI_CONF1_BUS(x) (((x) & PCI_CONF1_BUS_MASK) << PCI_CONF1_BUS_SHIFT)
+#define PCI_CONF1_DEV(x) (((x) & PCI_CONF1_DEV_MASK) << PCI_CONF1_DEV_SHIFT)
+#define PCI_CONF1_FUNC(x) (((x) & PCI_CONF1_FUNC_MASK) << PCI_CONF1_FUNC_SHIFT)
+#define PCI_CONF1_REG(x) ((x) & PCI_CONF1_REG_MASK)
+
+#define PCI_CONF1_ADDRESS(bus, dev, func, reg) \
+ (PCI_CONF1_ENABLE | \
+ PCI_CONF1_BUS(bus) | \
+ PCI_CONF1_DEV(dev) | \
+ PCI_CONF1_FUNC(func) | \
+ PCI_CONF1_REG(reg))
+
+/*
+ * Extension of PCI Config Address for accessing extended PCIe registers
+ *
+ * No standardized specification, but used on lot of non-ECAM-compliant ARM SoCs
+ * or on AMD Barcelona and new CPUs. Reserved bits [27:24] of PCI Config Address
+ * are used for specifying additional 4 high bits of PCI Express register.
+ */
+
+#define PCI_CONF1_EXT_REG_SHIFT 16
+#define PCI_CONF1_EXT_REG_MASK 0xf00
+#define PCI_CONF1_EXT_REG(x) (((x) & PCI_CONF1_EXT_REG_MASK) << PCI_CONF1_EXT_REG_SHIFT)
+
+#define PCI_CONF1_EXT_ADDRESS(bus, dev, func, reg) \
+ (PCI_CONF1_ADDRESS(bus, dev, func, reg) | \
+ PCI_CONF1_EXT_REG(reg))
+
+/*
* Enhanced Configuration Access Mechanism (ECAM)
*
* See PCI Express Base Specification, Revision 5.0, Version 1.0,
diff --git a/include/u-boot/blake2.h b/include/u-boot/blake2.h
new file mode 100644
index 00000000000..4984023a1a2
--- /dev/null
+++ b/include/u-boot/blake2.h
@@ -0,0 +1,94 @@
+/* SPDX-License-Identifier: CC0-1.0 */
+/*
+ BLAKE2 reference source code package - reference C implementations
+
+ Copyright 2012, Samuel Neves <sneves@dei.uc.pt>. You may use this under the
+ terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at
+ your option. The terms of these licenses can be found at:
+
+ - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
+ - OpenSSL license : https://www.openssl.org/source/license.html
+ - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
+
+ More information about the BLAKE2 hash function can be found at
+ https://blake2.net.
+*/
+
+/*
+ * Cross-ported from BLAKE2 (https://github.com/BLAKE2/BLAKE2).
+ * Modifications includes:
+ *
+ * - Remove unsupported compilers like MSC/CPP
+ * - Remove blake2s/blake2sp/blake2bp
+ * This blake2 implementation is mostly for btrfs, which only utilizes
+ * blake2b.
+ */
+#ifndef BLAKE2_H
+#define BLAKE2_H
+
+#include <stddef.h>
+#include <stdint.h>
+
+#if defined(_MSC_VER)
+#define BLAKE2_PACKED(x) __pragma(pack(push, 1)) x __pragma(pack(pop))
+#else
+#define BLAKE2_PACKED(x) x __attribute__((packed))
+#endif
+
+ enum blake2b_constant
+ {
+ BLAKE2B_BLOCKBYTES = 128,
+ BLAKE2B_OUTBYTES = 64,
+ BLAKE2B_KEYBYTES = 64,
+ BLAKE2B_SALTBYTES = 16,
+ BLAKE2B_PERSONALBYTES = 16
+ };
+
+ typedef struct blake2b_state__
+ {
+ uint64_t h[8];
+ uint64_t t[2];
+ uint64_t f[2];
+ uint8_t buf[BLAKE2B_BLOCKBYTES];
+ size_t buflen;
+ size_t outlen;
+ uint8_t last_node;
+ } blake2b_state;
+
+ BLAKE2_PACKED(struct blake2b_param__
+ {
+ uint8_t digest_length; /* 1 */
+ uint8_t key_length; /* 2 */
+ uint8_t fanout; /* 3 */
+ uint8_t depth; /* 4 */
+ uint32_t leaf_length; /* 8 */
+ uint32_t node_offset; /* 12 */
+ uint32_t xof_length; /* 16 */
+ uint8_t node_depth; /* 17 */
+ uint8_t inner_length; /* 18 */
+ uint8_t reserved[14]; /* 32 */
+ uint8_t salt[BLAKE2B_SALTBYTES]; /* 48 */
+ uint8_t personal[BLAKE2B_PERSONALBYTES]; /* 64 */
+ });
+
+ typedef struct blake2b_param__ blake2b_param;
+
+ /* Padded structs result in a compile-time error */
+ enum {
+ BLAKE2_DUMMY_2 = 1/(int)(sizeof(blake2b_param) == BLAKE2B_OUTBYTES)
+ };
+
+ /* Streaming API */
+ int blake2b_init( blake2b_state *S, size_t outlen );
+ int blake2b_init_key( blake2b_state *S, size_t outlen, const void *key, size_t keylen );
+ int blake2b_init_param( blake2b_state *S, const blake2b_param *P );
+ int blake2b_update( blake2b_state *S, const void *in, size_t inlen );
+ int blake2b_final( blake2b_state *S, void *out, size_t outlen );
+
+ /* Simple API */
+ int blake2b( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen );
+
+ /* This is simply an alias for blake2b */
+ int blake2( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen );
+
+#endif
diff --git a/include/vsprintf.h b/include/vsprintf.h
index b4746301462..8bfafa0d33f 100644
--- a/include/vsprintf.h
+++ b/include/vsprintf.h
@@ -308,6 +308,14 @@ char *strmhz(char *buf, unsigned long hz);
void str_to_upper(const char *in, char *out, size_t len);
/**
+ * vsscanf - Unformat a buffer into a list of arguments
+ * @buf: input buffer
+ * @fmt: format of buffer
+ * @args: arguments
+ */
+int vsscanf(const char *inp, char const *fmt0, va_list ap);
+
+/**
* sscanf - Unformat a buffer into a list of arguments
* @buf: input buffer
* @fmt: formatting of buffer