Commit f1e3896a309d0b0ce738ec0a642667734f4156d7

Authored by Eric Lee
1 parent eef0d55b7c

Embedian Yocto Kirkstone real-time edge meta-layer

Showing 20 changed files with 461 additions and 1243 deletions Side-by-side Diff

... ... @@ -135,4 +135,10 @@
135 135 MIRRORS += "git://git@git.embedian.com/developer/smarc-t335x-uboot.git;protocol=ssh git://github.com/embedian/smarc-uboot.git;protocol=https"
136 136  
137 137 MIRRORS += "git://git@git.embedian.com/developer/smarc-fsl-linux-kernel.git;protocol=ssh git://github.com/embedian/smarc-fsl-linux-kernel.git;protocol=https"
  138 +
  139 +MIRRORS =+ "\
  140 +git://.*/.* https://www.embedian.com/file/kirk-yocto/mirror/ \n \
  141 +ftp://.*/.* https://www.embedian.com/file/kirk-yocto/mirror/ \n \
  142 +http://.*/.* https://www.embedian.com/file/kirk-yocto/mirror/ \n \
  143 +https://.*/.* https://www.embedian.com/file/kirk-yocto/mirror/ \n"
conf/machine/smarcfimx6dl1g.conf
1   -#@TYPE: Machine
2   -#@NAME: EMBEDIAN i.MX6DL SMARC CPU Card
3   -#@SOC: i.MX6DL
4   -#@DESCRIPTION: Machine configuration for Embedian i.MX6DL SMARC CPU Card
5   -#@MAINTAINER: Eric Lee <eric.lee@embedian.com>
6   -
7   -MACHINEOVERRIDES =. "mx6:mx6dl:"
8   -
9   -require conf/machine/include/imx-base.inc
10   -require conf/machine/include/arm/armv7a/tune-cortexa9.inc
11   -
12   -SERIAL_CONSOLES = "115200;ttymxc4"
13   -
14   -MACHINE_FIRMWARE:append:mx6-nxp-bsp = " linux-firmware-ath10k"
15   -
16   -MACHINE_FEATURES += " pci wifi bluetooth screen usbgadget vfat ext2 alsa serial usbhost"
17   -
18   -IMAGE_FEATURES += "package-management"
19   -
20   -PREFERRED_PROVIDER_virtual/kernel:use-nxp-bsp ??= "linux-imx"
21   -
22   -KERNEL_DEVICETREE = "imx6dl-smarc.dtb \
23   - imx6dl-smarc-wvga.dtb \
24   - imx6dl-smarc-xga.dtb \
25   - imx6dl-smarc-wxga.dtb \
26   - imx6dl-smarc-1080p.dtb \
27   - "
28   -
29   -PREFERRED_PROVIDER_u-boot:use-nxp-bsp = "u-boot-imx"
30   -PREFERRED_PROVIDER_virtual/bootloader:use-nxp-bsp = "u-boot-imx"
31   -
32   -UBOOT_CONFIG ??= "sd"
33   -UBOOT_CONFIG[sd] = "smarcfimx6_dl_1g_ser3_defconfig,sdcard"
34   -
35   -OPTEE_BIN_EXT = "6dlsmarc"
36   -
37   -MACHINE_EXTRA_RRECOMMENDS += " \
38   - u-boot-imx \
39   - packagegroup-tools-bluetooth \
40   - pm-utils \
41   - kmod \
42   - hdparm \
43   - gptfdisk \
44   - lftp \
45   - vim \
46   - ntp \
47   - boost \
48   - nodejs \
49   - networkmanager \
50   - android-tools \
51   -"
52   -
53   -IMAGE_INSTALL:append = " \
54   - firmware-imx-sdma-imx6q \
55   - firmware-imx-sdma-imx7d \
56   - linux-firmware-nxp89xx \
57   - nxp-wlan-sdk \
58   - kernel-module-nxp89xx \
59   - ppp \
60   - usb-modeswitch-data \
61   - usb-modeswitch \
62   -"
63   -
64   -IMAGE_FSTYPES = "tar.bz2"
conf/machine/smarcfimx6q1g.conf
1   -#@TYPE: Machine
2   -#@NAME: EMBEDIAN i.MX6Q SMARC CPU Card
3   -#@SOC: i.MX6Q
4   -#@DESCRIPTION: Machine configuration for Embedian i.MX6Q SMARC CPU Card 1GB DDR3L
5   -#@MAINTAINER: Eric Lee <eric.lee@embedian.com>
6   -
7   -MACHINEOVERRIDES =. "mx6:mx6q:"
8   -
9   -require conf/machine/include/imx-base.inc
10   -require conf/machine/include/arm/armv7a/tune-cortexa9.inc
11   -
12   -SERIAL_CONSOLES = "115200;ttymxc4"
13   -
14   -MACHINE_FIRMWARE:append = " linux-firmware-ath10k"
15   -
16   -MACHINE_FEATURES += " pci wifi bluetooth screen usbgadget vfat ext2 alsa serial usbhost"
17   -
18   -IMAGE_FEATURES += "package-management"
19   -
20   -PREFERRED_PROVIDER_virtual/kernel:use-nxp-bsp ??= "linux-imx"
21   -
22   -KERNEL_DEVICETREE = "imx6q-smarc.dtb \
23   - imx6q-smarc-wvga.dtb \
24   - imx6q-smarc-xga.dtb \
25   - imx6q-smarc-wxga.dtb \
26   - imx6q-smarc-1080p.dtb \
27   - "
28   -
29   -PREFERRED_PROVIDER_u-boot:use-nxp-bsp = "u-boot-imx"
30   -PREFERRED_PROVIDER_virtual/bootloader:use-nxp-bsp = "u-boot-imx"
31   -
32   -UBOOT_CONFIG ??= "sd"
33   -UBOOT_CONFIG[sd] = "smarcfimx6_quad_1g_ser3_defconfig,sdcard"
34   -
35   -OPTEE_BIN_EXT = "6qsmarc"
36   -
37   -MACHINE_EXTRA_RRECOMMENDS += " \
38   - u-boot-imx \
39   - packagegroup-tools-bluetooth \
40   - pm-utils \
41   - kmod \
42   - hdparm \
43   - gptfdisk \
44   - lftp \
45   - vim \
46   - ntp \
47   - boost \
48   - nodejs \
49   - networkmanager \
50   - android-tools \
51   -"
52   -
53   -IMAGE_INSTALL:append = " \
54   - firmware-imx-sdma-imx6q \
55   - firmware-imx-sdma-imx7d \
56   - linux-firmware-nxp89xx \
57   - nxp-wlan-sdk \
58   - kernel-module-nxp89xx \
59   - ppp \
60   - usb-modeswitch-data \
61   - usb-modeswitch \
62   -"
63   -
64   -IMAGE_FSTYPES = "tar.bz2"
conf/machine/smarcfimx6q2g.conf
1   -#@TYPE: Machine
2   -#@NAME: EMBEDIAN i.MX6Q SMARC CPU Card
3   -#@SOC: i.MX6Q
4   -#@DESCRIPTION: Machine configuration for Embedian i.MX6Q SMARC CPU Card 2GB DDR3L
5   -#@MAINTAINER: Eric Lee <eric.lee@embedian.com>
6   -
7   -MACHINEOVERRIDES =. "mx6:mx6q:"
8   -
9   -require conf/machine/include/imx-base.inc
10   -require conf/machine/include/arm/armv7a/tune-cortexa9.inc
11   -
12   -SERIAL_CONSOLES = "115200;ttymxc4"
13   -
14   -MACHINE_FIRMWARE:append = " linux-firmware-ath10k"
15   -
16   -MACHINE_FEATURES += " pci wifi bluetooth screen usbgadget vfat ext2 alsa serial usbhost"
17   -
18   -IMAGE_FEATURES += "package-management"
19   -
20   -PREFERRED_PROVIDER_virtual/kernel:use-nxp-bsp ??= "linux-imx"
21   -
22   -KERNEL_DEVICETREE = "imx6q-smarc.dtb \
23   - imx6q-smarc-wvga.dtb \
24   - imx6q-smarc-xga.dtb \
25   - imx6q-smarc-wxga.dtb \
26   - imx6q-smarc-1080p.dtb \
27   - "
28   -
29   -PREFERRED_PROVIDER_u-boot:use-nxp-bsp = "u-boot-imx"
30   -PREFERRED_PROVIDER_virtual/bootloader:use-nxp-bsp = "u-boot-imx"
31   -
32   -UBOOT_CONFIG ??= "sd"
33   -UBOOT_CONFIG[sd] = "smarcfimx6_quad_2g_ser3_defconfig,sdcard"
34   -
35   -OPTEE_BIN_EXT = "6qsmarc"
36   -
37   -MACHINE_EXTRA_RRECOMMENDS += " \
38   - u-boot-imx \
39   - packagegroup-tools-bluetooth \
40   - pm-utils \
41   - kmod \
42   - hdparm \
43   - gptfdisk \
44   - lftp \
45   - vim \
46   - ntp \
47   - boost \
48   - nodejs \
49   - networkmanager \
50   - android-tools \
51   -"
52   -
53   -IMAGE_INSTALL:append = " \
54   - firmware-imx-sdma-imx6q \
55   - firmware-imx-sdma-imx7d \
56   - linux-firmware-nxp89xx \
57   - nxp-wlan-sdk \
58   - kernel-module-nxp89xx \
59   - ppp \
60   - usb-modeswitch-data \
61   - usb-modeswitch \
62   -"
63   -
64   -IMAGE_FSTYPES = "tar.bz2"
conf/machine/smarcfimx6qp1g.conf
1   -#@TYPE: Machine
2   -#@NAME: EMBEDIAN i.MX6Q Plus SMARC CPU Card
3   -#@SOC: i.MX6QP
4   -#@DESCRIPTION: Machine configuration for Embedian i.MX6QP SMARC CPU Card 1GB DDR3L
5   -#@MAINTAINER: Eric Lee <eric.lee@embedian.com>
6   -
7   -MACHINEOVERRIDES =. "mx6:mx6q:"
8   -
9   -require conf/machine/include/imx-base.inc
10   -require conf/machine/include/arm/armv7a/tune-cortexa9.inc
11   -
12   -SERIAL_CONSOLES = "115200;ttymxc4"
13   -
14   -MACHINE_FIRMWARE:append = " linux-firmware-ath10k"
15   -
16   -MACHINE_FEATURES += " pci wifi bluetooth screen usbgadget vfat ext2 alsa serial usbhost"
17   -
18   -IMAGE_FEATURES += "package-management"
19   -
20   -PREFERRED_PROVIDER_virtual/kernel:use-nxp-bsp ??= "linux-imx"
21   -
22   -KERNEL_DEVICETREE = "imx6qp-smarc.dtb \
23   - imx6qp-smarc-wvga.dtb \
24   - imx6qp-smarc-xga.dtb \
25   - imx6qp-smarc-wxga.dtb \
26   - imx6qp-smarc-1080p.dtb \
27   - "
28   -
29   -PREFERRED_PROVIDER_u-boot:use-nxp-bsp = "u-boot-imx"
30   -PREFERRED_PROVIDER_virtual/bootloader:use-nxp-bsp = "u-boot-imx"
31   -
32   -UBOOT_CONFIG ??= "sd"
33   -UBOOT_CONFIG[sd] = "smarcfimx6_quadplus_1g_ser3_defconfig,sdcard"
34   -
35   -OPTEE_BIN_EXT = "6qpsmarc"
36   -
37   -MACHINE_EXTRA_RRECOMMENDS += " \
38   - u-boot-imx \
39   - packagegroup-tools-bluetooth \
40   - pm-utils \
41   - kmod \
42   - hdparm \
43   - gptfdisk \
44   - lftp \
45   - vim \
46   - ntp \
47   - boost \
48   - nodejs \
49   - networkmanager \
50   - android-tools \
51   -"
52   -
53   -IMAGE_INSTALL:append = " \
54   - firmware-imx-sdma-imx6q \
55   - firmware-imx-sdma-imx7d \
56   - linux-firmware-nxp89xx \
57   - nxp-wlan-sdk \
58   - kernel-module-nxp89xx \
59   - ppp \
60   - usb-modeswitch-data \
61   - usb-modeswitch \
62   -"
63   -
64   -IMAGE_FSTYPES = "tar.bz2"
conf/machine/smarcfimx6qp2g.conf
1   -#@TYPE: Machine
2   -#@NAME: EMBEDIAN i.MX6Q Plus SMARC CPU Card
3   -#@SOC: i.MX6QP
4   -#@DESCRIPTION: Machine configuration for Embedian i.MX6QP SMARC CPU Card 2GB DDR3L
5   -#@MAINTAINER: Eric Lee <eric.lee@embedian.com>
6   -
7   -MACHINEOVERRIDES =. "mx6:mx6q:"
8   -
9   -require conf/machine/include/imx-base.inc
10   -require conf/machine/include/arm/armv7a/tune-cortexa9.inc
11   -
12   -SERIAL_CONSOLES = "115200;ttymxc4"
13   -
14   -MACHINE_FIRMWARE:append = " linux-firmware-ath10k"
15   -
16   -MACHINE_FEATURES += " pci wifi bluetooth screen usbgadget vfat ext2 alsa serial usbhost"
17   -
18   -IMAGE_FEATURES += "package-management"
19   -
20   -PREFERRED_PROVIDER_virtual/kernel:use-nxp-bsp ??= "linux-imx"
21   -
22   -KERNEL_DEVICETREE = "imx6qp-smarc.dtb \
23   - imx6qp-smarc-wvga.dtb \
24   - imx6qp-smarc-xga.dtb \
25   - imx6qp-smarc-wxga.dtb \
26   - imx6qp-smarc-1080p.dtb \
27   - "
28   -
29   -PREFERRED_PROVIDER_u-boot:use-nxp-bsp = "u-boot-imx"
30   -PREFERRED_PROVIDER_virtual/bootloader:use-nxp-bsp = "u-boot-imx"
31   -
32   -UBOOT_CONFIG ??= "sd"
33   -UBOOT_CONFIG[sd] = "smarcfimx6_quadplus_2g_ser3_defconfig,sdcard"
34   -
35   -OPTEE_BIN_EXT = "6qpsmarc"
36   -
37   -MACHINE_EXTRA_RRECOMMENDS += " \
38   - u-boot-imx \
39   - packagegroup-tools-bluetooth \
40   - pm-utils \
41   - kmod \
42   - hdparm \
43   - gptfdisk \
44   - lftp \
45   - vim \
46   - ntp \
47   - boost \
48   - nodejs \
49   - networkmanager \
50   - android-tools \
51   -"
52   -
53   -IMAGE_INSTALL:append = " \
54   - firmware-imx-sdma-imx6q \
55   - firmware-imx-sdma-imx7d \
56   - linux-firmware-nxp89xx \
57   - nxp-wlan-sdk \
58   - kernel-module-nxp89xx \
59   - ppp \
60   - usb-modeswitch-data \
61   - usb-modeswitch \
62   -"
63   -
64   -IMAGE_FSTYPES = "tar.bz2"
conf/machine/smarcfimx6solo.conf
1   -#@TYPE: Machine
2   -#@NAME: EMBEDIAN i.MX6Solo SMARC CPU Card
3   -#@SOC: i.MX6S
4   -#@DESCRIPTION: Machine configuration for Embedian i.MX6Solo SMARC CPU Card
5   -#@MAINTAINER: Eric Lee <eric.lee@embedian.com>
6   -
7   -MACHINEOVERRIDES =. "mx6:mx6dl:"
8   -
9   -require conf/machine/include/imx-base.inc
10   -require conf/machine/include/arm/armv7a/tune-cortexa9.inc
11   -
12   -SERIAL_CONSOLES = "115200;ttymxc4"
13   -
14   -MACHINE_FIRMWARE:append:mx6-nxp-bsp = " linux-firmware-ath10k"
15   -
16   -MACHINE_FEATURES += " pci wifi bluetooth screen usbgadget vfat ext2 alsa serial usbhost"
17   -
18   -IMAGE_FEATURES += "package-management"
19   -
20   -PREFERRED_PROVIDER_virtual/kernel:use-nxp-bsp ??= "linux-imx"
21   -
22   -KERNEL_DEVICETREE = "imx6dl-smarc.dtb \
23   - imx6dl-smarc-wvga.dtb \
24   - imx6dl-smarc-xga.dtb \
25   - imx6dl-smarc-wxga.dtb \
26   - imx6dl-smarc-1080p.dtb \
27   - "
28   -
29   -PREFERRED_PROVIDER_u-boot:use-nxp-bsp = "u-boot-imx"
30   -PREFERRED_PROVIDER_virtual/bootloader:use-nxp-bsp = "u-boot-imx"
31   -
32   -UBOOT_CONFIG ??= "sd"
33   -UBOOT_CONFIG[sd] = "smarcfimx6_solo_ser3_defconfig,sdcard"
34   -
35   -OPTEE_BIN_EXT = "6solosmarc"
36   -
37   -MACHINE_EXTRA_RRECOMMENDS += " \
38   - u-boot-imx \
39   - packagegroup-tools-bluetooth \
40   - pm-utils \
41   - kmod \
42   - hdparm \
43   - gptfdisk \
44   - lftp \
45   - vim \
46   - ntp \
47   - boost \
48   - nodejs \
49   - networkmanager \
50   - android-tools \
51   -"
52   -
53   -IMAGE_INSTALL:append = " \
54   - firmware-imx-sdma-imx6q \
55   - firmware-imx-sdma-imx7d \
56   - linux-firmware-nxp89xx \
57   - nxp-wlan-sdk \
58   - kernel-module-nxp89xx \
59   - ppp \
60   - usb-modeswitch-data \
61   - usb-modeswitch \
62   -"
63   -
64   -IMAGE_FSTYPES = "tar.bz2"
conf/machine/smarcfimx7d.conf
1   -#@TYPE: Machine
2   -#@NAME: EMBEDIAN i.MX7D SMARC CPU Card
3   -#@SOC: i.MX7D
4   -#@DESCRIPTION: Machine configuration for Embedian i.MX7D SMARC CPU Card
5   -#@MAINTAINER: Eric Lee <eric.lee@embedian.com>
6   -
7   -MACHINEOVERRIDES =. "mx7:mx7d:"
8   -
9   -require conf/machine/include/imx-base.inc
10   -include conf/machine/include/arm/armv7a/tune-cortexa7.inc
11   -
12   -SERIAL_CONSOLES = "115200;ttymxc2"
13   -
14   -MACHINE_FIRMWARE:append = " linux-firmware-ath10k"
15   -
16   -MACHINE_FEATURES += " pci wifi bluetooth screen usbgadget vfat ext2 alsa serial usbhost"
17   -
18   -IMAGE_FEATURES += "package-management"
19   -
20   -PREFERRED_PROVIDER_virtual/kernel:use-nxp-bsp ??= "linux-imx"
21   -
22   -KERNEL_DEVICETREE = "imx7d-smarc.dtb \
23   - "
24   -
25   -PREFERRED_PROVIDER_u-boot:use-nxp-bsp = "u-boot-imx"
26   -PREFERRED_PROVIDER_virtual/bootloader:use-nxp-bsp = "u-boot-imx"
27   -
28   -UBOOT_CONFIG ??= "sd"
29   -UBOOT_CONFIG[sd] = "smarcfimx7d_ser3_defconfig,sdcard"
30   -
31   -OPTEE_BIN_EXT = "7dsmarc"
32   -
33   -MACHINE_EXTRA_RRECOMMENDS += " \
34   - u-boot-imx \
35   - packagegroup-tools-bluetooth \
36   - pm-utils \
37   - kmod \
38   - hdparm \
39   - gptfdisk \
40   - lftp \
41   - vim \
42   - ntp \
43   - boost \
44   - nodejs \
45   - networkmanager \
46   - android-tools \
47   -"
48   -
49   -IMAGE_INSTALL:append = " \
50   - firmware-imx-sdma-imx6q \
51   - firmware-imx-sdma-imx7d \
52   - linux-firmware-nxp89xx \
53   - nxp-wlan-sdk \
54   - kernel-module-nxp89xx \
55   - ppp \
56   - usb-modeswitch-data \
57   - usb-modeswitch \
58   -"
59   -
60   -IMAGE_FSTYPES = "tar.bz2"
conf/machine/smarcfimx7d2g.conf
1   -#@TYPE: Machine
2   -#@NAME: EMBEDIAN i.MX7D SMARC CPU Card
3   -#@SOC: i.MX7D
4   -#@DESCRIPTION: Machine configuration for Embedian i.MX7D SMARC CPU Card with 2GB DDR3L
5   -#@MAINTAINER: Eric Lee <eric.lee@embedian.com>
6   -
7   -MACHINEOVERRIDES =. "mx7:mx7d:"
8   -
9   -require conf/machine/include/imx-base.inc
10   -include conf/machine/include/arm/armv7a/tune-cortexa7.inc
11   -
12   -SERIAL_CONSOLES = "115200;ttymxc2"
13   -
14   -MACHINE_FIRMWARE:append = " linux-firmware-ath10k"
15   -
16   -MACHINE_FEATURES += " pci wifi bluetooth screen usbgadget vfat ext2 alsa serial usbhost"
17   -
18   -IMAGE_FEATURES += "package-management"
19   -
20   -PREFERRED_PROVIDER_virtual/kernel:use-nxp-bsp ??= "linux-imx"
21   -
22   -KERNEL_DEVICETREE = "imx7d-smarc.dtb \
23   - "
24   -
25   -PREFERRED_PROVIDER_u-boot:use-nxp-bsp = "u-boot-imx"
26   -PREFERRED_PROVIDER_virtual/bootloader:use-nxp-bsp = "u-boot-imx"
27   -
28   -UBOOT_CONFIG ??= "sd"
29   -UBOOT_CONFIG[sd] = "smarcfimx7d_2g_ser3_defconfig,sdcard"
30   -
31   -OPTEE_BIN_EXT = "7dsmarc"
32   -
33   -MACHINE_EXTRA_RRECOMMENDS += " \
34   - u-boot-imx \
35   - packagegroup-tools-bluetooth \
36   - pm-utils \
37   - kmod \
38   - hdparm \
39   - gptfdisk \
40   - lftp \
41   - vim \
42   - ntp \
43   - boost \
44   - nodejs \
45   - networkmanager \
46   - android-tools \
47   -"
48   -
49   -IMAGE_INSTALL:append = " \
50   - firmware-imx-sdma-imx6q \
51   - firmware-imx-sdma-imx7d \
52   - linux-firmware-nxp89xx \
53   - nxp-wlan-sdk \
54   - kernel-module-nxp89xx \
55   - ppp \
56   - usb-modeswitch-data \
57   - usb-modeswitch \
58   -"
59   -
60   -IMAGE_FSTYPES = "tar.bz2"
conf/machine/smarcfimx7s.conf
1   -#@TYPE: Machine
2   -#@NAME: EMBEDIAN i.MX7S SMARC CPU Card
3   -#@SOC: i.MX7S
4   -#@DESCRIPTION: Machine configuration for Embedian i.MX7S SMARC CPU Card
5   -#@MAINTAINER: Eric Lee <eric.lee@embedian.com>
6   -
7   -MACHINEOVERRIDES =. "mx7:mx7d:"
8   -
9   -require conf/machine/include/imx-base.inc
10   -include conf/machine/include/arm/armv7a/tune-cortexa7.inc
11   -
12   -SERIAL_CONSOLES = "115200;ttymxc2"
13   -
14   -MACHINE_FIRMWARE:append = " linux-firmware-ath10k"
15   -
16   -MACHINE_FEATURES += " pci wifi bluetooth screen usbgadget vfat ext2 alsa serial usbhost"
17   -
18   -IMAGE_FEATURES += "package-management"
19   -
20   -PREFERRED_PROVIDER_virtual/kernel:use-nxp-bsp ??= "linux-imx"
21   -
22   -KERNEL_DEVICETREE = "imx7s-smarc.dtb \
23   - "
24   -
25   -PREFERRED_PROVIDER_u-boot:use-nxp-bsp = "u-boot-imx"
26   -PREFERRED_PROVIDER_virtual/bootloader:use-nxp-bsp = "u-boot-imx"
27   -
28   -UBOOT_CONFIG ??= "sd"
29   -UBOOT_CONFIG[sd] = "smarcfimx7s_ser3_defconfig,sdcard"
30   -
31   -OPTEE_BIN_EXT = "7ssmarc"
32   -
33   -MACHINE_EXTRA_RRECOMMENDS += " \
34   - u-boot-imx \
35   - packagegroup-tools-bluetooth \
36   - pm-utils \
37   - kmod \
38   - hdparm \
39   - gptfdisk \
40   - lftp \
41   - vim \
42   - ntp \
43   - boost \
44   - nodejs \
45   - networkmanager \
46   - android-tools \
47   -"
48   -
49   -IMAGE_INSTALL:append = " \
50   - firmware-imx-sdma-imx6q \
51   - firmware-imx-sdma-imx7d \
52   - linux-firmware-nxp89xx \
53   - nxp-wlan-sdk \
54   - kernel-module-nxp89xx \
55   - ppp \
56   - usb-modeswitch-data \
57   - usb-modeswitch \
58   -"
59   -
60   -IMAGE_FSTYPES = "tar.bz2"
conf/machine/smarcimx8mm2g.conf
1   -#@TYPE: Machine
2   -#@NAME: EMBEDIAN SMARC-iMX8MM CPU Module with 2GB LPDDR4
3   -#@SOC: i.MX8MM
4   -#@DESCRIPTION: Machine configuration for Embedian SMARC-iMX8MM CPU Module
5   -#@MAINTAINER: Eric Lee <eric.lee@embedian.com>
6   -
7   -MACHINEOVERRIDES =. "mx8mm:imx-boot-container:"
8   -
9   -require conf/machine/include/imx-base.inc
10   -require conf/machine/include/arm/armv8a/tune-cortexa53.inc
11   -
12   -# The device tree name is implicit for LPDDR4, so can't use MACHINE here
13   -KERNEL_DEVICETREE_BASENAME = "imx8mm-smarc"
14   -
15   -PREFERRED_PROVIDER_virtual/kernel:use-nxp-bsp ??= "linux-imx"
16   -
17   -# NXP kernel has additional DTB files for various board configuration and
18   -# derivates. Include them here for NXP BSP only
19   -
20   -KERNEL_DEVICETREE = " \
21   - embedian/${KERNEL_DEVICETREE_BASENAME}.dtb \
22   -"
23   -KERNEL_DEVICETREE:append:use-nxp-bsp = " \
24   - embedian/imx8mm-smarc.dtb \
25   - embedian/imx8mm-smarc-m4.dtb \
26   -"
27   -
28   -PREFERRED_PROVIDER_u-boot:use-nxp-bsp = "u-boot-imx"
29   -PREFERRED_PROVIDER_virtual/bootloader:use-nxp-bsp = "u-boot-imx"
30   -
31   -UBOOT_SUFFIX = "bin"
32   -
33   -UBOOT_CONFIG ??= "sd"
34   -
35   -SPL_BINARY = "spl/u-boot-spl.bin"
36   -
37   -ATF_PLATFORM = "imx8mm"
38   -
39   -UBOOT_CONFIG_BASENAME = "smarcimx8mm"
40   -UBOOT_CONSOLE_BASENAME = "ser3"
41   -LPDDR4_BASENAME = "2g"
42   -UBOOT_CONFIG[sd] = "${UBOOT_CONFIG_BASENAME}_${LPDDR4_BASENAME}_${UBOOT_CONSOLE_BASENAME}_defconfig,sdcard"
43   -
44   -# Set DDR FIRMWARE
45   -DDR_FIRMWARE_NAME = " \
46   - lpddr4_pmu_train_1d_imem.bin \
47   - lpddr4_pmu_train_1d_dmem.bin \
48   - lpddr4_pmu_train_2d_imem.bin \
49   - lpddr4_pmu_train_2d_dmem.bin \
50   -"
51   -
52   -# Set u-boot DTB
53   -UBOOT_DTB_NAME = "imx8mm-smarc.dtb"
54   -
55   -# Set ATF platform name
56   -ATF_PLATFORM = "imx8mm"
57   -
58   -IMXBOOT_TARGETS = "flash_evk"
59   -IMX_BOOT_SOC_TARGET = "iMX8MM"
60   -
61   -# Set Serial console
62   -SERIAL_CONSOLES = "115200;ttymxc1"
63   -
64   -# Overrides for smarcimx8mm2g
65   -MACHINE_FEATURES:append = " pci wifi bluetooth usbgadget vfat ext2 alsa serial optee nxp8997 jailhouse"
66   -
67   -IMAGE_FEATURES:append = "package-management"
68   -
69   -WKS_FILE_DEPENDS:append = " imx-m4-demos"
70   -IMAGE_BOOT_FILES:append = " \
71   - imx8mm_m4_TCM_hello_world.bin \
72   - imx8mm_m4_TCM_low_power_voice.bin \
73   - imx8mm_m4_TCM_low_power_wakeword.bin \
74   - imx8mm_m4_TCM_rpmsg_lite_pingpong_rtos_linux_remote.bin \
75   - imx8mm_m4_TCM_rpmsg_lite_str_echo_rtos.bin \
76   -"
77   -
78   -MACHINE_EXTRA_RRECOMMENDS += " \
79   - imx-boot \
80   - packagegroup-tools-bluetooth \
81   - pm-utils \
82   - kmod \
83   - hdparm \
84   - gptfdisk \
85   - lftp \
86   - vim \
87   - ntp \
88   - boost \
89   - nodejs \
90   - networkmanager \
91   - android-tools \
92   -"
93   -
94   -IMAGE_INSTALL:append = " \
95   - firmware-imx-sdma-imx6q \
96   - firmware-imx-sdma-imx7d \
97   - linux-firmware-nxp89xx \
98   - nxp-wlan-sdk \
99   - kernel-module-nxp89xx \
100   - ppp \
101   - usb-modeswitch-data \
102   - usb-modeswitch \
103   -"
104   -
105   -LOADADDR = ""
106   -UBOOT_MAKE_TARGET = "all"
107   -IMX_BOOT_SEEK = "33"
108   -
109   -OPTEE_BIN_EXT = "8mm"
110   -TEE_LOAD_ADDR = "0xbe000000"
111   -
112   -IMAGE_FSTYPES = "tar.bz2"
conf/machine/smarcimx8mm4g.conf
1   -#@TYPE: Machine
2   -#@NAME: EMBEDIAN SMARC-iMX8MM CPU Module with 4GB LPDDR4
3   -#@SOC: i.MX8MM
4   -#@DESCRIPTION: Machine configuration for Embedian SMARC-iMX8MM CPU Module
5   -#@MAINTAINER: Eric Lee <eric.lee@embedian.com>
6   -
7   -MACHINEOVERRIDES =. "mx8mm:imx-boot-container:"
8   -
9   -require conf/machine/include/imx-base.inc
10   -require conf/machine/include/arm/armv8a/tune-cortexa53.inc
11   -
12   -# The device tree name is implicit for LPDDR4, so can't use MACHINE here
13   -KERNEL_DEVICETREE_BASENAME = "imx8mm-smarc"
14   -
15   -PREFERRED_PROVIDER_virtual/kernel:use-nxp-bsp ??= "linux-imx"
16   -
17   -# NXP kernel has additional DTB files for various board configuration and
18   -# derivates. Include them here for NXP BSP only
19   -
20   -KERNEL_DEVICETREE = " \
21   - embedian/${KERNEL_DEVICETREE_BASENAME}.dtb \
22   -"
23   -KERNEL_DEVICETREE:append:use-nxp-bsp = " \
24   - embedian/imx8mm-smarc.dtb \
25   - embedian/imx8mm-smarc-m4.dtb \
26   -"
27   -
28   -PREFERRED_PROVIDER_u-boot:use-nxp-bsp = "u-boot-imx"
29   -PREFERRED_PROVIDER_virtual/bootloader:use-nxp-bsp = "u-boot-imx"
30   -
31   -UBOOT_SUFFIX = "bin"
32   -
33   -UBOOT_CONFIG ??= "sd"
34   -
35   -SPL_BINARY = "spl/u-boot-spl.bin"
36   -
37   -ATF_PLATFORM = "imx8mm"
38   -
39   -UBOOT_CONFIG_BASENAME = "smarcimx8mm"
40   -UBOOT_CONSOLE_BASENAME = "ser3"
41   -LPDDR4_BASENAME = "4g"
42   -UBOOT_CONFIG[sd] = "${UBOOT_CONFIG_BASENAME}_${LPDDR4_BASENAME}_${UBOOT_CONSOLE_BASENAME}_defconfig,sdcard"
43   -
44   -# Set DDR FIRMWARE
45   -DDR_FIRMWARE_NAME = " \
46   - lpddr4_pmu_train_1d_imem.bin \
47   - lpddr4_pmu_train_1d_dmem.bin \
48   - lpddr4_pmu_train_2d_imem.bin \
49   - lpddr4_pmu_train_2d_dmem.bin \
50   -"
51   -
52   -# Set u-boot DTB
53   -UBOOT_DTB_NAME = "imx8mm-smarc.dtb"
54   -
55   -# Set ATF platform name
56   -ATF_PLATFORM = "imx8mm"
57   -
58   -IMXBOOT_TARGETS = "flash_evk"
59   -IMX_BOOT_SOC_TARGET = "iMX8MM"
60   -
61   -# Set Serial console
62   -SERIAL_CONSOLES = "115200;ttymxc1"
63   -
64   -# Overrides for smarcimx8mm4g
65   -MACHINE_FEATURES:append = " pci wifi bluetooth usbgadget vfat ext2 alsa serial optee nxp8997 jailhouse"
66   -
67   -IMAGE_FEATURES:append = "package-management"
68   -
69   -WKS_FILE_DEPENDS:append = " imx-m4-demos"
70   -IMAGE_BOOT_FILES:append = " \
71   - imx8mm_m4_TCM_hello_world.bin \
72   - imx8mm_m4_TCM_low_power_voice.bin \
73   - imx8mm_m4_TCM_low_power_wakeword.bin \
74   - imx8mm_m4_TCM_rpmsg_lite_pingpong_rtos_linux_remote.bin \
75   - imx8mm_m4_TCM_rpmsg_lite_str_echo_rtos.bin \
76   -"
77   -
78   -MACHINE_EXTRA_RRECOMMENDS += " \
79   - imx-boot \
80   - packagegroup-tools-bluetooth \
81   - pm-utils \
82   - kmod \
83   - hdparm \
84   - gptfdisk \
85   - lftp \
86   - vim \
87   - ntp \
88   - boost \
89   - nodejs \
90   - networkmanager \
91   - android-tools \
92   -"
93   -
94   -IMAGE_INSTALL:append = " \
95   - firmware-imx-sdma-imx6q \
96   - firmware-imx-sdma-imx7d \
97   - linux-firmware-nxp89xx \
98   - nxp-wlan-sdk \
99   - kernel-module-nxp89xx \
100   - ppp \
101   - usb-modeswitch-data \
102   - usb-modeswitch \
103   -"
104   -
105   -LOADADDR = ""
106   -UBOOT_MAKE_TARGET = "all"
107   -IMX_BOOT_SEEK = "33"
108   -
109   -OPTEE_BIN_EXT = "8mm"
110   -TEE_LOAD_ADDR = "0xbe000000"
111   -
112   -IMAGE_FSTYPES = "tar.bz2"
conf/machine/smarcimx8mq2g.conf
1   -#@TYPE: Machine
2   -#@NAME: EMBEDIAN SMARC-iMX8MQ CPU Module with 2GB LPDDR4
3   -#@SOC: i.MX8MQ
4   -#@DESCRIPTION: Machine configuration for Embedian SMARC-iMX8MQ CPU Module
5   -#@MAINTAINER: Eric Lee <eric.lee@embedian.com>
6   -
7   -MACHINEOVERRIDES =. "mx8mq:imx-boot-container:"
8   -
9   -require conf/machine/include/imx-base.inc
10   -require conf/machine/include/arm/armv8a/tune-cortexa53.inc
11   -
12   -MACHINE_SOCARCH_FILTER:append:mx8mq = " virtual/libopenvg virtual/libgles1 virtual/libgles2 virtual/egl virtual/mesa virtual/libgl virtual/libg2d"
13   -
14   -# The device tree name is implicit for LPDDR4, so can't use MACHINE here
15   -KERNEL_DEVICETREE_BASENAME = "imx8mq-smarc"
16   -
17   -PREFERRED_PROVIDER_virtual/kernel:use-nxp-bsp ??= "linux-imx"
18   -
19   -# NXP kernel has additional DTB files for various board configuration and
20   -# derivates. Include them here for NXP BSP only
21   -
22   -KERNEL_DEVICETREE = " \
23   - embedian/${KERNEL_DEVICETREE_BASENAME}.dtb \
24   -"
25   -KERNEL_DEVICETREE:append:use-nxp-bsp = " \
26   - embedian/${KERNEL_DEVICETREE_BASENAME}-hdmi.dtb \
27   - embedian/${KERNEL_DEVICETREE_BASENAME}-dp.dtb \
28   - embedian/${KERNEL_DEVICETREE_BASENAME}-dcss-lvds.dtb \
29   - embedian/${KERNEL_DEVICETREE_BASENAME}-lcdif-lvds.dtb \
30   - embedian/${KERNEL_DEVICETREE_BASENAME}-dual-display.dtb \
31   - embedian/${KERNEL_DEVICETREE_BASENAME}-m4.dtb \
32   - embedian/${KERNEL_DEVICETREE_BASENAME}-m4-hdmi.dtb \
33   - embedian/${KERNEL_DEVICETREE_BASENAME}-m4-dp.dtb \
34   - embedian/${KERNEL_DEVICETREE_BASENAME}-m4-dcss-lvds.dtb \
35   - embedian/${KERNEL_DEVICETREE_BASENAME}-m4-lcdif-lvds.dtb \
36   - embedian/${KERNEL_DEVICETREE_BASENAME}-m4-dual-display.dtb \
37   -"
38   -
39   -PREFERRED_PROVIDER_u-boot:use-nxp-bsp = "u-boot-imx"
40   -PREFERRED_PROVIDER_virtual/bootloader:use-nxp-bsp = "u-boot-imx"
41   -
42   -UBOOT_SUFFIX = "bin"
43   -
44   -UBOOT_CONFIG ??= "sd"
45   -
46   -SPL_BINARY = "spl/u-boot-spl.bin"
47   -
48   -ATF_PLATFORM = "imx8mq"
49   -
50   -UBOOT_CONFIG_BASENAME = "smarcimx8mq"
51   -UBOOT_CONSOLE_BASENAME = "ser3"
52   -LPDDR4_BASENAME = "2g"
53   -UBOOT_CONFIG[sd] = "${UBOOT_CONFIG_BASENAME}_${LPDDR4_BASENAME}_${UBOOT_CONSOLE_BASENAME}_defconfig,sdcard"
54   -
55   -# Set DDR FIRMWARE
56   -DDR_FIRMWARE_NAME = " \
57   - lpddr4_pmu_train_1d_imem.bin \
58   - lpddr4_pmu_train_1d_dmem.bin \
59   - lpddr4_pmu_train_2d_imem.bin \
60   - lpddr4_pmu_train_2d_dmem.bin \
61   -"
62   -
63   -# Set u-boot DTB
64   -UBOOT_DTB_NAME = "imx8mq-smarc.dtb"
65   -
66   -# Set ATF platform name
67   -ATF_PLATFORM = "imx8mq"
68   -
69   -IMXBOOT_TARGETS = "flash_evk flash_evk_no_hdmi flash_dp_evk"
70   -IMX_BOOT_SOC_TARGET = "iMX8M"
71   -
72   -# Set Serial console
73   -SERIAL_CONSOLES = "115200;ttymxc0"
74   -
75   -# Overrides for smarcimx8mq2g
76   -MACHINE_FEATURES:append = " pci wifi bluetooth usbgadget vfat ext2 alsa serial optee nxp8997 jailhouse"
77   -
78   -IMAGE_FEATURES:append = "package-management"
79   -
80   -WKS_FILE_DEPENDS:append = " imx-m4-demos"
81   -IMAGE_BOOT_FILES:append = " \
82   - imx8mq_m4_TCM_hello_world.bin \
83   - imx8mq_m4_TCM_rpmsg_lite_pingpong_rtos_linux_remote.bin \
84   - imx8mq_m4_TCM_rpmsg_lite_str_echo_rtos.bin \
85   -"
86   -
87   -MACHINE_EXTRA_RRECOMMENDS += " \
88   - imx-boot \
89   - packagegroup-tools-bluetooth \
90   - pm-utils \
91   - kmod \
92   - hdparm \
93   - gptfdisk \
94   - lftp \
95   - vim \
96   - ntp \
97   - boost \
98   - nodejs \
99   - networkmanager \
100   - android-tools \
101   -"
102   -
103   -IMAGE_INSTALL:append = " \
104   - firmware-imx-sdma-imx6q \
105   - firmware-imx-sdma-imx7d \
106   - linux-firmware-nxp89xx \
107   - nxp-wlan-sdk \
108   - kernel-module-nxp89xx \
109   - ppp \
110   - usb-modeswitch-data \
111   - usb-modeswitch \
112   -"
113   -
114   -LOADADDR = ""
115   -UBOOT_MAKE_TARGET = ""
116   -IMX_BOOT_SEEK = "33"
117   -
118   -OPTEE_BIN_EXT = "8mq"
119   -
120   -IMAGE_FSTYPES = "tar.bz2"
conf/machine/smarcimx8mq4g.conf
1   -#@TYPE: Machine
2   -#@NAME: EMBEDIAN SMARC-iMX8MQ CPU Module with 4GB LPDDR4
3   -#@SOC: i.MX8MQ
4   -#@DESCRIPTION: Machine configuration for Embedian SMARC-iMX8MQ CPU Module
5   -#@MAINTAINER: Eric Lee <eric.lee@embedian.com>
6   -
7   -MACHINEOVERRIDES =. "mx8mq:imx-boot-container:"
8   -
9   -require conf/machine/include/imx-base.inc
10   -require conf/machine/include/arm/armv8a/tune-cortexa53.inc
11   -
12   -MACHINE_SOCARCH_FILTER:append:mx8mq = " virtual/libopenvg virtual/libgles1 virtual/libgles2 virtual/egl virtual/mesa virtual/libgl virtual/libg2d"
13   -
14   -# The device tree name is implicit for LPDDR4, so can't use MACHINE here
15   -KERNEL_DEVICETREE_BASENAME = "imx8mq-smarc"
16   -
17   -PREFERRED_PROVIDER_virtual/kernel:use-nxp-bsp ??= "linux-imx"
18   -
19   -# NXP kernel has additional DTB files for various board configuration and
20   -# derivates. Include them here for NXP BSP only
21   -
22   -KERNEL_DEVICETREE = " \
23   - embedian/${KERNEL_DEVICETREE_BASENAME}.dtb \
24   -"
25   -KERNEL_DEVICETREE:append:use-nxp-bsp = " \
26   - embedian/${KERNEL_DEVICETREE_BASENAME}-hdmi.dtb \
27   - embedian/${KERNEL_DEVICETREE_BASENAME}-dp.dtb \
28   - embedian/${KERNEL_DEVICETREE_BASENAME}-dcss-lvds.dtb \
29   - embedian/${KERNEL_DEVICETREE_BASENAME}-lcdif-lvds.dtb \
30   - embedian/${KERNEL_DEVICETREE_BASENAME}-dual-display.dtb \
31   - embedian/${KERNEL_DEVICETREE_BASENAME}-m4.dtb \
32   - embedian/${KERNEL_DEVICETREE_BASENAME}-m4-hdmi.dtb \
33   - embedian/${KERNEL_DEVICETREE_BASENAME}-m4-dp.dtb \
34   - embedian/${KERNEL_DEVICETREE_BASENAME}-m4-dcss-lvds.dtb \
35   - embedian/${KERNEL_DEVICETREE_BASENAME}-m4-lcdif-lvds.dtb \
36   - embedian/${KERNEL_DEVICETREE_BASENAME}-m4-dual-display.dtb \
37   -"
38   -
39   -PREFERRED_PROVIDER_u-boot:use-nxp-bsp = "u-boot-imx"
40   -PREFERRED_PROVIDER_virtual/bootloader:use-nxp-bsp = "u-boot-imx"
41   -
42   -UBOOT_SUFFIX = "bin"
43   -
44   -UBOOT_CONFIG ??= "sd"
45   -
46   -SPL_BINARY = "spl/u-boot-spl.bin"
47   -
48   -ATF_PLATFORM = "imx8mq"
49   -
50   -UBOOT_CONFIG_BASENAME = "smarcimx8mq"
51   -UBOOT_CONSOLE_BASENAME = "ser3"
52   -LPDDR4_BASENAME = "4g"
53   -UBOOT_CONFIG[sd] = "${UBOOT_CONFIG_BASENAME}_${LPDDR4_BASENAME}_${UBOOT_CONSOLE_BASENAME}_defconfig,sdcard"
54   -
55   -# Set DDR FIRMWARE
56   -DDR_FIRMWARE_NAME = " \
57   - lpddr4_pmu_train_1d_imem.bin \
58   - lpddr4_pmu_train_1d_dmem.bin \
59   - lpddr4_pmu_train_2d_imem.bin \
60   - lpddr4_pmu_train_2d_dmem.bin \
61   -"
62   -
63   -# Set u-boot DTB
64   -UBOOT_DTB_NAME = "imx8mq-smarc.dtb"
65   -
66   -# Set ATF platform name
67   -ATF_PLATFORM = "imx8mq"
68   -
69   -IMXBOOT_TARGETS = "flash_evk flash_evk_no_hdmi flash_dp_evk"
70   -IMX_BOOT_SOC_TARGET = "iMX8M"
71   -
72   -# Set Serial console
73   -SERIAL_CONSOLES = "115200;ttymxc0"
74   -
75   -# Overrides for smarcimx8mq4g
76   -MACHINE_FEATURES:append = " pci wifi bluetooth usbgadget vfat ext2 alsa serial optee nxp8997 jailhouse"
77   -
78   -IMAGE_FEATURES:append = "package-management"
79   -
80   -WKS_FILE_DEPENDS:append = " imx-m4-demos"
81   -IMAGE_BOOT_FILES:append = " \
82   - imx8mq_m4_TCM_hello_world.bin \
83   - imx8mq_m4_TCM_rpmsg_lite_pingpong_rtos_linux_remote.bin \
84   - imx8mq_m4_TCM_rpmsg_lite_str_echo_rtos.bin \
85   -"
86   -
87   -MACHINE_EXTRA_RRECOMMENDS += " \
88   - imx-boot \
89   - packagegroup-tools-bluetooth \
90   - pm-utils \
91   - kmod \
92   - hdparm \
93   - gptfdisk \
94   - lftp \
95   - vim \
96   - ntp \
97   - boost \
98   - nodejs \
99   - networkmanager \
100   - android-tools \
101   -"
102   -
103   -IMAGE_INSTALL:append = " \
104   - firmware-imx-sdma-imx6q \
105   - firmware-imx-sdma-imx7d \
106   - linux-firmware-nxp89xx \
107   - nxp-wlan-sdk \
108   - kernel-module-nxp89xx \
109   - ppp \
110   - usb-modeswitch-data \
111   - usb-modeswitch \
112   -"
113   -
114   -LOADADDR = ""
115   -UBOOT_MAKE_TARGET = ""
116   -IMX_BOOT_SEEK = "33"
117   -
118   -OPTEE_BIN_EXT = "8mq"
119   -
120   -IMAGE_FSTYPES = "tar.bz2"
conf/machine/smarcimx8qm4g.conf
1   -#@TYPE: Machine
2   -#@NAME: EMBEDIAN SMARC-iMX8QM CPU Module with 4GB LPDDR4
3   -#@SOC: i.MX8QM
4   -#@DESCRIPTION: Machine configuration for Embedian i.MX 8QuadMax SMARC card
5   -#@MAINTAINER: Eric Lee <eric.lee@embedian.com>
6   -
7   -MACHINEOVERRIDES =. "mx8:mx8qm:"
8   -
9   -require conf/machine/include/imx-base.inc
10   -require conf/machine/include/arm/armv8a/tune-cortexa72-cortexa53.inc
11   -
12   -IMX_DEFAULT_BSP = "nxp"
13   -
14   -MACHINE_FEATURES += "pci"
15   -MACHINE_FEATURES:append:use-nxp-bsp = " wifi bluetooth usbgadget vfat ext2 alsa serial optee nxp8997"
16   -
17   -# Don't include kernels in standard images
18   -RRECOMMENDS:${KERNEL_PACKAGE_NAME}-base = ""
19   -
20   -PREFERRED_PROVIDER_virtual/kernel:use-nxp-bsp ??= "linux-imx"
21   -
22   -LOADADDR = ""
23   -
24   -# We have to disable SERIAL_CONSOLE due to auto-serial-console
25   -SERIAL_CONSOLES = "115200;ttyAMA0"
26   -
27   -# we do not want to have getty running on tty1 as we run
28   -# auto-serial-console there
29   -USE_VT = "0"
30   -
31   -KERNEL_DEVICETREE = " \
32   - embedian/imx8qm-smarc.dtb \
33   - embedian/imx8qm-smarc-lvds.dtb \
34   - embedian/imx8qm-smarc-hdmi.dtb \
35   - embedian/imx8qm-smarc-dp.dtb \
36   - embedian/imx8qm-smarc-rpmsg.dtb \
37   - embedian/imx8qm-smarc-edp.dtb \
38   -"
39   -
40   -# Set u-boot DTB
41   -UBOOT_DTB_NAME = "imx8qm-smarc.dtb"
42   -
43   -UBOOT_MAKE_TARGET = \
44   - "${@bb.utils.contains('MACHINE_FEATURES', 'optee', '', \
45   - 'u-boot.bin', d)}"
46   -SPL_BINARY = \
47   - "${@bb.utils.contains('MACHINE_FEATURES', 'optee', 'spl/u-boot-spl.bin', \
48   - '', d)}"
49   -IMX_DEFAULT_BOOTLOADER:use-nxp-bsp = "u-boot-imx"
50   -IMX_DEFAULT_BOOTLOADER:use-mainline-bsp = "u-boot-fslc"
51   -
52   -UBOOT_SUFFIX = "bin"
53   -
54   -UBOOT_CONFIG_BASENAME = "smarcimx8qm"
55   -UBOOT_CONSOLE_BASENAME = "ser3"
56   -LPDDR4_BASENAME = "4g"
57   -UBOOT_CONFIG ??= "sd"
58   -UBOOT_CONFIG[sd] = "${UBOOT_CONFIG_BASENAME}_${LPDDR4_BASENAME}_${UBOOT_CONSOLE_BASENAME}_defconfig,sdcard"
59   -
60   -IMX_BOOT_SEEK = "32"
61   -
62   -IMAGE_BOOT_FILES += "hdmitxfw.bin hdmirxfw.bin dpfw.bin"
63   -
64   -# Set ATF platform name
65   -ATF_PLATFORM = "imx8qm"
66   -
67   -IMXBOOT_TARGETS_SD = \
68   - "${@bb.utils.contains('MACHINE_FEATURES', 'optee', 'flash_spl', \
69   - 'flash_linux_m4', d)}"
70   -IMXBOOT_TARGETS = \
71   - "${@bb.utils.contains('UBOOT_CONFIG', 'sd', '${IMXBOOT_TARGETS_SD}', '', d)}"
72   -
73   -IMX_BOOT_SOC_TARGET = "iMX8QM"
74   -
75   -BOARD_TYPE = "smarc-4g"
76   -
77   -MACHINE_EXTRA_RRECOMMENDS += " \
78   - imx-boot \
79   - packagegroup-tools-bluetooth \
80   - pm-utils \
81   - kmod \
82   - hdparm \
83   - gptfdisk \
84   - lftp \
85   - vim \
86   - ntp \
87   - boost \
88   - nodejs \
89   - networkmanager \
90   - android-tools \
91   -"
92   -
93   -IMAGE_INSTALL:append = " \
94   - firmware-imx-sdma-imx6q \
95   - firmware-imx-sdma-imx7d \
96   - linux-firmware-nxp89xx \
97   - nxp-wlan-sdk \
98   - kernel-module-nxp89xx \
99   - ppp \
100   - usb-modeswitch-data \
101   - usb-modeswitch \
102   -"
103   -
104   -IMAGE_FSTYPES = "tar.bz2"
conf/machine/smarcimx8qm8g.conf
1   -#@TYPE: Machine
2   -#@NAME: EMBEDIAN SMARC-iMX8QM CPU Module with 8GB LPDDR4
3   -#@SOC: i.MX8QM
4   -#@DESCRIPTION: Machine configuration for Embedian i.MX 8QuadMax SMARC card
5   -#@MAINTAINER: Eric Lee <eric.lee@embedian.com>
6   -
7   -MACHINEOVERRIDES =. "mx8:mx8qm:"
8   -
9   -require conf/machine/include/imx-base.inc
10   -require conf/machine/include/arm/armv8a/tune-cortexa72-cortexa53.inc
11   -
12   -IMX_DEFAULT_BSP = "nxp"
13   -
14   -MACHINE_FEATURES += "pci"
15   -MACHINE_FEATURES:append:use-nxp-bsp = " wifi bluetooth usbgadget vfat ext2 alsa serial optee nxp8997"
16   -
17   -# Don't include kernels in standard images
18   -RRECOMMENDS:${KERNEL_PACKAGE_NAME}-base = ""
19   -
20   -PREFERRED_PROVIDER_virtual/kernel:use-nxp-bsp ??= "linux-imx"
21   -
22   -LOADADDR = ""
23   -
24   -# We have to disable SERIAL_CONSOLE due to auto-serial-console
25   -SERIAL_CONSOLES = "115200;ttyAMA0"
26   -
27   -# we do not want to have getty running on tty1 as we run
28   -# auto-serial-console there
29   -USE_VT = "0"
30   -
31   -KERNEL_DEVICETREE = " \
32   - embedian/imx8qm-smarc.dtb \
33   - embedian/imx8qm-smarc-lvds.dtb \
34   - embedian/imx8qm-smarc-hdmi.dtb \
35   - embedian/imx8qm-smarc-dp.dtb \
36   - embedian/imx8qm-smarc-rpmsg.dtb \
37   - embedian/imx8qm-smarc-edp.dtb \
38   -"
39   -
40   -# Set u-boot DTB
41   -UBOOT_DTB_NAME = "imx8qm-smarc.dtb"
42   -
43   -UBOOT_MAKE_TARGET = \
44   - "${@bb.utils.contains('MACHINE_FEATURES', 'optee', '', \
45   - 'u-boot.bin', d)}"
46   -SPL_BINARY = \
47   - "${@bb.utils.contains('MACHINE_FEATURES', 'optee', 'spl/u-boot-spl.bin', \
48   - '', d)}"
49   -IMX_DEFAULT_BOOTLOADER:use-nxp-bsp = "u-boot-imx"
50   -IMX_DEFAULT_BOOTLOADER:use-mainline-bsp = "u-boot-fslc"
51   -
52   -UBOOT_SUFFIX = "bin"
53   -
54   -UBOOT_CONFIG_BASENAME = "smarcimx8qm"
55   -UBOOT_CONSOLE_BASENAME = "ser3"
56   -LPDDR4_BASENAME = "8g"
57   -UBOOT_CONFIG ??= "sd"
58   -UBOOT_CONFIG[sd] = "${UBOOT_CONFIG_BASENAME}_${LPDDR4_BASENAME}_${UBOOT_CONSOLE_BASENAME}_defconfig,sdcard"
59   -
60   -IMX_BOOT_SEEK = "32"
61   -
62   -IMAGE_BOOT_FILES += "hdmitxfw.bin hdmirxfw.bin dpfw.bin"
63   -
64   -# Set ATF platform name
65   -ATF_PLATFORM = "imx8qm"
66   -
67   -IMXBOOT_TARGETS_SD = \
68   - "${@bb.utils.contains('MACHINE_FEATURES', 'optee', 'flash_spl', \
69   - 'flash_linux_m4', d)}"
70   -IMXBOOT_TARGETS = \
71   - "${@bb.utils.contains('UBOOT_CONFIG', 'sd', '${IMXBOOT_TARGETS_SD}', '', d)}"
72   -
73   -IMX_BOOT_SOC_TARGET = "iMX8QM"
74   -
75   -BOARD_TYPE = "smarc-8g"
76   -
77   -MACHINE_EXTRA_RRECOMMENDS += " \
78   - imx-boot \
79   - packagegroup-tools-bluetooth \
80   - pm-utils \
81   - kmod \
82   - hdparm \
83   - gptfdisk \
84   - lftp \
85   - vim \
86   - ntp \
87   - boost \
88   - nodejs \
89   - networkmanager \
90   - android-tools \
91   -"
92   -
93   -IMAGE_INSTALL:append = " \
94   - firmware-imx-sdma-imx6q \
95   - firmware-imx-sdma-imx7d \
96   - linux-firmware-nxp89xx \
97   - nxp-wlan-sdk \
98   - kernel-module-nxp89xx \
99   - ppp \
100   - usb-modeswitch-data \
101   - usb-modeswitch \
102   -"
103   -
104   -IMAGE_FSTYPES = "tar.bz2"
recipes-kernel/linux/linux-imx.bb
... ... @@ -16,14 +16,14 @@
16 16  
17 17 DEPENDS += "lzop-native bc-native"
18 18  
19   -SRCBRANCH = "emb_imx_lf-5.15.y"
  19 +SRCBRANCH = "rt_linux_5.15.71"
