1/* SPDX-License-Identifier: GPL-2.0+ */ 2/* 3 * Copyright (C) ASPEED Technology Inc. 4 */ 5#include <asm/arch/scu_ast2500.h> 6 7/* registers for low level init */ 8#define SCU_PROT_KEY 0x1e6e2000 9#define SCU_VGA_HANDSHAKE 0x1e6e2040 10#define SCU_HW_STRAP 0x1e6e2070 11#define SCU_HW_STRAP_CLR 0x1e6e207c 12#define WDT3_CTRL 0x1e78504c 13 14.global lowlevel_init 15lowlevel_init: 16 17 /* unlock SCU */ 18 ldr r0, =SCU_PROT_KEY 19 ldr r1, =SCU_UNLOCK_VALUE 20 str r1, [r0] 21 22 /* set BMC FW as DRAM initializer */ 23 ldr r0, =SCU_VGA_HANDSHAKE 24 ldr r1, [r0] 25 orr r1, #0x80 26 str r1, [r0] 27 28 /* set PERST# as LPC reset source if eSPI mode is enabled*/ 29 ldr r0, =SCU_HW_STRAP 30 ldr r1, [r0] 31 tst r1, #(0x1 << 25) 32 ldrne r0, =SCU_HW_STRAP_CLR 33 movne r1, #(0x1 << 14) 34 strne r1, [r0] 35 36 /* disable WDT3 for SPI 3/4 bytes auto-detection */ 37 ldr r0, =WDT3_CTRL 38 mov r1, #0x0 39 str r1, [r0] 40 41 mov pc, lr 42