[U-Boot] [PATCH 00/12] sh: change arch and boards code to generic board

Vladimir Zapolskiy vz at mleia.com
Wed Aug 31 11:44:09 CEST 2016


On 06.08.2016 21:21, Vladimir Zapolskiy wrote:
> The changeset implements initial support of relocatable U-Boot code
> for SH2/SH3/SH4 architectures and boards, as weel as it restores
> a possibility to boot U-Boot on SH boards, which has not been converted
> to generic board in time (for more details see commit f41e6088eb1
> ("sh: Fix build errors for generic board")). Special attention from
> maintainers of all touched boards is required, due to inaccessibility
> of hardware for me it would be a troublesome task.
> 
> Now code/data initialization and relocation in general resemble the
> procedure on ARM with minor peculiarities (same one relocation from a
> storage device if calculated reloc_off == 0, otherwise two relocations),
> however please note that the change does *not* add PIE support (only PIC),
> so it may end up that there are persistent pointers to some non-relocated
> data, this point requires better investion.
> 
> There is a runtime dependency on one generic change in common/board_f.c,
> see patch https://patchwork.ozlabs.org/patch/656371/ , also only r2dplus
> board is actually converted to support new arcitectural changes,
> application of patch 12/12 depends on SH7751 PCI fixes found at
> https://patchwork.ozlabs.org/patch/656373/ :
> 
>   -#define CONFIG_SYS_TEXT_BASE           0x8FFC0000
>   +#define CONFIG_SYS_TEXT_BASE           0x8FE00000
> 
> This r2dplus board change allows immediately check the correctness of
> the series on a r2dplus qemu target, note that the second copy is
> not avoided in this case, also for simplicity SDRAM area up to text base
> is large enough to store malloc pool and two copies of loaded code/data.
> 
> Board maintainers may pay attention to CONFIG_SYS_MALLOC_CLEAR_ON_INIT,
> CONFIG_NEEDS_MANUAL_RELOC, CONFIG_SYS_GENERIC_GLOBAL_DATA etc. options.
> To let know about the change and to continue with the completion of
> the final step of board conversions to generic board I include all
> SH2/SH3/SH4 board maintainers into Cc list, please update your board
> configs appropriately.
> 
> The change was tested on one custom SH4 (SH7551R) board, r2dplus qemu
> target (see also SH7751 PCI change under review), the rest of the boards
> are compile tested only.
> 
> Multiple kudos to Simon for great patience and a decision to not remove
> the code.
> 
> Any further improvements are welcome, especially it's worth to mention
> the anticipated convertion to PIE.
> 
> Vladimir Zapolskiy (12):
>   sh4: use single u-boot linker script for all boards
>   sh: place board lowlevel_init code in the beginning of .text
>   sh: define entry point and reloc_dst inside a linker script
>   sh: add MEMORY command to a shared linker script
>   sh: remove undefined DEBUG preprocessor token from board config files
>   sh: define CONFIG_DISPLAY_BOARDINFO to print board information
>   sh: add common dram_init() function for all boards
>   sh: add shared relocate_code() function and call board_init_r()
>   sh4: fix start.S by calling board_init_f() after first code relocation
>   sh: share the correct version of start.S among all cpus
>   sh: generate position independent code for all platforms
>   r2dplus: fixup CONFIG_SYS_TEXT_BASE to account arch/sh changes
> 

Ping.

--
Best wishes,
Vladimir


More information about the U-Boot mailing list