20 20 LOCALVERSION = "-1.0.0+yocto"
21 21 # Use Github as Kernel Source Repo
22 22 # KERNEL_SRC ?= "git://github.com/embedian/smarc-fsl-linux-kernel.git;protocol=https;branch=${SRCBRANCH}"
23 23 KERNEL_SRC ?= "git://git@git.embedian.com/developer/smarc-fsl-linux-kernel.git;protocol=ssh;branch=${SRCBRANCH}"
24 24 SRC_URI = "${KERNEL_SRC}"
25 25  
26   -SRCREV = "adf910d81008d0af3ca2e53eec31f3b2579c316a"
  26 +SRCREV = "29b2b859b64ea5e95a90e1c602e506a0991fb567"
27 27  
28 28 LINUX_VERSION = "5.15.71"
29 29  
... ... @@ -46,7 +46,7 @@
46 46  
47 47 # Add setting for LF Mainline build
48 48 IMX_KERNEL_CONFIG_AARCH32 = "emb_imx_v7_defconfig"
49   -IMX_KERNEL_CONFIG_AARCH64 = "emb_imx_v8_defconfig"
  49 +IMX_KERNEL_CONFIG_AARCH64 = "rt_emb_imx_v8_defconfig"
50 50 KBUILD_DEFCONFIG ?= ""
51 51 KBUILD_DEFCONFIG:mx6-nxp-bsp= "${IMX_KERNEL_CONFIG_AARCH32}"
52 52 KBUILD_DEFCONFIG:mx7-nxp-bsp= "${IMX_KERNEL_CONFIG_AARCH32}"
recipes-nxp/images/nxp-image-real-time-edge.bbappend
  1 +IMAGE_INSTALL:remove = " \
  2 + packagegroup-real-time-edge-rtos \
  3 + packagegroup-harpoon \
  4 +"
