mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-12-28 22:13:08 +00:00
83d290c56f
When U-Boot started using SPDX tags we were among the early adopters and there weren't a lot of other examples to borrow from. So we picked the area of the file that usually had a full license text and replaced it with an appropriate SPDX-License-Identifier: entry. Since then, the Linux Kernel has adopted SPDX tags and they place it as the very first line in a file (except where shebangs are used, then it's second line) and with slightly different comment styles than us. In part due to community overlap, in part due to better tag visibility and in part for other minor reasons, switch over to that style. This commit changes all instances where we have a single declared license in the tag as both the before and after are identical in tag contents. There's also a few places where I found we did not have a tag and have introduced one. Signed-off-by: Tom Rini <trini@konsulko.com>
76 lines
2.5 KiB
ArmAsm
76 lines
2.5 KiB
ArmAsm
/* SPDX-License-Identifier: GPL-2.0+ */
|
|
/*
|
|
* (C) Copyright 2009 Magnus Lilja <lilja.magnus@gmail.com>
|
|
*/
|
|
|
|
#include <config.h>
|
|
#include <asm/arch/imx-regs.h>
|
|
#include <asm/macro.h>
|
|
|
|
.globl lowlevel_init
|
|
lowlevel_init:
|
|
/* Also setup the Peripheral Port Remap register inside the core */
|
|
ldr r0, =ARM_PPMRR /* start from AIPS 2GB region */
|
|
mcr p15, 0, r0, c15, c2, 4
|
|
|
|
write32 IPU_CONF, IPU_CONF_DI_EN
|
|
write32 CCM_CCMR, CCM_CCMR_SETUP
|
|
|
|
wait_timer 0x40000
|
|
|
|
write32 CCM_CCMR, CCM_CCMR_SETUP | CCMR_MPE
|
|
write32 CCM_CCMR, (CCM_CCMR_SETUP | CCMR_MPE) & ~CCMR_MDS
|
|
|
|
/* Set up clock to 532MHz */
|
|
write32 CCM_PDR0, CCM_PDR0_SETUP_532MHZ
|
|
write32 CCM_MPCTL, CCM_MPCTL_SETUP_532MHZ
|
|
|
|
write32 CCM_SPCTL, PLL_PD(1) | PLL_MFD(4) | PLL_MFI(12) | PLL_MFN(1)
|
|
|
|
/* Set up MX31 DDR pins */
|
|
write32 IOMUXC_SW_PAD_CTL_SDCKE1_SDCLK_SDCLK_B, 0
|
|
write32 IOMUXC_SW_PAD_CTL_CAS_SDWE_SDCKE0, 0
|
|
write32 IOMUXC_SW_PAD_CTL_BCLK_RW_RAS, 0
|
|
write32 IOMUXC_SW_PAD_CTL_CS2_CS3_CS4, 0x1000
|
|
write32 IOMUXC_SW_PAD_CTL_DQM3_EB0_EB1, 0
|
|
write32 IOMUXC_SW_PAD_CTL_DQM0_DQM1_DQM2, 0
|
|
write32 IOMUXC_SW_PAD_CTL_SD29_SD30_SD31, 0
|
|
write32 IOMUXC_SW_PAD_CTL_SD26_SD27_SD28, 0
|
|
write32 IOMUXC_SW_PAD_CTL_SD23_SD24_SD25, 0
|
|
write32 IOMUXC_SW_PAD_CTL_SD20_SD21_SD22, 0
|
|
write32 IOMUXC_SW_PAD_CTL_SD17_SD18_SD19, 0
|
|
write32 IOMUXC_SW_PAD_CTL_SD14_SD15_SD16, 0
|
|
write32 IOMUXC_SW_PAD_CTL_SD11_SD12_SD13, 0
|
|
write32 IOMUXC_SW_PAD_CTL_SD8_SD9_SD10, 0
|
|
write32 IOMUXC_SW_PAD_CTL_SD5_SD6_SD7, 0
|
|
write32 IOMUXC_SW_PAD_CTL_SD2_SD3_SD4, 0
|
|
write32 IOMUXC_SW_PAD_CTL_SDBA0_SD0_SD1, 0
|
|
write32 IOMUXC_SW_PAD_CTL_A24_A25_SDBA1, 0
|
|
write32 IOMUXC_SW_PAD_CTL_A21_A22_A23, 0
|
|
write32 IOMUXC_SW_PAD_CTL_A18_A19_A20, 0
|
|
write32 IOMUXC_SW_PAD_CTL_A15_A16_A17, 0
|
|
write32 IOMUXC_SW_PAD_CTL_A12_A13_A14, 0
|
|
write32 IOMUXC_SW_PAD_CTL_A10_MA10_A11, 0
|
|
write32 IOMUXC_SW_PAD_CTL_A7_A8_A9, 0
|
|
write32 IOMUXC_SW_PAD_CTL_A4_A5_A6, 0
|
|
write32 IOMUXC_SW_PAD_CTL_A1_A2_A3, 0
|
|
write32 IOMUXC_SW_PAD_CTL_VPG0_VPG1_A0, 0
|
|
|
|
/* Set up MX31 DDR Memory Controller */
|
|
write32 WEIM_ESDMISC, ESDMISC_MDDR_SETUP
|
|
write32 WEIM_ESDCFG0, ESDCFG0_MDDR_SETUP
|
|
|
|
/* Perform DDR init sequence */
|
|
write32 WEIM_ESDCTL0, ESDCTL_PRECHARGE
|
|
write32 CSD0_BASE | 0x0f00, 0x12344321
|
|
write32 WEIM_ESDCTL0, ESDCTL_AUTOREFRESH
|
|
write32 CSD0_BASE, 0x12344321
|
|
write32 CSD0_BASE, 0x12344321
|
|
write32 WEIM_ESDCTL0, ESDCTL_LOADMODEREG
|
|
write8 CSD0_BASE | 0x00000033, 0xda
|
|
write8 CSD0_BASE | 0x01000000, 0xff
|
|
write32 WEIM_ESDCTL0, ESDCTL_RW
|
|
write32 CSD0_BASE, 0xDEADBEEF
|
|
write32 WEIM_ESDMISC, ESDMISC_MDDR_RESET_DL
|
|
|
|
mov pc, lr
|