blob: 20be4af4628ff45a4fd1bc1c2551d77818b986f3 [file] [log] [blame]
Tom Rini10e47792018-05-06 17:58:06 -04001/* SPDX-License-Identifier: GPL-2.0+ */
Alexander Grafc3468482014-04-11 17:09:45 +02002/*
3 * Copyright 2011-2014 Freescale Semiconductor, Inc.
Alexander Grafc3468482014-04-11 17:09:45 +02004 */
5
6/*
7 * Corenet DS style board configuration file
8 */
9#ifndef __QEMU_PPCE500_H
10#define __QEMU_PPCE500_H
11
Alexander Grafc3468482014-04-11 17:09:45 +020012/* Needed to fill the ccsrbar pointer */
Alexander Grafc3468482014-04-11 17:09:45 +020013
14/* Virtual address to CCSRBAR */
Tom Rini6a5dccc2022-11-16 13:10:41 -050015#define CFG_SYS_CCSRBAR 0xe0000000
Alexander Grafc3468482014-04-11 17:09:45 +020016/* Physical address should be a function call */
17#ifndef __ASSEMBLY__
18extern unsigned long long get_phys_ccsrbar_addr_early(void);
Tom Rini6a5dccc2022-11-16 13:10:41 -050019#define CFG_SYS_CCSRBAR_PHYS_HIGH (get_phys_ccsrbar_addr_early() >> 32)
20#define CFG_SYS_CCSRBAR_PHYS_LOW get_phys_ccsrbar_addr_early()
Alexander Graf6a2aa502015-03-07 02:10:09 +010021#else
Tom Rini6a5dccc2022-11-16 13:10:41 -050022#define CFG_SYS_CCSRBAR_PHYS_HIGH 0x0
23#define CFG_SYS_CCSRBAR_PHYS_LOW CFG_SYS_CCSRBAR
Alexander Grafc3468482014-04-11 17:09:45 +020024#endif
Alexander Graf6a2aa502015-03-07 02:10:09 +010025
Alexander Grafc3468482014-04-11 17:09:45 +020026/* Virtual address to a temporary map if we need it (max 128MB) */
Tom Rini6a5dccc2022-11-16 13:10:41 -050027#define CFG_SYS_TMPVIRT 0xe8000000
Alexander Grafc3468482014-04-11 17:09:45 +020028
29/*
30 * DDR Setup
31 */
Tom Rini6a5dccc2022-11-16 13:10:41 -050032#define CFG_SYS_DDR_SDRAM_BASE 0x00000000
33#define CFG_SYS_SDRAM_BASE CFG_SYS_DDR_SDRAM_BASE
Alexander Grafc3468482014-04-11 17:09:45 +020034
Tom Rini6a5dccc2022-11-16 13:10:41 -050035#define CFG_SYS_INIT_RAM_ADDR 0x00100000
36#define CFG_SYS_INIT_RAM_ADDR_PHYS_HIGH 0x0
37#define CFG_SYS_INIT_RAM_ADDR_PHYS_LOW 0x00100000
Alexander Grafc3468482014-04-11 17:09:45 +020038/* The assembler doesn't like typecast */
Tom Rini6a5dccc2022-11-16 13:10:41 -050039#define CFG_SYS_INIT_RAM_ADDR_PHYS \
40 ((CFG_SYS_INIT_RAM_ADDR_PHYS_HIGH * 1ull << 32) | \
41 CFG_SYS_INIT_RAM_ADDR_PHYS_LOW)
42#define CFG_SYS_INIT_RAM_SIZE 0x00004000
Alexander Grafc3468482014-04-11 17:09:45 +020043
Tom Rini6a5dccc2022-11-16 13:10:41 -050044#define CFG_SYS_INIT_SP_OFFSET (CFG_SYS_INIT_RAM_SIZE - GENERATED_GBL_DATA_SIZE)
Alexander Grafc3468482014-04-11 17:09:45 +020045
Alexander Grafc3468482014-04-11 17:09:45 +020046/*
Alexander Grafc3468482014-04-11 17:09:45 +020047 * Miscellaneous configurable options
48 */
Alexander Grafc3468482014-04-11 17:09:45 +020049
50/*
51 * For booting Linux, the board info and command line data
52 * have to be in the first 64 MB of memory, since this is
53 * the maximum mapped by the Linux kernel during initialization.
54 */
Tom Rini6a5dccc2022-11-16 13:10:41 -050055#define CFG_SYS_BOOTMAPSZ (64 << 20) /* Initial map for Linux*/
Alexander Grafc3468482014-04-11 17:09:45 +020056
57/*
58 * Environment Configuration
59 */
Alexander Grafc3468482014-04-11 17:09:45 +020060
Alexander Grafc3468482014-04-11 17:09:45 +020061#endif /* __QEMU_PPCE500_H */