#
# NOTE! Don't add files that are generated in specific
# subdirectories here. Add them in the ".gitignore" file
# in that subdirectory instead.
#
# Normal rules (sorted alphabetically)
#
.*
!.checkpatch.conf
*.a
*.asn1.[ch]
*.bin
*.cfgout
*.cover
*.dtb
*.dtbo
*.dtb.S
*.elf
*.exe
*.gcda
*.gcno
*.i
*.img
*.lex.c
*.lst
*.mod.c
*.mbx
*.o
*.o.*
*.order
*.patch
*.s
*.su
*.swp
*.tab.[ch]

# Build tree
/build-*

#
# Top-level generic files
#
fit-dtb.blob*
/MLO*
/SPL*
/System.map
/u-boot*
/boards.cfg
/*.log

#
# git files that we don't want to ignore even it they are dot-files
#
!.gitignore
!.mailmap
!.get_maintainer.*

#
# Generated files
#
/spl/
/tpl/
/defconfig

#
# Generated include files
#
/include/config/
/include/generated/

# stgit generated dirs
patches-*
.stgit-edit.txt

# quilt's files
patches
series

# gdb files
.gdb_history

# cscope files
cscope.*

# tags files
/tags
/ctags
/etags

# gnu global files
GPATH
GRTAGS
GSYMS
GTAGS

*.orig
*~
\#*#

# Python cache
__pycache__

# Python code coverage output (python3-coverage html)
/htmlcov/

# pylint files
/pylint.cur
/pylint.out/

# moveconfig database
/moveconfig.db
