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
沒有留言:
張貼留言