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 <[email protected]> > --- > > 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

