SPL démarre avec la fonction SPL_OF_CONTROL pour U-Boot version 2023.1

This commit is contained in:
2023-04-04 07:00:33 +00:00
parent d3cfc7d68c
commit f98111799e
10 changed files with 332 additions and 105 deletions

View File

@@ -0,0 +1,16 @@
--- a/arch/arm/mach-omap2/am33xx/board.c
+++ b/arch/arm/mach-omap2/am33xx/board.c
@@ -265,9 +267,10 @@ int arch_misc_init(void)
struct udevice *dev;
int ret;
- ret = uclass_first_device_err(UCLASS_MISC, &dev);
- if (ret)
- return ret;
+// ret = uclass_first_device_err(UCLASS_MISC, &dev);
+// if (ret) {
+// return ret;
+// }
#if defined(CONFIG_DM_ETH) && defined(CONFIG_USB_ETHER)
ret = usb_ether_init();

View File

@@ -11,22 +11,3 @@
if (fdt_chk_version()) {
if ((fdt_version(fdt) < FDT_FIRST_SUPPORTED_VERSION)
|| (fdt_last_comp_version(fdt) >
--- a/common/spl/spl.c
+++ b/common/spl/spl.c
@@ -561,11 +561,11 @@ static int spl_common_init(bool setup_malloc)
}
#endif
if (CONFIG_IS_ENABLED(OF_REAL)) {
- ret = fdtdec_setup();
- if (ret) {
- debug("fdtdec_setup() returned error %d\n", ret);
- return ret;
- }
+ //ret = fdtdec_setup();
+ //if (ret) {
+ // debug("fdtdec_setup() returned error %d\n", ret);
+ // return ret;
+ //}
}
if (CONFIG_IS_ENABLED(DM)) {
bootstage_start(BOOTSTAGE_ID_ACCUM_DM_SPL,

View File

@@ -9,49 +9,6 @@
#include <common.h>
#include <cpu_func.h>
#include <event.h>
--- a/common/spl/spl_mmc.c
+++ b/common/spl/spl_mmc.c
@@ -5,6 +5,9 @@
*
* Aneesh V <aneesh@ti.com>
*/
+
+#define DEBUG
+
#include <common.h>
#include <dm.h>
#include <log.h>
@@ -155,6 +158,7 @@ static int spl_mmc_find_device(struct mmc **mmcp, u32 boot_device)
int err, mmc_dev;
mmc_dev = spl_mmc_get_device_index(boot_device);
+ printf("spl: mmc get device index : %d\n", mmc_dev);
if (mmc_dev < 0)
return mmc_dev;
@@ -423,10 +427,13 @@ int spl_mmc_load(struct spl_image_info *spl_image,
/* Perform peripheral init only once for an mmc device */
mmc_dev = spl_mmc_get_device_index(bootdev->boot_device);
+ printf("spl: mmc_dev: %d\n", mmc_dev);
if (!mmc || spl_mmc_get_mmc_devnum(mmc) != mmc_dev) {
err = spl_mmc_find_device(&mmc, bootdev->boot_device);
- if (err)
+ if (err) {
+ printf("spl: mmc find device failed: %d\n", err);
return err;
+ }
err = mmc_init(mmc);
if (err) {
@@ -438,6 +445,7 @@ int spl_mmc_load(struct spl_image_info *spl_image,
}
}
+ debug("spl: on passe par ici\n");
boot_mode = spl_mmc_boot_mode(mmc, bootdev->boot_device);
err = -EINVAL;
switch (boot_mode) {
--- a/drivers/mmc/mmc-uclass.c
+++ b/drivers/mmc/mmc-uclass.c
@@ -5,6 +5,8 @@
@@ -102,21 +59,6 @@
#define LOG_CATEGORY LOGC_DM
#include <common.h>
@@ -29,12 +31,14 @@ struct uclass *uclass_find(enum uclass_id key)
if (!gd->dm_root)
return NULL;
+ log_debug("uclass_find, key: %d\n", key);
/*
* TODO(sjg@chromium.org): Optimise this, perhaps moving the found
* node to the start of the list, or creating a linear array mapping
* id to node.
*/
list_for_each_entry(uc, gd->uclass_root, sibling_node) {
+ log_debug("uclass_find, id: %d - key: %d\n", uc->uc_drv->id, key);
if (uc->uc_drv->id == key)
return uc;
}
@@ -57,6 +61,7 @@ static int uclass_add(enum uclass_id id, struct uclass **ucp)
struct uclass *uc;
int ret;
@@ -304,3 +246,140 @@
return 0;
}
diff --git a/common/spl/spl.c b/common/spl/spl.c
index 22d2a0621e..f77b238237 100644
--- a/common/spl/spl.c
+++ b/common/spl/spl.c
@@ -6,6 +6,8 @@
* Aneesh V <aneesh@ti.com>
*/
+#define DEBUG
+
#include <common.h>
#include <bloblist.h>
#include <binman_sym.h>
@@ -750,11 +752,13 @@ void board_init_r(gd_t *dummy1, ulong dummy2)
debug(">>" SPL_TPL_PROMPT "board_init_r()\n");
+ debug("boot_init_r\n");
spl_set_bd();
#if defined(CONFIG_SYS_SPL_MALLOC)
mem_malloc_init(SYS_SPL_MALLOC_START, CONFIG_SYS_SPL_MALLOC_SIZE);
gd->flags |= GD_FLG_FULL_MALLOC_INIT;
+ debug("boot_init_r: SYS_SPL_MALLOC\n");
#endif
if (!(gd->flags & GD_FLG_SPL_INIT)) {
if (spl_init())
--- a/common/spl/spl_mmc.c
+++ b/common/spl/spl_mmc.c
@@ -5,6 +5,9 @@
*
* Aneesh V <aneesh@ti.com>
*/
+
+#define DEBUG
+
#include <common.h>
#include <dm.h>
#include <log.h>
@@ -155,6 +158,7 @@ static int spl_mmc_find_device(struct mmc **mmcp, u32 boot_device)
int err, mmc_dev;
mmc_dev = spl_mmc_get_device_index(boot_device);
+ printf("spl: mmc get device index : %d\n", mmc_dev);
if (mmc_dev < 0)
return mmc_dev;
@@ -305,6 +309,7 @@ static int spl_mmc_do_fs_boot(struct spl_image_info *spl_image,
#endif
#ifdef CONFIG_SPL_FS_FAT
+ debug("spl: spl_start_uboot ...\n");
if (!spl_start_uboot()) {
err = spl_load_image_fat_os(spl_image, bootdev, mmc_get_blk_desc(mmc),
partition);
@@ -312,6 +317,7 @@ static int spl_mmc_do_fs_boot(struct spl_image_info *spl_image,
return err;
}
#ifdef CONFIG_SPL_FS_LOAD_PAYLOAD_NAME
+ debug("spl: spl_load_image_fat (%s)...\n", filename);
err = spl_load_image_fat(spl_image, bootdev, mmc_get_blk_desc(mmc),
partition,
filename);
@@ -423,10 +429,13 @@ int spl_mmc_load(struct spl_image_info *spl_image,
/* Perform peripheral init only once for an mmc device */
mmc_dev = spl_mmc_get_device_index(bootdev->boot_device);
+ printf("spl: mmc_dev: %d\n", mmc_dev);
if (!mmc || spl_mmc_get_mmc_devnum(mmc) != mmc_dev) {
err = spl_mmc_find_device(&mmc, bootdev->boot_device);
- if (err)
+ if (err) {
+ printf("spl: mmc find device failed: %d\n", err);
return err;
+ }
err = mmc_init(mmc);
if (err) {
--- a/common/spl/spl_fat.c
+++ b/common/spl/spl_fat.c
@@ -8,6 +8,8 @@
* FAT Image Functions copied from spl_mmc.c
*/
+#define DEBUG
+
#include <common.h>
#include <env.h>
#include <log.h>
@@ -62,6 +64,7 @@ int spl_load_image_fat(struct spl_image_info *spl_image,
int err;
struct legacy_img_hdr *header;
+ debug("spl_register_fat_device ...\n");
err = spl_register_fat_device(block_dev, partition);
if (err)
goto end;
@@ -74,6 +77,7 @@ int spl_load_image_fat(struct spl_image_info *spl_image,
if (IS_ENABLED(CONFIG_SPL_LOAD_FIT_FULL) &&
image_get_magic(header) == FDT_MAGIC) {
+ debug("Load FIT Full ...\n");
err = file_fat_read(filename, (void *)CONFIG_SYS_LOAD_ADDR, 0);
if (err <= 0)
goto end;
@@ -95,6 +99,7 @@ int spl_load_image_fat(struct spl_image_info *spl_image,
return spl_load_simple_fit(spl_image, &load, 0, header);
} else {
+ debug("spl_parse_image_header ...\n");
err = spl_parse_image_header(spl_image, bootdev, header);
if (err)
goto end;
--- a/arch/arm/mach-omap2/am33xx/board.c
+++ b/arch/arm/mach-omap2/am33xx/board.c
@@ -7,6 +7,8 @@
* Copyright (C) 2011, Texas Instruments, Incorporated - http://www.ti.com/
*/
+#define DEBUG
+
#include <common.h>
#include <dm.h>
#include <debug_uart.h>
--- a/lib/fdtdec.c
+++ b/lib/fdtdec.c
@@ -620,7 +620,8 @@ int fdtdec_prepare_fdt(void)
}
# endif
#endif
- return -1;
+ return 0;
+ //return -1;
}
return 0;
}

View File

@@ -7,19 +7,57 @@
*/
#include "am33xx-u-boot.dtsi"
/ {
ocp {
u-boot,dm-pre-reloc;
};
};
&am33xx_pinmux {
u-boot,dm-pre-reloc;
};
&l4_wkup {
u-boot,dm-pre-reloc;
segment@200000 {
u-boot,dm-pre-reloc;
target-module@9000 {
u-boot,dm-pre-reloc;
};
target-module@10000 {
u-boot,dm-pre-reloc;
scm@0 {
u-boot,dm-pre-reloc;
};
};
};
};
&l4_per {
u-boot,dm-pre-reloc;
segment@0 {
u-boot,dm-pre-reloc;
target-module@40000 {
u-boot,dm-pre-reloc;
timer@0 {
u-boot,dm-pre-reloc;
};
};
};
};
&uart0_pins {
u-boot,dm-pre-reloc;
};
&uart0 {
u-boot,dm-pre-reloc;
};
&i2c0 {
&mmc1_pins {
u-boot,dm-pre-reloc;
};
&spi1 {
&mmc1 {
u-boot,dm-pre-reloc;
};

View File

@@ -27,6 +27,7 @@
chosen {
stdout-path = &uart0;
tick-timer = &timer2;
};
vbat: fixedregulator@0 {
@@ -165,8 +166,8 @@
0x1f0 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat3.mmc0_dat3 */
0x104 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_cmd.mmc0_cmd */
0x100 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_clk.mmc0_clk */
0x190 (PIN_INPUT | MUX_MODE4) /* mcasp0_aclkx.mmc0_sdcd */
0x1a0 (PIN_INPUT | MUX_MODE4) /* mcasp0_aclkr.mmc0_sdwp */
/* 0x190 (PIN_INPUT | MUX_MODE4) mcasp0_aclkx.mmc0_sdcd */
/* 0x1a0 (PIN_INPUT | MUX_MODE4) mcasp0_aclkr.mmc0_sdwp */
>;
};
@@ -179,7 +180,6 @@
};
&uart0 {
u-boot,dm-spl;
pinctrl-names = "default";
pinctrl-0 = <&uart0_pins>;
@@ -442,14 +442,13 @@
};
&mmc1 {
u-boot,dm-spl;
status = "okay";
vmmc-supply = <&vmmcsd_fixed>;
bus-width = <4>;
pinctrl-names = "default";
pinctrl-0 = <&mmc1_pins>;
cd-gpios = <&gpio3 14 GPIO_ACTIVE_LOW>; // specify GPIOs for card detection
/* wp-gpios = <&gpio3 18 GPIO_ACTIVE_HIGH>; */ /* GPIO1_28 */
cd-gpios = <&gpio3 14 GPIO_ACTIVE_LOW>;
/* wp-gpios = <&gpio3 18 GPIO_ACTIVE_HIGH>; */
};
&edma {

View File

@@ -16,6 +16,80 @@
#define V_OSCK 24000000 /* Clock output from T2 */
#define V_SCLK (V_OSCK)
#ifndef CONFIG_SPL_BUILD
#define CONFIG_EXTRA_ENV_SETTINGS \
DEFAULT_LINUX_BOOT_ENV \
"loadaddr=0x80200000\0" \
"fdtaddr=0x80F80000\0" \
"bootpart=0:2\0" \
"bootdir=/boot\0" \
"bootfile=zImage\0" \
"fdtfile=am335x-pengwyn.dtb\0" \
"console=ttyO0,115200n8\0" \
"optargs=\0" \
"mmcdev=0\0" \
"mmcroot=/dev/mmcblk0p2 ro\0" \
"mmcrootfstype=ext4 rootwait\0" \
"rootpath=/export/rootfs\0" \
"nfsopts=nolock\0" \
"static_ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}" \
"::off\0" \
"mmcargs=setenv bootargs console=${console} " \
"${optargs} " \
"root=${mmcroot} " \
"rootfstype=${mmcrootfstype}\0" \
"netargs=setenv bootargs console=${console} " \
"${optargs} " \
"root=/dev/nfs " \
"nfsroot=${serverip}:${rootpath},${nfsopts} rw " \
"ip=dhcp\0" \
"bootenv=uEnv.txt\0" \
"loadbootenv=load mmc ${mmcdev} ${loadaddr} ${bootenv}\0" \
"importbootenv=echo Importing environment from mmc ...; " \
"env import -t $loadaddr $filesize\0" \
"loadimage=load mmc ${bootpart} ${loadaddr} ${bootdir}/${bootfile}\0" \
"loadfdt=load mmc ${bootpart} ${fdtaddr} ${bootdir}/${fdtfile}\0" \
"mmcloados=run mmcargs; " \
"bootz ${loadaddr} - ${fdtaddr};\0" \
"mmcboot=mmc dev ${mmcdev}; " \
"if mmc rescan; then " \
"echo SD/MMC found on device ${mmcdev};" \
"if run loadbootenv; then " \
"echo Loaded environment from ${bootenv};" \
"run importbootenv;" \
"fi;" \
"if test -n $uenvcmd; then " \
"echo Running uenvcmd ...;" \
"run uenvcmd;" \
"fi;" \
"if run loadimage; then " \
"run loadfdt;" \
"run mmcloados;" \
"fi;" \
"fi;\0" \
"netboot=echo Booting from network ...; " \
"setenv autoload no; " \
"dhcp; " \
"tftp ${loadaddr} ${bootfile}; " \
"tftp ${fdtaddr} ${fdtfile}; " \
"run netargs; " \
"bootz ${loadaddr} - ${fdtaddr}\0" \
"mtdids=" CONFIG_MTDIDS_DEFAULT "\0" \
"mtdparts=" CONFIG_MTDPARTS_DEFAULT "\0" \
"nandargs=setenv bootargs console=${console} " \
"${optargs} " \
"root=${nandroot} " \
"rootfstype=${nandrootfstype}\0" \
"nandroot=ubi0:rootfs rw ubi.mtd=7,2048\0" \
"nandrootfstype=ubifs rootwait=1\0" \
"nandboot=echo Booting from nand ...; " \
"run nandargs; " \
"nand read ${fdtaddr} u-boot-spl-os; " \
"nand read ${loadaddr} kernel; " \
"bootz ${loadaddr} - ${fdtaddr}\0"
#endif
/* NAND Configuration. */
#define CONFIG_SYS_NAND_ECCPOS { 2, 3, 4, 5, 6, 7, 8, 9, \
10, 11, 12, 13, 14, 15, 16, 17, \
@@ -50,5 +124,13 @@
/* END NAND Configuration. */
/* NS16550 Configuration: primary UART via FTDI */
#define CONFIG_SYS_NS16550_COM1 0x44e09000
#define CONFIG_SYS_NS16550_CLK 48000000
//#define CONFIG_DEBUG_UART
//#define CONFIG_DEBUG_UART_NS16550
//#define CONFIG_DEBUG_UART_BASE CONFIG_SYS_NS16550_COM1
//#define CONFIG_SPL_DEBUG_UART_BASE CONFIG_SYS_NS16550_COM1
//#define CONFIG_DEBUG_UART_CLOCK CONFIG_SYS_NS16550_CLK
//#define CONFIG_DEBUG_UART_SHIFT 2
#endif /* ! __CONFIG_AM335X_PENGWYN_H */

View File

@@ -248,3 +248,19 @@ int board_mmc_init(struct bd_info *bis)
return 0;
}
#endif
#if !CONFIG_IS_ENABLED(OF_CONTROL)
static const struct omap_hsmmc_plat am335x_mmc0_platdata = {
.base_addr = (struct hsmmc *)OMAP_HSMMC1_BASE,
.cfg.host_caps = MMC_MODE_HS_52MHz | MMC_MODE_HS | MMC_MODE_4BIT,
.cfg.f_min = 400000,
.cfg.f_max = 52000000,
.cfg.voltages = MMC_VDD_32_33 | MMC_VDD_33_34 | MMC_VDD_165_195,
.cfg.b_max = CONFIG_SYS_MMC_MAX_BLK_COUNT,
};
U_BOOT_DRVINFO(am335x_mmc0) = {
.name = "omap_hsmmc",
.plat = &am335x_mmc0_platdata,
};
#endif

View File

@@ -59,6 +59,7 @@ static struct module_pin_mux mmc0_pin_mux[] = {
{OFFSET(mmc0_clk), (MODE(0) | RXACTIVE | PULLUP_EN)}, /* MMC0_CLK */
{OFFSET(mmc0_cmd), (MODE(0) | RXACTIVE | PULLUP_EN)}, /* MMC0_CMD */
{OFFSET(mcasp0_aclkx), (MODE(4) | RXACTIVE | PULLUP_EN)}, /* MMC0_SDCD */
{OFFSET(mcasp0_aclkr), (MODE(4) | RXACTIVE)}, /* MMC0_SDWP */
{-1},
};

View File

@@ -17,31 +17,35 @@ CONFIG_TIMESTAMP=y
CONFIG_SPL_LOAD_FIT=y
# CONFIG_USE_SPL_FIT_GENERATOR is not set
CONFIG_OF_BOARD_SETUP=y
CONFIG_BOOTCOMMAND="run findfdt; run init_console; run finduuid; run distro_bootcmd"
#CONFIG_BOOTCOMMAND="run findfdt; run init_console; run finduuid; run distro_bootcmd"
CONFIG_LOGLEVEL=3
CONFIG_SYS_CONSOLE_INFO_QUIET=y
CONFIG_ARCH_MISC_INIT=y
CONFIG_SYS_SPL_MALLOC=y
CONFIG_SYS_SPL_MALLOC_SIZE=0x800000
# CONFIG_SPL_USE_ARCH_MEMCPY is not set
# CONFIG_SPL_USE_ARCH_MEMSET is not set
CONFIG_SYS_MALLOC_F_LEN=0x4000
CONFIG_SPL_SYS_MALLOC_F_LEN=0x2000
# CONFIG_SYS_SPL_MALLOC=y
# CONFIG_SYS_SPL_MALLOC_SIZE=0x800000
CONFIG_SPL_FIT_IMAGE_TINY=y
CONFIG_SPL_ETH=y
# CONFIG_SPL_FS_EXT4 is not set
CONFIG_SPL_FS_LOAD_PAYLOAD_NAME="u-boot.img"
CONFIG_SPL_MTD_SUPPORT=y
CONFIG_SPL_MUSB_NEW=y
CONFIG_SPL_MUSB_NEW=n
CONFIG_SPL_NAND_DRIVERS=y
CONFIG_SPL_NAND_ECC=y
CONFIG_SPL_NAND_BASE=y
CONFIG_SPL_NET=y
CONFIG_SPL_NET_VCI_STRING="AM335x U-Boot SPL"
CONFIG_SPL_OS_BOOT=y
CONFIG_SPL_OS_BOOT=n
CONFIG_SYS_NAND_SPL_KERNEL_OFFS=0x200000
CONFIG_SPL_FALCON_BOOT_MMCSD=y
CONFIG_SPL_FALCON_BOOT_MMCSD=n
CONFIG_SYS_MMCSD_RAW_MODE_KERNEL_SECTOR=0x1700
CONFIG_SYS_MMCSD_RAW_MODE_ARGS_SECTOR=0x1500
CONFIG_SYS_MMCSD_RAW_MODE_ARGS_SECTORS=0x200
CONFIG_SPL_USB_GADGET=y
CONFIG_SPL_USB_ETHER=y
CONFIG_SPL_USB_GADGET=n
CONFIG_SPL_USB_ETHER=n
CONFIG_SYS_MAXARGS=64
CONFIG_SYS_BOOTM_LEN=0x1000000
CONFIG_CMD_SPL=y
@@ -56,11 +60,11 @@ CONFIG_MTDIDS_DEFAULT="nand0=nand.0"
CONFIG_MTDPARTS_DEFAULT="mtdparts=nand.0:128k(NAND.SPL),128k(NAND.SPL.backup1),128k(NAND.SPL.backup2),128k(NAND.SPL.backup3),256k(NAND.u-boot-spl-os),1m(NAND.u-boot),128k(NAND.u-boot-env),128k(NAND.u-boot-env.backup1),8m(NAND.kernel),-(NAND.file-system)"
# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_OF_CONTROL=y
CONFIG_OF_LIST="am335x-pengwyn"
CONFIG_OF_LIST="am335x-pengwyn am335x-evm am335x-bone am335x-sancloud-bbe am335x-sancloud-bbe-lite am335x-sancloud-bbe-extended-wifi am335x-boneblack am335x-evmsk am335x-bonegreen am335x-icev2 am335x-pocketbeagle"
CONFIG_ENV_OVERWRITE=y
CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
CONFIG_SPL_ENV_IS_NOWHERE=y
# CONFIG_SPL_ENV_IS_NOWHERE is not set
CONFIG_VERSION_VARIABLE=y
CONFIG_NET_RETRY_COUNT=10
CONFIG_BOOTP_SEND_HOSTNAME=y
@@ -109,19 +113,29 @@ CONFIG_DM_SPI=y
CONFIG_OMAP3_SPI=y
CONFIG_TIMER=y
CONFIG_OMAP_TIMER=y
CONFIG_USB=y
CONFIG_DM_USB_GADGET=y
CONFIG_SPL_DM_USB_GADGET=y
CONFIG_USB_MUSB_HOST=y
CONFIG_USB_MUSB_GADGET=y
CONFIG_USB_MUSB_TI=y
CONFIG_USB_GADGET=y
CONFIG_USB_GADGET_MANUFACTURER="Texas Instruments"
CONFIG_USB_GADGET_VENDOR_NUM=0x0451
CONFIG_USB_GADGET_PRODUCT_NUM=0xd022
#CONFIG_USB=y
#CONFIG_DM_USB_GADGET=y
#CONFIG_SPL_DM_USB_GADGET=n
#CONFIG_USB_MUSB_HOST=y
#CONFIG_USB_MUSB_GADGET=y
#CONFIG_USB_MUSB_TI=y
#CONFIG_USB_GADGET=y
#CONFIG_USB_GADGET_MANUFACTURER="Texas Instruments"
#CONFIG_USB_GADGET_VENDOR_NUM=0x0451
#CONFIG_USB_GADGET_PRODUCT_NUM=0xd022
CONFIG_USB_ETHER=y
CONFIG_WDT=y
# CONFIG_SPL_WDT is not set
CONFIG_DYNAMIC_CRC_TABLE=y
CONFIG_RSA=y
CONFIG_LZO=y
### TEST ###
## CONFIG_SPL_USE_ARCH_MEMCPY is not set
## CONFIG_SPL_USE_ARCH_MEMSET is not set
#CONFIG_SPL_TINY_MEMSET=y
## CONFIG_BLK is not set
CONFIG_SPL_OF_CONTROL=y
#CONFIG_OF_SPL_REMOVE_PROPS="clocks clock-names interrupt-parent"
CONFIG_OF_SPL_REMOVE_PROPS=""
#CONFIG_SPL_OF_PLATDATA=y
CONFIG_SPL_OF_TRANSLATE=y

View File

@@ -23,6 +23,7 @@ SRC_URI = " \
file://uEnv.txt \
file://0001-add-pengwyn-dts-to-makefile.patch \
file://0002-add-target-pengwyn.patch \
file://0003-misc-board-failed.patch \
file://0010-log-compile-err.patch \
file://0020-debug.patch \
"