1menu "MIPS architecture" 2 depends on MIPS 3 4config SYS_ARCH 5 default "mips" 6 7config SYS_CPU 8 default "mips32" if CPU_MIPS32 9 default "mips64" if CPU_MIPS64 10 11choice 12 prompt "Target select" 13 optional 14 15config TARGET_MALTA 16 bool "Support malta" 17 select HAS_FIXED_TIMER_FREQUENCY 18 select BOARD_EARLY_INIT_R 19 select DM 20 select DM_SERIAL 21 select PCI 22 select DYNAMIC_IO_PORT_BASE 23 select MIPS_CM 24 select MIPS_INSERT_BOOT_CONFIG 25 select SYS_CACHE_SHIFT_6 26 select MIPS_L2_CACHE 27 select OF_CONTROL 28 select OF_ISA_BUS 29 select PCI_MAP_SYSTEM_MEMORY 30 select ROM_EXCEPTION_VECTORS 31 select SUPPORTS_CPU_MIPS32_R1 32 select SUPPORTS_CPU_MIPS32_R2 33 select SUPPORTS_CPU_MIPS32_R6 34 select SUPPORTS_CPU_MIPS64_R1 35 select SUPPORTS_CPU_MIPS64_R2 36 select SUPPORTS_CPU_MIPS64_R6 37 select SUPPORT_BIG_ENDIAN 38 select SUPPORT_LITTLE_ENDIAN 39 select SWAP_IO_SPACE 40 imply CMD_DM 41 42config ARCH_ATH79 43 bool "Support QCA/Atheros ath79" 44 select HAS_FIXED_TIMER_FREQUENCY 45 select DM 46 select OF_CONTROL 47 imply CMD_DM 48 49config ARCH_MSCC 50 bool "Support MSCC VCore-III" 51 select HAS_FIXED_TIMER_FREQUENCY 52 select OF_CONTROL 53 select DM 54 55config ARCH_BMIPS 56 bool "Support BMIPS SoCs" 57 select HAS_FIXED_TIMER_FREQUENCY 58 select CLK 59 select CPU 60 select DM 61 select OF_CONTROL 62 select RAM 63 select SYSRESET 64 imply CMD_DM 65 66config ARCH_MTMIPS 67 bool "Support MediaTek MIPS platforms" 68 select HAS_FIXED_TIMER_FREQUENCY 69 select CLK 70 imply CMD_DM 71 select DISPLAY_CPUINFO 72 select DM 73 imply DM_GPIO 74 select DM_RESET 75 select DM_SERIAL 76 select PINCTRL 77 select PINMUX 78 select PINCONF 79 select RESET_MTMIPS 80 imply MTD 81 imply DM_SPI 82 imply DM_SPI_FLASH 83 select LAST_STAGE_INIT 84 select MIPS_TUNE_24KC 85 select OF_CONTROL 86 select ROM_EXCEPTION_VECTORS 87 select SUPPORTS_CPU_MIPS32_R1 88 select SUPPORTS_CPU_MIPS32_R2 89 select SUPPORT_LITTLE_ENDIAN 90 select SUPPORT_SPL 91 92config ARCH_JZ47XX 93 bool "Support Ingenic JZ47xx" 94 select SUPPORT_SPL 95 select HAS_FIXED_TIMER_FREQUENCY 96 select OF_CONTROL 97 select DM 98 99config ARCH_OCTEON 100 bool "Support Marvell Octeon CN7xxx platforms" 101 select ARCH_EARLY_INIT_R 102 select CPU_CAVIUM_OCTEON 103 select DISPLAY_CPUINFO 104 select DMA_ADDR_T_64BIT 105 select DM 106 select DM_GPIO 107 select DM_I2C 108 select DM_SERIAL 109 select DM_SPI 110 select MIPS_L2_CACHE 111 select MIPS_MACH_EARLY_INIT 112 select MIPS_TUNE_OCTEON3 113 select MTD 114 select ROM_EXCEPTION_VECTORS 115 select SUPPORT_BIG_ENDIAN 116 select SUPPORTS_CPU_MIPS64_OCTEON 117 select PHYS_64BIT 118 select OF_CONTROL 119 select OF_LIVE 120 imply CMD_DM 121 122config MACH_PIC32 123 bool "Support Microchip PIC32" 124 select HAS_FIXED_TIMER_FREQUENCY 125 select DM 126 select DM_EVENT 127 select OF_CONTROL 128 imply CMD_DM 129 130config TARGET_BOSTON 131 bool "Support Boston" 132 select HAS_FIXED_TIMER_FREQUENCY 133 select DM 134 select DM_SERIAL 135 select MIPS_CM 136 select SYS_CACHE_SHIFT_6 137 select MIPS_L2_CACHE 138 select OF_BOARD_SETUP 139 select OF_CONTROL 140 select ROM_EXCEPTION_VECTORS 141 select SUPPORTS_CPU_MIPS32_R1 142 select SUPPORTS_CPU_MIPS32_R2 143 select SUPPORTS_CPU_MIPS32_R6 144 select SUPPORTS_CPU_MIPS64_R1 145 select SUPPORTS_CPU_MIPS64_R2 146 select SUPPORTS_CPU_MIPS64_R6 147 select SUPPORT_BIG_ENDIAN 148 select SUPPORT_LITTLE_ENDIAN 149 imply OF_UPSTREAM 150 imply BOOTSTD_FULL 151 imply CLK 152 imply CLK_BOSTON 153 imply CMD_DM 154 imply AHCI 155 imply AHCI_PCI 156 imply CFI_FLASH 157 imply MTD_NOR_FLASH 158 imply MMC 159 imply MMC_PCI 160 imply MMC_SDHCI 161 imply MMC_SDHCI_SDMA 162 imply PCH_GBE 163 imply PCI 164 imply PCI_XILINX 165 imply PCI_INIT_R 166 imply SCSI 167 imply SCSI_AHCI 168 imply SYS_NS16550 169 imply SYSRESET 170 imply SYSRESET_CMD_POWEROFF 171 imply SYSRESET_SYSCON 172 imply USB 173 imply USB_EHCI_HCD 174 imply USB_EHCI_PCI 175 imply USB_XHCI_HCD 176 imply USB_XHCI_PCI 177 imply CMD_USB 178 179config TARGET_XILFPGA 180 bool "Support Imagination Xilfpga" 181 select HAS_FIXED_TIMER_FREQUENCY 182 select DM 183 select DM_GPIO 184 select DM_SERIAL 185 select SYS_CACHE_SHIFT_4 186 select OF_CONTROL 187 select ROM_EXCEPTION_VECTORS 188 select SUPPORTS_CPU_MIPS32_R1 189 select SUPPORTS_CPU_MIPS32_R2 190 select SUPPORT_LITTLE_ENDIAN 191 imply CMD_DM 192 help 193 This supports IMGTEC MIPSfpga platform 194 195endchoice 196 197source "board/imgtec/boston/Kconfig" 198source "board/imgtec/malta/Kconfig" 199source "board/imgtec/xilfpga/Kconfig" 200source "arch/mips/mach-ath79/Kconfig" 201source "arch/mips/mach-mscc/Kconfig" 202source "arch/mips/mach-bmips/Kconfig" 203source "arch/mips/mach-jz47xx/Kconfig" 204source "arch/mips/mach-pic32/Kconfig" 205source "arch/mips/mach-mtmips/Kconfig" 206source "arch/mips/mach-octeon/Kconfig" 207 208if MIPS 209 210choice 211 prompt "CPU selection" 212 default CPU_MIPS32_R2 213 214config CPU_MIPS32_R1 215 bool "MIPS32 Release 1" 216 depends on SUPPORTS_CPU_MIPS32_R1 217 select 32BIT 218 help 219 Choose this option to build an U-Boot for release 1 through 5 of the 220 MIPS32 architecture. 221 222config CPU_MIPS32_R2 223 bool "MIPS32 Release 2" 224 depends on SUPPORTS_CPU_MIPS32_R2 225 select 32BIT 226 help 227 Choose this option to build an U-Boot for release 2 through 5 of the 228 MIPS32 architecture. 229 230config CPU_MIPS32_R6 231 bool "MIPS32 Release 6" 232 depends on SUPPORTS_CPU_MIPS32_R6 233 select 32BIT 234 help 235 Choose this option to build an U-Boot for release 6 or later of the 236 MIPS32 architecture. 237 238config CPU_MIPS64_R1 239 bool "MIPS64 Release 1" 240 depends on SUPPORTS_CPU_MIPS64_R1 241 select 64BIT 242 select SPL_64BIT if SPL 243 help 244 Choose this option to build a kernel for release 1 through 5 of the 245 MIPS64 architecture. 246 247config CPU_MIPS64_R2 248 bool "MIPS64 Release 2" 249 depends on SUPPORTS_CPU_MIPS64_R2 250 select 64BIT 251 select SPL_64BIT if SPL 252 help 253 Choose this option to build a kernel for release 2 through 5 of the 254 MIPS64 architecture. 255 256config CPU_MIPS64_R6 257 bool "MIPS64 Release 6" 258 depends on SUPPORTS_CPU_MIPS64_R6 259 select 64BIT 260 select SPL_64BIT if SPL 261 help 262 Choose this option to build a kernel for release 6 or later of the 263 MIPS64 architecture. 264 265config CPU_MIPS64_OCTEON 266 bool "Marvell Octeon series of CPUs" 267 depends on SUPPORTS_CPU_MIPS64_OCTEON 268 select 64BIT 269 select SPL_64BIT if SPL 270 help 271 Choose this option for Marvell Octeon CPUs. These CPUs are between 272 MIPS64 R5 and R6 with other extensions. 273 274endchoice 275 276menu "General setup" 277 278config ROM_EXCEPTION_VECTORS 279 bool "Build U-Boot image with exception vectors" 280 help 281 Enable this to include exception vectors in the U-Boot image. This is 282 required if the U-Boot entry point is equal to the address of the 283 CPU reset exception vector (e.g. U-Boot as ROM loader in Qemu, 284 U-Boot booted from parallel NOR flash). 285 Disable this, if the U-Boot image is booted from DRAM (e.g. by SPL). 286 In that case the image size will be reduced by 0x500 bytes. 287 288config SYS_MIPS_TIMER_FREQ 289 int "Fixed MIPS CPU timer frequency in Hz" 290 depends on HAS_FIXED_TIMER_FREQUENCY 291 help 292 Configures a fixed CPU timer frequency. 293 294config MIPS_CM_BASE 295 hex "MIPS CM GCR Base Address" 296 depends on MIPS_CM 297 default 0x16100000 if TARGET_BOSTON 298 default 0x1fbf8000 299 help 300 The physical base address at which to map the MIPS Coherence Manager 301 Global Configuration Registers (GCRs). This should be set such that 302 the GCRs occupy a region of the physical address space which is 303 otherwise unused, or at minimum that software doesn't need to access. 304 305config MIPS_CACHE_INDEX_BASE 306 hex "Index base address for cache initialisation" 307 default 0x80000000 if CPU_MIPS32 308 default 0xffffffff80000000 if CPU_MIPS64 309 help 310 This is the base address for a memory block, which is used for 311 initialising the cache lines. This is also the base address of a memory 312 block which is used for loading and filling cache lines when 313 SYS_MIPS_CACHE_INIT_RAM_LOAD is selected. 314 Normally this is CKSEG0. If the MIPS system needs to move this block 315 to some SRAM or ScratchPad RAM, adapt this option accordingly. 316 317config MIPS_MACH_EARLY_INIT 318 bool "Enable mach specific very early init code" 319 help 320 Use this to enable the call to mips_mach_early_init() very early 321 from start.S. This function can be used e.g. to do some very early 322 CPU / SoC intitialization or image copying. Its called very early 323 and at this stage the PC might not match the linking address 324 (CONFIG_TEXT_BASE) - no absolute jump done until this call. 325 326config MIPS_CACHE_SETUP 327 bool "Allow generic start code to initialize and setup caches" 328 default n if SKIP_LOWLEVEL_INIT 329 default y 330 help 331 This allows the generic start code to invoke the generic initialization 332 of the CPU caches. Disabling this can be useful for RAM boot scenarios 333 (EJTAG, SPL payload) or for machines which don't need cache initialization 334 or which want to provide their own cache implementation. 335 336 If unsure, say yes. 337 338config MIPS_CACHE_DISABLE 339 bool "Allow generic start code to initially disable caches" 340 default n if SKIP_LOWLEVEL_INIT 341 default y 342 help 343 This allows the generic start code to initially disable the CPU caches 344 and run uncached until the caches are initialized and enabled. Disabling 345 this can be useful on machines which don't need cache initialization or 346 which want to provide their own cache implementation. 347 348 If unsure, say yes. 349 350config MIPS_RELOCATION_TABLE_SIZE 351 hex "Relocation table size" 352 range 0x100 0x10000 353 default "0xc000" if TARGET_MALTA 354 default "0x8000" 355 ---help--- 356 A table of relocation data will be appended to the U-Boot binary 357 and parsed in relocate_code() to fix up all offsets in the relocated 358 U-Boot. 359 360 This option allows the amount of space reserved for the table to be 361 adjusted in a range from 256 up to 64k. The default is 32k and should 362 be ok in most cases. Reduce this value to shrink the size of U-Boot 363 binary. 364 365 The build will fail and a valid size suggested if this is too small. 366 367 If unsure, leave at the default value. 368 369config RESTORE_EXCEPTION_VECTOR_BASE 370 bool "Restore exception vector base before booting linux kernel" 371 help 372 In U-Boot the exception vector base will be moved to top of memory, 373 to be used to display register dump when exception occurs. 374 But some old linux kernel does not honor the base set in CP0_EBASE. 375 A modified exception vector base will cause kernel crash. 376 377 This option will restore the exception vector base to its previous 378 value. 379 380 If unsure, say N. 381 382config OVERRIDE_EXCEPTION_VECTOR_BASE 383 bool "Override the exception vector base to be restored" 384 depends on RESTORE_EXCEPTION_VECTOR_BASE 385 help 386 Enable this option if you want to use a different exception vector 387 base rather than the previously saved one. 388 389config NEW_EXCEPTION_VECTOR_BASE 390 hex "New exception vector base" 391 depends on OVERRIDE_EXCEPTION_VECTOR_BASE 392 range 0x80000000 0xbffff000 393 default 0x80000000 394 help 395 The exception vector base to be restored before booting linux kernel 396 397config INIT_STACK_WITHOUT_MALLOC_F 398 bool "Do not reserve malloc space on initial stack" 399 help 400 Enable this option if you don't want to reserve malloc space on 401 initial stack. This is useful if the initial stack can't hold large 402 malloc space. Platform should set the malloc_base later when DRAM is 403 ready to use. 404 405config SPL_INIT_STACK_WITHOUT_MALLOC_F 406 bool "Do not reserve malloc space on initial stack in SPL" 407 help 408 Enable this option if you don't want to reserve malloc space on 409 initial stack. This is useful if the initial stack can't hold large 410 malloc space. Platform should set the malloc_base later when DRAM is 411 ready to use. 412 413config SPL_LOADER_SUPPORT 414 bool 415 help 416 Enable this option if you want to use SPL loaders without DM enabled. 417 418endmenu 419 420menu "OS boot interface" 421 422config MIPS_BOOT_CMDLINE_LEGACY 423 bool "Hand over legacy command line to Linux kernel" 424 default y 425 help 426 Enable this option if you want U-Boot to hand over the Yamon-style 427 command line to the kernel. All bootargs will be prepared as argc/argv 428 compatible list. The argument count (argc) is stored in register $a0. 429 The address of the argument list (argv) is stored in register $a1. 430 431config MIPS_BOOT_ENV_LEGACY 432 bool "Hand over legacy environment to Linux kernel" 433 default y 434 help 435 Enable this option if you want U-Boot to hand over the Yamon-style 436 environment to the kernel. Information like memory size, initrd 437 address and size will be prepared as zero-terminated key/value list. 438 The address of the environment is stored in register $a2. 439 440config MIPS_BOOT_FDT 441 bool "Hand over a flattened device tree to Linux kernel" 442 help 443 Enable this option if you want U-Boot to hand over a flattened 444 device tree to the kernel. According to UHI register $a0 will be set 445 to -2 and the FDT address is stored in $a1. 446 447endmenu 448 449config SUPPORTS_CPU_MIPS32_R1 450 bool 451 452config SUPPORTS_CPU_MIPS32_R2 453 bool 454 455config SUPPORTS_CPU_MIPS32_R6 456 bool 457 458config SUPPORTS_CPU_MIPS64_R1 459 bool 460 461config SUPPORTS_CPU_MIPS64_R2 462 bool 463 464config SUPPORTS_CPU_MIPS64_R6 465 bool 466 467config SUPPORTS_CPU_MIPS64_OCTEON 468 bool 469 470config HAS_FIXED_TIMER_FREQUENCY 471 bool 472 473config CPU_CAVIUM_OCTEON 474 bool 475 476config CPU_MIPS32 477 bool 478 default y if CPU_MIPS32_R1 || CPU_MIPS32_R2 || CPU_MIPS32_R6 479 480config CPU_MIPS64 481 bool 482 default y if CPU_MIPS64_R1 || CPU_MIPS64_R2 || CPU_MIPS64_R6 483 default y if CPU_MIPS64_OCTEON 484 485config MIPS_TUNE_4KC 486 bool 487 488config MIPS_TUNE_14KC 489 bool 490 491config MIPS_TUNE_24KC 492 bool 493 494config MIPS_TUNE_34KC 495 bool 496 497config MIPS_TUNE_74KC 498 bool 499 500config MIPS_TUNE_OCTEON3 501 bool 502 503config SWAP_IO_SPACE 504 bool 505 506config SYS_MIPS_CACHE_INIT_RAM_LOAD 507 bool 508 509config MIPS_INIT_STACK_IN_SRAM 510 bool 511 help 512 Select this if the initial stack frame could be setup in SRAM. 513 Normally the initial stack frame is set up in DRAM which is often 514 only available after lowlevel_init. With this option the initial 515 stack frame and the early C environment is set up before 516 lowlevel_init. Thus lowlevel_init does not need to be implemented 517 in assembler. 518 519config MIPS_SRAM_INIT 520 bool 521 depends on MIPS_INIT_STACK_IN_SRAM 522 help 523 Select this if the SRAM for initial stack needs to be initialized 524 before it can be used. If enabled, a function mips_sram_init() will 525 be called just before setup_stack_gd. 526 527config DMA_ADDR_T_64BIT 528 bool 529 help 530 Select this to enable 64-bit DMA addressing 531 532config SYS_DCACHE_SIZE 533 int 534 default 0 535 help 536 The total size of the L1 Dcache, if known at compile time. 537 538config SYS_DCACHE_LINE_SIZE 539 int 540 default 0 541 help 542 The size of L1 Dcache lines, if known at compile time. 543 544config SYS_ICACHE_SIZE 545 int 546 default 0 547 help 548 The total size of the L1 ICache, if known at compile time. 549 550config SYS_ICACHE_LINE_SIZE 551 int 552 default 0 553 help 554 The size of L1 Icache lines, if known at compile time. 555 556config SYS_SCACHE_LINE_SIZE 557 int 558 default 0 559 help 560 The size of L2 cache lines, if known at compile time. 561 562 563config SYS_CACHE_SIZE_AUTO 564 def_bool y if SYS_DCACHE_SIZE = 0 && SYS_ICACHE_SIZE = 0 && \ 565 SYS_DCACHE_LINE_SIZE = 0 && SYS_ICACHE_LINE_SIZE = 0 && \ 566 SYS_SCACHE_LINE_SIZE = 0 567 help 568 Select this (or let it be auto-selected by not defining any cache 569 sizes) in order to allow U-Boot to automatically detect the sizes 570 of caches at runtime. This has a small cost in code size & runtime 571 so if you know the cache configuration for your system at compile 572 time it would be beneficial to configure it. 573 574config MIPS_L2_CACHE 575 bool 576 help 577 Select this if your system includes an L2 cache and you want U-Boot 578 to initialise & maintain it. 579 580config DYNAMIC_IO_PORT_BASE 581 bool 582 583config MIPS_CM 584 bool 585 help 586 Select this if your system contains a MIPS Coherence Manager and you 587 wish U-Boot to configure it or make use of it to retrieve system 588 information such as cache configuration. 589 590config MIPS_INSERT_BOOT_CONFIG 591 bool 592 help 593 Enable this to insert some board-specific boot configuration in 594 the U-Boot binary at offset 0x10. 595 596config MIPS_BOOT_CONFIG_WORD0 597 hex 598 depends on MIPS_INSERT_BOOT_CONFIG 599 default 0x420 if TARGET_MALTA 600 default 0x0 601 help 602 Value which is inserted as boot config word 0. 603 604config MIPS_BOOT_CONFIG_WORD1 605 hex 606 depends on MIPS_INSERT_BOOT_CONFIG 607 default 0x0 608 help 609 Value which is inserted as boot config word 1. 610 611endif 612 613endmenu 614