diff options
author | Zeng Zhaoming <b32542@freescale.com> | 2011-04-07 09:16:51 +0800 |
---|---|---|
committer | Eric Miao <eric.miao@linaro.org> | 2011-10-14 09:57:04 +0800 |
commit | 0c7e0244502d92400baa712678743fb700dd1b26 (patch) | |
tree | 5107974f802f32706fb77e9c433a03c528cd668d | |
parent | 5c50084b17900a86a1dd51e1c2456859ab5eb572 (diff) |
ENGR00141732 SDMA: Fix bootup stop at sdma firmware loading
Linux 2.6.38 kernel bootup slow, it stopped at sdma firmware
loading for about one minute.
It is caused by firmware store on rootfs lib/firmware directory,
while sdma initialization happens before rootfs mounted.
To fix it, we have to build firmware in kernel image.
Signed-off-by: Zeng Zhaoming <b32542@freescale.com>
Signed-off-by: Eric Miao <eric.miao@linaro.org>
-rw-r--r-- | arch/arm/mach-mx5/mm.c | 4 | ||||
-rw-r--r-- | drivers/dma/imx-sdma.c | 2 | ||||
-rw-r--r-- | firmware/Makefile | 9 | ||||
-rw-r--r-- | firmware/imx/sdma/sdma-imx25-to1.bin | bin | 0 -> 694 bytes | |||
-rw-r--r-- | firmware/imx/sdma/sdma-imx31-to1.bin | bin | 0 -> 3754 bytes | |||
-rw-r--r-- | firmware/imx/sdma/sdma-imx31-to2.bin | bin | 0 -> 3762 bytes | |||
-rw-r--r-- | firmware/imx/sdma/sdma-imx35-to1.bin | bin | 0 -> 2010 bytes | |||
-rw-r--r-- | firmware/imx/sdma/sdma-imx35-to2.bin | bin | 0 -> 1746 bytes | |||
-rw-r--r-- | firmware/imx/sdma/sdma-imx50-to1.bin | bin | 0 -> 550 bytes | |||
-rw-r--r-- | firmware/imx/sdma/sdma-imx51-to3.bin | bin | 0 -> 812 bytes | |||
-rw-r--r-- | firmware/imx/sdma/sdma-imx53-to1.bin | bin | 0 -> 1406 bytes |
11 files changed, 11 insertions, 4 deletions
diff --git a/arch/arm/mach-mx5/mm.c b/arch/arm/mach-mx5/mm.c index fcc5c4ce53f..d44e838f1a8 100644 --- a/arch/arm/mach-mx5/mm.c +++ b/arch/arm/mach-mx5/mm.c @@ -115,7 +115,7 @@ static struct sdma_script_start_addrs imx51_sdma_script __initdata = { }; static struct sdma_platform_data imx51_sdma_pdata __initdata = { - .fw_name = "sdma-imx51.bin", + .fw_name = "imx/sdma/sdma-imx51-to3.bin", .script_addrs = &imx51_sdma_script, }; @@ -134,7 +134,7 @@ static struct sdma_script_start_addrs imx53_sdma_script __initdata = { }; static struct sdma_platform_data imx53_sdma_pdata __initdata = { - .fw_name = "sdma-imx53.bin", + .fw_name = "imx/sdma/sdma-imx53-to1.bin", .script_addrs = &imx53_sdma_script, }; diff --git a/drivers/dma/imx-sdma.c b/drivers/dma/imx-sdma.c index 7bd7e98548c..330e2e54ada 100644 --- a/drivers/dma/imx-sdma.c +++ b/drivers/dma/imx-sdma.c @@ -7,7 +7,7 @@ * * Based on code from Freescale: * - * Copyright 2004-2009 Freescale Semiconductor, Inc. All Rights Reserved. + * Copyright 2004-2011 Freescale Semiconductor, Inc. All Rights Reserved. * * The code contained herein is licensed under the GNU General Public * License. You may obtain a copy of the GNU General Public License diff --git a/firmware/Makefile b/firmware/Makefile index 5f43bfba3c7..66d0e990285 100644 --- a/firmware/Makefile +++ b/firmware/Makefile @@ -142,6 +142,12 @@ fw-shipped-$(CONFIG_USB_VICAM) += vicam/firmware.fw fw-shipped-$(CONFIG_VIDEO_CPIA2) += cpia2/stv0672_vp4.bin fw-shipped-$(CONFIG_YAM) += yam/1200.bin yam/9600.bin +ifdef CONFIG_IMX_SDMA +fw-shipped-$(CONFIG_SOC_IMX50) += imx/sdma/sdma-imx50-to1.bin +fw-shipped-$(CONFIG_SOC_IMX51) += imx/sdma/sdma-imx51-to3.bin +fw-shipped-$(CONFIG_SOC_IMX53) += imx/sdma/sdma-imx53-to1.bin +endif + fw-shipped-all := $(fw-shipped-y) $(fw-shipped-m) $(fw-shipped-) # Directories which we _might_ need to create, so we have a rule for them. @@ -166,11 +172,12 @@ quiet_cmd_fwbin = MK_FW $@ ASM_WORD=$(if $(CONFIG_64BIT),.quad,.long); \ ASM_ALIGN=$(if $(CONFIG_64BIT),3,2); \ PROGBITS=$(if $(CONFIG_ARM),%,@)progbits; \ + FWPATH=$(if $(KBUILD_SRC),$(srctree)/)$(2); \ echo "/* Generated by firmware/Makefile */" > $@;\ echo " .section .rodata" >>$@;\ echo " .p2align $${ASM_ALIGN}" >>$@;\ echo "_fw_$${FWSTR}_bin:" >>$@;\ - echo " .incbin \"$(2)\"" >>$@;\ + echo " .incbin \"$${FWPATH}\"" >>$@;\ echo "_fw_end:" >>$@;\ echo " .section .rodata.str,\"aMS\",$${PROGBITS},1" >>$@;\ echo " .p2align $${ASM_ALIGN}" >>$@;\ diff --git a/firmware/imx/sdma/sdma-imx25-to1.bin b/firmware/imx/sdma/sdma-imx25-to1.bin Binary files differnew file mode 100644 index 00000000000..7514e09fea7 --- /dev/null +++ b/firmware/imx/sdma/sdma-imx25-to1.bin diff --git a/firmware/imx/sdma/sdma-imx31-to1.bin b/firmware/imx/sdma/sdma-imx31-to1.bin Binary files differnew file mode 100644 index 00000000000..7c3417d07e0 --- /dev/null +++ b/firmware/imx/sdma/sdma-imx31-to1.bin diff --git a/firmware/imx/sdma/sdma-imx31-to2.bin b/firmware/imx/sdma/sdma-imx31-to2.bin Binary files differnew file mode 100644 index 00000000000..7ff9c75f4ca --- /dev/null +++ b/firmware/imx/sdma/sdma-imx31-to2.bin diff --git a/firmware/imx/sdma/sdma-imx35-to1.bin b/firmware/imx/sdma/sdma-imx35-to1.bin Binary files differnew file mode 100644 index 00000000000..be34cb7faf6 --- /dev/null +++ b/firmware/imx/sdma/sdma-imx35-to1.bin diff --git a/firmware/imx/sdma/sdma-imx35-to2.bin b/firmware/imx/sdma/sdma-imx35-to2.bin Binary files differnew file mode 100644 index 00000000000..cfe72272ae8 --- /dev/null +++ b/firmware/imx/sdma/sdma-imx35-to2.bin diff --git a/firmware/imx/sdma/sdma-imx50-to1.bin b/firmware/imx/sdma/sdma-imx50-to1.bin Binary files differnew file mode 100644 index 00000000000..50be5e828bb --- /dev/null +++ b/firmware/imx/sdma/sdma-imx50-to1.bin diff --git a/firmware/imx/sdma/sdma-imx51-to3.bin b/firmware/imx/sdma/sdma-imx51-to3.bin Binary files differnew file mode 100644 index 00000000000..c54815a9793 --- /dev/null +++ b/firmware/imx/sdma/sdma-imx51-to3.bin diff --git a/firmware/imx/sdma/sdma-imx53-to1.bin b/firmware/imx/sdma/sdma-imx53-to1.bin Binary files differnew file mode 100644 index 00000000000..68e2c1a5ca1 --- /dev/null +++ b/firmware/imx/sdma/sdma-imx53-to1.bin |