Commit 2f8eaed32b99e436c085802322407f990c43ee05
Committed by
guoyin.chen
1 parent
952524c736
Exists in
smarc-imx_v2015.04_4.1.15_1.0.0_ga
and in
1 other branch
MLK-12483-5 mx6ul: Enable module fuse check EVK board and DDR3 ARM2 board
Enable the configurations CONFIG_MODULE_FUSE and CONFIG_OF_SYSTEM_SETUP for module fuse check. And modify board level codes for SD, FEC and EIM. Signed-off-by: Ye Li <ye.li@nxp.com> (cherry picked from commit f9d57bc73807d14062721a793a2a55be69aa4973)
Showing 4 changed files with 49 additions and 2 deletions Side-by-side Diff
board/freescale/mx6ul_14x14_ddr3_arm2/mx6ul_14x14_ddr3_arm2.c
... | ... | @@ -339,10 +339,25 @@ |
339 | 339 | |
340 | 340 | static void setup_eimnor(void) |
341 | 341 | { |
342 | + if (check_module_fused(MX6_MODULE_EIM)) { | |
343 | + printf("WEIM@0x%x is fused, disable it\n", WEIM_BASE_ADDR); | |
344 | + return; | |
345 | + } | |
346 | + | |
342 | 347 | imx_iomux_v3_setup_multiple_pads(eimnor_pads, ARRAY_SIZE(eimnor_pads)); |
343 | 348 | |
344 | 349 | eimnor_cs_setup(); |
345 | 350 | } |
351 | + | |
352 | +int board_flash_wp_on(void) | |
353 | +{ | |
354 | + if (check_module_fused(MX6_MODULE_EIM)) { | |
355 | + return 1; /* Skip flash init */ | |
356 | + } | |
357 | + | |
358 | + return 0; | |
359 | +} | |
360 | + | |
346 | 361 | #endif |
347 | 362 | |
348 | 363 | #ifdef CONFIG_FEC_MXC |
349 | 364 | |
... | ... | @@ -489,11 +504,17 @@ |
489 | 504 | /* BOOT_CFG2[3] and BOOT_CFG2[4] */ |
490 | 505 | dev_no = (soc_sbmr & 0x00001800) >> 11; |
491 | 506 | |
507 | + if (dev_no == 1 && mx6_esdhc_fused(USDHC1_BASE_ADDR)) | |
508 | + dev_no = 0; | |
509 | + | |
492 | 510 | return dev_no; |
493 | 511 | } |
494 | 512 | |
495 | 513 | int mmc_map_to_kernel_blk(int dev_no) |
496 | 514 | { |
515 | + if (dev_no == 0 && mx6_esdhc_fused(USDHC1_BASE_ADDR)) | |
516 | + dev_no = 1; | |
517 | + | |
497 | 518 | return dev_no; |
498 | 519 | } |
499 | 520 | |
... | ... | @@ -532,7 +553,7 @@ |
532 | 553 | */ |
533 | 554 | for (i = 0; i < CONFIG_SYS_FSL_USDHC_NUM; i++) { |
534 | 555 | switch (i) { |
535 | - case 0: | |
556 | + case 0: | |
536 | 557 | #ifdef CONFIG_MX6UL_DDR3_ARM2_EMMC_REWORK |
537 | 558 | imx_iomux_v3_setup_multiple_pads( |
538 | 559 | usdhc1_emmc_pads, ARRAY_SIZE(usdhc1_emmc_pads)); |
... | ... | @@ -735,6 +756,10 @@ |
735 | 756 | int ret; |
736 | 757 | |
737 | 758 | if (0 == fec_id) { |
759 | + if (check_module_fused(MX6_MODULE_ENET1)) { | |
760 | + return -1; | |
761 | + } | |
762 | + | |
738 | 763 | /* |
739 | 764 | * Use 50M anatop loopback REF_CLK1 for ENET1, |
740 | 765 | * clear gpr1[13], set gpr1[17] |
... | ... | @@ -746,6 +771,10 @@ |
746 | 771 | return ret; |
747 | 772 | |
748 | 773 | } else { |
774 | + if (check_module_fused(MX6_MODULE_ENET2)) { | |
775 | + return -1; | |
776 | + } | |
777 | + | |
749 | 778 | /* clk from phy, set gpr1[14], clear gpr1[18]*/ |
750 | 779 | clrsetbits_le32(&iomuxc_gpr_regs->gpr[1], IOMUX_GPR1_FEC2_MASK, |
751 | 780 | IOMUX_GPR1_FEC2_CLOCK_MUX2_SEL_MASK); |
board/freescale/mx6ul_14x14_evk/mx6ul_14x14_evk.c
... | ... | @@ -488,11 +488,17 @@ |
488 | 488 | /* BOOT_CFG2[3] and BOOT_CFG2[4] */ |
489 | 489 | dev_no = (soc_sbmr & 0x00001800) >> 11; |
490 | 490 | |
491 | + if (dev_no == 1 && mx6_esdhc_fused(USDHC1_BASE_ADDR)) | |
492 | + dev_no = 0; | |
493 | + | |
491 | 494 | return dev_no; |
492 | 495 | } |
493 | 496 | |
494 | 497 | int mmc_map_to_kernel_blk(int dev_no) |
495 | 498 | { |
499 | + if (dev_no == 0 && mx6_esdhc_fused(USDHC1_BASE_ADDR)) | |
500 | + dev_no = 1; | |
501 | + | |
496 | 502 | return dev_no; |
497 | 503 | } |
498 | 504 | |
... | ... | @@ -570,7 +576,6 @@ |
570 | 576 | ret = fsl_esdhc_initialize(bis, &usdhc_cfg[i]); |
571 | 577 | if (ret) { |
572 | 578 | printf("Warning: failed to initialize mmc dev %d\n", i); |
573 | - return ret; | |
574 | 579 | } |
575 | 580 | } |
576 | 581 | |
577 | 582 | |
... | ... | @@ -750,10 +755,18 @@ |
750 | 755 | int ret; |
751 | 756 | |
752 | 757 | if (0 == fec_id) { |
758 | + if (check_module_fused(MX6_MODULE_ENET1)) { | |
759 | + return -1; | |
760 | + } | |
761 | + | |
753 | 762 | /* Use 50M anatop loopback REF_CLK1 for ENET1, clear gpr1[13], set gpr1[17]*/ |
754 | 763 | clrsetbits_le32(&iomuxc_gpr_regs->gpr[1], IOMUX_GPR1_FEC1_MASK, |
755 | 764 | IOMUX_GPR1_FEC1_CLOCK_MUX1_SEL_MASK); |
756 | 765 | } else { |
766 | + if (check_module_fused(MX6_MODULE_ENET2)) { | |
767 | + return -1; | |
768 | + } | |
769 | + | |
757 | 770 | /* Use 50M anatop loopback REF_CLK2 for ENET2, clear gpr1[14], set gpr1[18]*/ |
758 | 771 | clrsetbits_le32(&iomuxc_gpr_regs->gpr[1], IOMUX_GPR1_FEC2_MASK, |
759 | 772 | IOMUX_GPR1_FEC2_CLOCK_MUX1_SEL_MASK); |
include/configs/mx6ul_14x14_ddr3_arm2.h
include/configs/mx6ul_14x14_evk.h