diff options
Diffstat (limited to 'arch/arm/boards/freescale-mx6-sabresd')
-rw-r--r-- | arch/arm/boards/freescale-mx6-sabresd/Makefile | 2 | ||||
-rw-r--r-- | arch/arm/boards/freescale-mx6-sabresd/board.c | 24 | ||||
-rw-r--r-- | arch/arm/boards/freescale-mx6-sabresd/flash-header-mx6dl-sabresd.imxcfg | 104 | ||||
-rw-r--r-- | arch/arm/boards/freescale-mx6-sabresd/flash-header-mx6q-sabresd.imxcfg (renamed from arch/arm/boards/freescale-mx6-sabresd/flash-header-mx6-sabresd.imxcfg) | 146 | ||||
-rw-r--r-- | arch/arm/boards/freescale-mx6-sabresd/flash-header-mx6qp-sabresd.imxcfg | 98 | ||||
-rw-r--r-- | arch/arm/boards/freescale-mx6-sabresd/lowlevel.c | 39 |
6 files changed, 309 insertions, 104 deletions
diff --git a/arch/arm/boards/freescale-mx6-sabresd/Makefile b/arch/arm/boards/freescale-mx6-sabresd/Makefile index 01c7a259e9..da63d2625f 100644 --- a/arch/arm/boards/freescale-mx6-sabresd/Makefile +++ b/arch/arm/boards/freescale-mx6-sabresd/Makefile @@ -1,2 +1,4 @@ +# SPDX-License-Identifier: GPL-2.0-only + obj-y += board.o lwl-y += lowlevel.o diff --git a/arch/arm/boards/freescale-mx6-sabresd/board.c b/arch/arm/boards/freescale-mx6-sabresd/board.c index b710c05a47..1db52736f9 100644 --- a/arch/arm/boards/freescale-mx6-sabresd/board.c +++ b/arch/arm/boards/freescale-mx6-sabresd/board.c @@ -10,22 +10,20 @@ #include <common.h> #include <init.h> #include <environment.h> -#include <mach/imx6-regs.h> +#include <mach/imx/imx6-regs.h> #include <asm/armlinux.h> -#include <generated/mach-types.h> -#include <partition.h> +#include <asm/mach-types.h> #include <linux/phy.h> #include <asm/io.h> #include <asm/mmu.h> -#include <mach/generic.h> +#include <mach/imx/generic.h> #include <linux/sizes.h> #include <net.h> -#include <mach/imx6.h> -#include <mach/devices-imx6.h> -#include <mach/iomux-mx6.h> +#include <mach/imx/imx6.h> +#include <mach/imx/iomux-mx6.h> #include <spi/spi.h> -#include <mach/spi.h> -#include <mach/usb.h> +#include <mach/imx/spi.h> +#include <mach/imx/usb.h> #define PHY_ID_AR8031 0x004dd074 #define AR_PHY_ID_MASK 0xffffffff @@ -55,7 +53,9 @@ static int ar8031_phy_fixup(struct phy_device *dev) static int sabresd_devices_init(void) { - if (!of_machine_is_compatible("fsl,imx6q-sabresd")) + if (!of_machine_is_compatible("fsl,imx6q-sabresd") && + !of_machine_is_compatible("fsl,imx6qp-sabresd") && + !of_machine_is_compatible("fsl,imx6dl-sabresd")) return 0; armlinux_set_architecture(3980); @@ -67,7 +67,9 @@ device_initcall(sabresd_devices_init); static int sabresd_coredevices_init(void) { - if (!of_machine_is_compatible("fsl,imx6q-sabresd")) + if (!of_machine_is_compatible("fsl,imx6q-sabresd") && + !of_machine_is_compatible("fsl,imx6qp-sabresd") && + !of_machine_is_compatible("fsl,imx6dl-sabresd")) return 0; phy_register_fixup_for_uid(PHY_ID_AR8031, AR_PHY_ID_MASK, diff --git a/arch/arm/boards/freescale-mx6-sabresd/flash-header-mx6dl-sabresd.imxcfg b/arch/arm/boards/freescale-mx6-sabresd/flash-header-mx6dl-sabresd.imxcfg new file mode 100644 index 0000000000..303b62ce4f --- /dev/null +++ b/arch/arm/boards/freescale-mx6-sabresd/flash-header-mx6dl-sabresd.imxcfg @@ -0,0 +1,104 @@ +# SPDX-License-Identifier: GPL-2.0-only + +loadaddr 0x10000000 +soc imx6 +ivtofs 0x400 +wm 32 0x020e0774 0x000C0000 +wm 32 0x020e0754 0x00000000 +wm 32 0x020e04ac 0x00000030 +wm 32 0x020e04b0 0x00000030 +wm 32 0x020e0464 0x00000030 +wm 32 0x020e0490 0x00000030 +wm 32 0x020e074c 0x00000030 +wm 32 0x020e0494 0x00000030 +wm 32 0x020e04a0 0x00000000 +wm 32 0x020e04b4 0x00000030 +wm 32 0x020e04b8 0x00000030 +wm 32 0x020e076c 0x00000030 +wm 32 0x020e0750 0x00020000 +wm 32 0x020e04bc 0x00000030 +wm 32 0x020e04c0 0x00000030 +wm 32 0x020e04c4 0x00000030 +wm 32 0x020e04c8 0x00000030 +wm 32 0x020e04cc 0x00000030 +wm 32 0x020e04d0 0x00000030 +wm 32 0x020e04d4 0x00000030 +wm 32 0x020e04d8 0x00000030 +wm 32 0x020e0760 0x00020000 +wm 32 0x020e0764 0x00000030 +wm 32 0x020e0770 0x00000030 +wm 32 0x020e0778 0x00000030 +wm 32 0x020e077c 0x00000030 +wm 32 0x020e0780 0x00000030 +wm 32 0x020e0784 0x00000030 +wm 32 0x020e078c 0x00000030 +wm 32 0x020e0748 0x00000030 +wm 32 0x020e0470 0x00000030 +wm 32 0x020e0474 0x00000030 +wm 32 0x020e0478 0x00000030 +wm 32 0x020e047c 0x00000030 +wm 32 0x020e0480 0x00000030 +wm 32 0x020e0484 0x00000030 +wm 32 0x020e0488 0x00000030 +wm 32 0x020e048c 0x00000030 +wm 32 0x021b0800 0xa1390003 +wm 32 0x021b080c 0x001F001F +wm 32 0x021b0810 0x001F001F +wm 32 0x021b480c 0x001F001F +wm 32 0x021b4810 0x001F001F +wm 32 0x021b083c 0x4220021F +wm 32 0x021b0840 0x0207017E +wm 32 0x021b483c 0x4201020C +wm 32 0x021b4840 0x01660172 +wm 32 0x021b0848 0x4A4D4E4D +wm 32 0x021b4848 0x4A4F5049 +wm 32 0x021b0850 0x3F3C3D31 +wm 32 0x021b4850 0x3238372B +wm 32 0x021b081c 0x33333333 +wm 32 0x021b0820 0x33333333 +wm 32 0x021b0824 0x33333333 +wm 32 0x021b0828 0x33333333 +wm 32 0x021b481c 0x33333333 +wm 32 0x021b4820 0x33333333 +wm 32 0x021b4824 0x33333333 +wm 32 0x021b4828 0x33333333 +wm 32 0x021b08b8 0x00000800 +wm 32 0x021b48b8 0x00000800 +wm 32 0x021b0004 0x0002002D +wm 32 0x021b0008 0x00333030 +wm 32 0x021b000c 0x3F435313 +wm 32 0x021b0010 0xB66E8B63 +wm 32 0x021b0014 0x01FF00DB +wm 32 0x021b0018 0x00001740 +wm 32 0x021b001c 0x00008000 +wm 32 0x021b002c 0x000026d2 +wm 32 0x021b0030 0x00431023 +wm 32 0x021b0040 0x00000027 +wm 32 0x021b0000 0x831A0000 +wm 32 0x021b001c 0x04008032 +wm 32 0x021b001c 0x00008033 +wm 32 0x021b001c 0x00048031 +wm 32 0x021b001c 0x05208030 +wm 32 0x021b001c 0x04008040 +wm 32 0x021b0020 0x00005800 +wm 32 0x021b0818 0x00011117 +wm 32 0x021b4818 0x00011117 +wm 32 0x021b0004 0x0002556D +wm 32 0x021b0404 0x00011006 +wm 32 0x021b001c 0x00000000 + +/* set the default clock gate to save power */ +wm 32 0x020c4068 0x00C03F3F +wm 32 0x020c406c 0x0030FC03 +wm 32 0x020c4070 0x0FFFF000 +wm 32 0x020c4074 0x3FF00000 +wm 32 0x020c4078 0x00FFF300 +wm 32 0x020c407c 0x0F0000C3 +wm 32 0x020c4080 0x000003FF + +/* enable AXI cache for VDOA/VPU/IPU */ +wm 32 0x020e0010 0xF00000CF + +/* set IPU AXI-id0 Qos=0xf(bypass) AXI-id1 Qos=0x7 */ +wm 32 0x020e0018 0x007F007F +wm 32 0x020e001c 0x007F007F diff --git a/arch/arm/boards/freescale-mx6-sabresd/flash-header-mx6-sabresd.imxcfg b/arch/arm/boards/freescale-mx6-sabresd/flash-header-mx6q-sabresd.imxcfg index 133f499ab9..39f8950e8e 100644 --- a/arch/arm/boards/freescale-mx6-sabresd/flash-header-mx6-sabresd.imxcfg +++ b/arch/arm/boards/freescale-mx6-sabresd/flash-header-mx6q-sabresd.imxcfg @@ -1,128 +1,92 @@ +# SPDX-License-Identifier: GPL-2.0-only + loadaddr 0x10000000 soc imx6 ivtofs 0x400 +wm 32 0x20e056c 0x00020030 +wm 32 0x20e0578 0x00020030 +wm 32 0x20e0588 0x00020030 +wm 32 0x20e0594 0x00020030 +wm 32 0x20e0798 0x000C0000 +wm 32 0x20e0758 0x00000000 +wm 32 0x20e0588 0x00000030 +wm 32 0x20e0594 0x00000030 +wm 32 0x20e056c 0x00000030 +wm 32 0x20e0578 0x00000030 +wm 32 0x20e074c 0x00000030 +wm 32 0x20e057c 0x00000030 +wm 32 0x20e058c 0x00000000 +wm 32 0x20e059c 0x00000030 +wm 32 0x20e05a0 0x00000030 +wm 32 0x20e078c 0x00000030 +wm 32 0x20e0750 0x00020000 wm 32 0x20e05a8 0x00000030 wm 32 0x20e05b0 0x00000030 wm 32 0x20e0524 0x00000030 wm 32 0x20e051c 0x00000030 - wm 32 0x20e0518 0x00000030 wm 32 0x20e050c 0x00000030 wm 32 0x20e05b8 0x00000030 wm 32 0x20e05c0 0x00000030 - -wm 32 0x20e05ac 0x00020030 -wm 32 0x20e05b4 0x00020030 -wm 32 0x20e0528 0x00020030 -wm 32 0x20e0520 0x00020030 - -wm 32 0x20e0514 0x00020030 -wm 32 0x20e0510 0x00020030 -wm 32 0x20e05bc 0x00020030 -wm 32 0x20e05c4 0x00020030 - -wm 32 0x20e056c 0x00020030 -wm 32 0x20e0578 0x00020030 -wm 32 0x20e0588 0x00020030 -wm 32 0x20e0594 0x00020030 - -wm 32 0x20e057c 0x00020030 -wm 32 0x20e0590 0x00003000 -wm 32 0x20e0598 0x00003000 -wm 32 0x20e058c 0x00000000 - -wm 32 0x20e059c 0x00003030 -wm 32 0x20e05a0 0x00003030 +wm 32 0x20e0774 0x00020000 wm 32 0x20e0784 0x00000030 wm 32 0x20e0788 0x00000030 - wm 32 0x20e0794 0x00000030 wm 32 0x20e079c 0x00000030 wm 32 0x20e07a0 0x00000030 wm 32 0x20e07a4 0x00000030 - wm 32 0x20e07a8 0x00000030 wm 32 0x20e0748 0x00000030 -wm 32 0x20e074c 0x00000030 -wm 32 0x20e0750 0x00020000 - -wm 32 0x20e0758 0x00000000 -wm 32 0x20e0774 0x00020000 -wm 32 0x20e078c 0x00000030 -wm 32 0x20e0798 0x000C0000 - +wm 32 0x20e05ac 0x00000030 +wm 32 0x20e05b4 0x00000030 +wm 32 0x20e0528 0x00000030 +wm 32 0x20e0520 0x00000030 +wm 32 0x20e0514 0x00000030 +wm 32 0x20e0510 0x00000030 +wm 32 0x20e05bc 0x00000030 +wm 32 0x20e05c4 0x00000030 +wm 32 0x21b0800 0xa1390003 +wm 32 0x21b080c 0x001F001F +wm 32 0x21b0810 0x001F001F +wm 32 0x21b480c 0x001F001F +wm 32 0x21b4810 0x001F001F +wm 32 0x21b083c 0x43270338 +wm 32 0x21b0840 0x03200314 +wm 32 0x21b483c 0x431A032F +wm 32 0x21b4840 0x03200263 +wm 32 0x21b0848 0x4B434748 +wm 32 0x21b4848 0x4445404C +wm 32 0x21b0850 0x38444542 +wm 32 0x21b4850 0x4935493A wm 32 0x21b081c 0x33333333 wm 32 0x21b0820 0x33333333 wm 32 0x21b0824 0x33333333 wm 32 0x21b0828 0x33333333 - wm 32 0x21b481c 0x33333333 wm 32 0x21b4820 0x33333333 wm 32 0x21b4824 0x33333333 wm 32 0x21b4828 0x33333333 - -wm 32 0x21b0018 0x00081740 - -wm 32 0x21b001c 0x00008000 +wm 32 0x21b08b8 0x00000800 +wm 32 0x21b48b8 0x00000800 +wm 32 0x21b0004 0x00020036 +wm 32 0x21b0008 0x09444040 wm 32 0x21b000c 0x555A7975 -wm 32 0x21b0010 0xFF538E64 +wm 32 0x21b0010 0xFF538F64 wm 32 0x21b0014 0x01FF00DB -wm 32 0x21b002c 0x000026D2 - -wm 32 0x21b0030 0x005B0E21 -wm 32 0x21b0008 0x09444040 -wm 32 0x21b0004 0x00025576 +wm 32 0x21b0018 0x00001740 +wm 32 0x21b001c 0x00008000 +wm 32 0x21b002c 0x000026d2 +wm 32 0x21b0030 0x005A1023 wm 32 0x21b0040 0x00000027 wm 32 0x21b0000 0x831A0000 - wm 32 0x21b001c 0x04088032 -wm 32 0x21b001c 0x0408803A wm 32 0x21b001c 0x00008033 -wm 32 0x21b001c 0x0000803B -wm 32 0x21b001c 0x00428031 -wm 32 0x21b001c 0x00428039 +wm 32 0x21b001c 0x00048031 wm 32 0x21b001c 0x09408030 -wm 32 0x21b001c 0x09408038 - wm 32 0x21b001c 0x04008040 -wm 32 0x21b001c 0x04008048 -wm 32 0x21b0800 0xA1380003 -wm 32 0x21b4800 0xA1380003 wm 32 0x21b0020 0x00005800 -wm 32 0x21b0818 0x00022227 -wm 32 0x21b4818 0x00022227 - -wm 32 0x21b083c 0x434B0350 -wm 32 0x21b0840 0x034C0359 -wm 32 0x21b483c 0x434B0350 -wm 32 0x21b4840 0x03650348 -wm 32 0x21b0848 0x4436383B -wm 32 0x21b4848 0x39393341 -wm 32 0x21b0850 0x35373933 -wm 32 0x21b4850 0x48254A36 - -wm 32 0x21b080c 0x001F001F -wm 32 0x21b0810 0x001F001F - -wm 32 0x21b480c 0x00440044 -wm 32 0x21b4810 0x00440044 - -wm 32 0x21b08b8 0x00000800 -wm 32 0x21b48b8 0x00000800 - -wm 32 0x21b001c 0x00000000 +wm 32 0x21b0818 0x00011117 +wm 32 0x21b4818 0x00011117 +wm 32 0x21b0004 0x00025576 wm 32 0x21b0404 0x00011006 - -wm 32 0x020c4068 0x00c03f3f -wm 32 0x020c406c 0x0030fc03 -wm 32 0x020c4070 0x0fffc000 -wm 32 0x020c4074 0x3ff00000 -wm 32 0x020c4078 0x00fff300 -wm 32 0x020c407c 0x0f0000c3 -wm 32 0x020c4080 0x000003ff - -# enable AXI cache for VDOA/VPU/IPU -wm 32 0x20e0010 0xf00000cf -# set IPU AXI-id0 Qos=0xf(bypass) AXI-id1 Qos=0x7 -wm 32 0x20e0018 0x007f007f -wm 32 0x20e001c 0x007f007f +wm 32 0x21b001c 0x00000000 diff --git a/arch/arm/boards/freescale-mx6-sabresd/flash-header-mx6qp-sabresd.imxcfg b/arch/arm/boards/freescale-mx6-sabresd/flash-header-mx6qp-sabresd.imxcfg new file mode 100644 index 0000000000..224ac3207f --- /dev/null +++ b/arch/arm/boards/freescale-mx6-sabresd/flash-header-mx6qp-sabresd.imxcfg @@ -0,0 +1,98 @@ +# SPDX-License-Identifier: GPL-2.0-only + +loadaddr 0x10000000 +soc imx6 +ivtofs 0x400 +wm 32 0x20e0798 0x000c0000 +wm 32 0x20e0758 0x00000000 +wm 32 0x20e0588 0x00000030 +wm 32 0x20e0594 0x00000030 +wm 32 0x20e056c 0x00000030 +wm 32 0x20e0578 0x00000030 +wm 32 0x20e074c 0x00000030 +wm 32 0x20e057c 0x00000030 +wm 32 0x20e058c 0x00000000 +wm 32 0x20e059c 0x00000030 +wm 32 0x20e05a0 0x00000030 +wm 32 0x20e078c 0x00000030 +wm 32 0x20e0750 0x00020000 +wm 32 0x20e05a8 0x00000030 +wm 32 0x20e05b0 0x00000030 +wm 32 0x20e0524 0x00000030 +wm 32 0x20e051c 0x00000030 +wm 32 0x20e0518 0x00000030 +wm 32 0x20e050c 0x00000030 +wm 32 0x20e05b8 0x00000030 +wm 32 0x20e05c0 0x00000030 +wm 32 0x20e0774 0x00020000 +wm 32 0x20e0784 0x00000030 +wm 32 0x20e0788 0x00000030 +wm 32 0x20e0794 0x00000030 +wm 32 0x20e079c 0x00000030 +wm 32 0x20e07a0 0x00000030 +wm 32 0x20e07a4 0x00000030 +wm 32 0x20e07a8 0x00000030 +wm 32 0x20e0748 0x00000030 +wm 32 0x20e05ac 0x00000030 +wm 32 0x20e05b4 0x00000030 +wm 32 0x20e0528 0x00000030 +wm 32 0x20e0520 0x00000030 +wm 32 0x20e0514 0x00000030 +wm 32 0x20e0510 0x00000030 +wm 32 0x20e05bc 0x00000030 +wm 32 0x20e05c4 0x00000030 +wm 32 0x21b0800 0xa1390003 +wm 32 0x21b080c 0x001b001e +wm 32 0x21b0810 0x002e0029 +wm 32 0x21b480c 0x001b002a +wm 32 0x21b4810 0x0019002c +wm 32 0x21b083c 0x43240334 +wm 32 0x21b0840 0x0324031a +wm 32 0x21b483c 0x43340344 +wm 32 0x21b4840 0x03280276 +wm 32 0x21b0848 0x44383A3E +wm 32 0x21b4848 0x3C3C3846 +wm 32 0x21b0850 0x2e303230 +wm 32 0x21b4850 0x38283E34 +wm 32 0x21b081c 0x33333333 +wm 32 0x21b0820 0x33333333 +wm 32 0x21b0824 0x33333333 +wm 32 0x21b0828 0x33333333 +wm 32 0x21b481c 0x33333333 +wm 32 0x21b4820 0x33333333 +wm 32 0x21b4824 0x33333333 +wm 32 0x21b4828 0x33333333 +wm 32 0x21b08c0 0x24912249 +wm 32 0x21b48c0 0x24914289 +wm 32 0x21b08b8 0x00000800 +wm 32 0x21b48b8 0x00000800 +wm 32 0x21b0004 0x00020036 +wm 32 0x21b0008 0x24444040 +wm 32 0x21b000c 0x555A7955 +wm 32 0x21b0010 0xFF320F64 +wm 32 0x21b0014 0x01ff00db +wm 32 0x21b0018 0x00001740 +wm 32 0x21b001c 0x00008000 +wm 32 0x21b002c 0x000026d2 +wm 32 0x21b0030 0x005A1023 +wm 32 0x21b0040 0x00000027 +wm 32 0x21b0400 0x14420000 +wm 32 0x21b0000 0x831A0000 +wm 32 0x21b0890 0x00400C58 +wm 32 0x0bb0008 0x00000000 +wm 32 0x0bb000c 0x2891E41A +wm 32 0x0bb0038 0x00000564 +wm 32 0x0bb0014 0x00000040 +wm 32 0x0bb0028 0x00000020 +wm 32 0x0bb002c 0x00000020 +wm 32 0x21b001c 0x04088032 +wm 32 0x21b001c 0x00008033 +wm 32 0x21b001c 0x00048031 +wm 32 0x21b001c 0x09408030 +wm 32 0x21b001c 0x04008040 +wm 32 0x21b0020 0x00005800 +wm 32 0x21b0818 0x00011117 +wm 32 0x21b4818 0x00011117 +wm 32 0x21b0004 0x00025576 +wm 32 0x21b0404 0x00011006 +wm 32 0x21b001c 0x00000000 diff --git a/arch/arm/boards/freescale-mx6-sabresd/lowlevel.c b/arch/arm/boards/freescale-mx6-sabresd/lowlevel.c index ae847feaa6..7cc08b47d5 100644 --- a/arch/arm/boards/freescale-mx6-sabresd/lowlevel.c +++ b/arch/arm/boards/freescale-mx6-sabresd/lowlevel.c @@ -1,8 +1,11 @@ +// SPDX-License-Identifier: GPL-2.0-only + #include <debug_ll.h> +#include <mach/imx/debug_ll.h> #include <common.h> #include <linux/sizes.h> -#include <mach/generic.h> -#include <mach/iomux-mx6.h> +#include <mach/imx/generic.h> +#include <mach/imx/iomux-mx6.h> #include <asm/barebox-arm-head.h> #include <asm/barebox-arm.h> @@ -35,3 +38,35 @@ ENTRY_FUNCTION(start_imx6q_sabresd, r0, r1, r2) barebox_arm_entry(0x10000000, SZ_1G, fdt); } + +extern char __dtb_imx6qp_sabresd_start[]; + +ENTRY_FUNCTION(start_imx6qp_sabresd, r0, r1, r2) +{ + void *fdt; + + imx6_cpu_lowlevel_init(); + + if (IS_ENABLED(CONFIG_DEBUG_LL)) + setup_uart(); + + fdt = __dtb_imx6qp_sabresd_start + get_runtime_offset(); + + barebox_arm_entry(0x10000000, SZ_1G, fdt); +} + +extern char __dtb_imx6dl_sabresd_start[]; + +ENTRY_FUNCTION(start_imx6dl_sabresd, r0, r1, r2) +{ + void *fdt; + + imx6_cpu_lowlevel_init(); + + if (IS_ENABLED(CONFIG_DEBUG_LL)) + setup_uart(); + + fdt = __dtb_imx6dl_sabresd_start + get_runtime_offset(); + + barebox_arm_entry(0x10000000, SZ_1G, fdt); +} |