scripts/emb_mk_yocto_sdcard/emb-create-yocto-sdcard.sh
... ... @@ -16,12 +16,12 @@
16 16  
17 17 readonly BSP_TYPE="YOCTO"
18 18 if [[ "${MACHINE}" = "smarcimx8mp2g" || "${MACHINE}" = "smarcimx8mp4g" || "${MACHINE}" = "smarcimx8mp6g" || "${MACHINE}" = "pitximx8mp2g" || "${MACHINE}" = "pitximx8mp4g" || "${MACHINE}" = "pitximx8mp6g" || "${MACHINE}" = "smarcimx8mq2g" || "${MACHINE}" = "smarcimx8mq4g" || "${MACHINE}" = "smarcimx8mm2g" || "${MACHINE}" = "smarcimx8mm4g" || "${MACHINE}" = "smarcimx8qm4g" || "${MACHINE}" = "smarcimx8qm8g" ]]; then
19   -readonly YOCTO_BUILD=${YOCTO_ROOT}/build-xwayland
  19 +readonly YOCTO_BUILD=${YOCTO_ROOT}/build-imx-real-time-edge
20 20 fi
21 21 if [[ "${MACHINE}" = "smarcfimx6q1g" || "${MACHINE}" = "smarcfimx6q2g" || "${MACHINE}" = "smarcfimx6qp1g" || "${MACHINE}" = "smarcfimx6qp2g" || "${MACHINE}" = "smarcfimx6dl1g" || "${MACHINE}" = "smarcfimx6solo" || "${MACHINE}" = "smarcfimx7d2g" || "${MACHINE}" = "smarcfimx7d" || "${MACHINE}" = "smarcfimx7s" ]]; then
22 22 readonly YOCTO_BUILD=${YOCTO_ROOT}/build-fb
23 23 fi
24   -readonly YOCTO_DEFAULT_IMAGE=fsl-image-qt6-validation-imx
  24 +readonly YOCTO_DEFAULT_IMAGE=nxp-image-real-time-edge
