1if ARCH_ROCKCHIP 2 3config ROCKCHIP_PX30 4 bool "Support Rockchip PX30" 5 select ARM64 if !ARM64_BOOT_AARCH32 6 select GICV2 7 select ARM_SMCCC 8 select SUPPORT_SPL 9 select SUPPORT_TPL 10 select SPL if !ARM64_BOOT_AARCH32 11 select TPL if !ARM64_BOOT_AARCH32 12 select TPL_TINY_FRAMEWORK if TPL 13 14 imply SPL_SEPARATE_BSS 15 imply SPL_SERIAL_SUPPORT 16 imply TPL_SERIAL_SUPPORT 17 help 18 The Rockchip PX30 is a ARM-based SoC with a quad-core Cortex-A35 19 including NEON and GPU, Mali-400 graphics, several DDR3 options 20 and video codec support. Peripherals include Gigabit Ethernet, 21 USB2 host and OTG, SDIO, I2S, UART, SPI, I2C and PWMs. 22 23if ROCKCHIP_PX30 24 25config TPL_LDSCRIPT 26 default "arch/arm/mach-rockchip/u-boot-tpl-v8.lds" 27 28config TPL_TEXT_BASE 29 default 0xff0e1000 30 31config TPL_MAX_SIZE 32 default 10240 33 34config ROCKCHIP_RK3326 35 bool "Support Rockchip RK3326" 36 help 37 RK3326 can use most code from PX30, but at some situations we have 38 to distinguish between RK3326 and PX30, so this macro gives help. 39 It is usually selected in rk3326 board defconfig. 40 41config ROCKCHIP_RK3358 42 bool "Support Rockchip RK3358" 43 help 44 RK3358 can use most code from PX30, but at some situations we have 45 to distinguish between RK3358 and PX30, so this macro gives help. 46 It is usually selected in rk3358 board defconfig. 47endif 48 49config ROCKCHIP_RK3036 50 bool "Support Rockchip RK3036" 51 select CPU_V7 52 select SUPPORT_SPL 53 select SUPPORT_TPL 54 select SPL 55 select TPL 56 select BOARD_LATE_INIT 57 select ROCKCHIP_BROM_HELPER 58 select TPL_NEEDS_SEPARATE_TEXT_BASE if TPL 59 select TPL_NEEDS_SEPARATE_STACK if TPL 60 select ARM_SMCCC 61 select ARM_ERRATA_814220 62 help 63 The Rockchip RK3036 is a ARM-based SoC with a dual-core Cortex-A7 64 including NEON and GPU, Mali-400 graphics, several DDR3 options 65 and video codec support. Peripherals include Gigabit Ethernet, 66 USB2 host and OTG, SDIO, I2S, UART, SPI, I2C and PWMs. 67 68config ROCKCHIP_RK3128 69 bool "Support Rockchip RK3128" 70 select CPU_V7 71 select GICV2 72 select ARM_SMCCC 73 select ARM_ERRATA_814220 74 help 75 The Rockchip RK3128 is a ARM-based SoC with a quad-core Cortex-A7 76 including NEON and GPU, Mali-400 graphics, several DDR3 options 77 and video codec support. Peripherals include Gigabit Ethernet, 78 USB2 host and OTG, SDIO, I2S, UART, SPI, I2C and PWMs. 79 80if ROCKCHIP_RK3128 81 82config ROCKCHIP_RK3126 83 bool "Support Rockchip RK3126 " 84 help 85 RK3126 can use most code from RK3128, but at some situations we have 86 to distinguish between RK3126 and RK3128, so this macro gives help. 87 It is usually selected in rk3126 board defconfig. 88 89config ROCKCHIP_PX3SE 90 bool "Support Rockchip PX3SE" 91 help 92 PX3SE is a variant of RK3128, it shares codes with RK3128, but we still 93 need this macro to distinguish PX3SE and RK3128. 94endif 95 96config ROCKCHIP_RK3066 97 bool "Support Rockchip RK3066" 98 select CPU_V7 99 select SUPPORT_SPL 100 select SUPPORT_TPL 101 select SPL 102 select TPL 103 select BOARD_LATE_INIT 104 select ROCKCHIP_BROM_HELPER 105 select SPL_ROCKCHIP_EARLYRETURN_TO_BROM 106 help 107 The Rockchip RK3066 is a ARM-based SoC with a dual-core Cortex-A9 108 including NEON and GPU, Mali-400 graphics, several DDR3 options 109 and video codec support. Peripherals include ethernet, USB2 host 110 and OTG, SDIO, I2S, UART, SPI, I2C and PWMs. 111 112config ROCKCHIP_RK3188 113 bool "Support Rockchip RK3188" 114 select CPU_V7 115 select SPL_BOARD_INIT if SPL 116 select SUPPORT_SPL 117 select SPL 118 select SPL_CLK 119 select SPL_REGMAP 120 select SPL_SYSCON 121 select SPL_RAM 122 select SPL_DRIVERS_MISC_SUPPORT 123 select SPL_ROCKCHIP_EARLYRETURN_TO_BROM 124 select BOARD_LATE_INIT 125 select ROCKCHIP_BROM_HELPER 126 help 127 The Rockchip RK3188 is a ARM-based SoC with a quad-core Cortex-A9 128 including NEON and GPU, 512KB L2 cache, Mali-400 graphics, two 129 video interfaces, several memory options and video codec support. 130 Peripherals include Fast Ethernet, USB2 host and OTG, SDIO, I2S, 131 UART, SPI, I2C and PWMs. 132 133config ROCKCHIP_RK322X 134 bool "Support Rockchip RK3228/RK3229" 135 select CPU_V7 136 select SUPPORT_SPL 137 select SUPPORT_TPL 138 select SPL 139 select TPL 140 select TPL_NEEDS_SEPARATE_TEXT_BASE if SPL 141 select TPL_NEEDS_SEPARATE_STACK if TPL 142 select SPL_DRIVERS_MISC_SUPPORT 143 imply SPL_SERIAL_SUPPORT 144 imply TPL_SERIAL_SUPPORT 145 select ROCKCHIP_BROM_HELPER 146 select TPL_LIBCOMMON_SUPPORT 147 select TPL_LIBGENERIC_SUPPORT 148 select GICV2 149 select ARM_SMCCC 150 select ARM_ERRATA_814220 151 help 152 The Rockchip RK3229 is a ARM-based SoC with a dual-core Cortex-A7 153 including NEON and GPU, Mali-400 graphics, several DDR3 options 154 and video codec support. Peripherals include Gigabit Ethernet, 155 USB2 host and OTG, SDIO, I2S, UART, SPI, I2C and PWMs. 156 157if ROCKCHIP_RK322X 158 159config ROCKCHIP_RK3128X 160 bool "Support Rockchip RK3128X " 161 help 162 RK3128X can use most code from RK322X, but at some situations we have 163 to distinguish between RK3128X and RK322X, so this macro gives help. 164 It is usually selected in RK3128X board defconfig. 165endif 166 167config ROCKCHIP_RK3288 168 bool "Support Rockchip RK3288" 169 select CPU_V7 170 select SPL_BOARD_INIT if SPL 171 select SUPPORT_SPL 172 select SUPPORT_TPL 173 select SPL 174 select TPL 175 select TPL_NEEDS_SEPARATE_TEXT_BASE if TPL 176 select TPL_NEEDS_SEPARATE_STACK if TPL 177 imply TPL_SERIAL_SUPPORT 178 select GICV2 179 select ARM_SMCCC 180 select SPL_OPTEE 181 select FIT 182 select SPL_LOAD_FIT 183 select TPL_LIBCOMMON_SUPPORT 184 select TPL_LIBGENERIC_SUPPORT 185 select TPL_SYS_MALLOC_SIMPLE 186 select TPL_BOOTROM_SUPPORT 187 select TPL_DRIVERS_MISC_SUPPORT 188 select TPL_OF_CONTROL 189 select TPL_DM 190 select TPL_REGMAP 191 select TPL_SYSCON 192 select TPL_RAM 193 select TPL_CLK 194 select TPL_TINY_MEMSET 195 help 196 The Rockchip RK3288 is a ARM-based SoC with a quad-core Cortex-A17 197 including NEON and GPU, 1MB L2 cache, Mali-T7 graphics, two 198 video interfaces supporting HDMI and eDP, several DDR3 options 199 and video codec support. Peripherals include Gigabit Ethernet, 200 USB2 host and OTG, SDIO, I2S, UARTs, SPI, I2C and PWMs. 201 202if ROCKCHIP_RK3288 203config SPL_FIT_GENERATOR 204 default "arch/arm/mach-rockchip/make_fit_optee.sh" 205 206config TPL_LDSCRIPT 207 default "arch/arm/mach-rockchip/u-boot-tpl.lds" 208 209config TPL_TEXT_BASE 210 default 0xff704000 211 212config TPL_MAX_SIZE 213 default 32768 214 215config TPL_STACK 216 default 0xff718000 217 218endif 219 220config ROCKCHIP_RK3308 221 bool "Support Rockchip RK3308" 222 select ARM64 if !ARM64_BOOT_AARCH32 223 select ARM_SMCCC 224 imply GICV2 225 select SUPPORT_SPL if !ARM64_BOOT_AARCH32 226 select SUPPORT_TPL if !ARM64_BOOT_AARCH32 227 select SPL if !ARM64_BOOT_AARCH32 228 select TPL if !ARM64_BOOT_AARCH32 229 imply SPL_CLK 230 imply SPL_REGMAP 231 imply SPL_SYSCON 232 imply SPL_RAM 233 imply SPL_SERIAL_SUPPORT 234 imply TPL_SERIAL_SUPPORT 235 imply SPL_SEPARATE_BSS 236 help 237 The Rockchip RK3308 is a ARM-based Soc which embeded with quad 238 Cortex-A35 and highly integrated audio interfaces. 239 240if ROCKCHIP_RK3308 241 242config TPL_LDSCRIPT 243 default "arch/arm/mach-rockchip/u-boot-tpl-v8.lds" 244 245config TPL_TEXT_BASE 246 default 0xfff81000 247 248config TPL_MAX_SIZE 249 default 10240 250 251config TPL_STACK 252 default 0xfff84000 253 254endif 255 256config ROCKCHIP_RK3328 257 bool "Support Rockchip RK3328" 258 select ARM64 259 select GICV2 260 select SUPPORT_SPL 261 select SUPPORT_TPL 262 select SPL 263 select TPL 264 select TPL_NEEDS_SEPARATE_TEXT_BASE if TPL 265 select TPL_NEEDS_SEPARATE_STACK if TPL 266 imply SPL_SERIAL_SUPPORT 267 imply TPL_SERIAL_SUPPORT 268 imply SPL_SEPARATE_BSS 269 select ARM_SMCCC 270 help 271 The Rockchip RK3328 is a ARM-based SoC with a quad-core Cortex-A53. 272 including NEON and GPU, 1MB L2 cache, Mali-T7 graphics, two 273 video interfaces supporting HDMI and eDP, several DDR3 options 274 and video codec support. Peripherals include Gigabit Ethernet, 275 USB2 host and OTG, SDIO, I2S, UARTs, SPI, I2C and PWMs. 276 277if ROCKCHIP_RK3328 278 279config TPL_LDSCRIPT 280 default "arch/arm/mach-rockchip/u-boot-tpl-v8.lds" 281 282config TPL_TEXT_BASE 283 default 0xff091000 284 285config TPL_MAX_SIZE 286 default 28672 287 288config TPL_STACK 289 default 0xff098000 290 291endif 292 293config ROCKCHIP_RK3368 294 bool "Support Rockchip RK3368" 295 select ARM64 296 select SUPPORT_SPL 297 select SUPPORT_TPL 298 select TPL_NEEDS_SEPARATE_TEXT_BASE if SPL 299 select TPL_NEEDS_SEPARATE_STACK if TPL 300 imply SPL_SEPARATE_BSS 301 imply SPL_SERIAL_SUPPORT 302 imply TPL_SERIAL_SUPPORT 303 select GICV2 304 select ARM_SMCCC 305 help 306 The Rockchip RK3368 is a ARM-based SoC with a octa-core (organised 307 into a big and little cluster with 4 cores each) Cortex-A53 including 308 AdvSIMD, 512KB L2 cache (for the big cluster) and 256 KB L2 cache 309 (for the little cluster), PowerVR G6110 based graphics, one video 310 output processor supporting LVDS/HDMI/eDP, several DDR3 options and 311 video codec support. 312 313 On-chip peripherals include Gigabit Ethernet, USB2 host and OTG, SDIO, 314 I2S, UARTs, SPI, I2C and PWMs. 315 316if ROCKCHIP_RK3368 317 318config ROCKCHIP_PX5 319 bool "Support Rockchip PX5" 320 help 321 PX5 is a variant of RK3368, it shares codes with RK3368, but we still 322 need this macro to distinguish PX5 and RK3368. 323 324config TPL_LDSCRIPT 325 default "arch/arm/mach-rockchip/rk3368/u-boot-tpl.lds" 326 327config TPL_TEXT_BASE 328 default 0xff8c1000 329 330config TPL_MAX_SIZE 331 default 28672 332 333config TPL_STACK 334 default 0xff8cffff 335 336endif 337 338config ROCKCHIP_RK3399 339 bool "Support Rockchip RK3399" 340 select ARM64 341 select SUPPORT_SPL 342 select SUPPORT_TPL 343 select SPL 344 select TPL 345 select TPL_NEEDS_SEPARATE_TEXT_BASE if TPL 346 select TPL_NEEDS_SEPARATE_STACK if TPL 347 imply TPL_SERIAL_SUPPORT 348 select SPL_SEPARATE_BSS 349 select SPL_SERIAL_SUPPORT 350 select SPL_DRIVERS_MISC_SUPPORT 351 select GICV3 352 select BOARD_LATE_INIT 353 select ROCKCHIP_BROM_HELPER 354 select ARM_SMCCC 355 select TPL_LIBCOMMON_SUPPORT 356 select TPL_LIBGENERIC_SUPPORT 357 select TPL_SYS_MALLOC_SIMPLE 358 select TPL_BOOTROM_SUPPORT 359 select TPL_DRIVERS_MISC_SUPPORT 360 select TPL_OF_CONTROL 361 select TPL_DM 362 select TPL_REGMAP 363 select TPL_SYSCON 364 select TPL_RAM 365 select TPL_CLK 366 select TPL_TINY_MEMSET 367 help 368 The Rockchip RK3399 is a ARM-based SoC with a dual-core Cortex-A72 369 and quad-core Cortex-A53. 370 including NEON and GPU, 1MB L2 cache, Mali-T7 graphics, two 371 video interfaces supporting HDMI and eDP, several DDR3 options 372 and video codec support. Peripherals include Gigabit Ethernet, 373 USB2 host and OTG, SDIO, I2S, UARTs, SPI, I2C and PWMs. 374 375if ROCKCHIP_RK3399 376 377config ROCKCHIP_RK3399PRO 378 bool "Support Rockchip RK3399Pro" 379 380config TPL_LDSCRIPT 381 default "arch/arm/mach-rockchip/u-boot-tpl-v8.lds" 382 383config TPL_TEXT_BASE 384 default 0xff8c2000 385 386config TPL_MAX_SIZE 387 default 188416 388 389config TPL_STACK 390 default 0xff8effff 391 392endif 393 394config ROCKCHIP_RK3506 395 bool "Support Rockchip RK3506" 396 select CPU_V7 397 select ROCKCHIP_BROM_HELPER 398 select DEBUG_UART_BOARD_INIT 399 select ARM_SMCCC 400 select GICV2 401 select ARM_ERRATA_814220 402 imply SUPPORT_SPL 403 imply SUPPORT_TPL 404 imply SPL 405 imply TPL 406 imply TPL_SERIAL_SUPPORT 407 imply SPL_SERIAL_SUPPORT 408 imply TPL_TINY_FRAMEWORK if TPL 409 imply BOARD_LATE_INIT 410 imply ROCKCHIP_GPIO_V2 411 412 help 413 The Rockchip RK3506 is a ARM-based SoC with a tri-core Cortex-A7. 414 415if ROCKCHIP_RK3506 416 417config TPL_LDSCRIPT 418 default "arch/arm/mach-rockchip/u-boot-tpl.lds" 419 420config TPL_TEXT_BASE 421 default 0xfff81000 422 423config TPL_MAX_SIZE 424 default 45056 425 426endif 427 428config ROCKCHIP_RK3528 429 bool "Support Rockchip RK3528" 430 select ARM64 if !ARM64_BOOT_AARCH32 431 select GICV2 if !ARM64_BOOT_AARCH32 432 select SUPPORT_TPL if !ARM64_BOOT_AARCH32 433 select SUPPORT_SPL if !ARM64_BOOT_AARCH32 434 select TPL_TINY_FRAMEWORK if TPL 435 select DEBUG_UART_BOARD_INIT 436 imply TPL if !ARM64_BOOT_AARCH32 437 imply SPL if !ARM64_BOOT_AARCH32 438 imply TPL_SERIAL_SUPPORT 439 help 440 The Rockchip RK3528 is a ARM-based SoC with a quad-core Cortex-A53. 441 442if ROCKCHIP_RK3528 443 444config TPL_LDSCRIPT 445 default "arch/arm/mach-rockchip/u-boot-tpl-v8.lds" 446 447config TPL_TEXT_BASE 448 default 0xfe481000 449 450config TPL_MAX_SIZE 451 default 61440 452 453endif 454 455config ROCKCHIP_RK3562 456 bool "Support Rockchip RK3562" 457 select ARM_SMCCC 458 select ARM64 if !ARM64_BOOT_AARCH32 459 select GICV2 if !ARM64_BOOT_AARCH32 460 select SUPPORT_TPL if !ARM64_BOOT_AARCH32 461 select SUPPORT_SPL if !ARM64_BOOT_AARCH32 462 select TPL_TINY_FRAMEWORK if TPL 463 select DEBUG_UART_BOARD_INIT 464 imply TPL if !ARM64_BOOT_AARCH32 465 imply SPL if !ARM64_BOOT_AARCH32 466 imply TPL_SERIAL_SUPPORT 467 help 468 The Rockchip RK3562 is a ARM-based SoC with a quad-core Cortex-A53. 469 470if ROCKCHIP_RK3562 471 472config TPL_LDSCRIPT 473 default "arch/arm/mach-rockchip/u-boot-tpl-v8.lds" 474 475config TPL_TEXT_BASE 476 default 0xfe481000 477 478config TPL_MAX_SIZE 479 default 61440 480 481endif 482 483config ROCKCHIP_RK3568 484 bool "Support Rockchip RK3568" 485 select ARM64 if !ARM64_BOOT_AARCH32 486 select ARM_SMCCC 487 select GICV3 if !ARM64_BOOT_AARCH32 && !SUPPORT_USBPLUG 488 select SUPPORT_TPL if !ARM64_BOOT_AARCH32 489 select SUPPORT_SPL if !ARM64_BOOT_AARCH32 490 select TPL_TINY_FRAMEWORK if TPL 491 select DEBUG_UART_BOARD_INIT 492 imply TPL if !ARM64_BOOT_AARCH32 493 imply SPL if !ARM64_BOOT_AARCH32 494 imply TPL_SERIAL_SUPPORT 495 help 496 The Rockchip RK3568 is a ARM-based SoC with a quad-core Cortex-A55. 497 498if ROCKCHIP_RK3568 499 500config TPL_LDSCRIPT 501 default "arch/arm/mach-rockchip/u-boot-tpl-v8.lds" 502 503config TPL_TEXT_BASE 504 default 0xfdcc1000 505 506config TPL_MAX_SIZE 507 default 61440 508 509endif 510 511config ROCKCHIP_RK3576 512 bool "Support Rockchip RK3576" 513 select ARM64 514 select GICV2 515 select ARM_SMCCC 516 select DEBUG_UART_BOARD_INIT 517 select ROCKCHIP_BROM_HELPER 518 select SUPPORT_SPL 519 select SUPPORT_TPL 520 select TPL_TINY_FRAMEWORK if TPL 521 imply TPL 522 imply SPL 523 imply TPL_SERIAL_SUPPORT 524 525 help 526 The Rockchip RK3576 is a ARM-based SoC with a quad-core Cortex-A53 527 and a quad-core Cortex-A72. 528 529if ROCKCHIP_RK3576 530 531config TPL_LDSCRIPT 532 default "arch/arm/mach-rockchip/u-boot-tpl-v8.lds" 533 534config TPL_TEXT_BASE 535 default 0x3ff81000 536 537config TPL_MAX_SIZE 538 default 61440 539 540endif 541 542config ROCKCHIP_RK3588 543 bool "Support Rockchip RK3588" 544 select ARM64 if !ARM64_BOOT_AARCH32 545 select ARM_SMCCC 546 select DEBUG_UART_BOARD_INIT 547 select GICV3 if !ARM64_BOOT_AARCH32 && !SUPPORT_USBPLUG 548 select ROCKCHIP_BROM_HELPER 549 select SUPPORT_SPL if !ARM64_BOOT_AARCH32 550 select SUPPORT_TPL if !ARM64_BOOT_AARCH32 551 select TPL_TINY_FRAMEWORK if TPL 552 imply TPL if !ARM64_BOOT_AARCH32 553 imply SPL if !ARM64_BOOT_AARCH32 554 imply TPL_SERIAL_SUPPORT 555 select DEBUG_UART_BOARD_INIT 556 help 557 The Rockchip RK3588 is a ARM-based SoC with a quad-core Cortex-A55. 558 559if ROCKCHIP_RK3588 560 561config TPL_LDSCRIPT 562 default "arch/arm/mach-rockchip/u-boot-tpl-v8.lds" 563 564config TPL_TEXT_BASE 565 default 0xff001000 566 567config TPL_MAX_SIZE 568 default 61440 569endif 570 571config ROCKCHIP_RK1808 572 bool "Support Rockchip RK1808" 573 select ARM64 574 select ARM_SMCCC 575 select GICV3 if !COPROCESSOR_RK1808 576 select SUPPORT_SPL if !COPROCESSOR_RK1808 577 select SUPPORT_TPL if !COPROCESSOR_RK1808 578 help 579 The Rockchip RK1808 is a ARM-based Soc which embedded with dual 580 Cortex-A35. 581 582if ROCKCHIP_RK1808 583 584config ROCKCHIP_RK1806 585 bool "Support Rockchip RK1806" 586 help 587 The Rockchip RK1806 is a ARM-based Soc which embedded with dual 588 Cortex-A35. 589 590config COPROCESSOR_RK1808 591 bool "RK1808 coprocessor" 592 help 593 This indicates the RK1808 is working as a coprocessor for another 594 more powerful SoC. 595 596endif 597 598config ROCKCHIP_RV1103B 599 bool "Support Rockchip RV1103B" 600 select CPU_V7 601 select ARM_ZERO_CNTVOFF 602 select ROCKCHIP_BROM_HELPER 603 select DEBUG_UART_BOARD_INIT 604 select ARM_ERRATA_814220 605 imply SUPPORT_SPL 606 imply SUPPORT_TPL 607 imply SPL 608 imply TPL 609 imply TPL_SERIAL_SUPPORT 610 imply TPL_TINY_FRAMEWORK if TPL 611 imply BOARD_LATE_INIT 612 imply ROCKCHIP_GPIO_V2 613 614 help 615 The Rockchip RV1103B is a ARM-based SoC with a Cortex-A7 and 616 other modules. 617 618if ROCKCHIP_RV1103B 619 620config TPL_LDSCRIPT 621 default "arch/arm/mach-rockchip/u-boot-tpl.lds" 622 623config TPL_TEXT_BASE 624 default 0x210f7000 625 626config TPL_MAX_SIZE 627 default 32768 628endif 629 630config ROCKCHIP_RV1106 631 bool "Support Rockchip RV1106" 632 select CPU_V7 633 select DEBUG_UART_BOARD_INIT 634 select ARM_ERRATA_814220 635 imply SUPPORT_SPL 636 imply SUPPORT_TPL 637 imply SPL 638 imply TPL 639 imply TPL_SERIAL_SUPPORT 640 imply TPL_TINY_FRAMEWORK if TPL 641 imply BOARD_LATE_INIT 642 imply ROCKCHIP_GPIO_V2 643 help 644 The Rockchip RV1106 is a ARM-based SoC with a Cortex-A7 and 645 other modules. 646 647if ROCKCHIP_RV1106 648 649config TPL_LDSCRIPT 650 default "arch/arm/mach-rockchip/u-boot-tpl.lds" 651 652config TPL_TEXT_BASE 653 default 0xff701000 654 655config TPL_MAX_SIZE 656 default 32768 657endif 658 659config ROCKCHIP_RV1108 660 bool "Support Rockchip RV1108" 661 select CPU_V7 662 select SUPPORT_SPL 663 select SUPPORT_TPL 664 select SPL 665 select TPL 666 select BOARD_LATE_INIT 667 select ARM_ERRATA_814220 668 help 669 The Rockchip RV1108 is a ARM-based SoC with a single-core Cortex-A7 670 and a DSP. 671 672if ROCKCHIP_RV1108 673 674config TPL_LDSCRIPT 675 default "arch/arm/mach-rockchip/u-boot-tpl.lds" 676 677config TPL_TEXT_BASE 678 default 0x10080800 679 680config TPL_MAX_SIZE 681 default 6144 682 683config TPL_STACK 684 default 0x10082000 685 686endif 687 688config ROCKCHIP_RV1126 689 bool "Support Rockchip RV1126" 690 select CPU_V7 691 imply SUPPORT_TPL 692 imply SUPPORT_SPL 693 imply TPL_TINY_FRAMEWORK if TPL 694 select DEBUG_UART_BOARD_INIT 695 select ARM_ERRATA_814220 696 imply TPL 697 imply SPL 698 imply GICV2 699 imply ARM_SMCCC 700 imply BOARD_LATE_INIT 701 imply ROCKCHIP_GPIO_V2 702 imply TPL_SERIAL_SUPPORT 703 help 704 The Rockchip RV1126 is a ARM-based SoC with a quad-core Cortex-A7 705 and a risc-v core. 706 707if ROCKCHIP_RV1126 708 709config TPL_LDSCRIPT 710 default "arch/arm/mach-rockchip/u-boot-tpl.lds" 711 712config TPL_TEXT_BASE 713 default 0xff701000 714 715config TPL_MAX_SIZE 716 default 32768 717endif 718 719config SPL_ROCKCHIP_BACK_TO_BROM 720 bool "SPL returns to bootrom" 721 default y if ROCKCHIP_RK3036 722 select ROCKCHIP_BROM_HELPER 723 depends on SPL 724 help 725 Rockchip SoCs have ability to load SPL & U-Boot binary. If enabled, 726 SPL will return to the boot rom, which will then load the U-Boot 727 binary to keep going on. 728 729config TPL_ROCKCHIP_BACK_TO_BROM 730 bool "TPL returns to bootrom" 731 default y 732 select ROCKCHIP_BROM_HELPER 733 depends on TPL 734 help 735 Rockchip SoCs have ability to load SPL & U-Boot binary. If enabled, 736 SPL will return to the boot rom, which will then load the U-Boot 737 binary to keep going on. 738 739config ARM64_BOOT_AARCH32 740 bool "Support Boot an ARM64 on AArch32 execution state, ie. U-Boot is in AArch32" 741 select CPU_V7 742 default n 743 help 744 If you want to boot an ARM64 processor on 32-bit mode, say y here. 745 746config ARM64_SWITCH_TO_AARCH32 747 bool "Support AArch64 U-Boot boot AArch32 kernel" 748 default n 749 help 750 If you want AArch64 U-Boot to boot AArch32 kernel, say y here. 751 This feature needs ATF to help switch the PE state. 752 753config ROCKCHIP_BOOT_MODE_REG 754 hex "Rockchip boot mode flag register address" 755 default 0xff010200 if ROCKCHIP_PX30 756 default 0x200081c8 if ROCKCHIP_RK3036 757 default 0x100a0038 if ROCKCHIP_RK3128 758 default 0x20004040 if ROCKCHIP_RK3188 759 default 0x110005c8 if ROCKCHIP_RK322X 760 default 0xff730094 if ROCKCHIP_RK3288 761 default 0xff000500 if ROCKCHIP_RK3308 762 default 0xff1005c8 if ROCKCHIP_RK3328 763 default 0xff738200 if ROCKCHIP_RK3368 764 default 0xff320300 if ROCKCHIP_RK3399 765 default 0xff910200 if ROCKCHIP_RK3506 766 default 0xff370200 if ROCKCHIP_RK3528 767 default 0xff010220 if ROCKCHIP_RK3562 768 default 0xfdc20200 if ROCKCHIP_RK3568 769 default 0x26024040 if ROCKCHIP_RK3576 770 default 0xfd588080 if ROCKCHIP_RK3588 771 default 0xfe020200 if ROCKCHIP_RK1808 772 default 0x20160200 if ROCKCHIP_RV1103B 773 default 0xff020200 if ROCKCHIP_RV1106 774 default 0x10300580 if ROCKCHIP_RV1108 775 default 0xfe020200 if ROCKCHIP_RV1126 776 default 0 777 help 778 The Soc will enter to different boot mode(defined in asm/arch/boot_mode.h) 779 according to the value from this register. 780 781config ROCKCHIP_STIMER_BASE 782 hex "Rockchip Secure timer base address" 783 default 0xff220020 if ROCKCHIP_PX30 784 default 0x200440a0 if ROCKCHIP_RK3036 785 default 0x2000e000 if ROCKCHIP_RK3066 786 default 0x20018020 if ROCKCHIP_RK3126 787 default 0x200440a0 if ROCKCHIP_RK3128 788 default 0x2000e000 if ROCKCHIP_RK3188 789 default 0x110d0020 if ROCKCHIP_RK322X 790 default 0xff810020 if ROCKCHIP_RK3288 791 default 0xff1b00a0 if ROCKCHIP_RK3308 792 default 0xff1d0020 if ROCKCHIP_RK3328 793 default 0xff830020 if ROCKCHIP_RK3368 794 default 0xff8680a0 if ROCKCHIP_RK3399 795 default 0xff980000 if ROCKCHIP_RK3506 796 default 0xff620000 if ROCKCHIP_RK3528 797 default 0xffa90020 if ROCKCHIP_RK3562 798 default 0xfdd1c020 if ROCKCHIP_RK3568 799 default 0x27400000 if ROCKCHIP_RK3576 800 default 0xfd8c8000 if ROCKCHIP_RK3588 801 default 0x20500000 if ROCKCHIP_RV1103B 802 default 0xff590020 if ROCKCHIP_RV1106 803 default 0x10350020 if ROCKCHIP_RV1108 804 default 0xff670020 if ROCKCHIP_RV1126 805 default 0 806 help 807 The secure timer inited in SPL/TPL in secure word, ARM generic timer 808 works after this timer work. 809 810config ROCKCHIP_IRAM_START_ADDR 811 hex "Rockchip Secure timer base address" 812 default 0xff0e0000 if ROCKCHIP_PX30 813 default 0x10080000 if ROCKCHIP_RK3036 814 default 0x10080000 if ROCKCHIP_RK3128 815 default 0x10080000 if ROCKCHIP_RK3188 816 default 0x10080000 if ROCKCHIP_RK322X 817 default 0xff700000 if ROCKCHIP_RK3288 818 default 0xfff80000 if ROCKCHIP_RK3308 819 default 0xff091000 if ROCKCHIP_RK3328 820 default 0xff8c0000 if ROCKCHIP_RK3368 821 default 0xff8c0000 if ROCKCHIP_RK3399 822 default 0xfff80000 if ROCKCHIP_RK3506 823 default 0xfe480000 if ROCKCHIP_RK3528 824 default 0xfe480000 if ROCKCHIP_RK3562 825 default 0xfdcc0000 if ROCKCHIP_RK3568 826 default 0x3ff80000 if ROCKCHIP_RK3576 827 default 0xff000000 if ROCKCHIP_RK3588 828 default 0x210f6000 if ROCKCHIP_RV1103B 829 default 0xff6c0000 if ROCKCHIP_RV1106 830 default 0x10080000 if ROCKCHIP_RV1108 831 default 0xff700000 if ROCKCHIP_RV1126 832 default 0 833 help 834 The IRAM start addr is to locate variant of the boot device from 835 bootrom. 836 837config ROCKCHIP_SPL_RESERVE_IRAM 838 hex "Size of IRAM reserved in SPL" 839 default 0 840 help 841 SPL may need reserve memory for firmware loaded by SPL, whose load 842 address is in IRAM and may overlay with SPL text area if not 843 reserved. 844 845config ROCKCHIP_BROM_HELPER 846 bool 847 848config SPL_ROCKCHIP_EARLYRETURN_TO_BROM 849 bool "SPL requires early-return (for RK3188-style BROM) to BROM" 850 depends on SPL && ENABLE_ARM_SOC_BOOT0_HOOK 851 help 852 Some Rockchip BROM variants (e.g. on the RK3188) load the 853 first stage in segments and enter multiple times. E.g. on 854 the RK3188, the first 1KB of the first stage are loaded 855 first and entered; after returning to the BROM, the 856 remainder of the first stage is loaded, but the BROM 857 re-enters at the same address/to the same code as previously. 858 859 This enables support code in the BOOT0 hook for the SPL stage 860 to allow multiple entries. 861 862config TPL_ROCKCHIP_EARLYRETURN_TO_BROM 863 bool "TPL requires early-return (for RK3188-style BROM) to BROM" 864 depends on TPL && ENABLE_ARM_SOC_BOOT0_HOOK 865 help 866 Some Rockchip BROM variants (e.g. on the RK3188) load the 867 first stage in segments and enter multiple times. E.g. on 868 the RK3188, the first 1KB of the first stage are loaded 869 first and entered; after returning to the BROM, the 870 remainder of the first stage is loaded, but the BROM 871 re-enters at the same address/to the same code as previously. 872 873 This enables support code in the BOOT0 hook for the TPL stage 874 to allow multiple entries. 875 876config SPL_MMC_SUPPORT 877 default y if !SPL_ROCKCHIP_BACK_TO_BROM && MMC 878 879config RKIMG_BOOTLOADER 880 bool "Support for Rockchip platform features" 881 default y 882 help 883 Actually this is a compatible configure for code compilation. 884 885config RKIMG_ANDROID_BOOTMODE_LEGACY 886 bool "Support set androidboot.mode with legacy rule" 887 depends on RKIMG_BOOTLOADER 888 default n 889 help 890 Rockchip set "androidboot.mode=" as "charger" or boot media for android, 891 which is a rockchip private solution(SDK < 8.1) and deprecated. 892 893config ROCKCHIP_BOOTDEV 894 string "Set the boot device for multiple storage board" 895 default "" 896 help 897 On the multiple storage on board, set this to determine what we really 898 want to be the boot device, which contains kernel, rootfs and etc. 899 Fall through to get from preloader or scan list when it's NULL. 900 901config ROCKCHIP_RESOURCE_IMAGE 902 bool "Enable support for rockchip resource image" 903 depends on RKIMG_BOOTLOADER 904 default y 905 help 906 This enables support to get dtb or logo files from 907 rockchip resource image format partition. 908 909config ROCKCHIP_DTB_VERIFY 910 bool "Enable hash verify for DTB in the resource file" 911 depends on ROCKCHIP_RESOURCE_IMAGE 912 select SHA1 if !DM_CRYPTO 913 select SHA256 if !DM_CRYPTO 914 default y 915 help 916 This enables the hash verify for DTB in the resource file, it means we 917 always read DTB from second position even the DTB position is present. 918 919config ROCKCHIP_USB_BOOT 920 bool "Enable support for rockchip U-disk boot" 921 depends on USB 922 default n 923 help 924 This enables support for rockchip U-disk boot. 925 926config ROCKCHIP_FIT_IMAGE 927 bool "Enable support for FIT image" 928 depends on FIT 929 select CMD_BOOT_FIT 930 default n 931 help 932 This enables loading dtb from fit image. 933 934config ROCKCHIP_UIMAGE 935 bool "Enable support for legacy uImage" 936 depends on !FIT_SIGNATURE && USING_KERNEL_DTB 937 select CMD_BOOT_UIMAGE 938 default n 939 help 940 This enables loading dtb from uImage image. 941 942config ROCKCHIP_EARLY_DISTRO_DTB 943 bool "Enable support for distro dtb early" 944 depends on DISTRO_DEFAULTS && USING_KERNEL_DTB && CMD_FS_GENERIC 945 default n 946 help 947 This enables loading dtb from distro bootable partition when there 948 is no valid dtb in android boot.img and rockchip resource.img. 949 950if ROCKCHIP_EARLY_DISTRO_DTB 951 952config ROCKCHIP_EARLY_DISTRO_DTB_PATH 953 string "/rk-kernel.dtb" 954 help 955 "DTB file path in the bootable partition image" 956endif 957 958config ROCKCHIP_HWID_DTB 959 bool "Enable support for selecting DTB by hardware id" 960 depends on ROCKCHIP_RESOURCE_IMAGE 961 default n 962 help 963 This enables select the expected DTB from sets by hardware id, 964 i.e. GPIO or ADC value. 965 966config SPL_ROCKCHIP_HWID_DTB 967 bool "Enable support for selecting DTB by hardware id in SPL" 968 depends on SPL_KERNEL_BOOT 969 default n 970 help 971 This enables select the expected kernel DTB from sets by hardware id in SPL, 972 i.e. GPIO or ADC value. 973 974config ROCKCHIP_VENDOR_PARTITION 975 bool "Rockchip vendor storage partition support" 976 depends on (RKIMG_BOOTLOADER || SUPPORT_USBPLUG) 977 help 978 This enable support to read/write vendor configuration data from/to 979 this partition. 980 981config USING_KERNEL_DTB 982 bool "Using dtb from Kernel/resource for U-Boot" 983 depends on RKIMG_BOOTLOADER && OF_LIVE 984 default y 985 help 986 This enable support to read dtb from resource and use it for U-Boot, 987 the uart and emmc will still using U-Boot dtb, but other devices like 988 regulator/pmic, display, usb will use dts node from kernel. 989 990config USING_KERNEL_DTB_V2 991 bool "Version 2 of kernel dtb mechanism" 992 depends on USING_KERNEL_DTB 993 default n 994 help 995 The V2 mechanism: 996 - both of U-Boot and kernel's *ALL* devices are exist in dm tree. 997 - put the necessary U-Boot devices in the head of device uclass list. 998 - the both existence policy don't require phandle fixup any more. 999 - it is for the next generation(rk3588 ...) or necessary platforms. 1000 The V1 mechanism(legacy): 1001 - U-Boot: only some necessary U-Boot devices(storage, crypto...) in dm tree. 1002 - kernel: all the devices(except the U-Boot only) in dm tree. 1003 1004config EMBED_KERNEL_DTB 1005 bool "Enable embedded dtb support" 1006 default n 1007 help 1008 Enable embedded dtb support. 1009 1010config EMBED_KERNEL_DTB_PATH 1011 string "Embedded kernel dtb file path" 1012 depends on EMBED_KERNEL_DTB && USING_KERNEL_DTB 1013 default "dts/kern.dtb" 1014 help 1015 This file will auto be appended to the u-boot.bin. 1016 1017config EMBED_KERNEL_DTB_ALWAYS 1018 bool "Always using embedded kernel dtb" 1019 depends on EMBED_KERNEL_DTB && USING_KERNEL_DTB 1020 default n 1021 help 1022 Allow fallback to always use a prepared kernel dtb even USING_KERNEL_DTB 1023 is set. This makes U-Boot stage more stable but not flexible any more to 1024 compatible different boards. 1025 1026config ROCKCHIP_CRC 1027 bool "Rockchip CRC verify images" 1028 help 1029 This enable support Rockchip CRC verify images. It takes a lot of time, 1030 so it is better only used for debug. 1031 1032config ROCKCHIP_SMCCC 1033 bool "Rockchip SMCCC" 1034 default y if ARM_SMCCC 1035 help 1036 This enable support for Rockchip SMC calls 1037 1038config ROCKCHIP_DEBUGGER 1039 bool "Rockchip debugger" 1040 depends on IRQ 1041 help 1042 This enable support for Rockchip debugger. Now we install a timer interrupt 1043 and dump pt_regs when the timeout event trigger. This helps us to know cpu 1044 state when system hang. 1045 1046config ROCKCHIP_CRASH_DUMP 1047 bool "Rockchip crash dump registers" 1048 help 1049 This enable dump registers when system crash, the registers you would like 1050 to dump can be added in show_regs(). 1051 1052config ROCKCHIP_PRELOADER_ATAGS 1053 bool "Rockchip pre-loader atags" 1054 default y if ARCH_ROCKCHIP 1055 help 1056 This enable support Rockchip atags among pre-loaders, i.e. ddr, miniloader, ATF, 1057 tos, U-Boot, etc. It delivers boot and configure information, shared with pre-loaders 1058 and finally ends with U-Boot. 1059 1060config ROCKCHIP_META 1061 bool "Rockchip Meta" 1062 depends on SPL_KERNEL_BOOT && SPL_LIBDISK_SUPPORT 1063 help 1064 This support to load Rockchip meta data which like isp parameter, peripheral 1065 parameters, etc. 1066 1067config ROCKCHIP_PRELOADER_SERIAL 1068 bool "Rockchip pre-loader serial" 1069 default y if ROCKCHIP_PRELOADER_ATAGS 1070 help 1071 This enable U-Boot using pre-loader atags serial configure to initialize console. 1072 It denpends on serial aliases to find pre-loader serial number. 1073 1074config ROCKCHIP_IMAGE_TINY 1075 bool "Rockchip tiny Image generation" 1076 default n 1077 help 1078 This enable tiny image generation 1079 1080config ROCKCHIP_FIT_IMAGE_PACK 1081 bool "Rockchip fit image pack of U-Boot and TEE" 1082 depends on ROCKCHIP_FIT_IMAGE 1083 default n 1084 help 1085 This enable fit image pack of U-Boot and TEE, it's used for make.sh script. 1086 1087config ROCKCHIP_UART_MUX_SEL_M 1088 int "UART mux select" 1089 default 0 1090 depends on TPL 1091 help 1092 This select uart multiplexer for debug uart iomux in board_debug_uart_init. 1093 1094config ROCKCHIP_REBOOT_TEST 1095 bool "Rockchip reboot stress test before kernel" 1096 default n 1097 help 1098 It's a reboot stress test before kernel stages. 1099 1100config ROCKCHIP_NEW_IDB 1101 bool "Rockchip new IDB header" 1102 default n 1103 help 1104 The new IDB header was introduced from RK356X. 1105 1106config ROCKCHIP_HOTKEY 1107 bool "Rockchip hotkey" 1108 default y 1109 help 1110 Define a lot of hotkeys for debug. 1111 1112config ROCKCHIP_CMD 1113 string "Rockchip specific command" 1114 default "" 1115 help 1116 It defines a command to be run when the key is pressed if assigned. 1117 String format: "cmd key". 1118 @cmd: any U-Boot cmd. 1119 @key: any key map id, '-' standard for ignore. 1120 e.g. "sd_update 115", 115 is KEY_VOLUMEUP. 1121 1122config GICV2 1123 bool "ARM GICv2" 1124 1125config GICV3 1126 bool "ARM GICv3" 1127 1128config ROCKCHIP_EMMC_IOMUX 1129 bool "ROCKCHIP EMMC IOMUX" 1130 default n 1131 help 1132 This enable U-Boot to config EMMC iomux. 1133 1134config ROCKCHIP_NAND_IOMUX 1135 bool "ROCKCHIP NAND IOMUX" 1136 default n 1137 help 1138 This enable U-Boot to config NAND iomux. 1139 1140config ROCKCHIP_SFC_IOMUX 1141 bool "ROCKCHIP SFC IOMUX" 1142 default n 1143 help 1144 This enable U-Boot to config SFC iomux. 1145 1146config ROCKCHIP_SET_SN 1147 bool "Rockchip set serial number" 1148 default y 1149 1150config ROCKCHIP_SET_ETHADDR 1151 bool "Rockchip set eth address" 1152 default y 1153 1154config BASE_DEFCONFIG 1155 string "Base defconfig of config fragment" 1156 default "" 1157 help 1158 Indicate the base defconfig of config fragment. 1159 1160config CHIP_NAME 1161 string "Chip label name" 1162 default "" 1163 1164config LOADER_INI 1165 string "Name of Loader ini file in rkbin repository" 1166 default "" 1167 help 1168 The ini file is used to pack loader image. 1169 1170config TRUST_INI 1171 string "Name of Trust ini file in rkbin repository" 1172 default "" 1173 help 1174 The ini file is used to pack trust image. 1175 1176if !ROCKCHIP_FIT_IMAGE_PACK 1177config UBOOT_SIZE_KB 1178 int "Per u-boot.bin Image size, unit: KB" 1179 default 1024 1180 1181config UBOOT_NUM 1182 int "Number of u-boot.bin image being packed into trust.img" 1183 default 4 1184 1185config TRUST_SIZE_KB 1186 int "Per trust Image size, unit: KB" 1187 default 2048 1188 1189config TRUST_NUM 1190 int "Number of trust image being packed into trust.img" 1191 default 2 1192 1193config TRUST_RSA_MODE 1194 int "RSA mode of trust.img on ARM64" 1195 default 2 1196 help 1197 The RSA mode for tools to pack, the mode id can be: 1198 0: none; 1: RSA-1024; 2: RSA-2048; 3: RSA-2048-pss. 1199 1200config TRUST_SHA_MODE 1201 int "SHA mode of trust.img on ARM64" 1202 default 3 1203 help 1204 The SHA mode for tools to pack, the mode id can be: 1205 0: none; 1: sha1; 2: sha256 RK big endian; 3: sha256 little endian. 1206endif 1207 1208config PSTORE 1209 bool "Print log to linux pstore buffer" 1210 default n 1211 help 1212 This enable Print uboot log to linux pstore buffer which address 1213 is default 0x110000 for most soc. 1214 1215config PERSISTENT_RAM_ADDR 1216 hex "Linux pstore buffer address" 1217 default 0x0 1218 depends on PSTORE 1219 help 1220 This select linux pstore buffer address for U-Boot. When value is 1221 0, U-Boot auto gets this address from preloader atags. 1222 1223config PERSISTENT_RAM_SIZE 1224 hex "Linux pstore buffer size" 1225 default 0x0 1226 depends on (PERSISTENT_RAM_ADDR != 0) 1227 help 1228 This select linux pstore buffer size for U-Boot, the value must be 1229 set if PERSISTENT_RAM_ADDR != 0. 1230 1231config ROCKCHIP_MINIDUMP 1232 bool "Minidump Save Linux Debug Data To Ram Elf" 1233 default n 1234 help 1235 This enable saving linux debug data to a reserved memory as a elf file. 1236 1237config ROCKCHIP_MINIDUMP_SMEM_BASE 1238 hex "The base of share memory between Uboot and Linux" 1239 default 0x1f0000 1240 depends on ROCKCHIP_MINIDUMP 1241 help 1242 This select the base address of share memory, which is behind PSTORE. 1243 1244config ROCKCHIP_MINIDUMP_MAX_ELF_SIZE 1245 hex "The max size of minidump elf" 1246 default 0x2000000 1247 depends on ROCKCHIP_MINIDUMP 1248 help 1249 This is used to judge the elf program size and section size. 1250 1251config ROCKCHIP_MINIDUMP_MAX_ENTRIES 1252 hex "The max entries of minidump region" 1253 default 0x200 1254 depends on ROCKCHIP_MINIDUMP 1255 help 1256 This sets the max entries of minidump region. 1257 1258config SANITY_CPU_SWAP 1259 bool "Sanity cpu swap" 1260 help 1261 This enale checking current cpu mpidr and kernel 1262 dts cpu0 mpidr. 1263 1264source "arch/arm/mach-rockchip/px30/Kconfig" 1265source "arch/arm/mach-rockchip/rk3036/Kconfig" 1266source "arch/arm/mach-rockchip/rk3066/Kconfig" 1267source "arch/arm/mach-rockchip/rk3128/Kconfig" 1268source "arch/arm/mach-rockchip/rk3188/Kconfig" 1269source "arch/arm/mach-rockchip/rk322x/Kconfig" 1270source "arch/arm/mach-rockchip/rk3288/Kconfig" 1271source "arch/arm/mach-rockchip/rk3308/Kconfig" 1272source "arch/arm/mach-rockchip/rk3328/Kconfig" 1273source "arch/arm/mach-rockchip/rk3368/Kconfig" 1274source "arch/arm/mach-rockchip/rk3399/Kconfig" 1275source "arch/arm/mach-rockchip/rk3506/Kconfig" 1276source "arch/arm/mach-rockchip/rk3528/Kconfig" 1277source "arch/arm/mach-rockchip/rk3562/Kconfig" 1278source "arch/arm/mach-rockchip/rk3568/Kconfig" 1279source "arch/arm/mach-rockchip/rk3576/Kconfig" 1280source "arch/arm/mach-rockchip/rk3588/Kconfig" 1281source "arch/arm/mach-rockchip/rk1808/Kconfig" 1282source "arch/arm/mach-rockchip/rv1103b/Kconfig" 1283source "arch/arm/mach-rockchip/rv1106/Kconfig" 1284source "arch/arm/mach-rockchip/rv1108/Kconfig" 1285source "arch/arm/mach-rockchip/rv1126/Kconfig" 1286 1287endif 1288