From 341681030cfbc61e31c6a6a6fa360376df6f788d Mon Sep 17 00:00:00 2001 From: Martin Kennedy Date: Tue, 8 Dec 2020 03:36:25 +0000 Subject: [PATCH] mpc85xx: add support for Freescale (NXP) P2041RDB Specifications: - SoC: Freescale P2041 QorIQ CPU (4x e500mc core @ 1.5GHz) - RAM: 4GiB DDR3-1333 SODIMM - SPI Flash: 16MiB (Spansion S25SL12801) - NOR Flash: 128MiB - NAND Flash: 512MiB - Ethernet: 3 x GbE port (VSC8221XHH PHY via SGMII) - Ethernet: 2 x GbE port (VSC8641XKO PHY via RGMII) - 2 x PCIe 2.0 8x slot (electrically 4x) - SDHC slot - 2 x SATA-II ports - 2 x RS232 ports - 2 x USB 2.0 ports - 1588 header - Optional: SFP+ via XAUI interface to riser card (NXP XAUI-RISER-B) See https://www.nxp.com/docs/en/fact-sheet/P2041RDBFS.pdf. Installation: 1. Requires TFTP server with initramfs & sysupgrade .bins on same LAN as connected to the middle-bottom most port ("SGMII3"). 2. Connect to "TOP UART0" with a USB to RS232 cable and turn on. 3. Power on the machine; connect to U-boot over 115200-baud connection 4. Interrupt U-boot process and boot Openwrt .,.,. 5. Set up U-boot environment variables: setenv bootargs /dev/mtdblock3 rw console=ttyS0,115200 rootfstype=squashfs earlyprintk=serial,ttyS0,115200 setenv bootcmd setenv bootargs \$bootargs \$othbootargs \; bootm \$fileaddr - \$fdtaddr setenv othbootargs usdpaa_mem=256M fsl_fm_max_frm=9600 saveenv setenv bootfile openwrt-mpc85xx-p2041-freescale_p2041rdb-initramfs-kernel.bin setenv fdtfile openwrt-mpc85xx-p2041-freescale_p2041rdb-squashfs-fdt.bin setenv loadaddr 1000000 setenv fdtaddr 2000000 setenv ipaddr $pick_a_reachable_ip_address setenv serverip $your_tftp_server_ip tftpboot $fdtaddr $serverip:$fdtfile ; tftpboot $loadaddr $serverip:$bootfile ; bootm $loadaddr - $fdtaddr 6. Copy sysupgrade image to /tmp on P2041-RDB 7. sysupgrade /tmp/.bin Squashed: - Enable CONFIG_CORENET_DEFAULT for p2041-based boards - Disable a new kernel config so I may build uninterrupted This is, SGY_CTS1000. - Update default configs to include DPAA/QorIQ SoC stuff - Further update p2041 config-default As according to kernel documentation. See https://www.kernel.org/doc/html/v5.8/networking/device_drivers/freescale/dpaa.html#configuring-dpaa-ethernet-in-your-kernel - Add CONFIG_CLK_QORIQ This is actually required for initializing networking h/w. See https://community.nxp.com/t5/P-Series/p2041-kernel-upgrade-to-the-4-1-provided-by-2-0-SDK/td-p/650893 Signed-off-by: Martin Kennedy --- target/linux/mpc85xx/Makefile | 2 +- target/linux/mpc85xx/image/p2041.mk | 16 +++++++ target/linux/mpc85xx/p2041/config-default | 44 +++++++++++++++++++ .../mpc85xx/p2041/profiles/00-default.mk | 15 +++++++ target/linux/mpc85xx/p2041/target.mk | 5 +++ ...change-P2041RDB-dts-file-for-OpenWrt.patch | 32 ++++++++++++++ 6 files changed, 113 insertions(+), 1 deletion(-) create mode 100644 target/linux/mpc85xx/image/p2041.mk create mode 100644 target/linux/mpc85xx/p2041/config-default create mode 100644 target/linux/mpc85xx/p2041/profiles/00-default.mk create mode 100644 target/linux/mpc85xx/p2041/target.mk create mode 100644 target/linux/mpc85xx/patches-5.4/107-powerpc-mpc85xx-change-P2041RDB-dts-file-for-OpenWrt.patch diff --git a/target/linux/mpc85xx/Makefile b/target/linux/mpc85xx/Makefile index b1771dfd8e..d69847b84b 100644 --- a/target/linux/mpc85xx/Makefile +++ b/target/linux/mpc85xx/Makefile @@ -9,7 +9,7 @@ BOARD:=mpc85xx BOARDNAME:=Freescale MPC85xx CPU_TYPE:=8540 FEATURES:=squashfs ramdisk -SUBTARGETS:=p1010 p1020 p2020 +SUBTARGETS:=p1010 p1020 p2020 p2041 KERNEL_PATCHVER:=5.4 diff --git a/target/linux/mpc85xx/image/p2041.mk b/target/linux/mpc85xx/image/p2041.mk new file mode 100644 index 0000000000..dd93b23c6c --- /dev/null +++ b/target/linux/mpc85xx/image/p2041.mk @@ -0,0 +1,16 @@ +define Device/freescale_p2041rdb + DEVICE_VENDOR := Freescale + DEVICE_MODEL := P2041RDB + DEVICE_DTS_DIR := $(DTS_DIR)/fsl + DEVICE_PACKAGES := kmod-hwmon-lm90 kmod-rtc-ds1307 \ + kmod-gpio-pca953x kmod-eeprom-at24 + BLOCKSIZE := 128k + KERNEL := kernel-bin | gzip | uImage gzip + SUPPORTED_DEVICES := fsl,P2041RDB + IMAGES := fdt.bin sysupgrade.bin + # TODO Verify that this sysupgrade line is sane + IMAGE/sysupgrade.bin := append-kernel | append-rootfs | \ + pad-rootfs $$(BLOCKSIZE) | append-metadata + IMAGE/fdt.bin := append-dtb +endef +TARGET_DEVICES += freescale_p2041rdb diff --git a/target/linux/mpc85xx/p2041/config-default b/target/linux/mpc85xx/p2041/config-default new file mode 100644 index 0000000000..942bfd2abb --- /dev/null +++ b/target/linux/mpc85xx/p2041/config-default @@ -0,0 +1,44 @@ +CONFIG_ARCH_HAS_TICK_BROADCAST=y +CONFIG_CPU_RMAP=y +CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y +CONFIG_GENERIC_IRQ_MIGRATION=y +CONFIG_GENERIC_TBSYNC=y +CONFIG_HAVE_RCU_TABLE_FREE=y +CONFIG_LOCK_SPIN_ON_OWNER=y +CONFIG_MPC85xx_RDB=y +CONFIG_MTD_CFI=y +CONFIG_MTD_NAND=y +CONFIG_MTD_NAND_BCH=y +CONFIG_MTD_NAND_ECC=y +CONFIG_MTD_NAND_ECC_BCH=y +CONFIG_MTD_NAND_FSL_ELBC=y +CONFIG_MTD_SPLIT_FIRMWARE=y +CONFIG_MTD_SPLIT_FIT_FW=y +CONFIG_MUTEX_SPIN_ON_OWNER=y +CONFIG_NET_FLOW_LIMIT=y +CONFIG_NR_CPUS=4 +CONFIG_PADATA=y +CONFIG_PCI_MSI=y +CONFIG_PPC_MSI_BITMAP=y +CONFIG_RCU_NEED_SEGCBLIST=y +CONFIG_RCU_STALL_COMMON=y +CONFIG_RFS_ACCEL=y +CONFIG_RPS=y +CONFIG_RWSEM_SPIN_ON_OWNER=y +CONFIG_SMP=y +CONFIG_TREE_RCU=y +CONFIG_TREE_SRCU=y +CONFIG_XPS=y +CONFIG_CORENET_GENERIC=y +CONFIG_SGY_CTS1000=n +CONFIG_FSL_DPAA=y +CONFIG_FSL_FMAN=y +CONFIG_FSL_DPAA_ETH=y +CONFIG_FSL_DPAA_CHECKING=y +CONFIG_FSL_CORENET_RCPM=y +CONFIG_FSL_XGMAC_MDIO=y +CONFIG_FSL_PAMU=y +CONFIG_VITESSE_PHY=y +CONFIG_CLK_QORIQ=y +CONFIG_FSL_BMAN_TEST=n +CONFIG_FSL_QMAN_TEST=n diff --git a/target/linux/mpc85xx/p2041/profiles/00-default.mk b/target/linux/mpc85xx/p2041/profiles/00-default.mk new file mode 100644 index 0000000000..a1702c25ce --- /dev/null +++ b/target/linux/mpc85xx/p2041/profiles/00-default.mk @@ -0,0 +1,15 @@ +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +define Profile/Default + NAME:=Default Profile + PRIORITY:=1 +endef + +define Profile/Default/Description + Default package set compatible with most P2041 boards. +endef + +$(eval $(call Profile,Default)) diff --git a/target/linux/mpc85xx/p2041/target.mk b/target/linux/mpc85xx/p2041/target.mk new file mode 100644 index 0000000000..faa0dbc811 --- /dev/null +++ b/target/linux/mpc85xx/p2041/target.mk @@ -0,0 +1,5 @@ +BOARDNAME:=P2041 + +define Target/Description + Build firmware images for Freescale P2041 based boards. +endef diff --git a/target/linux/mpc85xx/patches-5.4/107-powerpc-mpc85xx-change-P2041RDB-dts-file-for-OpenWrt.patch b/target/linux/mpc85xx/patches-5.4/107-powerpc-mpc85xx-change-P2041RDB-dts-file-for-OpenWrt.patch new file mode 100644 index 0000000000..09219a92d3 --- /dev/null +++ b/target/linux/mpc85xx/patches-5.4/107-powerpc-mpc85xx-change-P2041RDB-dts-file-for-OpenWrt.patch @@ -0,0 +1,32 @@ +From 93514afd769c305182beeed1f9c4c46235879ef8 Mon Sep 17 00:00:00 2001 +From: Martin Kennedy +Date: Sun, 27 Dec 2020 23:24:41 +0100 +Subject: [PATCH] powerpc: mpc85xx: change P2041RDB dts file for OpenWRT + +This patch apply chages for OpenWRT in P2041RDB +dts file. + +Signed-off-by: Martin Kennedy +--- + arch/powerpc/boot/dts/fsl/p2041rdb.dts | 98 +++++++++++++++++--------- + 1 file changed, 63 insertions(+), 35 deletions(-) + +--- a/arch/powerpc/boot/dts/fsl/p2041rdb.dts ++++ b/arch/powerpc/boot/dts/fsl/p2041rdb.dts +@@ -32,10 +32,15 @@ + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + ++/dts-v1/; ++ + /include/ "p2041si-pre.dtsi" + ++#include ++#include ++ + / { +- model = "fsl,P2041RDB"; ++ model = "Freescale P2041RDB"; + compatible = "fsl,P2041RDB"; + #address-cells = <2>; + #size-cells = <2>;