25 25  
26 26 readonly YOCTO_SCRIPTS_PATH=${SCRIPT_POINT}
27 27 readonly YOCTO_IMGS_PATH=${YOCTO_BUILD}/tmp/deploy/images/${MACHINE}
28 28  
... ... @@ -259,9 +259,12 @@
259 259 {
260 260 echo
261 261 echo "Installing U-Boot"
262   - if [[ "${MACHINE}" = "smarcimx8qm4g" || "${MACHINE}" = "smarcimx8qm8g" || "${MACHINE}" = "smarcimx8mp2g" || "${MACHINE}" = "smarcimx8mp4g" || "${MACHINE}" = "smarcimx8mp6g" || "${MACHINE}" = "pitximx8mp2g" || "${MACHINE}" = "pitximx8mp4g" || "${MACHINE}" = "pitximx8mp6g" || "${MACHINE}" = "smarcimx8mq2g" || "${MACHINE}" = "smarcimx8mq4g" || "${MACHINE}" = "smarcimx8mm2g" || "${MACHINE}" = "smarcimx8mm4g" ]]; then
  262 + if [[ "${MACHINE}" = "smarcimx8mp2g" || "${MACHINE}" = "smarcimx8mp4g" || "${MACHINE}" = "smarcimx8mp6g" || "${MACHINE}" = "pitximx8mp2g" || "${MACHINE}" = "pitximx8mp4g" || "${MACHINE}" = "pitximx8mp6g" || "${MACHINE}" = "smarcimx8mq2g" || "${MACHINE}" = "smarcimx8mq4g" || "${MACHINE}" = "smarcimx8mm2g" || "${MACHINE}" = "smarcimx8mm4g" ]]; then
263 263 dd if=${YOCTO_IMGS_PATH}/imx-boot-${MACHINE}-sd.bin-flash_evk of=${LPARAM_BLOCK_DEVICE} bs=1K seek=${BOOTLOADER_OFFSET}; sync
264 264 fi
  265 + if [[ "${MACHINE}" = "smarcimx8qm4g" || "${MACHINE}" = "smarcimx8qm8g" ]]; then
  266 + dd if=${YOCTO_IMGS_PATH}/imx-boot-${MACHINE}-sd.bin-flash_spl of=${LPARAM_BLOCK_DEVICE} bs=1K seek=${BOOTLOADER_OFFSET}; sync
  267 + fi
265 268 if [[ "${MACHINE}" = "smarcfimx6q1g" || "${MACHINE}" = "smarcfimx6q2g" || "${MACHINE}" = "smarcfimx6qp1g" || "${MACHINE}" = "smarcfimx6qp2g" || "${MACHINE}" = "smarcfimx6dl1g" || "${MACHINE}" = "smarcfimx6solo" || "${MACHINE}" = "smarcfimx7d2g" || "${MACHINE}" = "smarcfimx7d" || "${MACHINE}" = "smarcfimx7s" ]]; then
266 269 dd if=${YOCTO_IMGS_PATH}/u-boot.imx of=${LPARAM_BLOCK_DEVICE} bs=512 seek=${BOOTLOADER_OFFSET}; sync
267 270 fi
268 271  
... ... @@ -379,9 +382,12 @@
379 382 exit 1
380 383 fi
381 384  
382   - if [[ "${MACHINE}" = "smarcimx8qm4g" || "${MACHINE}" = "smarcimx8qm8g" || "${MACHINE}" = "smarcimx8mp2g" || "${MACHINE}" = "smarcimx8mp4g" || "${MACHINE}" = "smarcimx8mp6g" || "${MACHINE}" = "pitximx8mp2g" || "${MACHINE}" = "pitximx8mp4g" || "${MACHINE}" = "pitximx8mp6g" || "${MACHINE}" = "smarcimx8mq2g" || "${MACHINE}" = "smarcimx8mq4g" || "${MACHINE}" = "smarcimx8mm2g" || "${MACHINE}" = "smarcimx8mm4g" ]]; then
  385 + if [[ "${MACHINE}" = "smarcimx8mp2g" || "${MACHINE}" = "smarcimx8mp4g" || "${MACHINE}" = "smarcimx8mp6g" || "${MACHINE}" = "pitximx8mp2g" || "${MACHINE}" = "pitximx8mp4g" || "${MACHINE}" = "pitximx8mp6g" || "${MACHINE}" = "smarcimx8mq2g" || "${MACHINE}" = "smarcimx8mq4g" || "${MACHINE}" = "smarcimx8mm2g" || "${MACHINE}" = "smarcimx8mm4g" ]]; then
383 386 cp ${YOCTO_IMGS_PATH}/imx-boot-${MACHINE}-sd.bin-* ${P2_MOUNT_DIR}/opt/images/Yocto
384 387 (cd ${P2_MOUNT_DIR}/opt/images/Yocto; ln -fs imx-boot-${MACHINE}-sd.bin-flash_evk imx-boot-sd.bin)
  388 + elif [[ "${MACHINE}" = "smarcimx8qm4g" || "${MACHINE}" = "smarcimx8qm8g" ]]; then
  389 + cp ${YOCTO_IMGS_PATH}/imx-boot-${MACHINE}-sd.bin-* ${P2_MOUNT_DIR}/opt/images/Yocto
  390 + (cd ${P2_MOUNT_DIR}/opt/images/Yocto; ln -fs imx-boot-${MACHINE}-sd.bin-flash_spl imx-boot-sd.bin)
385 391 else
386 392 cp ${YOCTO_IMGS_PATH}/u-boot.imx ${P2_MOUNT_DIR}/opt/images/Yocto/u-boot.imx
387 393 fi
scripts/emb_mk_yocto_sdcard/emb-create-yocto-sdcard.sh.bak
  1 +#!/bin/bash
  2 +set -e
  3 +
  4 +#### Script version ####
  5 +SCRIPT_NAME=${0##*/}
  6 +readonly SCRIPT_VERSION="0.7"
  7 +
  8 +#### Exports Variables ####
  9 +#### global variables ####
  10 +readonly ABSOLUTE_FILENAME=`readlink -e "$0"`
  11 +readonly ABSOLUTE_DIRECTORY=`dirname ${ABSOLUTE_FILENAME}`
  12 +readonly SCRIPT_POINT=${ABSOLUTE_DIRECTORY}
  13 +readonly SCRIPT_START_DATE=`date +%Y%m%d`
  14 +
  15 +readonly YOCTO_ROOT="${SCRIPT_POINT}/../../../../"
  16 +
  17 +readonly BSP_TYPE="YOCTO"
  18 + if [[ "${MACHINE}" = "smarcimx8mp2g" || "${MACHINE}" = "smarcimx8mp4g" || "${MACHINE}" = "smarcimx8mp6g" || "${MACHINE}" = "pitximx8mp2g" || "${MACHINE}" = "pitximx8mp4g" || "${MACHINE}" = "pitximx8mp6g" || "${MACHINE}" = "smarcimx8mq2g" || "${MACHINE}" = "smarcimx8mq4g" || "${MACHINE}" = "smarcimx8mm2g" || "${MACHINE}" = "smarcimx8mm4g" || "${MACHINE}" = "smarcimx8qm4g" || "${MACHINE}" = "smarcimx8qm8g" ]]; then
  19 +readonly YOCTO_BUILD=${YOCTO_ROOT}/build-xwayland
  20 + fi
  21 + if [[ "${MACHINE}" = "smarcfimx6q1g" || "${MACHINE}" = "smarcfimx6q2g" || "${MACHINE}" = "smarcfimx6qp1g" || "${MACHINE}" = "smarcfimx6qp2g" || "${MACHINE}" = "smarcfimx6dl1g" || "${MACHINE}" = "smarcfimx6solo" || "${MACHINE}" = "smarcfimx7d2g" || "${MACHINE}" = "smarcfimx7d" || "${MACHINE}" = "smarcfimx7s" ]]; then
  22 +readonly YOCTO_BUILD=${YOCTO_ROOT}/build-fb
  23 + fi
  24 +readonly YOCTO_DEFAULT_IMAGE=fsl-image-qt6-validation-imx
  25 +
  26 +readonly YOCTO_SCRIPTS_PATH=${SCRIPT_POINT}
  27 +readonly YOCTO_IMGS_PATH=${YOCTO_BUILD}/tmp/deploy/images/${MACHINE}
  28 +
  29 +## display (one of "-hdmi", "-lvds", "-dp", "")
  30 +readonly DISPLAY="-hdmi"
  31 +
  32 +# $1 -- block device
  33 +# $2 -- output images dir
  34 +readonly LPARAM_BLOCK_DEVICE=${1}
  35 +readonly LPARAM_OUTPUT_DIR=${2}
  36 +readonly P1_MOUNT_DIR="${G_TMP_DIR}/p1"
  37 +readonly P2_MOUNT_DIR="${G_TMP_DIR}/p2"
  38 +
  39 + if [[ "${MACHINE}" = "smarcimx8mp2g" || "${MACHINE}" = "smarcimx8mp4g" || "${MACHINE}" = "smarcimx8mp6g" || "${MACHINE}" = "pitximx8mp2g" || "${MACHINE}" = "pitximx8mp4g" || "${MACHINE}" = "pitximx8mp6g" || "${MACHINE}" = "smarcimx8mq2g" || "${MACHINE}" = "smarcimx8mq4g" || "${MACHINE}" = "smarcimx8mm2g" || "${MACHINE}" = "smarcimx8mm4g" || "${MACHINE}" = "smarcimx8qm4g" || "${MACHINE}" = "smarcimx8qm8g" ]]; then
  40 +readonly BOOTLOAD_RESERVE_SIZE=4
  41 + fi
  42 + if [[ "${MACHINE}" = "smarcfimx6q1g" || "${MACHINE}" = "smarcfimx6q2g" || "${MACHINE}" = "smarcfimx6qp1g" || "${MACHINE}" = "smarcfimx6qp2g" || "${MACHINE}" = "smarcfimx6dl1g" || "${MACHINE}" = "smarcfimx6solo" || "${MACHINE}" = "smarcfimx7d2g" || "${MACHINE}" = "smarcfimx7d" || "${MACHINE}" = "smarcfimx7s" ]]; then
  43 +readonly BOOTLOAD_RESERVE_SIZE=1
  44 + fi
  45 +
  46 + if [[ "${MACHINE}" = "smarcimx8mp2g" || "${MACHINE}" = "smarcimx8mp4g" || "${MACHINE}" = "smarcimx8mp6g" || "${MACHINE}" = "pitximx8mp2g" || "${MACHINE}" = "pitximx8mp4g" || "${MACHINE}" = "pitximx8mp6g" || "${MACHINE}" = "smarcimx8mq2g" || "${MACHINE}" = "smarcimx8mq4g" || "${MACHINE}" = "smarcimx8mm2g" || "${MACHINE}" = "smarcimx8mm4g" || "${MACHINE}" = "smarcimx8qm4g" || "${MACHINE}" = "smarcimx8qm8g" ]]; then
  47 +readonly KERNEL_IMAGE=Image
  48 + fi
  49 + if [[ "${MACHINE}" = "smarcfimx6q1g" || "${MACHINE}" = "smarcfimx6q2g" || "${MACHINE}" = "smarcfimx6qp1g" || "${MACHINE}" = "smarcfimx6qp2g" || "${MACHINE}" = "smarcfimx6dl1g" || "${MACHINE}" = "smarcfimx6solo" || "${MACHINE}" = "smarcfimx7d2g" || "${MACHINE}" = "smarcfimx7d" || "${MACHINE}" = "smarcfimx7s" ]]; then
  50 +readonly KERNEL_IMAGE=zImage
  51 + fi
  52 +
  53 +readonly PART1_SIZE=48
  54 +readonly BOOTPART=1
  55 +readonly ROOTFSPART=2
  56 +readonly SPARE_SIZE=4
  57 +
  58 +# Sizes are in MiB
  59 + if [[ "${MACHINE}" = "smarcimx8mp2g" || "${MACHINE}" = "smarcimx8mp4g" || "${MACHINE}" = "smarcimx8mp6g" || "${MACHINE}" = "pitximx8mp2g" || "${MACHINE}" = "pitximx8mp4g" || "${MACHINE}" = "pitximx8mp6g" || "${MACHINE}" = "smarcimx8qm4g" || "${MACHINE}" = "smarcimx8qm8g" ]]; then
  60 +BOOTLOADER_OFFSET=32
  61 + fi
  62 + if [[ "${MACHINE}" = "smarcimx8mq2g" || "${MACHINE}" = "smarcimx8mq4g" || "${MACHINE}" = "smarcimx8mm2g" || "${MACHINE}" = "smarcimx8mm4g" ]]; then
  63 +BOOTLOADER_OFFSET=33
  64 + fi
  65 + if [[ "${MACHINE}" = "smarcfimx6q1g" || "${MACHINE}" = "smarcfimx6q2g" || "${MACHINE}" = "smarcfimx6qp1g" || "${MACHINE}" = "smarcfimx6qp2g" || "${MACHINE}" = "smarcfimx6dl1g" || "${MACHINE}" = "smarcfimx6solo" || "${MACHINE}" = "smarcfimx7d2g" || "${MACHINE}" = "smarcfimx7d" || "${MACHINE}" = "smarcfimx7s" ]]; then
  66 +BOOTLOADER_OFFSET=2
  67 + fi
  68 +
  69 +AUTO_FILL_SD=0
  70 +LOOP_MAJOR=7
  71 +
  72 +# This function performs sanity check to verify that the target device is removable devise of proper size
  73 +function check_device()
  74 +{
  75 + # Check that parameter is a valid block device
  76 + if [ ! -b "$1" ]; then
  77 + echo "$1 is not a valid block device, exiting"
  78 + exit 1
  79 + fi
  80 +
  81 + local dev=$(basename $1)
  82 +
  83 + # Check that /sys/block/$dev exists
  84 + if [ ! -d /sys/block/$dev ]; then
  85 + echo "Directory /sys/block/${dev} missing, exiting"
  86 + exit 1
  87 + fi
  88 +
  89 + # Get device parameters
  90 + local removable=$(cat /sys/block/${dev}/removable)
  91 + local size_bytes=$((512*$(cat /sys/class/block/${dev}/size)))
  92 + local size_gb=$((size_bytes/1000000000))
  93 +
  94 + # Non-removable SD card readers require additional check
  95 + if [ "${removable}" != "1" ]; then
  96 + local drive=$(udisksctl info -b /dev/${dev}|grep "Drive:"|cut -d"'" -f 2)
  97 + local mediaremovable=$(gdbus call --system --dest org.freedesktop.UDisks2 \
  98 + --object-path ${drive} --method org.freedesktop.DBus.Properties.Get \
  99 + org.freedesktop.UDisks2.Drive MediaRemovable)
  100 + if [[ "${mediaremovable}" = *"true"* ]]; then
  101 + removable=1
  102 + fi
  103 + fi
  104 +
  105 + # Check that device is either removable or loop
  106 + if [ "$removable" != "1" -a $(stat -c '%t' /dev/$dev) != ${LOOP_MAJOR} ]; then
  107 + echo "$1 is not a removable device, exiting"
  108 + exit 1
  109 + fi
  110 +
  111 + # Check that device is attached
  112 + if [ ${size_bytes} -eq 0 ]; then
  113 + echo "$1 is not attached, exiting"
  114 + exit 1
  115 + fi
  116 +
  117 + # Check that device has a valid size
  118 + echo "Detected removable device $1, size=${size_gb}GB"
  119 +}
  120 +
  121 +YOCTO_RECOVERY_ROOTFS_PATH=${YOCTO_IMGS_PATH}
  122 +
  123 +echo "================================================"
  124 +echo "= Embedian recovery SD card creation script ="
  125 +echo "================================================"
  126 +
  127 +help() {
  128 + bn=`basename $0`
  129 + echo " Usage: MACHINE=<smarcimx8qm4g|smarcimx8qm8g|smarcimx8mp2g|smarcimx8mp4g|smarcimx8mp6g|pitximx8mp2g|pitximx8mp4g|pitximx8mp6g|smarcimx8mq2g|smarcimx8mq4g|smarcimx8mm2g|smarcimx8mm4g|smarcfimx6q2g|smarcfimx6q1g|smarcfimx6qp2g|smarcfimx6qp1g|smarcfimx6dl1g|smarcfimx6solo|smarcfimx7d2g|smarcfimx7d|smarcfimx7s> $bn <options> device_node"
  130 + echo
  131 + echo " options:"
  132 + echo " -h display this Help message"
  133 + echo " -s only Show partition sizes to be written, without actually write them"
  134 + echo " -a Automatically set the rootfs partition size to fill the SD card (leaving spare ${SPARE_SIZE}MiB)"
  135 + echo " -r ROOTFS_NAME select an alternative Rootfs for recovery images"
  136 + echo " (default: \"${YOCTO_RECOVERY_ROOTFS_PATH}/${YOCTO_DEFAULT_IMAGE}\")"
  137 + echo " -n TEXT_FILE add a release Notes text file"
  138 + echo
  139 +}
  140 +
  141 +if [[ $EUID -ne 0 ]] ; then
  142 + echo "This script must be run with super-user privileges"
  143 + exit 1
  144 +fi
  145 +
  146 +if [["${MACHINE}" != "smarcimx8qm4g" && "${MACHINE}" != "smarcimx8qm8g" && "${MACHINE}" != "smarcimx8mp2g" && "${MACHINE}" != "smarcimx8mp4g" && "${MACHINE}" != "smarcimx8mp6g" && "${MACHINE}" != "pitximx8mp2g" && "${MACHINE}" != "pitximx8mp4g" && "${MACHINE}" != "pitximx8mp6g" && "${MACHINE}" != "smarcimx8mq2g" && "${MACHINE}" != "smarcimx8mq4g" && "${MACHINE}" != "smarcimx8mm2g" && "${MACHINE}" != "smarcimx8mm4g" && "${MACHINE}" != "smarcfimx6qp2g" && "${MACHINE}" != "smarcfimx6qp1g" && "${MACHINE}" != "smarcfimx6q2g" && "${MACHINE}" != "smarcfimx6q1g" && "${MACHINE}" != "smarcfimx6dl1g" && "${MACHINE}" != "smarcfimx6solo" && "${MACHINE}" != "smarcfimx7d2g" && "${MACHINE}" != "smarcfimx7d" && "${MACHINE}" != "smarcfimx7s" ]] ; then
  147 + echo "Unsupported machine!!"
  148 + exit 1
  149 +fi
  150 +
  151 +
  152 +# Parse command line
  153 +moreoptions=1
  154 +node="na"
  155 +cal_only=0
  156 +
  157 +while [ "$moreoptions" = 1 -a $# -gt 0 ]; do
  158 + case $1 in
  159 + -h) help; exit 3 ;;
  160 + -s) cal_only=1 ;;
  161 + -a) AUTO_FILL_SD=1 ;;
  162 + -r) shift;
  163 + YOCTO_RECOVERY_ROOTFS_MASK_PATH=`readlink -e "${1}.tar.bz2"`;
  164 + YOCTO_RECOVERY_ROOTFS_PATH=`dirname ${YOCTO_RECOVERY_ROOTFS_MASK_PATH}`
  165 + YOCTO_RECOVERY_ROOTFS_BASE_IN_NAME=`basename ${1}`
  166 + ;;
  167 + -n) shift;
  168 + RELEASE_NOTES_FILE=${1}
  169 + ;;
  170 + *) moreoptions=0;;
  171 + esac
  172 + [ "$moreoptions" = 0 ] && [ $# -gt 1 ] && help && exit 1
  173 + [ "$moreoptions" = 1 ] && shift
  174 +done
  175 +
  176 + part=""
  177 + if [ `echo ${LPARAM_BLOCK_DEVICE} | grep -c mmcblk` -ne 0 ]; then
  178 + part="p"
  179 + fi
  180 +
  181 +# allow only removable/loopback devices, to protect host PC
  182 +echo "MACHINE=${MACHINE}"
  183 +echo "SD card rootfs: ${YOCTO_DEFAULT_IMAGE}"
  184 +echo "Recovery rootfs: ${YOCTO_DEFAULT_IMAGE}"
  185 +echo "================================================"
  186 +check_device ${LPARAM_BLOCK_DEVICE}
  187 +echo "================================================"
  188 +read -p "Press Enter to continue"
  189 +
  190 +function delete_device
  191 +{
  192 + echo
  193 + echo "Deleting current partitions"
  194 + for ((i=0; i<10; i++))
  195 + do
  196 + if [ `ls ${LPARAM_BLOCK_DEVICE}${part}$i 2> /dev/null | grep -c ${LPARAM_BLOCK_DEVICE}${part}$i` -ne 0 ]; then
  197 + dd if=/dev/zero of=${LPARAM_BLOCK_DEVICE}${part}$i bs=512 count=1024
  198 + fi
  199 + done
  200 + sync
  201 +
  202 + ((echo d; echo 1; echo d; echo 2; echo d; echo 3; echo d; echo w) | fdisk ${LPARAM_BLOCK_DEVICE} &> /dev/null) || true
  203 + sync
  204 +
  205 + dd if=/dev/zero of=${LPARAM_BLOCK_DEVICE} bs=1M count=160
  206 + sync; sleep 1
  207 +}
  208 +
  209 +function ceildiv
  210 +{
  211 + local num=$1
  212 + local div=$2
  213 + echo $(( (num + div - 1) / div ))
  214 +}
  215 +
  216 +function create_parts
  217 +{
  218 + echo
  219 + echo "Creating new partitions"
  220 + # Get total card size
  221 + TOTAL_SIZE=`fdisk -s ${LPARAM_BLOCK_DEVICE}`
  222 + TOTAL_SIZE=`expr ${TOTAL_SIZE} / 1024`
  223 + ROOTFS_SIZE=`expr ${TOTAL_SIZE} - ${BOOTLOAD_RESERVE_SIZE} - ${PART1_SIZE} - ${SPARE_SIZE}`
  224 +
  225 + echo "ROOT SIZE=${ROOTFS_SIZE} TOTAl SIZE=${TOTAL_SIZE}"
  226 +
  227 + BLOCK=`echo ${LPARAM_BLOCK_DEVICE} | cut -d "/" -f 3`
  228 + SECT_SIZE_BYTES=`cat /sys/block/${BLOCK}/queue/physical_block_size`
  229 +
  230 + BOOTLOAD_RESERVE_SIZE_BYTES=$((BOOTLOAD_RESERVE_SIZE * 1024 * 1024))
  231 + PART1_SIZE_BYTES=$((PART1_SIZE * 1024 * 1024))
  232 + PART1_END_BYTES=`expr ${BOOTLOAD_RESERVE_SIZE_BYTES} + ${PART1_SIZE_BYTES}`
  233 + ROOTFS_SIZE_BYTES=$((ROOTFS_SIZE * 1024 * 1024))
  234 +
  235 + PART1_FIRST_SECT=`ceildiv ${BOOTLOAD_RESERVE_SIZE_BYTES} ${SECT_SIZE_BYTES}`
  236 + PART1_END_SECT=`ceildiv ${PART1_END_BYTES} ${SECT_SIZE_BYTES}`
  237 + PART2_FIRST_SECT=`expr ${PART1_END_SECT} + 1 `
  238 +
  239 + (echo n; echo p; echo $BOOTPART; echo $PART1_FIRST_SECT; \
  240 + echo $PART1_END_SECT; echo n; echo p; echo $ROOTFSPART; \
  241 + echo $PART2_FIRST_SECT; echo; echo p; echo w) | fdisk -u ${LPARAM_BLOCK_DEVICE} > /dev/null
  242 +
  243 + sleep 2; sync;
  244 + fdisk -l ${LPARAM_BLOCK_DEVICE}
  245 +
  246 + sleep 2; sync;
  247 +}
  248 +
  249 +function format_parts
  250 +{
  251 + echo
  252 + echo "Formatting partitions"
  253 + mkfs.vfat -F 16 ${LPARAM_BLOCK_DEVICE}${part}1 -n boot
  254 + mkfs.ext4 ${LPARAM_BLOCK_DEVICE}${part}2 -L rootfs
  255 + sync; sleep 1
  256 +}
  257 +
  258 +function install_bootloader
  259 +{
  260 + echo
  261 + echo "Installing U-Boot"
  262 + if [[ "${MACHINE}" = "smarcimx8qm4g" || "${MACHINE}" = "smarcimx8qm8g" || "${MACHINE}" = "smarcimx8mp2g" || "${MACHINE}" = "smarcimx8mp4g" || "${MACHINE}" = "smarcimx8mp6g" || "${MACHINE}" = "pitximx8mp2g" || "${MACHINE}" = "pitximx8mp4g" || "${MACHINE}" = "pitximx8mp6g" || "${MACHINE}" = "smarcimx8mq2g" || "${MACHINE}" = "smarcimx8mq4g" || "${MACHINE}" = "smarcimx8mm2g" || "${MACHINE}" = "smarcimx8mm4g" ]]; then
  263 + dd if=${YOCTO_IMGS_PATH}/imx-boot-${MACHINE}-sd.bin-flash_evk of=${LPARAM_BLOCK_DEVICE} bs=1K seek=${BOOTLOADER_OFFSET}; sync
  264 + fi
  265 + if [[ "${MACHINE}" = "smarcfimx6q1g" || "${MACHINE}" = "smarcfimx6q2g" || "${MACHINE}" = "smarcfimx6qp1g" || "${MACHINE}" = "smarcfimx6qp2g" || "${MACHINE}" = "smarcfimx6dl1g" || "${MACHINE}" = "smarcfimx6solo" || "${MACHINE}" = "smarcfimx7d2g" || "${MACHINE}" = "smarcfimx7d" || "${MACHINE}" = "smarcfimx7s" ]]; then
  266 + dd if=${YOCTO_IMGS_PATH}/u-boot.imx of=${LPARAM_BLOCK_DEVICE} bs=512 seek=${BOOTLOADER_OFFSET}; sync
  267 + fi
  268 +}
  269 +
  270 +function mount_parts
  271 +{
  272 + mkdir -p ${P1_MOUNT_DIR}
  273 + mkdir -p ${P2_MOUNT_DIR}
  274 + sync
  275 +
  276 + mount ${LPARAM_BLOCK_DEVICE}${part}1 ${P1_MOUNT_DIR}
  277 + mount ${LPARAM_BLOCK_DEVICE}${part}2 ${P2_MOUNT_DIR}
  278 + sleep 2; sync;
  279 +}
  280 +
  281 +function unmount_parts
  282 +{
  283 + umount ${P1_MOUNT_DIR}
  284 + umount ${P2_MOUNT_DIR}
  285 +
  286 + rm -rf ${P1_MOUNT_DIR}
  287 + rm -rf ${P2_MOUNT_DIR}
  288 +}
  289 +
  290 +function install_yocto
  291 +{
  292 + echo
  293 + echo "Flashing \"Image, device tree and uEnv.txt\" partition"
  294 + cp -v ${YOCTO_IMGS_PATH}/${KERNEL_IMAGE} ${P1_MOUNT_DIR}/
  295 + mkdir -p ${P1_MOUNT_DIR}/dtbs/
  296 + if [[ "${MACHINE}" = "smarcimx8mp2g" || "${MACHINE}" = "smarcimx8mp4g" || "${MACHINE}" = "smarcimx8mp6g" ]]; then
  297 + cp -v ${YOCTO_IMGS_PATH}/imx8mp-smarc${DISPLAY}.dtb ${P1_MOUNT_DIR}/dtbs/imx8mp-smarc.dtb
  298 + cp -v ${YOCTO_SCRIPTS_PATH}/uEnv_8mp.txt ${P1_MOUNT_DIR}/uEnv.txt
  299 + elif [[ "${MACHINE}" = "smarcimx8qm4g" || "${MACHINE}" = "smarcimx8qm8g" ]]; then
  300 + cp -v ${YOCTO_IMGS_PATH}/imx8qm-smarc${DISPLAY}.dtb ${P1_MOUNT_DIR}/dtbs/imx8qm-smarc.dtb
  301 + cp -v ${YOCTO_SCRIPTS_PATH}/uEnv_8qm.txt ${P1_MOUNT_DIR}/uEnv.txt
  302 + elif [[ "${MACHINE}" = "pitximx8mp2g" || "${MACHINE}" = "pitximx8mp4g" || "${MACHINE}" = "pitximx8mp6g" ]]; then
  303 + cp -v ${YOCTO_IMGS_PATH}/imx8mp-pitx.dtb ${P1_MOUNT_DIR}/dtbs/imx8mp-pitx.dtb
  304 + cp -v ${YOCTO_SCRIPTS_PATH}/uEnv_8mp_pitx.txt ${P1_MOUNT_DIR}/uEnv.txt
  305 + elif [[ "${MACHINE}" = "smarcimx8mq2g" || "${MACHINE}" = "smarcimx8mq4g" ]]; then
  306 + cp -v ${YOCTO_IMGS_PATH}/imx8mq-smarc${DISPLAY}.dtb ${P1_MOUNT_DIR}/dtbs/imx8mq-smarc.dtb
  307 + cp -v ${YOCTO_SCRIPTS_PATH}/uEnv_8mq.txt ${P1_MOUNT_DIR}/uEnv.txt
  308 + elif [[ "${MACHINE}" = "smarcimx8mm2g" || "${MACHINE}" = "smarcimx8mm4g" ]]; then
  309 + cp -v ${YOCTO_IMGS_PATH}/imx8mm-smarc.dtb ${P1_MOUNT_DIR}/dtbs/imx8mm-smarc.dtb
  310 + cp -v ${YOCTO_SCRIPTS_PATH}/uEnv_8mm.txt ${P1_MOUNT_DIR}/uEnv.txt
  311 + elif [[ "${MACHINE}" = "smarcfimx6q2g" || "${MACHINE}" = "smarcfimx6q1g" ]]; then
  312 + cp -v ${YOCTO_IMGS_PATH}/imx6q-smarc.dtb ${P1_MOUNT_DIR}/dtbs/imx6q-smarc.dtb
  313 + cp -v ${YOCTO_SCRIPTS_PATH}/uEnv_6qdl.txt ${P1_MOUNT_DIR}/uEnv.txt
  314 + cp -v ${YOCTO_IMGS_PATH}/u-boot.imx ${P1_MOUNT_DIR}/u-boot.imx
  315 +
  316 + elif [[ "${MACHINE}" = "smarcfimx6qp2g" || "${MACHINE}" = "smarcfimx6qp1g" ]]; then
  317 + cp -v ${YOCTO_IMGS_PATH}/imx6qp-smarc.dtb ${P1_MOUNT_DIR}/dtbs/imx6qp-smarc.dtb
  318 + cp -v ${YOCTO_SCRIPTS_PATH}/uEnv_6qdl.txt ${P1_MOUNT_DIR}/uEnv.txt
  319 + cp -v ${YOCTO_IMGS_PATH}/u-boot.imx ${P1_MOUNT_DIR}/u-boot.imx
  320 + elif [[ "${MACHINE}" = "smarcfimx6dl1g" || "${MACHINE}" = "smarcfimx6solo" ]]; then
  321 + cp -v ${YOCTO_IMGS_PATH}/imx6dl-smarc.dtb ${P1_MOUNT_DIR}/dtbs/imx6dl-smarc.dtb
  322 + cp -v ${YOCTO_SCRIPTS_PATH}/uEnv_6qdl.txt ${P1_MOUNT_DIR}/uEnv.txt
  323 + cp -v ${YOCTO_IMGS_PATH}/u-boot.imx ${P1_MOUNT_DIR}/u-boot.imx
  324 + elif [[ "${MACHINE}" = "smarcfimx7d2g" || "${MACHINE}" = "smarcfimx7d" || "${MACHINE}" = "smarcfimx7s" ]]; then
  325 + cp -v ${YOCTO_IMGS_PATH}/imx7d-smarc.dtb ${P1_MOUNT_DIR}/dtbs/imx7d-smarc.dtb
  326 + cp -v ${YOCTO_SCRIPTS_PATH}/uEnv_7ds.txt ${P1_MOUNT_DIR}/uEnv.txt
  327 + cp -v ${YOCTO_IMGS_PATH}/u-boot.imx ${P1_MOUNT_DIR}/u-boot.imx
  328 +
  329 + else
  330 + echo "Unsupported machine!!"
  331 + exit 1
  332 + fi
  333 +
  334 + echo
  335 + echo "Installing Yocto Root File System"
  336 + tar jxvf ${YOCTO_IMGS_PATH}/${YOCTO_DEFAULT_IMAGE}-${MACHINE}.tar.bz2 -C ${P2_MOUNT_DIR}/
  337 + sync
  338 +}
  339 +
  340 +function copy_images
  341 +{
  342 + echo
  343 + echo "Copying Yocto images to /opt/images/"
  344 + mkdir -p ${P2_MOUNT_DIR}/opt/images/Yocto
  345 +
  346 + # Copy image for eMMC
  347 + if [ -f ${YOCTO_IMGS_PATH}/${YOCTO_DEFAULT_IMAGE}-${MACHINE}.tar.bz2 ]; then
  348 + pv ${YOCTO_IMGS_PATH}/${YOCTO_DEFAULT_IMAGE}-${MACHINE}.tar.bz2 > ${P2_MOUNT_DIR}/opt/images/Yocto/rootfs.tar.bz2
  349 + else
  350 + echo "rootfs.tar.gz file is not present. Installation on \"eMMC\" will not be supported."
  351 + fi
  352 +
  353 + echo
  354 + echo "Copying Kernel Images to /opt/images/"
  355 + cp ${YOCTO_IMGS_PATH}/${KERNEL_IMAGE} ${P2_MOUNT_DIR}/opt/images/Yocto/${KERNEL_IMAGE}
  356 +
  357 + echo
  358 + echo "Copying Kernel Device Tree Blob to /opt/images/"
  359 + cp -v ${YOCTO_IMGS_PATH}/*.dtb ${P2_MOUNT_DIR}/opt/images/Yocto/
  360 +
  361 + echo
  362 + echo "Copying Kernel Parameter uEnv.txt to /opt/images/"
  363 + if [[ "${MACHINE}" = "smarcimx8mp2g" || "${MACHINE}" = "smarcimx8mp4g" || "${MACHINE}" = "smarcimx8mp6g" ]]; then
  364 + cp -v ${YOCTO_SCRIPTS_PATH}/uEnv_emmc_8mp.txt ${P2_MOUNT_DIR}/opt/images/Yocto/uEnv.txt
  365 + elif [[ "${MACHINE}" = "pitximx8mp2g" || "${MACHINE}" = "pitximx8mp4g" || "${MACHINE}" = "pitximx8mp6g" ]]; then
  366 + cp -v ${YOCTO_SCRIPTS_PATH}/uEnv_emmc_8mp_pitx.txt ${P2_MOUNT_DIR}/opt/images/Yocto/uEnv.txt
  367 + elif [[ "${MACHINE}" = "smarcimx8qm4g" || "${MACHINE}" = "smarcimx8qm8g" ]]; then
  368 + cp -v ${YOCTO_SCRIPTS_PATH}/uEnv_emmc_8qm.txt ${P2_MOUNT_DIR}/opt/images/Yocto/uEnv.txt
  369 + elif [[ "${MACHINE}" = "smarcimx8mq2g" || "${MACHINE}" = "smarcimx8mq4g" ]]; then
  370 + cp -v ${YOCTO_SCRIPTS_PATH}/uEnv_emmc_8mq.txt ${P2_MOUNT_DIR}/opt/images/Yocto/uEnv.txt
  371 + elif [[ "${MACHINE}" = "smarcimx8mm2g" || "${MACHINE}" = "smarcimx8mm4g" ]]; then
  372 + cp -v ${YOCTO_SCRIPTS_PATH}/uEnv_emmc_8mm.txt ${P2_MOUNT_DIR}/opt/images/Yocto/uEnv.txt
  373 + elif [[ "${MACHINE}" = "smarcfimx6qp2g" || "${MACHINE}" = "smarcfimx6qp1g" || "${MACHINE}" = "smarcfimx6q2g" || "${MACHINE}" = "smarcfimx6q1g" || "${MACHINE}" = "smarcfimx6dl1g" || "${MACHINE}" = "smarcfimx6solo" ]]; then
  374 + cp -v ${YOCTO_SCRIPTS_PATH}/uEnv_emmc_6qdl.txt ${P2_MOUNT_DIR}/opt/images/Yocto/uEnv.txt
  375 + elif [[ "${MACHINE}" = "smarcfimx7d2g" || "${MACHINE}" = "smarcfimx7d" || "${MACHINE}" = "smarcfimx7s" ]]; then
  376 + cp -v ${YOCTO_SCRIPTS_PATH}/uEnv_emmc_7ds.txt ${P2_MOUNT_DIR}/opt/images/Yocto/uEnv.txt
  377 + else
  378 + echo "Unsupported machine!!"
  379 + exit 1
  380 + fi
  381 +
  382 + if [[ "${MACHINE}" = "smarcimx8qm4g" || "${MACHINE}" = "smarcimx8qm8g" || "${MACHINE}" = "smarcimx8mp2g" || "${MACHINE}" = "smarcimx8mp4g" || "${MACHINE}" = "smarcimx8mp6g" || "${MACHINE}" = "pitximx8mp2g" || "${MACHINE}" = "pitximx8mp4g" || "${MACHINE}" = "pitximx8mp6g" || "${MACHINE}" = "smarcimx8mq2g" || "${MACHINE}" = "smarcimx8mq4g" || "${MACHINE}" = "smarcimx8mm2g" || "${MACHINE}" = "smarcimx8mm4g" ]]; then
  383 + cp ${YOCTO_IMGS_PATH}/imx-boot-${MACHINE}-sd.bin-* ${P2_MOUNT_DIR}/opt/images/Yocto
  384 + (cd ${P2_MOUNT_DIR}/opt/images/Yocto; ln -fs imx-boot-${MACHINE}-sd.bin-flash_evk imx-boot-sd.bin)
  385 + else
  386 + cp ${YOCTO_IMGS_PATH}/u-boot.imx ${P2_MOUNT_DIR}/opt/images/Yocto/u-boot.imx
  387 + fi
  388 +}
  389 +
  390 +function copy_scripts
  391 +{
  392 + echo
  393 + echo "Copying scripts"
  394 +
  395 + if [[ "${MACHINE}" = "smarcimx8mp2g" || "${MACHINE}" = "smarcimx8mp4g" || "${MACHINE}" = "smarcimx8mp6g" ]]; then
  396 + cp ${YOCTO_SCRIPTS_PATH}/smarc-imx8mp-create-yocto-emmc.sh ${P2_MOUNT_DIR}/usr/bin/
  397 + elif [[ "${MACHINE}" = "pitximx8mp2g" || "${MACHINE}" = "pitximx8mp4g" || "${MACHINE}" = "pitximx8mp6g" ]]; then
  398 + cp ${YOCTO_SCRIPTS_PATH}/pitx-imx8mp-create-yocto-emmc.sh ${P2_MOUNT_DIR}/usr/bin/
  399 + elif [[ "${MACHINE}" = "smarcimx8qm4g" || "${MACHINE}" = "smarcimx8qm8g" ]]; then
  400 + cp ${YOCTO_SCRIPTS_PATH}/smarc-imx8qm-create-yocto-emmc.sh ${P2_MOUNT_DIR}/usr/bin/
  401 + elif [[ "${MACHINE}" = "smarcimx8mq2g" || "${MACHINE}" = "smarcimx8mq4g" ]]; then
  402 + cp ${YOCTO_SCRIPTS_PATH}/smarc-imx8mq-create-yocto-emmc.sh ${P2_MOUNT_DIR}/usr/bin/
  403 + elif [[ "${MACHINE}" = "smarcimx8mm2g" || "${MACHINE}" = "smarcimx8mm4g" ]]; then
  404 + cp ${YOCTO_SCRIPTS_PATH}/smarc-imx8mm-create-yocto-emmc.sh ${P2_MOUNT_DIR}/usr/bin/
  405 + elif [[ "${MACHINE}" = "smarcfimx6qp2g" || "${MACHINE}" = "smarcfimx6qp1g" || "${MACHINE}" = "smarcfimx6q2g" || "${MACHINE}" = "smarcfimx6q1g" || "${MACHINE}" = "smarcfimx6dl1g" || "${MACHINE}" = "smarcfimx6solo" ]]; then
  406 + cp ${YOCTO_SCRIPTS_PATH}/smarc-fimx6qdl-create-yocto-emmc.sh ${P2_MOUNT_DIR}/usr/bin/
  407 + elif [[ "${MACHINE}" = "smarcfimx7d2g" || "${MACHINE}" = "smarcfimx7d" || "${MACHINE}" = "smarcfimx7s" ]]; then
  408 + cp ${YOCTO_SCRIPTS_PATH}/smarc-fimx7-create-yocto-emmc.sh ${P2_MOUNT_DIR}/usr/bin/
  409 + else
  410 + echo "Unsupported machine!!"
  411 + exit 1
  412 + fi
  413 +}
  414 +
  415 +umount ${LPARAM_BLOCK_DEVICE}${part}* 2> /dev/null || true
  416 +
  417 +delete_device
  418 +create_parts
  419 +format_parts
  420 +
  421 +mount_parts
  422 +install_yocto
  423 +copy_images
  424 +copy_scripts
  425 +
  426 +echo
  427 +echo "Syncing"
  428 +sync | pv -t
  429 +
  430 +unmount_parts
  431 +
  432 +install_bootloader
  433 +
  434 +echo
  435 +echo "Done"
  436 +echo "========Flash to SD card Completed!========="
  437 +
  438 +exit 0