[U-Boot] [PATCH 6/8] xtensa: add support for the xtensa processor architecture [2/2]

Simon Glass sjg at chromium.org
Mon Sep 1 07:02:30 CEST 2014


Hi Max,

On 20 August 2014 10:42, Max Filippov <jcmvbkbc at gmail.com> wrote:
> From: Chris Zankel <chris at 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 at zankel.net>
> Signed-off-by: Max Filippov <jcmvbkbc at 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


More information about the U-Boot mailing list