2018-08-27 10:27:11 +00:00
|
|
|
/* SPDX-License-Identifier: GPL-2.0+ */
|
|
|
|
/*
|
|
|
|
* K3: AM6 SoC definitions, structures etc.
|
|
|
|
*
|
|
|
|
* (C) Copyright (C) 2018 Texas Instruments Incorporated - http://www.ti.com/
|
|
|
|
*/
|
|
|
|
#ifndef __ASM_ARCH_AM6_HARDWARE_H
|
|
|
|
#define __ASM_ARCH_AM6_HARDWARE_H
|
|
|
|
|
|
|
|
#include <config.h>
|
2020-05-10 17:40:13 +00:00
|
|
|
#ifndef __ASSEMBLY__
|
|
|
|
#include <linux/bitops.h>
|
|
|
|
#endif
|
2018-08-27 10:27:11 +00:00
|
|
|
|
|
|
|
#define CTRL_MMR0_BASE 0x00100000
|
2022-10-07 19:22:05 +00:00
|
|
|
#define WKUP_CTRL_MMR0_BASE 0x43000000
|
|
|
|
#define MCU_CTRL_MMR0_BASE 0x40f00000
|
2018-08-27 10:27:11 +00:00
|
|
|
|
2022-10-07 19:22:05 +00:00
|
|
|
#define CTRLMMR_MAIN_DEVSTAT (CTRL_MMR0_BASE + 0x30)
|
2018-08-27 10:27:11 +00:00
|
|
|
#define CTRLMMR_MAIN_DEVSTAT_BOOTMODE_MASK GENMASK(3, 0)
|
|
|
|
#define CTRLMMR_MAIN_DEVSTAT_BOOTMODE_SHIFT 0
|
|
|
|
#define CTRLMMR_MAIN_DEVSTAT_BKUP_BOOTMODE_MASK GENMASK(6, 4)
|
|
|
|
#define CTRLMMR_MAIN_DEVSTAT_BKUP_BOOTMODE_SHIFT 4
|
2018-10-03 15:03:22 +00:00
|
|
|
#define CTRLMMR_MAIN_DEVSTAT_MMC_PORT_MASK GENMASK(12, 12)
|
|
|
|
#define CTRLMMR_MAIN_DEVSTAT_MMC_PORT_SHIFT 12
|
|
|
|
#define CTRLMMR_MAIN_DEVSTAT_EMMC_PORT_MASK GENMASK(14, 14)
|
|
|
|
#define CTRLMMR_MAIN_DEVSTAT_EMMC_PORT_SHIFT 14
|
|
|
|
#define CTRLMMR_MAIN_DEVSTAT_BKUP_MMC_PORT_MASK GENMASK(17, 17)
|
|
|
|
#define CTRLMMR_MAIN_DEVSTAT_BKUP_MMC_PORT_SHIFT 12
|
2020-08-03 06:05:10 +00:00
|
|
|
#define CTRLMMR_MAIN_DEVSTAT_USB_MODE_SHIFT 9
|
|
|
|
#define CTRLMMR_MAIN_DEVSTAT_USB_MODE_MASK GENMASK(10, 9)
|
2018-08-27 10:27:11 +00:00
|
|
|
|
2019-06-04 23:08:23 +00:00
|
|
|
/* MCU SCRATCHPAD usage */
|
|
|
|
#define TI_SRAM_SCRATCH_BOARD_EEPROM_START CONFIG_SYS_K3_MCU_SCRATCHPAD_BASE
|
|
|
|
|
arm: mach-k3: am6_init: Prioritize MSMC traffic over DDR in NAVSS Northbridge
NB0 is bridge to SRAM and NB1 is bridge to DDR.
To ensure that SRAM transfers are not stalled due to delays during DDR
refreshes, SRAM traffic should be higher priority (threadmap=2) than
DDR traffic (threadmap=0).
This fixup is critical to provide deterministic access latency to
MSMC from ICSSG, it applies to all AM65 silicon revisions and is due
to incorrect reset values (has no erratum id) and statically setting
things up should be done independent of usecases and board.
This specific style of Northbridge configuration is specific only to
AM65x devices, follow-on K3 devices have different data prioritization
schemes (ASEL and the like) and hence the fixup applies purely to
AM65x.
Without this fix, ICSSG TX lock-ups due to delays in MSMC transfers in
case of SR1 devices, on SR2 devices, lockups were not observed so far
but high retry rates of ICSSG Ethernet (icssg-eth) and, thus, lower
throughput.
Signed-off-by: Roger Quadros <rogerq@ti.com>
Acked-by: Andrew F. Davis <afd@ti.com>
Acked-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Acked-by: Benoit Parrot <bparrot@ti.com>
[Jan: rebased, dropped used define, extended commit log]
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
[Nishanth: Provide relevant context in the commit message]
Signed-off-by: Nishanth Menon<nm@ti.com>
2021-09-08 20:28:59 +00:00
|
|
|
/* NAVSS Northbridge config */
|
|
|
|
#define NAVSS0_NBSS_NB0_CFG_BASE 0x03802000
|
|
|
|
#define NAVSS0_NBSS_NB1_CFG_BASE 0x03803000
|
|
|
|
|
|
|
|
#define NAVSS_NBSS_THREADMAP 0x10
|
|
|
|
|
2023-04-06 16:38:15 +00:00
|
|
|
#if defined(CONFIG_SYS_K3_SPL_ATF) && !defined(__ASSEMBLY__)
|
|
|
|
|
|
|
|
#define AM6_DEV_MCU_RTI0 134
|
|
|
|
#define AM6_DEV_MCU_RTI1 135
|
|
|
|
#define AM6_DEV_MCU_ARMSS0_CPU0 159
|
|
|
|
#define AM6_DEV_MCU_ARMSS0_CPU1 245
|
|
|
|
|
|
|
|
static const u32 put_device_ids[] = {
|
|
|
|
AM6_DEV_MCU_RTI0,
|
|
|
|
AM6_DEV_MCU_RTI1,
|
|
|
|
};
|
|
|
|
|
|
|
|
static const u32 put_core_ids[] = {
|
|
|
|
AM6_DEV_MCU_ARMSS0_CPU1,
|
|
|
|
AM6_DEV_MCU_ARMSS0_CPU0, /* Handle CPU0 after CPU1 */
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
2018-08-27 10:27:11 +00:00
|
|
|
#endif /* __ASM_ARCH_AM6_HARDWARE_H */
|