#
# NOTE! Don't add files that are generated in specific
# subdirectories here. Add them in the ".gitignore" file
# in that subdirectory instead.
#
# Normal rules
#
.*
*.o
*.o.*
*.a
*.s
*.su
*.mod.c
*.i
*.lst
*.order
*.elf
*.swp
*.patch
*.cfgtmp
*.diff
*.tpl
*.efuse
*.encrypt
*.bin
*.bl2

# folder
customer/

# host programs on Cygwin
*.exe

fip/_tmp/
fip/_tmp/bl2.n.bin.sig
fip/_tmp/bl30_new.bin.enc
fip/_tmp/bl30_new.bin.g12.enc
fip/_tmp/bl33.bin
fip/_tmp/bl33.bin.enc
fip/_tmp/boot_new.bin
fip/_tmp/fip.bin
fip/_tmp/u-boot.bin
fip/_tmp/u-boot.bin.encrypt.sd.bin
fip/_tmp/u-boot.bin.encrypt.usb.bl2
fip/_tmp/u-boot.bin.sd.bin
fip/_tmp/u-boot.bin.usb.bl2

# Build tree
/build-*

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

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

#
# Generated files
#
/LOG
/spl/
/tpl/
/build/

#
# 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
*~
\#*#
