[U-Boot] [PATCH v16 00/10] arm64 patch

fenghua at phytium.com.cn fenghua at phytium.com.cn
Sat Dec 14 04:47:28 CET 2013


From: David Feng <fenghua at phytium.com.cn>

Changes for v16:
  - make the patches work with latest recently u-boot.
    add rela relocation type to OBJCFLAGS definition
    at arm/config.mk.

Changes for v15:
  - modify boot process, u-boot will run at the highest
    exception level until it prepare jump to OS.
  - Fix a few bugs in cache.S.These bug is reported by
    York Sun <yorksun at freescale.com> and Scott Wood
    <scottwood at freescale.com>.
  - when booting, slaves will wait on WFI, master wakeup
    slaves by SGI interrupt.
  - add generic_timer.c to utilize the newest timer architecture.
  - add gic.S to support gic initialization and interrupt
    operations, currently only support GICv2.

Changes for v14:
  - Merge rela relocation patches from Scott Wood
    <scottwood at freescale.com>.
  - Remove all CONFIG_NEED_MANUAL_RELOC and other fixups
    due to manual relocation. With rela relocation patches
    them are not needed.
  - Fix the bug of MEMORY_ATTRIBUTES definition due to
    assembler. That need put brackets around (MT_NORMAL*8).
    Otherwise the result is wrong.This bug is reported by
    York Sun <yorksun at freescale.com>.
  - -msoft-float is not supported by aarch64-gcc,
    make a test though $(call cc-option,-msoft-float).
  - Adjust the virtual address space to 42 bits.
  - Filter armv8 boards from LIST_arm in MAKEALL.
  - remove gpio.h in asm/arch-armv8/ and move mmu.h to
    asm/armv8/ directory.
  - remove vexpress64.dts from this patch, it could be
    accessed from linux kernel.

Changes for v13:
  - fix the bug of board_r.c and arm/lib/board.c due to
    CONFIG_NEED_MANUAL_RELOC. adjust initr_serial() in board_r.c
    to the first entry of init_sequence_r[] and relocate
    serial_initialize() in arm/lib/board.c, routines of serial_device
    should be relocated firstly by serial_initialize(), so that printf
    access the correct puts function, otherwise uninitialized
    serial_current will be selected as the output device.
  - fix the bug of dcache_enable(). after mmu_setup the sctrl
    register value should be fetched again because it has been
    modifed by mmu_seup() function. This bug is reported by York Sun
    <yorksun at freescale.com>.
  - add macro branch_if_slave to macro.h, it choose processor
    with all zero affinity value as the master and is used in start.S.

Changes for v12:
  - custom the patches to new format boards.cfg.

Changes for v11:
  - Replace CONFIG_ARMV8 with CONFIG_ARM64. Currently,
    it's hard to distinguish what is armv8 specific and
    what is aarch64 specific, so we use CONFIG_ARM64
    only, no CONFIG_ARMV8 used.
  - rename README.armv8 with README.arm64 and make some modification.

Changes for v10:
  - add weak definition to include/linux/linkage.h and make
    setup_el2/setup_el3/lowlevel_init weak routines,
    so them can be easily overridden by processor specific code.
  - modify s-o-f of 0002-board-support-of-vexpress_aemv8a which
    use wrong mail address of Bhupesh Sharma.

Changes for v9:
  - add Signed-off-by information to patch "board support of
    vexpress_aemv8a" which SMC91111 support is integrated
    from Sharma Bhupesh's patch.
  - adjust pt_regs struct and add exception state
    preservation in exception.S.

Changes for v8:
  - Integrate SMC91111 patch of sharma bhupesh.
  - remove v8_outer_cache* which is not need currently.
  - Change license tag.
  - Mov crt0.S/relocate.S/interrupts.c to arm/lib and
    rename them with _64 suffix.
  - Make el3/el2 initializing process of start.S as
    two separate routines. It could be easier to be
    replaced with processor specific codes.
  - Remove exception stack save and restore routine,
    it is unnecessary now.
  - simplify __weak function declaration.

Changes for v7:
  - Check the patches with checkpatch.pl and get rid of
    almost all warnings. There are a few warnings still,
    but I think it should be that.
  - change printf format in cmd_pxe.c, use %zd indtead
    of %ld to format size_t type variable.
  - add macro PGTABLE_SIZE to identify tlb table size.

Changes for v6:
  - Make modification to inappropriate licensed file
    and bugs according to ScottWood's advice.
    Thanks Scott for his checking to these patches.
  - Enable u-boot's running at EL1.
  - Get rid of compiling warnings originated from cmd_pxe.c.

Changes for v5:
  - fix the generic board_f.c, remove zero_global_data
    from init_sequence_f array and move it to board_init_f()
    function with CONFIG_X86 switch. The previous fixup is
    inaccurate.
  - Replace __ARMEB__ with __AARCH64EB__ in byteorder.h
    and unaligned.h, gcc for aarch64 use __AARCH64EB__ and
    __AARCH64EL__ to identify endian.
  - Some modification to README.armv8

Changes for v4:
  - merge arm64 to arm architecture.

