Tom Rini | 10e4779 | 2018-05-06 17:58:06 -0400 | [diff] [blame] | 1 | /* SPDX-License-Identifier: GPL-2.0+ */ |
Sergei Poselenov | f2bf96c | 2008-04-30 11:42:50 +0200 | [diff] [blame] | 2 | /* |
| 3 | * (C) Copyright 2008 |
| 4 | * Sergei Poselenov, Emcraft Systems, sposelenov@emcraft.com. |
| 5 | * |
| 6 | * Wolfgang Denk <wd@denx.de> |
| 7 | * Copyright 2004 Freescale Semiconductor. |
| 8 | * (C) Copyright 2002,2003 Motorola,Inc. |
| 9 | * Xianghua Xiao <X.Xiao@motorola.com> |
Sergei Poselenov | f2bf96c | 2008-04-30 11:42:50 +0200 | [diff] [blame] | 10 | */ |
| 11 | |
| 12 | /* |
| 13 | * Socrates |
| 14 | */ |
| 15 | |
| 16 | #ifndef __CONFIG_H |
| 17 | #define __CONFIG_H |
| 18 | |
| 19 | /* High Level Configuration Options */ |
Sergei Poselenov | f2bf96c | 2008-04-30 11:42:50 +0200 | [diff] [blame] | 20 | #define CONFIG_SOCRATES 1 |
| 21 | |
Sergei Poselenov | f2bf96c | 2008-04-30 11:42:50 +0200 | [diff] [blame] | 22 | /* |
| 23 | * Only possible on E500 Version 2 or newer cores. |
| 24 | */ |
Sergei Poselenov | f2bf96c | 2008-04-30 11:42:50 +0200 | [diff] [blame] | 25 | |
| 26 | /* |
| 27 | * sysclk for MPC85xx |
| 28 | * |
| 29 | * Two valid values are: |
| 30 | * 33000000 |
| 31 | * 66000000 |
| 32 | * |
| 33 | * Most PCI cards are still 33Mhz, so in the presence of PCI, 33MHz |
| 34 | * is likely the desired value here, so that is now the default. |
| 35 | * The board, however, can run at 66MHz. In any event, this value |
| 36 | * must match the settings of some switches. Details can be found |
| 37 | * in the README.mpc85xxads. |
| 38 | */ |
| 39 | |
Sergei Poselenov | f2bf96c | 2008-04-30 11:42:50 +0200 | [diff] [blame] | 40 | /* |
| 41 | * These can be toggled for performance analysis, otherwise use default. |
| 42 | */ |
| 43 | #define CONFIG_L2_CACHE /* toggle L2 cache */ |
Sergei Poselenov | f2bf96c | 2008-04-30 11:42:50 +0200 | [diff] [blame] | 44 | |
Tom Rini | 6a5dccc | 2022-11-16 13:10:41 -0500 | [diff] [blame] | 45 | #define CFG_SYS_INIT_DBCR DBCR_IDM /* Enable Debug Exceptions */ |
Sergei Poselenov | f2bf96c | 2008-04-30 11:42:50 +0200 | [diff] [blame] | 46 | |
Tom Rini | 6a5dccc | 2022-11-16 13:10:41 -0500 | [diff] [blame] | 47 | #undef CFG_SYS_DRAM_TEST /* memory test, takes time */ |
Sergei Poselenov | f2bf96c | 2008-04-30 11:42:50 +0200 | [diff] [blame] | 48 | |
Tom Rini | 6a5dccc | 2022-11-16 13:10:41 -0500 | [diff] [blame] | 49 | #define CFG_SYS_CCSRBAR 0xE0000000 |
| 50 | #define CFG_SYS_CCSRBAR_PHYS_LOW CFG_SYS_CCSRBAR |
Sergei Poselenov | f2bf96c | 2008-04-30 11:42:50 +0200 | [diff] [blame] | 51 | |
Kumar Gala | 01135a8 | 2008-08-26 22:56:56 -0500 | [diff] [blame] | 52 | /* DDR Setup */ |
Kumar Gala | 01135a8 | 2008-08-26 22:56:56 -0500 | [diff] [blame] | 53 | #define CONFIG_SPD_EEPROM /* Use SPD EEPROM for DDR setup */ |
Kumar Gala | 01135a8 | 2008-08-26 22:56:56 -0500 | [diff] [blame] | 54 | |
Kumar Gala | 01135a8 | 2008-08-26 22:56:56 -0500 | [diff] [blame] | 55 | #define CONFIG_MEM_INIT_VALUE 0xDeadBeef |
| 56 | |
Tom Rini | 6a5dccc | 2022-11-16 13:10:41 -0500 | [diff] [blame] | 57 | #define CFG_SYS_DDR_SDRAM_BASE 0x00000000 |
| 58 | #define CFG_SYS_SDRAM_BASE CFG_SYS_DDR_SDRAM_BASE |
Kumar Gala | 01135a8 | 2008-08-26 22:56:56 -0500 | [diff] [blame] | 59 | #define CONFIG_VERY_BIG_RAM |
| 60 | |
Kumar Gala | 01135a8 | 2008-08-26 22:56:56 -0500 | [diff] [blame] | 61 | /* I2C addresses of SPD EEPROMs */ |
Anatolij Gustschin | 2c04bc3 | 2008-09-17 11:45:51 +0200 | [diff] [blame] | 62 | #define SPD_EEPROM_ADDRESS 0x50 /* CTLR 0 DIMM 0 */ |
Sergei Poselenov | f2bf96c | 2008-04-30 11:42:50 +0200 | [diff] [blame] | 63 | |
Sergei Poselenov | f2bf96c | 2008-04-30 11:42:50 +0200 | [diff] [blame] | 64 | |
| 65 | /* Hardcoded values, to use instead of SPD */ |
Tom Rini | 6a5dccc | 2022-11-16 13:10:41 -0500 | [diff] [blame] | 66 | #define CFG_SYS_DDR_CS0_BNDS 0x0000000f |
| 67 | #define CFG_SYS_DDR_CS0_CONFIG 0x80010102 |
| 68 | #define CFG_SYS_DDR_TIMING_0 0x00260802 |
| 69 | #define CFG_SYS_DDR_TIMING_1 0x3935D322 |
| 70 | #define CFG_SYS_DDR_TIMING_2 0x14904CC8 |
| 71 | #define CFG_SYS_DDR_MODE 0x00480432 |
| 72 | #define CFG_SYS_DDR_INTERVAL 0x030C0100 |
| 73 | #define CFG_SYS_DDR_CONFIG_2 0x04400000 |
| 74 | #define CFG_SYS_DDR_CONFIG 0xC3008000 |
| 75 | #define CFG_SYS_DDR_CLK_CONTROL 0x03800000 |
Tom Rini | bb4dd96 | 2022-11-16 13:10:37 -0500 | [diff] [blame] | 76 | #define CFG_SYS_SDRAM_SIZE 256 /* in Megs */ |
Sergei Poselenov | f2bf96c | 2008-04-30 11:42:50 +0200 | [diff] [blame] | 77 | |
Sergei Poselenov | f2bf96c | 2008-04-30 11:42:50 +0200 | [diff] [blame] | 78 | /* |
| 79 | * Flash on the LocalBus |
| 80 | */ |
Tom Rini | 6a5dccc | 2022-11-16 13:10:41 -0500 | [diff] [blame] | 81 | #define CFG_SYS_FLASH0 0xFE000000 |
| 82 | #define CFG_SYS_FLASH1 0xFC000000 |
| 83 | #define CFG_SYS_FLASH_BANKS_LIST { CFG_SYS_FLASH1, CFG_SYS_FLASH0 } |
Sergei Poselenov | f2bf96c | 2008-04-30 11:42:50 +0200 | [diff] [blame] | 84 | |
Tom Rini | 6a5dccc | 2022-11-16 13:10:41 -0500 | [diff] [blame] | 85 | #define CFG_SYS_LBC_FLASH_BASE CFG_SYS_FLASH1 /* Localbus flash start */ |
| 86 | #define CFG_SYS_FLASH_BASE CFG_SYS_LBC_FLASH_BASE /* start of FLASH */ |
Sergei Poselenov | f2bf96c | 2008-04-30 11:42:50 +0200 | [diff] [blame] | 87 | |
Tom Rini | 6a5dccc | 2022-11-16 13:10:41 -0500 | [diff] [blame] | 88 | #define CFG_SYS_LBC_LCRR 0x00030004 /* LB clock ratio reg */ |
| 89 | #define CFG_SYS_LBC_LBCR 0x00000000 /* LB config reg */ |
| 90 | #define CFG_SYS_LBC_LSRT 0x20000000 /* LB sdram refresh timer */ |
| 91 | #define CFG_SYS_LBC_MRTPR 0x20000000 /* LB refresh timer presc.*/ |
Sergei Poselenov | f2bf96c | 2008-04-30 11:42:50 +0200 | [diff] [blame] | 92 | |
Tom Rini | 6a5dccc | 2022-11-16 13:10:41 -0500 | [diff] [blame] | 93 | #define CFG_SYS_INIT_RAM_ADDR 0xe4010000 /* Initial RAM address */ |
| 94 | #define CFG_SYS_INIT_RAM_SIZE 0x4000 /* Size used area in RAM*/ |
Sergei Poselenov | f2bf96c | 2008-04-30 11:42:50 +0200 | [diff] [blame] | 95 | |
Tom Rini | 6a5dccc | 2022-11-16 13:10:41 -0500 | [diff] [blame] | 96 | #define CFG_SYS_INIT_SP_OFFSET (CFG_SYS_INIT_RAM_SIZE - GENERATED_GBL_DATA_SIZE) |
Sergei Poselenov | f2bf96c | 2008-04-30 11:42:50 +0200 | [diff] [blame] | 97 | |
Detlev Zundel | 0244f67 | 2008-08-15 15:42:12 +0200 | [diff] [blame] | 98 | /* FPGA and NAND */ |
Tom Rini | 6a5dccc | 2022-11-16 13:10:41 -0500 | [diff] [blame] | 99 | #define CFG_SYS_FPGA_BASE 0xc0000000 |
| 100 | #define CFG_SYS_FPGA_SIZE 0x00100000 /* 1 MB */ |
Detlev Zundel | 0244f67 | 2008-08-15 15:42:12 +0200 | [diff] [blame] | 101 | |
Tom Rini | 6a5dccc | 2022-11-16 13:10:41 -0500 | [diff] [blame] | 102 | #define CFG_SYS_NAND_BASE (CFG_SYS_FPGA_BASE + 0x70) |
Sergei Poselenov | f2bf96c | 2008-04-30 11:42:50 +0200 | [diff] [blame] | 103 | |
Anatolij Gustschin | e6f5c91 | 2008-08-15 15:42:13 +0200 | [diff] [blame] | 104 | /* LIME GDC */ |
Tom Rini | 6a5dccc | 2022-11-16 13:10:41 -0500 | [diff] [blame] | 105 | #define CFG_SYS_LIME_BASE 0xc8000000 |
Anatolij Gustschin | e6f5c91 | 2008-08-15 15:42:13 +0200 | [diff] [blame] | 106 | |
Sergei Poselenov | f2bf96c | 2008-04-30 11:42:50 +0200 | [diff] [blame] | 107 | /* |
| 108 | * General PCI |
| 109 | * Memory space is mapped 1-1. |
| 110 | */ |
Sergei Poselenov | f2bf96c | 2008-04-30 11:42:50 +0200 | [diff] [blame] | 111 | |
Tom Rini | 56af659 | 2022-11-16 13:10:33 -0500 | [diff] [blame] | 112 | #define CFG_SYS_PCI1_MEM_PHYS 0x80000000 |
| 113 | #define CFG_SYS_PCI1_IO_PHYS 0xE2000000 |
Sergei Poselenov | f2bf96c | 2008-04-30 11:42:50 +0200 | [diff] [blame] | 114 | |
Sergei Poselenov | f2bf96c | 2008-04-30 11:42:50 +0200 | [diff] [blame] | 115 | #define CONFIG_TSEC1 1 |
| 116 | #define CONFIG_TSEC1_NAME "TSEC0" |
Sergei Poselenov | 6be5775 | 2008-05-08 17:46:23 +0200 | [diff] [blame] | 117 | #define CONFIG_TSEC3 1 |
| 118 | #define CONFIG_TSEC3_NAME "TSEC1" |
Sergei Poselenov | f2bf96c | 2008-04-30 11:42:50 +0200 | [diff] [blame] | 119 | #undef CONFIG_MPC85XX_FEC |
| 120 | |
| 121 | #define TSEC1_PHY_ADDR 0 |
Sergei Poselenov | 6be5775 | 2008-05-08 17:46:23 +0200 | [diff] [blame] | 122 | #define TSEC3_PHY_ADDR 1 |
Sergei Poselenov | f2bf96c | 2008-04-30 11:42:50 +0200 | [diff] [blame] | 123 | |
| 124 | #define TSEC1_PHYIDX 0 |
Sergei Poselenov | 6be5775 | 2008-05-08 17:46:23 +0200 | [diff] [blame] | 125 | #define TSEC3_PHYIDX 0 |
Sergei Poselenov | f2bf96c | 2008-04-30 11:42:50 +0200 | [diff] [blame] | 126 | #define TSEC1_FLAGS TSEC_GIGABIT |
Sergei Poselenov | 6be5775 | 2008-05-08 17:46:23 +0200 | [diff] [blame] | 127 | #define TSEC3_FLAGS TSEC_GIGABIT |
Sergei Poselenov | f2bf96c | 2008-04-30 11:42:50 +0200 | [diff] [blame] | 128 | |
Sergei Poselenov | 6be5775 | 2008-05-08 17:46:23 +0200 | [diff] [blame] | 129 | /* Options are: TSEC[0,1] */ |
Sergei Poselenov | f2bf96c | 2008-04-30 11:42:50 +0200 | [diff] [blame] | 130 | |
| 131 | /* |
Sergei Poselenov | f2bf96c | 2008-04-30 11:42:50 +0200 | [diff] [blame] | 132 | * Miscellaneous configurable options |
| 133 | */ |
Sergei Poselenov | f2bf96c | 2008-04-30 11:42:50 +0200 | [diff] [blame] | 134 | |
Sergei Poselenov | f2bf96c | 2008-04-30 11:42:50 +0200 | [diff] [blame] | 135 | /* |
| 136 | * For booting Linux, the board info and command line data |
| 137 | * have to be in the first 8 MB of memory, since this is |
| 138 | * the maximum mapped by the Linux kernel during initialization. |
| 139 | */ |
Tom Rini | 6a5dccc | 2022-11-16 13:10:41 -0500 | [diff] [blame] | 140 | #define CFG_SYS_BOOTMAPSZ (8 << 20) /* Initial Memory map for Linux */ |
Sergei Poselenov | f2bf96c | 2008-04-30 11:42:50 +0200 | [diff] [blame] | 141 | |
Sergei Poselenov | f2bf96c | 2008-04-30 11:42:50 +0200 | [diff] [blame] | 142 | |
Sergei Poselenov | f2bf96c | 2008-04-30 11:42:50 +0200 | [diff] [blame] | 143 | #define CONFIG_EXTRA_ENV_SETTINGS \ |
Sergei Poselenov | f2bf96c | 2008-04-30 11:42:50 +0200 | [diff] [blame] | 144 | "netdev=eth0\0" \ |
| 145 | "consdev=ttyS0\0" \ |
Detlev Zundel | 0244f67 | 2008-08-15 15:42:12 +0200 | [diff] [blame] | 146 | "uboot_file=/home/tftp/syscon3/u-boot.bin\0" \ |
| 147 | "bootfile=/home/tftp/syscon3/uImage\0" \ |
| 148 | "fdt_file=/home/tftp/syscon3/socrates.dtb\0" \ |
| 149 | "initrd_file=/home/tftp/syscon3/uinitrd.gz\0" \ |
Heiko Schocher | 66daf32 | 2019-10-16 05:55:49 +0200 | [diff] [blame] | 150 | "uboot_addr=FFF60000\0" \ |
Detlev Zundel | 0244f67 | 2008-08-15 15:42:12 +0200 | [diff] [blame] | 151 | "kernel_addr=FE000000\0" \ |
| 152 | "fdt_addr=FE1E0000\0" \ |
| 153 | "ramdisk_addr=FE200000\0" \ |
| 154 | "fdt_addr_r=B00000\0" \ |
| 155 | "kernel_addr_r=200000\0" \ |
| 156 | "ramdisk_addr_r=400000\0" \ |
| 157 | "rootpath=/opt/eldk/ppc_85xxDP\0" \ |
| 158 | "ramargs=setenv bootargs root=/dev/ram rw\0" \ |
Sergei Poselenov | f2bf96c | 2008-04-30 11:42:50 +0200 | [diff] [blame] | 159 | "nfsargs=setenv bootargs root=/dev/nfs rw " \ |
| 160 | "nfsroot=$serverip:$rootpath\0" \ |
Detlev Zundel | 0244f67 | 2008-08-15 15:42:12 +0200 | [diff] [blame] | 161 | "addcons=setenv bootargs $bootargs " \ |
| 162 | "console=$consdev,$baudrate\0" \ |
Sergei Poselenov | f2bf96c | 2008-04-30 11:42:50 +0200 | [diff] [blame] | 163 | "addip=setenv bootargs $bootargs " \ |
| 164 | "ip=$ipaddr:$serverip:$gatewayip:$netmask" \ |
| 165 | ":$hostname:$netdev:off panic=1\0" \ |
Detlev Zundel | 0244f67 | 2008-08-15 15:42:12 +0200 | [diff] [blame] | 166 | "boot_nor=run ramargs addcons;" \ |
Sergei Poselenov | 09842c5 | 2008-05-07 15:10:49 +0200 | [diff] [blame] | 167 | "bootm ${kernel_addr} ${ramdisk_addr} ${fdt_addr}\0" \ |
Sergei Poselenov | 09842c5 | 2008-05-07 15:10:49 +0200 | [diff] [blame] | 168 | "net_nfs=tftp ${kernel_addr_r} ${bootfile}; " \ |
| 169 | "tftp ${fdt_addr_r} ${fdt_file}; " \ |
| 170 | "run nfsargs addip addcons;" \ |
| 171 | "bootm ${kernel_addr_r} - ${fdt_addr_r}\0" \ |
Detlev Zundel | 0244f67 | 2008-08-15 15:42:12 +0200 | [diff] [blame] | 172 | "update_uboot=tftp 100000 ${uboot_file};" \ |
Heiko Schocher | 66daf32 | 2019-10-16 05:55:49 +0200 | [diff] [blame] | 173 | "protect off fff60000 ffffffff;" \ |
| 174 | "era fff60000 ffffffff;" \ |
| 175 | "cp.b 100000 fff60000 ${filesize};" \ |
Detlev Zundel | 0244f67 | 2008-08-15 15:42:12 +0200 | [diff] [blame] | 176 | "setenv filesize;saveenv\0" \ |
| 177 | "update_kernel=tftp 100000 ${bootfile};" \ |
| 178 | "era fe000000 fe1dffff;" \ |
| 179 | "cp.b 100000 fe000000 ${filesize};" \ |
Sergei Poselenov | f2bf96c | 2008-04-30 11:42:50 +0200 | [diff] [blame] | 180 | "setenv filesize;saveenv\0" \ |
Wolfgang Denk | 62fb2b4 | 2021-09-27 17:42:39 +0200 | [diff] [blame] | 181 | "update_fdt=tftp 100000 ${fdt_file};" \ |
Detlev Zundel | 0244f67 | 2008-08-15 15:42:12 +0200 | [diff] [blame] | 182 | "era fe1e0000 fe1fffff;" \ |
| 183 | "cp.b 100000 fe1e0000 ${filesize};" \ |
| 184 | "setenv filesize;saveenv\0" \ |
Wolfgang Denk | 62fb2b4 | 2021-09-27 17:42:39 +0200 | [diff] [blame] | 185 | "update_initrd=tftp 100000 ${initrd_file};" \ |
Detlev Zundel | 0244f67 | 2008-08-15 15:42:12 +0200 | [diff] [blame] | 186 | "era fe200000 fe9fffff;" \ |
| 187 | "cp.b 100000 fe200000 ${filesize};" \ |
| 188 | "setenv filesize;saveenv\0" \ |
| 189 | "clean_data=era fea00000 fff5ffff\0" \ |
Wolfgang Denk | 62fb2b4 | 2021-09-27 17:42:39 +0200 | [diff] [blame] | 190 | "usbargs=setenv bootargs root=/dev/sda1 rw\0" \ |
| 191 | "load_usb=usb start;" \ |
Detlev Zundel | 0244f67 | 2008-08-15 15:42:12 +0200 | [diff] [blame] | 192 | "ext2load usb 0:1 ${kernel_addr_r} /boot/uImage\0" \ |
| 193 | "boot_usb=run load_usb usbargs addcons;" \ |
| 194 | "bootm ${kernel_addr_r} - ${fdt_addr};" \ |
| 195 | "bootm ${kernel_addr} ${ramdisk_addr} ${fdt_addr}\0" \ |
Sergei Poselenov | f2bf96c | 2008-04-30 11:42:50 +0200 | [diff] [blame] | 196 | "" |
Sergei Poselenov | f2bf96c | 2008-04-30 11:42:50 +0200 | [diff] [blame] | 197 | |
Sergei Poselenov | 09842c5 | 2008-05-07 15:10:49 +0200 | [diff] [blame] | 198 | /* pass open firmware flat tree */ |
Sergei Poselenov | 09842c5 | 2008-05-07 15:10:49 +0200 | [diff] [blame] | 199 | |
Sergei Poselenov | f2bf96c | 2008-04-30 11:42:50 +0200 | [diff] [blame] | 200 | #endif /* __CONFIG_H */ |