[PATCH] arm: mvebu: Enable bootstd and other modernization for Synology DS414 (Armada XP) board
Phil Sutter
phil at nwl.cc
Fri Jun 7 15:45:31 CEST 2024
Hi Tony,
On Thu, Jun 06, 2024 at 04:44:36PM -0700, Tony Dinh wrote:
> - Switch to standard boot (in include/configs/ds414.h and
> configs/ds414_defconfig)
> - Implement board_late_init() to ensure successful enumeration
> of USB3 devices
Oh, this makes the rear USB3 ports usable? I had failed to get there
when working on DS414 support.
> - Remove unnecessary misc_init_r(), since NET_RANDOM_ETHADDR is now
> configured in
So u-boot will assign random MAC addresses to the NICs instead of the
real ones? Won't this potentially break PXE boot setups?
> - Remove unnecessary checkboard()
> - Updated IDENT_STRING to indicate this u-boot supports both Synology
> DS414 and DS214+ boards
> - Add SYS_THUMB_BUILD to reduce binary size
> - Add NET_RANDOM_ETHADDR
> - Add CONFIG_LBA48 and CONFIG_SYS_64BIT_LBA to support >2TB HDD/SDD
>
> Signed-off-by: Tony Dinh <mibodhi at gmail.com>
> ---
>
> board/Synology/ds414/ds414.c | 15 +++--------
> configs/ds414_defconfig | 20 ++++++--------
> include/configs/ds414.h | 51 ++++++++++++++++++++++--------------
> 3 files changed, 42 insertions(+), 44 deletions(-)
>
> diff --git a/board/Synology/ds414/ds414.c b/board/Synology/ds414/ds414.c
> index abe6f9eb5e..f0b55fa095 100644
> --- a/board/Synology/ds414/ds414.c
> +++ b/board/Synology/ds414/ds414.c
> @@ -181,18 +181,9 @@ int board_init(void)
> return 0;
> }
>
> -int misc_init_r(void)
> +int board_late_init(void)
> {
> - if (!env_get("ethaddr")) {
> - puts("Incomplete environment, populating from SPI flash\n");
> - do_syno_populate(0, NULL);
> - }
> - return 0;
> -}
This is useful for first boot of flashed vanilla u-boot. Can this be
retained somehow?
[...]
> diff --git a/include/configs/ds414.h b/include/configs/ds414.h
> index 9446acba79..bbefe632e0 100644
> --- a/include/configs/ds414.h
> +++ b/include/configs/ds414.h
[...]
> @@ -38,23 +34,38 @@
> * L2 cache thus cannot be used.
> */
>
> -/* SPL */
> -/* Defines for SPL */
> +/* Keep device tree and initrd in lower memory so the kernel can access them */
> +#define RELOCATION_LIMITS_ENV_SETTINGS \
> + "fdt_high=0x10000000\0" \
> + "initrd_high=0x10000000\0"
> +
> +/*
> + * mv-common.h should be defined after CMD configs since it used them
> + * to enable certain macros
> + */
> +#include "mv-common.h"
> +
> +#ifndef CONFIG_SPL_BUILD
>
> -/* Default Environment */
> +#define KERNEL_ADDR_R __stringify(0x1000000)
> +#define FDT_ADDR_R __stringify(0x2000000)
> +#define RAMDISK_ADDR_R __stringify(0x2200000)
> +#define SCRIPT_ADDR_R __stringify(0x1800000)
> +#define PXEFILE_ADDR_R __stringify(0x1900000)
>
> -#define CFG_EXTRA_ENV_SETTINGS \
> - "initrd_high=0xffffffff\0" \
> - "ramdisk_addr_r=0x8000000\0" \
> - "usb0Mode=host\0usb1Mode=host\0usb2Mode=device\0" \
> - "ethmtu=1500\0eth1mtu=1500\0" \
> - "update_uboot=sf probe; dhcp; " \
> - "mw.b ${loadaddr} 0x0 0xd0000; " \
> - "tftpboot ${loadaddr} u-boot-with-spl.kwb; " \
> - "sf update ${loadaddr} 0x0 0xd0000\0"
Are these dropped or am I missing a generic spot which adds them? IIRC,
the usb*mode and eth*mtu settings are required, is that wrong? Lastly,
that update_uboot macro at least helps preventing people from writing
into wrong spots. What's the cause for dropping it?
Thanks, Phil
More information about the U-Boot
mailing list