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 | |
Kumar Gala | 01135a8 | 2008-08-26 22:56:56 -0500 | [diff] [blame] | 54 | #define CONFIG_MEM_INIT_VALUE 0xDeadBeef |
| 55 | |
Tom Rini | 6a5dccc | 2022-11-16 13:10:41 -0500 | [diff] [blame] | 56 | #define CFG_SYS_DDR_SDRAM_BASE 0x00000000 |
| 57 | #define CFG_SYS_SDRAM_BASE CFG_SYS_DDR_SDRAM_BASE |
Kumar Gala | 01135a8 | 2008-08-26 22:56:56 -0500 | [diff] [blame] | 58 | #define CONFIG_VERY_BIG_RAM |
| 59 | |
Kumar Gala | 01135a8 | 2008-08-26 22:56:56 -0500 | [diff] [blame] | 60 | /* I2C addresses of SPD EEPROMs */ |
Anatolij Gustschin | 2c04bc3 | 2008-09-17 11:45:51 +0200 | [diff] [blame] | 61 | #define SPD_EEPROM_ADDRESS 0x50 /* CTLR 0 DIMM 0 */ |
Sergei Poselenov | f2bf96c | 2008-04-30 11:42:50 +0200 | [diff] [blame] | 62 | |
Sergei Poselenov | f2bf96c | 2008-04-30 11:42:50 +0200 | [diff] [blame] | 63 | |
| 64 | /* Hardcoded values, to use instead of SPD */ |
Tom Rini | 6a5dccc | 2022-11-16 13:10:41 -0500 | [diff] [blame] | 65 | #define CFG_SYS_DDR_CS0_BNDS 0x0000000f |
| 66 | #define CFG_SYS_DDR_CS0_CONFIG 0x80010102 |
| 67 | #define CFG_SYS_DDR_TIMING_0 0x00260802 |
| 68 | #define CFG_SYS_DDR_TIMING_1 0x3935D322 |
| 69 | #define CFG_SYS_DDR_TIMING_2 0x14904CC8 |
| 70 | #define CFG_SYS_DDR_MODE 0x00480432 |
| 71 | #define CFG_SYS_DDR_INTERVAL 0x030C0100 |
| 72 | #define CFG_SYS_DDR_CONFIG_2 0x04400000 |
| 73 | #define CFG_SYS_DDR_CONFIG 0xC3008000 |
| 74 | #define CFG_SYS_DDR_CLK_CONTROL 0x03800000 |
Tom Rini | bb4dd96 | 2022-11-16 13:10:37 -0500 | [diff] [blame] | 75 | #define CFG_SYS_SDRAM_SIZE 256 /* in Megs */ |
Sergei Poselenov | f2bf96c | 2008-04-30 11:42:50 +0200 | [diff] [blame] | 76 | |
Sergei Poselenov | f2bf96c | 2008-04-30 11:42:50 +0200 | [diff] [blame] | 77 | /* |
| 78 | * Flash on the LocalBus |
| 79 | */ |
Tom Rini | 6a5dccc | 2022-11-16 13:10:41 -0500 | [diff] [blame] | 80 | #define CFG_SYS_FLASH0 0xFE000000 |
| 81 | #define CFG_SYS_FLASH1 0xFC000000 |
| 82 | #define CFG_SYS_FLASH_BANKS_LIST { CFG_SYS_FLASH1, CFG_SYS_FLASH0 } |
Sergei Poselenov | f2bf96c | 2008-04-30 11:42:50 +0200 | [diff] [blame] | 83 | |
Tom Rini | 6a5dccc | 2022-11-16 13:10:41 -0500 | [diff] [blame] | 84 | #define CFG_SYS_LBC_FLASH_BASE CFG_SYS_FLASH1 /* Localbus flash start */ |
| 85 | #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] | 86 | |
Tom Rini | 6a5dccc | 2022-11-16 13:10:41 -0500 | [diff] [blame] | 87 | #define CFG_SYS_LBC_LCRR 0x00030004 /* LB clock ratio reg */ |
| 88 | #define CFG_SYS_LBC_LBCR 0x00000000 /* LB config reg */ |
| 89 | #define CFG_SYS_LBC_LSRT 0x20000000 /* LB sdram refresh timer */ |
| 90 | #define CFG_SYS_LBC_MRTPR 0x20000000 /* LB refresh timer presc.*/ |
Sergei Poselenov | f2bf96c | 2008-04-30 11:42:50 +0200 | [diff] [blame] | 91 | |
Tom Rini | 6a5dccc | 2022-11-16 13:10:41 -0500 | [diff] [blame] | 92 | #define CFG_SYS_INIT_RAM_ADDR 0xe4010000 /* Initial RAM address */ |
| 93 | #define CFG_SYS_INIT_RAM_SIZE 0x4000 /* Size used area in RAM*/ |
Sergei Poselenov | f2bf96c | 2008-04-30 11:42:50 +0200 | [diff] [blame] | 94 | |
Tom Rini | 6a5dccc | 2022-11-16 13:10:41 -0500 | [diff] [blame] | 95 | #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] | 96 | |
Detlev Zundel | 0244f67 | 2008-08-15 15:42:12 +0200 | [diff] [blame] | 97 | /* FPGA and NAND */ |
Tom Rini | 6a5dccc | 2022-11-16 13:10:41 -0500 | [diff] [blame] | 98 | #define CFG_SYS_FPGA_BASE 0xc0000000 |
| 99 | #define CFG_SYS_FPGA_SIZE 0x00100000 /* 1 MB */ |
Detlev Zundel | 0244f67 | 2008-08-15 15:42:12 +0200 | [diff] [blame] | 100 | |
Tom Rini | 6a5dccc | 2022-11-16 13:10:41 -0500 | [diff] [blame] | 101 | #define CFG_SYS_NAND_BASE (CFG_SYS_FPGA_BASE + 0x70) |
Sergei Poselenov | f2bf96c | 2008-04-30 11:42:50 +0200 | [diff] [blame] | 102 | |
Anatolij Gustschin | e6f5c91 | 2008-08-15 15:42:13 +0200 | [diff] [blame] | 103 | /* LIME GDC */ |
Tom Rini | 6a5dccc | 2022-11-16 13:10:41 -0500 | [diff] [blame] | 104 | #define CFG_SYS_LIME_BASE 0xc8000000 |
Anatolij Gustschin | e6f5c91 | 2008-08-15 15:42:13 +0200 | [diff] [blame] | 105 | |
Sergei Poselenov | f2bf96c | 2008-04-30 11:42:50 +0200 | [diff] [blame] | 106 | /* |
| 107 | * General PCI |
| 108 | * Memory space is mapped 1-1. |
| 109 | */ |
Sergei Poselenov | f2bf96c | 2008-04-30 11:42:50 +0200 | [diff] [blame] | 110 | |
Tom Rini | 56af659 | 2022-11-16 13:10:33 -0500 | [diff] [blame] | 111 | #define CFG_SYS_PCI1_MEM_PHYS 0x80000000 |
| 112 | #define CFG_SYS_PCI1_IO_PHYS 0xE2000000 |
Sergei Poselenov | f2bf96c | 2008-04-30 11:42:50 +0200 | [diff] [blame] | 113 | |
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 | * Miscellaneous configurable options |
| 116 | */ |
Sergei Poselenov | f2bf96c | 2008-04-30 11:42:50 +0200 | [diff] [blame] | 117 | |
Sergei Poselenov | f2bf96c | 2008-04-30 11:42:50 +0200 | [diff] [blame] | 118 | /* |
| 119 | * For booting Linux, the board info and command line data |
| 120 | * have to be in the first 8 MB of memory, since this is |
| 121 | * the maximum mapped by the Linux kernel during initialization. |
| 122 | */ |
Tom Rini | 6a5dccc | 2022-11-16 13:10:41 -0500 | [diff] [blame] | 123 | #define CFG_SYS_BOOTMAPSZ (8 << 20) /* Initial Memory map for Linux */ |
Sergei Poselenov | f2bf96c | 2008-04-30 11:42:50 +0200 | [diff] [blame] | 124 | |
Sergei Poselenov | f2bf96c | 2008-04-30 11:42:50 +0200 | [diff] [blame] | 125 | |
Sergei Poselenov | f2bf96c | 2008-04-30 11:42:50 +0200 | [diff] [blame] | 126 | #define CONFIG_EXTRA_ENV_SETTINGS \ |
Sergei Poselenov | f2bf96c | 2008-04-30 11:42:50 +0200 | [diff] [blame] | 127 | "netdev=eth0\0" \ |
| 128 | "consdev=ttyS0\0" \ |
Detlev Zundel | 0244f67 | 2008-08-15 15:42:12 +0200 | [diff] [blame] | 129 | "uboot_file=/home/tftp/syscon3/u-boot.bin\0" \ |
| 130 | "bootfile=/home/tftp/syscon3/uImage\0" \ |
| 131 | "fdt_file=/home/tftp/syscon3/socrates.dtb\0" \ |
| 132 | "initrd_file=/home/tftp/syscon3/uinitrd.gz\0" \ |
Heiko Schocher | 66daf32 | 2019-10-16 05:55:49 +0200 | [diff] [blame] | 133 | "uboot_addr=FFF60000\0" \ |
Detlev Zundel | 0244f67 | 2008-08-15 15:42:12 +0200 | [diff] [blame] | 134 | "kernel_addr=FE000000\0" \ |
| 135 | "fdt_addr=FE1E0000\0" \ |
| 136 | "ramdisk_addr=FE200000\0" \ |
| 137 | "fdt_addr_r=B00000\0" \ |
| 138 | "kernel_addr_r=200000\0" \ |
| 139 | "ramdisk_addr_r=400000\0" \ |
| 140 | "rootpath=/opt/eldk/ppc_85xxDP\0" \ |
| 141 | "ramargs=setenv bootargs root=/dev/ram rw\0" \ |
Sergei Poselenov | f2bf96c | 2008-04-30 11:42:50 +0200 | [diff] [blame] | 142 | "nfsargs=setenv bootargs root=/dev/nfs rw " \ |
| 143 | "nfsroot=$serverip:$rootpath\0" \ |
Detlev Zundel | 0244f67 | 2008-08-15 15:42:12 +0200 | [diff] [blame] | 144 | "addcons=setenv bootargs $bootargs " \ |
| 145 | "console=$consdev,$baudrate\0" \ |
Sergei Poselenov | f2bf96c | 2008-04-30 11:42:50 +0200 | [diff] [blame] | 146 | "addip=setenv bootargs $bootargs " \ |
| 147 | "ip=$ipaddr:$serverip:$gatewayip:$netmask" \ |
| 148 | ":$hostname:$netdev:off panic=1\0" \ |
Detlev Zundel | 0244f67 | 2008-08-15 15:42:12 +0200 | [diff] [blame] | 149 | "boot_nor=run ramargs addcons;" \ |
Sergei Poselenov | 09842c5 | 2008-05-07 15:10:49 +0200 | [diff] [blame] | 150 | "bootm ${kernel_addr} ${ramdisk_addr} ${fdt_addr}\0" \ |
Sergei Poselenov | 09842c5 | 2008-05-07 15:10:49 +0200 | [diff] [blame] | 151 | "net_nfs=tftp ${kernel_addr_r} ${bootfile}; " \ |
| 152 | "tftp ${fdt_addr_r} ${fdt_file}; " \ |
| 153 | "run nfsargs addip addcons;" \ |
| 154 | "bootm ${kernel_addr_r} - ${fdt_addr_r}\0" \ |
Detlev Zundel | 0244f67 | 2008-08-15 15:42:12 +0200 | [diff] [blame] | 155 | "update_uboot=tftp 100000 ${uboot_file};" \ |
Heiko Schocher | 66daf32 | 2019-10-16 05:55:49 +0200 | [diff] [blame] | 156 | "protect off fff60000 ffffffff;" \ |
| 157 | "era fff60000 ffffffff;" \ |
| 158 | "cp.b 100000 fff60000 ${filesize};" \ |
Detlev Zundel | 0244f67 | 2008-08-15 15:42:12 +0200 | [diff] [blame] | 159 | "setenv filesize;saveenv\0" \ |
| 160 | "update_kernel=tftp 100000 ${bootfile};" \ |
| 161 | "era fe000000 fe1dffff;" \ |
| 162 | "cp.b 100000 fe000000 ${filesize};" \ |
Sergei Poselenov | f2bf96c | 2008-04-30 11:42:50 +0200 | [diff] [blame] | 163 | "setenv filesize;saveenv\0" \ |
Wolfgang Denk | 62fb2b4 | 2021-09-27 17:42:39 +0200 | [diff] [blame] | 164 | "update_fdt=tftp 100000 ${fdt_file};" \ |
Detlev Zundel | 0244f67 | 2008-08-15 15:42:12 +0200 | [diff] [blame] | 165 | "era fe1e0000 fe1fffff;" \ |
| 166 | "cp.b 100000 fe1e0000 ${filesize};" \ |
| 167 | "setenv filesize;saveenv\0" \ |
Wolfgang Denk | 62fb2b4 | 2021-09-27 17:42:39 +0200 | [diff] [blame] | 168 | "update_initrd=tftp 100000 ${initrd_file};" \ |
Detlev Zundel | 0244f67 | 2008-08-15 15:42:12 +0200 | [diff] [blame] | 169 | "era fe200000 fe9fffff;" \ |
| 170 | "cp.b 100000 fe200000 ${filesize};" \ |
| 171 | "setenv filesize;saveenv\0" \ |
| 172 | "clean_data=era fea00000 fff5ffff\0" \ |
Wolfgang Denk | 62fb2b4 | 2021-09-27 17:42:39 +0200 | [diff] [blame] | 173 | "usbargs=setenv bootargs root=/dev/sda1 rw\0" \ |
| 174 | "load_usb=usb start;" \ |
Detlev Zundel | 0244f67 | 2008-08-15 15:42:12 +0200 | [diff] [blame] | 175 | "ext2load usb 0:1 ${kernel_addr_r} /boot/uImage\0" \ |
| 176 | "boot_usb=run load_usb usbargs addcons;" \ |
| 177 | "bootm ${kernel_addr_r} - ${fdt_addr};" \ |
| 178 | "bootm ${kernel_addr} ${ramdisk_addr} ${fdt_addr}\0" \ |
Sergei Poselenov | f2bf96c | 2008-04-30 11:42:50 +0200 | [diff] [blame] | 179 | "" |
Sergei Poselenov | f2bf96c | 2008-04-30 11:42:50 +0200 | [diff] [blame] | 180 | |
Sergei Poselenov | 09842c5 | 2008-05-07 15:10:49 +0200 | [diff] [blame] | 181 | /* pass open firmware flat tree */ |
Sergei Poselenov | 09842c5 | 2008-05-07 15:10:49 +0200 | [diff] [blame] | 182 | |
Sergei Poselenov | f2bf96c | 2008-04-30 11:42:50 +0200 | [diff] [blame] | 183 | #endif /* __CONFIG_H */ |