[U-Boot] about CONFIG_SYS_GENERIC_BOARD

FengHua fenghua at phytium.com.cn
Fri Aug 16 07:02:46 CEST 2013


hi Simon,
        I have worked on generic board for a few days, but something confuse me.
        Why it is needed?
        Each processor architecture has different features, this will affect processor specific and board specific code. Putting board_init_* code of each platform into one file with many macro switch make things messy, the board_f.c and board_r.c become very complicated and less readable. Is it really needed?
       We should make it clear that what parts are common between architecture and what parts are specific.
       Actually, I have different opinion with this. Architecture specific board.c file have more advantages. how ahout your opinion?
 
Best Regards.
       David

> -----原始邮件-----
> 发件人: "Simon Glass" <sjg at chromium.org>
> 发送时间: 2013年8月16日 星期五
> 收件人: fenghua at phytium.com.cn
> 抄送: "U-Boot Mailing List" <u-boot at lists.denx.de>, "trini at ti.com" <trini at ti.com>
> 主题: Re: [U-Boot] [PATCH v3 0/5] arm64 patch
> 
> Hi David,
> 
> On Thu, Aug 15, 2013 at 7:47 AM,  <fenghua at phytium.com.cn> wrote:
> > From: David Feng <fenghua at phytium.com.cn>
> >
> > *** BLURB HERE ***
> > Changes for v3:
> >     - rewrite cache.S and exception.S that partly originated from linux kernel,
> >       so the license should be ok.
> >     - according to scott wood's advice, make the fdt 64bit initrd start address support a seperate patch.
> >
> > David Feng (5):
> >   core support of arm64
> >   board support of arm64
> >   arch support 1 of arm64
> >   arch support 2 of arm64
> >   64bit initrd start address support
> >
> >  arch/arm64/config.mk                    |   32 +++
> >  arch/arm64/cpu/armv8/Makefile           |   51 ++++
> >  arch/arm64/cpu/armv8/cache.S            |  144 ++++++++++
> >  arch/arm64/cpu/armv8/config.mk          |   29 ++
> >  arch/arm64/cpu/armv8/cpu.c              |  108 ++++++++
> >  arch/arm64/cpu/armv8/exceptions.S       |  189 +++++++++++++
> >  arch/arm64/cpu/armv8/start.S            |  197 ++++++++++++++
> >  arch/arm64/cpu/armv8/tlb.S              |   38 +++
> >  arch/arm64/cpu/u-boot.lds               |   73 +++++
> >  arch/arm64/dts/aemv8a.dtsi              |  234 ++++++++++++++++
> >  arch/arm64/include/asm/arch-armv8/mmu.h |  117 ++++++++
> >  arch/arm64/include/asm/atomic.h         |  115 ++++++++
> >  arch/arm64/include/asm/bitops.h         |  153 +++++++++++
> >  arch/arm64/include/asm/byteorder.h      |   31 +++
> >  arch/arm64/include/asm/cache.h          |   53 ++++
> >  arch/arm64/include/asm/config.h         |   41 +++
> >  arch/arm64/include/asm/errno.h          |    1 +
> >  arch/arm64/include/asm/global_data.h    |   38 +++
> >  arch/arm64/include/asm/gpio.h           |    1 +
> >  arch/arm64/include/asm/io.h             |  193 +++++++++++++
> >  arch/arm64/include/asm/linkage.h        |   49 ++++
> >  arch/arm64/include/asm/posix_types.h    |   61 +++++
> >  arch/arm64/include/asm/processor.h      |   59 ++++
> >  arch/arm64/include/asm/ptrace.h         |   64 +++++
> >  arch/arm64/include/asm/sections.h       |   27 ++
> >  arch/arm64/include/asm/string.h         |   49 ++++
> >  arch/arm64/include/asm/system.h         |  106 ++++++++
> >  arch/arm64/include/asm/types.h          |   67 +++++
> >  arch/arm64/include/asm/u-boot.h         |   38 +++
> >  arch/arm64/include/asm/unaligned.h      |   28 ++
> >  arch/arm64/include/asm/utils.h          |   56 ++++
> >  arch/arm64/lib/Makefile                 |   64 +++++
> >  arch/arm64/lib/board.c                  |  453 +++++++++++++++++++++++++++++++
> 
> Instead of this file, it would be good if you could make it use
> generic board - see CONFIG_SYS_GENERIC_BOARD in the README.
> 
> >  arch/arm64/lib/bootm.c                  |  211 ++++++++++++++
> >  arch/arm64/lib/cache.c                  |  282 +++++++++++++++++++
> >  arch/arm64/lib/crt0.S                   |  129 +++++++++
> >  arch/arm64/lib/interrupts.c             |  109 ++++++++
> >  arch/arm64/lib/relocate.S               |   72 +++++
> >  arch/arm64/lib/reset.c                  |   37 +++
> >  arch/arm64/lib/timer.c                  |   95 +++++++
> >  board/armltd/dts/vexpress64.dts         |  215 +++++++++++++++
> >  board/armltd/vexpress64/Makefile        |   43 +++
> >  board/armltd/vexpress64/vexpress64.c    |   63 +++++
> >  boards.cfg                              |    1 +
> >  common/cmd_bdinfo.c                     |   32 +++
> >  common/fdt_support.c                    |   66 ++---
> >  common/image.c                          |    5 +-
> >  doc/README.arm64                        |   10 +
> >  examples/standalone/stubs.c             |   13 +
> >  include/configs/vexpress_aemv8a.h       |  200 ++++++++++++++
> >  include/image.h                         |    1 +
> >  lib/asm-offsets.c                       |    4 -
> >  52 files changed, 4509 insertions(+), 38 deletions(-)
> >  create mode 100644 arch/arm64/config.mk
> >  create mode 100644 arch/arm64/cpu/armv8/Makefile
> >  create mode 100644 arch/arm64/cpu/armv8/cache.S
> >  create mode 100644 arch/arm64/cpu/armv8/config.mk
> >  create mode 100644 arch/arm64/cpu/armv8/cpu.c
> >  create mode 100644 arch/arm64/cpu/armv8/exceptions.S
> >  create mode 100644 arch/arm64/cpu/armv8/start.S
> >  create mode 100644 arch/arm64/cpu/armv8/tlb.S
> >  create mode 100644 arch/arm64/cpu/u-boot.lds
> >  create mode 100644 arch/arm64/dts/aemv8a.dtsi
> >  create mode 100644 arch/arm64/include/asm/arch-armv8/mmu.h
> >  create mode 100644 arch/arm64/include/asm/atomic.h
> >  create mode 100644 arch/arm64/include/asm/bitops.h
> >  create mode 100644 arch/arm64/include/asm/byteorder.h
> >  create mode 100644 arch/arm64/include/asm/cache.h
> >  create mode 100644 arch/arm64/include/asm/config.h
> >  create mode 100644 arch/arm64/include/asm/errno.h
> >  create mode 100644 arch/arm64/include/asm/global_data.h
> >  create mode 100644 arch/arm64/include/asm/gpio.h
> >  create mode 100644 arch/arm64/include/asm/io.h
> >  create mode 100644 arch/arm64/include/asm/linkage.h
> >  create mode 100644 arch/arm64/include/asm/posix_types.h
> >  create mode 100644 arch/arm64/include/asm/processor.h
> >  create mode 100644 arch/arm64/include/asm/ptrace.h
> >  create mode 100644 arch/arm64/include/asm/sections.h
> >  create mode 100644 arch/arm64/include/asm/string.h
> >  create mode 100644 arch/arm64/include/asm/system.h
> >  create mode 100644 arch/arm64/include/asm/types.h
> >  create mode 100644 arch/arm64/include/asm/u-boot.h
> >  create mode 100644 arch/arm64/include/asm/unaligned.h
> >  create mode 100644 arch/arm64/include/asm/utils.h
> >  create mode 100644 arch/arm64/lib/Makefile
> >  create mode 100644 arch/arm64/lib/board.c
> >  create mode 100644 arch/arm64/lib/bootm.c
> >  create mode 100644 arch/arm64/lib/cache.c
> >  create mode 100644 arch/arm64/lib/crt0.S
> >  create mode 100644 arch/arm64/lib/interrupts.c
> >  create mode 100644 arch/arm64/lib/relocate.S
> >  create mode 100644 arch/arm64/lib/reset.c
> >  create mode 100644 arch/arm64/lib/timer.c
> >  create mode 100644 board/armltd/dts/vexpress64.dts
> >  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
> >
> 
> Regards,
> Simon








More information about the U-Boot mailing list