
Hi Max,
On 20 August 2014 10:42, Max Filippov jcmvbkbc@gmail.com wrote:
From: Chris Zankel chris@zankel.net
The Xtensa processor architecture is a configurable, extensible, and synthesizable 32-bit RISC processor core provided by Tensilica, inc.
This is the second part of the basic architecture port, adding the 'arch/xtensa' directory and a readme file.
Signed-off-by: Chris Zankel chris@zankel.net Signed-off-by: Max Filippov jcmvbkbc@gmail.com
arch/Kconfig | 4 + arch/xtensa/Kconfig | 26 ++ arch/xtensa/config.mk | 13 + arch/xtensa/cpu/.gitignore | 1 + arch/xtensa/cpu/Makefile | 13 + arch/xtensa/cpu/config.mk | 9 + arch/xtensa/cpu/cpu.c | 84 +++++ arch/xtensa/cpu/exceptions.c | 67 ++++ arch/xtensa/cpu/start.S | 672 ++++++++++++++++++++++++++++++++++ arch/xtensa/cpu/u-boot.lds.S | 107 ++++++ arch/xtensa/include/asm/addrspace.h | 43 +++ arch/xtensa/include/asm/asmmacro.h | 136 +++++++ arch/xtensa/include/asm/bitops.h | 14 + arch/xtensa/include/asm/bootparam.h | 54 +++ arch/xtensa/include/asm/byteorder.h | 81 ++++ arch/xtensa/include/asm/cache.h | 20 + arch/xtensa/include/asm/cacheasm.h | 187 ++++++++++ arch/xtensa/include/asm/config.h | 17 + arch/xtensa/include/asm/errno.h | 1 + arch/xtensa/include/asm/global_data.h | 24 ++ arch/xtensa/include/asm/io.h | 148 ++++++++ arch/xtensa/include/asm/ldscript.h | 220 +++++++++++ arch/xtensa/include/asm/linkage.h | 4 + arch/xtensa/include/asm/misc.h | 24 ++ arch/xtensa/include/asm/posix_types.h | 74 ++++ arch/xtensa/include/asm/processor.h | 11 + arch/xtensa/include/asm/ptrace.h | 133 +++++++ arch/xtensa/include/asm/regs.h | 95 +++++ arch/xtensa/include/asm/sections.h | 15 + arch/xtensa/include/asm/string.h | 10 + arch/xtensa/include/asm/types.h | 60 +++ arch/xtensa/include/asm/u-boot.h | 43 +++ arch/xtensa/include/asm/unaligned.h | 6 + arch/xtensa/include/asm/xtensa.h | 36 ++ arch/xtensa/lib/Makefile | 9 + arch/xtensa/lib/board.c | 173 +++++++++ arch/xtensa/lib/bootm.c | 202 ++++++++++ arch/xtensa/lib/misc.S | 178 +++++++++ arch/xtensa/lib/time.c | 111 ++++++ 39 files changed, 3125 insertions(+) create mode 100644 arch/xtensa/Kconfig create mode 100644 arch/xtensa/config.mk create mode 100644 arch/xtensa/cpu/.gitignore create mode 100644 arch/xtensa/cpu/Makefile create mode 100644 arch/xtensa/cpu/config.mk create mode 100644 arch/xtensa/cpu/cpu.c create mode 100644 arch/xtensa/cpu/exceptions.c create mode 100644 arch/xtensa/cpu/start.S create mode 100644 arch/xtensa/cpu/u-boot.lds.S create mode 100644 arch/xtensa/include/asm/addrspace.h create mode 100644 arch/xtensa/include/asm/asmmacro.h create mode 100644 arch/xtensa/include/asm/bitops.h create mode 100644 arch/xtensa/include/asm/bootparam.h create mode 100644 arch/xtensa/include/asm/byteorder.h create mode 100644 arch/xtensa/include/asm/cache.h create mode 100644 arch/xtensa/include/asm/cacheasm.h create mode 100644 arch/xtensa/include/asm/config.h create mode 100644 arch/xtensa/include/asm/errno.h create mode 100644 arch/xtensa/include/asm/global_data.h create mode 100644 arch/xtensa/include/asm/io.h create mode 100644 arch/xtensa/include/asm/ldscript.h create mode 100644 arch/xtensa/include/asm/linkage.h create mode 100644 arch/xtensa/include/asm/misc.h create mode 100644 arch/xtensa/include/asm/posix_types.h create mode 100644 arch/xtensa/include/asm/processor.h create mode 100644 arch/xtensa/include/asm/ptrace.h create mode 100644 arch/xtensa/include/asm/regs.h create mode 100644 arch/xtensa/include/asm/sections.h create mode 100644 arch/xtensa/include/asm/string.h create mode 100644 arch/xtensa/include/asm/types.h create mode 100644 arch/xtensa/include/asm/u-boot.h create mode 100644 arch/xtensa/include/asm/unaligned.h create mode 100644 arch/xtensa/include/asm/xtensa.h create mode 100644 arch/xtensa/lib/Makefile create mode 100644 arch/xtensa/lib/board.c create mode 100644 arch/xtensa/lib/bootm.c create mode 100644 arch/xtensa/lib/misc.S create mode 100644 arch/xtensa/lib/time.c
This all looks quite tidy, from a brief look.
But please make sure you use generic board - CONFIG_SYS_GENERIC_BOARD. You should not need a board.c file.
Also for your do_bootm_linux() implementation, see if you can check the flags, and thus support the bootm sub-commands.
If you have a microsecond timer, you could implement timer_get_us().
Regards, Simon