wandboard 的 bootmode 是 boot to SD3
所以 u-boot 去 check SD3 的 CD pin, 發現level 不對。就沒 init 了。
只要改
diff --git a/board/freescale/mx6sabresd/mx6sabresd.c b/board/freescale/mx6sabresd/mx6sabresd.c
index d24eea1..9646438 100644
--- a/board/freescale/mx6sabresd/mx6sabresd.c
+++ b/board/freescale/mx6sabresd/mx6sabresd.c
@@ -549,7 +549,7 @@ int board_mmc_getcd(struct mmc *mmc)
ret = !gpio_get_value(USDHC2_CD_GPIO);
break;
case USDHC3_BASE_ADDR:
- ret = !gpio_get_value(USDHC3_CD_GPIO);
+ ret = 1; /* wandboard : assum always boot from SD3 *?
break;
case USDHC4_BASE_ADDR:
ret = 1; /* eMMC/uSDHC4 is always present */
就可以開機了..
然後開機到 kernel.....
之後因為 wandboard 是用 LDO 分散式的 電源,sabresd 是用 pmic , ,, 所以....
兩邊用 tig 看一下 git log, 發現wandboard 真的是基於 l5.0.0_1.0.0-ga 這個tag 開始修改。
/hardware/imx/wlan/atheros/compat-wireless/config.mk:49: *** "ERROR: your kernel has CONFIG_CFG80211=y, you should have it CONFIG_CFG80211=m if you want to use this thing.". Stop.wandboard 的 bsp 是:
diff --git a/wlan/Android.mk b/wlan/Android.mk index 5fb1071..25f5781 100644 --- a/wlan/Android.mk +++ b/wlan/Android.mk @@ -1,4 +1,4 @@ atheros_dirs := compat-wireless ifeq ($(BOARD_WLAN_DEVICE),$(filter $(BOARD_WLAN_DEVICE),ar6003 UNITE)) - include $(call all-subdir-makefiles,$(atheros_dirs)) + #include $(call all-subdir-makefiles,$(atheros_dirs)) endif所以是用 kernel 的 source.
燒錄出問題。
dd: failed to open ‘boot-imx6dl.img’: No such file or directory dd: failed to open ‘recovery-imx6dl.img’: No such file or directory
看一下 燒錄 script:
function flash_android
{
bootloader_file="u-boot-${soc_name}.imx"
bootimage_file="boot-${soc_name}.img"
recoveryimage_file="recovery-${soc_name}.img"
if [ "${flash_images}" -eq "1" ]; then
echo "flashing android images..."
echo "bootloader: ${bootloader_file}"
echo "boot image: ${bootimage_file}"
echo "recovery image: ${recoveryimage_file}"
echo "system image: ${systemimage_file}"
dd if=/dev/zero of=${node} bs=1k seek=384 count=129
dd if=${bootloader_file} of=${node} bs=1k seek=1
dd if=${bootimage_file} of=${node}${part}1
dd if=${recoveryimage_file} of=${node}${part}2
dd if=${systemimage_file} of=${node}${part}5
sync
fi
}
soc_name 就是 -f 的 option
所以要看一下 有沒有..
- u-boot-XXX.imx
- boot-XXX.img
- recovery-XXX.img
- system.img
$(INSTALLED_BOOTIMAGE_TARGET): $(MKBOOTIMG) $(INTERNAL_BOOTIMAGE_FILES)
for dtsplat in $(TARGET_BOARD_DTS_CONFIG); do \
DTS_PLATFORM=`echo $$dtsplat | cut -d':' -f1`; \
DTS_BOARD=`echo $$dtsplat | cut -d':' -f2`; \
BOOT_IMAGE_BOARD=$(patsubst %.img,%-$$DTS_PLATFORM.img,$@); \
$(MKBOOTIMG) $(INTERNAL_BOOTIMAGE_ARGS) --second $(PRODUCT_OUT)/$$DTS_BOARD $(BOARD_MKBOOTIMG_ARGS) --output $@; \
$(BOOT_SIGNER) /boot $@ $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_VERITY_SIGNING_KEY) $@;\
$(call assert-max-image-size,$@,$(BOARD_BOOTIMAGE_PARTITION_SIZE)); \
cp -f $@ $$BOOT_IMAGE_BOARD; \
done
其中
BOOT_IMAGE_BOARD=$(patsubst %.img,%-$$DTS_PLATFORM.img,$@); \
決定 boot-$$DTS_PLATFORM.img就是從 TARGET_BOARD_DTS_CONFIG 來的。
這個宣告在 device/fsl/wandboard/BoardConfig.mk:
wandboard/BoardConfig.mk: TARGET_BOARD_DTS_CONFIG := imx6q-wandboard.dtb imx6dl-wandboard.dtb所以是這裡寫錯了...
應該是..
TARGET_BOARD_DTS_CONFIG := imx6q:imx6q-wandboard.dtb imx6dl:imx6dl-wandboard.dtb
這樣就會 build 出 xxx=imx6dl 的 image
沒有留言:
張貼留言