David Feng (10):
  fdt_support: 64bit initrd start address support
  cmd_pxe: remove compiling warnings
  add weak entry definition
  arm64: Add tool to statically apply RELA relocations
  arm64: Turn u-boot.bin back into an ELF file after relocate-rela
  arm64: Make checkarmreloc accept arm64 relocations
  arm64: core support
  arm64: generic board support
  arm64: board support of vexpress_aemv8a
  arm64: MAKEALL, filter armv8 boards from LIST_arm

 MAKEALL                                 |   12 +-
 Makefile                                |   39 +++++-
 arch/arm/config.mk                      |    7 +-
 arch/arm/cpu/armv8/Makefile             |   17 +++
 arch/arm/cpu/armv8/cache.S              |  136 +++++++++++++++++++
 arch/arm/cpu/armv8/cache_v8.c           |  219 +++++++++++++++++++++++++++++++
 arch/arm/cpu/armv8/config.mk            |   15 +++
 arch/arm/cpu/armv8/cpu.c                |   43 ++++++
 arch/arm/cpu/armv8/exceptions.S         |  113 ++++++++++++++++
 arch/arm/cpu/armv8/generic_timer.c      |   31 +++++
 arch/arm/cpu/armv8/gic.S                |  106 +++++++++++++++
 arch/arm/cpu/armv8/start.S              |  164 +++++++++++++++++++++++
 arch/arm/cpu/armv8/tlb.S                |   34 +++++
 arch/arm/cpu/armv8/transition.S         |   83 ++++++++++++
 arch/arm/cpu/armv8/u-boot.lds           |   89 +++++++++++++
 arch/arm/include/asm/armv8/mmu.h        |  111 ++++++++++++++++
 arch/arm/include/asm/byteorder.h        |   12 ++
 arch/arm/include/asm/cache.h            |    5 +
 arch/arm/include/asm/config.h           |    6 +
 arch/arm/include/asm/gic.h              |   49 ++++++-
 arch/arm/include/asm/global_data.h      |    6 +-
 arch/arm/include/asm/io.h               |   15 ++-
 arch/arm/include/asm/macro.h            |   53 ++++++++
 arch/arm/include/asm/posix_types.h      |   10 ++
 arch/arm/include/asm/proc-armv/ptrace.h |   21 +++
 arch/arm/include/asm/proc-armv/system.h |   59 ++++++++-
 arch/arm/include/asm/system.h           |   84 ++++++++++++
 arch/arm/include/asm/types.h            |    4 +
 arch/arm/include/asm/u-boot.h           |    4 +
 arch/arm/include/asm/unaligned.h        |    2 +-
 arch/arm/lib/Makefile                   |   20 ++-
 arch/arm/lib/board.c                    |    7 +-
 arch/arm/lib/bootm.c                    |   24 ++++
 arch/arm/lib/crt0_64.S                  |  113 ++++++++++++++++
 arch/arm/lib/interrupts_64.c            |  120 +++++++++++++++++
 arch/arm/lib/relocate_64.S              |   58 ++++++++
 board/armltd/vexpress64/Makefile        |    8 ++
 board/armltd/vexpress64/vexpress64.c    |   56 ++++++++
 boards.cfg                              |    1 +
 common/board_f.c                        |   20 ++-
 common/cmd_pxe.c                        |    4 +-
 common/fdt_support.c                    |   66 +++++-----
 common/image.c                          |    1 +
 doc/README.arm64                        |   46 +++++++
 examples/standalone/stubs.c             |   15 +++
 include/configs/vexpress_aemv8a.h       |  189 ++++++++++++++++++++++++++
 include/image.h                         |    1 +
 include/linux/linkage.h                 |    4 +
 tools/Makefile                          |    6 +
 tools/relocate-rela.c                   |  189 ++++++++++++++++++++++++++
 50 files changed, 2429 insertions(+), 68 deletions(-)
 create mode 100644 arch/arm/cpu/armv8/Makefile
 create mode 100644 arch/arm/cpu/armv8/cache.S
 create mode 100644 arch/arm/cpu/armv8/cache_v8.c
 create mode 100644 arch/arm/cpu/armv8/config.mk
 create mode 100644 arch/arm/cpu/armv8/cpu.c
 create mode 100644 arch/arm/cpu/armv8/exceptions.S
 create mode 100644 arch/arm/cpu/armv8/generic_timer.c
 create mode 100644 arch/arm/cpu/armv8/gic.S
 create mode 100644 arch/arm/cpu/armv8/start.S
 create mode 100644 arch/arm/cpu/armv8/tlb.S
 create mode 100644 arch/arm/cpu/armv8/transition.S
 create mode 100644 arch/arm/cpu/armv8/u-boot.lds
 create mode 100644 arch/arm/include/asm/armv8/mmu.h
 create mode 100644 arch/arm/lib/crt0_64.S
 create mode 100644 arch/arm/lib/interrupts_64.c
 create mode 100644 arch/arm/lib/relocate_64.S
 create mode 100644 board/armltd/vexpress64/Makefile
 create mode 100644 board/armltd/vexpress64/vexpress64.c
 create mode 100644 doc/README.arm64
 create mode 100644 include/configs/vexpress_aemv8a.h
 create mode 100644 tools/relocate-rela.c

-- 
1.7.9.5




More information about the U-Boot mailing list