Anycloud平台U-boot去掉网络

0. 概要

当前Ancyloud37D、37E 平台使用的U-boot(2013.10)默认打开网络功能.
所以在某些不需要以太网的产品场景,会出现GPIO状态异常的情况,这就是默认的RMII及相关GPIO控制接口导致.
本次此次记录如何删除U-boot中网络相关部分(Anycloud37E).

1. 关闭网络

修改U-boot配置(include/configs/anycloud_ak37e.h):

/*
 * Hardware drivers
 */
#define CONFIG_AK_SERIAL
#define CONFIG_SERIAL1

/*
#define CONFIG_AK_ETHER
#define CONFIG_CMD_NET
#define CONFIG_CMD_PING
*/

将CONFIG_AK_ETHER、CONFIG_CMD_NET、CONFIG_CMD_PING三个宏定义注释掉.

2. 解决编译出错

在编译的时候,会出现以下错误:

cd /home/anyka/project/AK37E_SDK_V1.05/os/uboot && arm-anykav500-linux-uclibcgnueabi-ld.bfd  -pie -T u-boot.lds --gc-sections -Bstatic -Ttext 0x80dffe00 arch/arm/cpu/arm926ejs/start.o --start-group api/libapi.o arch/arm/cpu/arm926ejs/ak37e/libak37e.o arch/arm/cpu/arm926ejs/libarm926ejs.o arch/arm/lib/libarm.o common/libcommon.o disk/libdisk.o drivers/bios_emulator/libatibiosemu.o drivers/block/libblock.o drivers/crypto/libcrypto.o drivers/dfu/libdfu.o drivers/dma/libdma.o drivers/fpga/libfpga.o drivers/gpio/libgpio.o drivers/hwmon/libhwmon.o drivers/i2c/libi2c.o drivers/input/libinput.o drivers/misc/libmisc.o drivers/mmc/libmmc.o drivers/mtd/libmtd.o drivers/mtd/nand/libnand.o drivers/mtd/onenand/libonenand.o drivers/mtd/spi/libspi_flash.o drivers/mtd/ubi/libubi.o drivers/net/libnet.o drivers/net/phy/libphy.o drivers/pci/libpci.o drivers/pcmcia/libpcmcia.o drivers/power/battery/libbattery.o drivers/power/fuel_gauge/libfuel_gauge.o drivers/power/libpower.o drivers/power/mfd/libmfd.o drivers/power/pmic/libpmic.o drivers/rtc/librtc.o drivers/serial/libserial.o drivers/sound/libsound.o drivers/spi/libspi.o drivers/tpm/libtpm.o drivers/twserial/libtws.o drivers/usb/eth/libusb_eth.o drivers/usb/gadget/libusb_gadget.o drivers/usb/host/libusb_host.o drivers/usb/musb-new/libusb_musb-new.o drivers/usb/musb/libusb_musb.o drivers/usb/phy/libusb_phy.o drivers/usb/ulpi/libusb_ulpi.o drivers/video/libvideo.o drivers/watchdog/libwatchdog.o fs/cbfs/libcbfs.o fs/cramfs/libcramfs.o fs/ext4/libext4fs.o fs/fat/libfat.o fs/fdos/libfdos.o fs/jffs2/libjffs2.o fs/libfs.o fs/reiserfs/libreiserfs.o fs/sandbox/libsandboxfs.o fs/ubifs/libubifs.o fs/yaffs2/libyaffs2.o fs/zfs/libzfs.o lib/libfdt/libfdt.o lib/libgeneric.o lib/lzma/liblzma.o lib/lzo/liblzo.o lib/rsa/librsa.o lib/zlib/libz.o net/libnet.o post/libpost.o test/libtest.o board/anyka/anycloud_ak37e/libanycloud_ak37e.o --end-group /home/anyka/project/AK37E_SDK_V1.05/os/uboot/arch/arm/lib/eabi_compat.o  -L /opt/arm-anykav500-linux-uclibcgnueabi/bin/../lib/gcc/arm-anykav500-linux-uclibcgnueabi/4.9.4 -lgcc -Map u-boot.map -o u-boot
common/libcommon.o: In function `do_load_serial_bin':
/home/anyka/project/AK37E_SDK_V1.05/os/uboot/common/cmd_load.c:463: undefined reference to `copy_filename'
arm-anykav500-linux-uclibcgnueabi-ld.bfd: BFD (GNU Binutils) 2.29.1 assertion fail elf32-arm.c:9509
Makefile:591: recipe for target 'u-boot' failed
make: *** [u-boot] Error 1

解决办法:
修改common/cmd_load.c:

static int do_load_serial_bin(cmd_tbl_t *cmdtp, int flag, int argc,
                  char * const argv[])
{
......
#if 0
    if (argc == 4) {
        copy_filename(filename, argv[3], sizeof(filename));
        #ifdef CONFIG_SPINAND_FLASH
        check_filename_withoob(filename);
        #endif
    }
#endif
......
}

3. 重新编译U-boot

使用默认的脚本进行编译:

  1. ./build_uboot.sh -c
  2. ./build_uboot.sh
  3. ./build_uboot.sh -i
  4. cp ../image/u-boot.bin ../tools/burntool/
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值