Skip to content

Commit

Permalink
Merge branch 'u-boot-tegra/master' into 'u-boot-arm/master'
Browse files Browse the repository at this point in the history
  • Loading branch information
albert-aribaud-u-boot committed Mar 15, 2013
2 parents 6579d15 + 477393e commit b27673c
Show file tree
Hide file tree
Showing 73 changed files with 2,881 additions and 1,570 deletions.
2 changes: 2 additions & 0 deletions MAINTAINERS
Original file line number Diff line number Diff line change
Expand Up @@ -976,6 +976,8 @@ Tom Warren <twarren@nvidia.com>

harmony Tegra20 (ARM7 & A9 Dual Core)
seaboard Tegra20 (ARM7 & A9 Dual Core)
cardhu Tegra30 (ARM7 & A9 Quad Core)
dalmore Tegra114 (ARM7 & A15 Quad Core)

Tom Warren <twarren@nvidia.com>
Stephen Warren <swarren@nvidia.com>
Expand Down
37 changes: 33 additions & 4 deletions arch/arm/cpu/arm720t/tegra114/cpu.c
Original file line number Diff line number Diff line change
Expand Up @@ -201,6 +201,7 @@ void t114_init_clocks(void)
reset_set_enable(PERIPH_ID_MSELECT, 0);
reset_set_enable(PERIPH_ID_EMC1, 0);
reset_set_enable(PERIPH_ID_MC1, 0);
reset_set_enable(PERIPH_ID_DVFS, 0);

debug("t114_init_clocks exit\n");
}
Expand Down Expand Up @@ -269,6 +270,8 @@ void powerup_cpus(void)

void start_cpu(u32 reset_vector)
{
u32 imme, inst;

debug("start_cpu entry, reset_vector = %x\n", reset_vector);

t114_init_clocks();
Expand All @@ -285,12 +288,38 @@ void start_cpu(u32 reset_vector)
/* Take CPU(s) out of reset */
remove_cpu_resets();

/* Set the entry point for CPU execution from reset */

/*
* Set the entry point for CPU execution from reset,
* if it's a non-zero value.
* A01P with patched boot ROM; vector hard-coded to 0x4003fffc.
* See nvbug 1193357 for details.
*/
if (reset_vector)
writel(reset_vector, EXCEP_VECTOR_CPU_RESET_VECTOR);

/* mov r0, #lsb(reset_vector) */
imme = reset_vector & 0xffff;
inst = imme & 0xfff;
inst |= ((imme >> 12) << 16);
inst |= 0xe3000000;
writel(inst, 0x4003fff0);

/* movt r0, #msb(reset_vector) */
imme = (reset_vector >> 16) & 0xffff;
inst = imme & 0xfff;
inst |= ((imme >> 12) << 16);
inst |= 0xe3400000;
writel(inst, 0x4003fff4);

/* bx r0 */
writel(0xe12fff10, 0x4003fff8);

/* b -12 */
imme = (u32)-20;
inst = (imme >> 2) & 0xffffff;
inst |= 0xea000000;
writel(inst, 0x4003fffc);

/* Write to orignal location for compatibility */
writel(reset_vector, EXCEP_VECTOR_CPU_RESET_VECTOR);

/* If the CPU(s) don't already have power, power 'em up */
powerup_cpus();
Expand Down
1 change: 0 additions & 1 deletion arch/arm/cpu/armv7/tegra20/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@ include $(TOPDIR)/config.mk

LIB = $(obj)lib$(SOC).o

COBJS-$(CONFIG_USB_EHCI_TEGRA) += usb.o
COBJS-$(CONFIG_PWM_TEGRA) += pwm.o
COBJS-$(CONFIG_VIDEO_TEGRA) += display.o

Expand Down
Loading

0 comments on commit b27673c

Please sign in to comment.