arm: mvebu: board/Synology: Unify legacy kernel support

Move the relevant bits from ds109.{c,h} into common/ and adjust the code
to fit both DS109 and DS414. Moreover:

* Introduce syno_board_id() which translates CONFIG_MACH_TYPE into the
  expected board ID tag value.

* Properly initialize isusbhost, mac and mtu fields from env variables.

* Set the right bootargs/bootcmd to correctly boot legacy kernel out of
  the (DS414) box. Getting the ramdisk location right is a bit tedious.

Cc: Walter Schweizer <swwa@users.sourceforge.net>
Signed-off-by: Phil Sutter <phil@nwl.cc>
Reviewed-by: Stefan Roese <sr@denx.de>
This commit is contained in:
Phil Sutter
2021-03-07 22:22:27 +01:00
committed by Stefan Roese
parent c57f920504
commit e471ddf0f3
8 changed files with 132 additions and 54 deletions

View File

@@ -44,7 +44,8 @@
"x_bootcmd_kernel=fatload usb 0 0x6400000 uImage\0" \
"x_bootargs=console=ttyS0,115200\0" \
"x_bootargs_root=root=/dev/sda2 rootdelay=10\0" \
"ipaddr=192.168.1.5\0"
"ipaddr=192.168.1.5\0" \
"usb0Mode=host\0"
/*
* Ethernet Driver configuration

View File

@@ -6,6 +6,9 @@
#ifndef _CONFIG_SYNOLOGY_DS414_H
#define _CONFIG_SYNOLOGY_DS414_H
/* Vendor kernel expects this MACH_TYPE */
#define CONFIG_MACH_TYPE 3036
/*
* High Level Configuration Options (easy to change)
*/
@@ -74,8 +77,18 @@
#define CONFIG_DDR_32BIT
/* Default Environment */
#define CONFIG_BOOTCOMMAND "sf read ${loadaddr} 0xd0000 0x700000; bootm"
#define CONFIG_LOADADDR 0x80000
#define CONFIG_BOOTCOMMAND \
"sf probe; " \
"sf read ${loadaddr} 0xd0000 0x2d0000; " \
"sf read ${ramdisk_addr_r} 0x3a0000 0x430000; " \
"bootm ${loadaddr} ${ramdisk_addr_r}"
#define CONFIG_EXTRA_ENV_SETTINGS \
"initrd_high=0xffffffff\0" \
"ramdisk_addr_r=0x8000000\0" \
"usb0Mode=host\0usb1Mode=host\0usb2Mode=device\0" \
"ethmtu=1500\0eth1mtu=1500\0"
/* increase autoneg timeout, my NIC sucks */
#define PHY_ANEG_TIMEOUT 16000