soc/qualcomm/sdm845: Support for new SoC
TEST=build Change-Id: Ie54e310a94f61b8d86c13261937015e3f5a2ab01 Signed-off-by: T Michael Turney <mturney@codeaurora.org> Reviewed-on: https://review.coreboot.org/25199 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Julius Werner <jwerner@chromium.org>
This commit is contained in:
parent
676887d2e2
commit
bd24d039fc
|
@ -0,0 +1,21 @@
|
||||||
|
|
||||||
|
config SOC_QUALCOMM_SDM845
|
||||||
|
bool
|
||||||
|
default n
|
||||||
|
select ARCH_BOOTBLOCK_ARMV8_64
|
||||||
|
select ARCH_RAMSTAGE_ARMV8_64
|
||||||
|
select ARCH_ROMSTAGE_ARMV8_64
|
||||||
|
select ARCH_VERSTAGE_ARMV8_64
|
||||||
|
select BOOTBLOCK_CONSOLE
|
||||||
|
select GENERIC_GPIO_LIB
|
||||||
|
select GENERIC_UDELAY
|
||||||
|
select HAVE_MONOTONIC_TIMER
|
||||||
|
|
||||||
|
if SOC_QUALCOMM_SDM845
|
||||||
|
|
||||||
|
config VBOOT
|
||||||
|
select VBOOT_SEPARATE_VERSTAGE
|
||||||
|
select VBOOT_RETURN_FROM_VERSTAGE
|
||||||
|
select VBOOT_OPROM_MATTERS
|
||||||
|
select VBOOT_STARTS_IN_BOOTBLOCK
|
||||||
|
endif
|
|
@ -0,0 +1,32 @@
|
||||||
|
|
||||||
|
ifeq ($(CONFIG_SOC_QUALCOMM_SDM845),y)
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
bootblock-y += bootblock.c
|
||||||
|
bootblock-y += timer.c
|
||||||
|
bootblock-y += spi.c
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
verstage-y += timer.c
|
||||||
|
verstage-y += spi.c
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
romstage-y += timer.c
|
||||||
|
romstage-y += spi.c
|
||||||
|
romstage-y += cbmem.c
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
ramstage-y += soc.c
|
||||||
|
ramstage-y += timer.c
|
||||||
|
ramstage-y += spi.c
|
||||||
|
ramstage-y += cbmem.c
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
CPPFLAGS_common += -Isrc/soc/qualcomm/sdm845/include
|
||||||
|
|
||||||
|
$(objcbfs)/bootblock.bin: $(objcbfs)/bootblock.raw.bin
|
||||||
|
@printf "Generating: $(subst $(obj)/,,$(@))\n"
|
||||||
|
cp $(objcbfs)/bootblock.raw.bin $(objcbfs)/bootblock.bin
|
||||||
|
|
||||||
|
endif
|
|
@ -0,0 +1,21 @@
|
||||||
|
/*
|
||||||
|
* This file is part of the coreboot project.
|
||||||
|
*
|
||||||
|
* Copyright (C) 2018, The Linux Foundation. All rights reserved.
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License version 2 and
|
||||||
|
* only version 2 as published by the Free Software Foundation.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <bootblock_common.h>
|
||||||
|
|
||||||
|
void bootblock_soc_init(void)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
/*
|
||||||
|
* This file is part of the coreboot project.
|
||||||
|
*
|
||||||
|
* Copyright (C) 2018, The Linux Foundation. All rights reserved.
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License version 2 and
|
||||||
|
* only version 2 as published by the Free Software Foundation.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <cbmem.h>
|
||||||
|
|
||||||
|
void *cbmem_top(void)
|
||||||
|
{
|
||||||
|
return (void *)((uintptr_t)4 * GiB);
|
||||||
|
}
|
|
@ -0,0 +1,23 @@
|
||||||
|
/*
|
||||||
|
* This file is part of the coreboot project.
|
||||||
|
*
|
||||||
|
* Copyright (C) 2018, The Linux Foundation. All rights reserved.
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License version 2 and
|
||||||
|
* only version 2 as published by the Free Software Foundation.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _SOC_QUALCOMM_SDM845_GPIO_H_
|
||||||
|
#define _SOC_QUALCOMM_SDM845_GPIO_H_
|
||||||
|
|
||||||
|
#include <types.h>
|
||||||
|
|
||||||
|
typedef u32 gpio_t;
|
||||||
|
|
||||||
|
#endif // _SOC_QUALCOMM_SDM845_GPIO_H_
|
|
@ -0,0 +1,52 @@
|
||||||
|
/*
|
||||||
|
* This file is part of the coreboot project.
|
||||||
|
*
|
||||||
|
* Copyright (C) 2018, The Linux Foundation. All rights reserved.
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License version 2 and
|
||||||
|
* only version 2 as published by the Free Software Foundation.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <memlayout.h>
|
||||||
|
#include <arch/header.ld>
|
||||||
|
|
||||||
|
/* SYSTEM_IMEM : 0x14680000 - 0x146C0000 */
|
||||||
|
#define SSRAM_START(addr) SYMBOL(ssram, addr)
|
||||||
|
#define SSRAM_END(addr) SYMBOL(essram, addr)
|
||||||
|
|
||||||
|
/* BOOT_IMEM : 0x14800000 - 0x14980000 */
|
||||||
|
#define BSRAM_START(addr) SYMBOL(bsram, addr)
|
||||||
|
#define BSRAM_END(addr) SYMBOL(ebsram, addr)
|
||||||
|
|
||||||
|
SECTIONS
|
||||||
|
{
|
||||||
|
SSRAM_START(0x14680000)
|
||||||
|
OVERLAP_VERSTAGE_ROMSTAGE(0x14680000, 95K)
|
||||||
|
REGION(fw_reserved1, 0x146A0000, 0x20000, 4096)
|
||||||
|
SSRAM_END(0x146C0000)
|
||||||
|
|
||||||
|
BSRAM_START(0x14800000)
|
||||||
|
REGION(fw_reserved2, 0x14800000, 0x16000, 4096)
|
||||||
|
BOOTBLOCK(0x14816000, 32K)
|
||||||
|
TTB(0x1481E000, 64K)
|
||||||
|
VBOOT2_WORK(0x1482E000, 16K)
|
||||||
|
STACK(0x14832000, 16K)
|
||||||
|
TIMESTAMP(0x14836000, 1K)
|
||||||
|
PRERAM_CBMEM_CONSOLE(0x14836400, 32K)
|
||||||
|
PRERAM_CBFS_CACHE(0x1483E400, 70K)
|
||||||
|
REGION(bsram_unused, 0x1484FC00, 0xA2400, 0x100)
|
||||||
|
REGION(qclib, 0x148F2000, 0x80000, 4096)
|
||||||
|
REGION(dcb, 0x14972000, 0x4000, 4096)
|
||||||
|
REGION(pmic, 0x14976000, 0xA000, 4096)
|
||||||
|
BSRAM_END(0x14980000)
|
||||||
|
|
||||||
|
DRAM_START(0x90000000)
|
||||||
|
POSTRAM_CBFS_CACHE(0x90000000, 384K)
|
||||||
|
RAMSTAGE(0x90800000, 128K)
|
||||||
|
}
|
|
@ -0,0 +1,42 @@
|
||||||
|
/*
|
||||||
|
* This file is part of the coreboot project.
|
||||||
|
*
|
||||||
|
* Copyright (C) 2018, The Linux Foundation. All rights reserved.
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License version 2 and
|
||||||
|
* only version 2 as published by the Free Software Foundation.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <device/device.h>
|
||||||
|
#include <timestamp.h>
|
||||||
|
|
||||||
|
static void soc_read_resources(device_t dev)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
static void soc_init(device_t dev)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
static struct device_operations soc_ops = {
|
||||||
|
.read_resources = soc_read_resources,
|
||||||
|
.init = soc_init,
|
||||||
|
};
|
||||||
|
|
||||||
|
static void enable_soc_dev(device_t dev)
|
||||||
|
{
|
||||||
|
dev->ops = &soc_ops;
|
||||||
|
}
|
||||||
|
|
||||||
|
struct chip_operations soc_qualcomm_sdm845_ops = {
|
||||||
|
CHIP_NAME("SOC Qualcomm SDM845")
|
||||||
|
.enable_dev = enable_soc_dev,
|
||||||
|
};
|
|
@ -0,0 +1,50 @@
|
||||||
|
/*
|
||||||
|
* This file is part of the coreboot project.
|
||||||
|
*
|
||||||
|
* Copyright (C) 2018, The Linux Foundation. All rights reserved.
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License version 2 and
|
||||||
|
* only version 2 as published by the Free Software Foundation.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <spi-generic.h>
|
||||||
|
#include <spi_flash.h>
|
||||||
|
|
||||||
|
static int spi_ctrlr_claim_bus(const struct spi_slave *slave)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void spi_ctrlr_release_bus(const struct spi_slave *slave)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
static int spi_ctrlr_xfer(const struct spi_slave *slave, const void *dout,
|
||||||
|
size_t bytes_out, void *din, size_t bytes_in)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static const struct spi_ctrlr spi_ctrlr = {
|
||||||
|
.claim_bus = spi_ctrlr_claim_bus,
|
||||||
|
.release_bus = spi_ctrlr_release_bus,
|
||||||
|
.xfer = spi_ctrlr_xfer,
|
||||||
|
.max_xfer_size = 65535,
|
||||||
|
};
|
||||||
|
|
||||||
|
const struct spi_ctrlr_buses spi_ctrlr_bus_map[] = {
|
||||||
|
{
|
||||||
|
.ctrlr = &spi_ctrlr,
|
||||||
|
.bus_start = 0,
|
||||||
|
.bus_end = 0,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
const size_t spi_ctrlr_bus_map_count = ARRAY_SIZE(spi_ctrlr_bus_map);
|
|
@ -0,0 +1,27 @@
|
||||||
|
/*
|
||||||
|
* This file is part of the coreboot project.
|
||||||
|
*
|
||||||
|
* Copyright (C) 2018, The Linux Foundation. All rights reserved.
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License version 2 and
|
||||||
|
* only version 2 as published by the Free Software Foundation.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <timer.h>
|
||||||
|
#include <delay.h>
|
||||||
|
|
||||||
|
void timer_monotonic_get(struct mono_time *mt)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void init_timer(void)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue