1
完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本帖最后由 一只耳朵怪 于 2018-6-5 16:19 编辑
我之前用的是XAM335x的芯片,启动linux系统没有一点问题,现在新做的板子是用的AM335x的芯片,原来的移植的系统就不行了,引导不起来了,分析启动日志, |
|
相关推荐
20个回答
|
|
|
|
|
|
谢谢您的回答,我知道XAM335x是工程样片,那么请问xAM335x与AM335x都一样吧,我昨天从TI官网下载了最新的关于linux的软件资源,我看是十一月份刚更新的,烧进去结果是一样的。请问xam335x与am335x一样吗???如果一样的话就是硬件问题了, |
|
|
|
60user37 发表于 2018-6-4 12:27 是一样的,AM335x是正式发布的产品 如果我的回答解决了您的问题,请确认答案,谢谢!:) |
|
|
|
谢谢,也就是说XAM335x的系统移植到AM335x上是没有问题的。 |
|
|
|
是的 如果我的回答解决了您的问题,请确认答案,谢谢!:) |
|
|
|
liu, 这个问题解决了么?看log是没有成功的从SD卡启动,有没有尝试过串口启动? |
|
|
|
试过串口,拨码开关设置的是00001,按着网页上的来的,可是下载u-boot-spl.bin和u-boot.img下载不进去,下载进去应该输出这些资料的信息,可是我的下载完只会出CCC,等了好久也是这样,我试过超级终端、Tera Term,而且是按着网页上说的版本,这些是没有问题的。 |
|
|
|
ggfx 发表于 2018-6-4 13:33 需要修改u-boot 源代码中/board/ti/am335x/evm.c中的spl_board_init()函数和board_init()函数,去掉对eeprom的依赖性。 |
|
|
|
344868615qq 发表于 2018-6-4 13:38 您好,按着你上午的提示,在board/ti/am335x中修改evm.c,去掉spl_board_init中的if判断如下: void spl_board_init(void) [ uchar pmic_status_reg; /* init board_id, configure muxes */ board_init(); //if (!strncmp("A335BONE", header.name, 8)) if(0) [ /* BeagleBone PMIC Code */ if (i2c_probe(TPS65217_CHIP_PM)) return; if (tps65217_reg_read(STATUS, &pmic_status_reg)) return; /* Increase USB current limit to 1300mA */ if (tps65217_reg_write(PROT_LEVEL_NONE, POWER_PATH, USB_INPUT_CUR_LIMIT_1300MA, USB_INPUT_CUR_LIMIT_MASK)) printf("tps65217_reg_write failuren"); /* Only perform PMIC configurations if board rev > A1 */ if (!strncmp(header.version, "00A1", 4)) return; /* Set DCDC2 (MPU) voltage to 1.275V */ if (tps65217_voltage_update(DEFDCDC2, DCDC_VOLT_SEL_1275MV)) [ printf("tps65217_voltage_update failuren"); return; ] /* Set LDO3, LDO4 output voltage to 3.3V */ if (tps65217_reg_write(PROT_LEVEL_2, DEFLS1, LDO_VOLTAGE_OUT_3_3, LDO_MASK)) printf("tps65217_reg_write failuren"); if (tps65217_reg_write(PROT_LEVEL_2, DEFLS2, LDO_VOLTAGE_OUT_3_3, LDO_MASK)) printf("tps65217_reg_write failuren"); if (!(pmic_status_reg & PWR_SRC_AC_BITMASK)) [ printf("No AC power, disabling frequency switchn"); return; ] /* Set MPU Frequency to 720MHz */ mpu_pll_config(MPUPLL_M_720); ] else [ uchar buf[4]; /* * EVM PMIC code. All boards currently want an MPU voltage * of 1.2625V and CORE voltage of 1.1375V to operate at * 720MHz. */ if (i2c_probe(PMIC_CTRL_I2C_ADDR)) return; /* VDD1/2 voltage selection register access by control i/f */ if (i2c_read(PMIC_CTRL_I2C_ADDR, PMIC_DEVCTRL_REG, 1, buf, 1)) return; buf[0] |= PMIC_DEVCTRL_REG_SR_CTL_I2C_SEL_CTL_I2C; if (i2c_write(PMIC_CTRL_I2C_ADDR, PMIC_DEVCTRL_REG, 1, buf, 1)) return; if (!voltage_update(MPU, PMIC_OP_REG_SEL_1_2_6) && !voltage_update(CORE, PMIC_OP_REG_SEL_1_1_3)) /* Frequency switching for OPP 120 */ mpu_pll_config(MPUPLL_M_720); ] ] #endif 试了试不行,又修改board_init如下: int board_init(void) [ /* Configure the i2c0 pin mux */ enable_i2c0_pin_mux(); i2c_init(CONFIG_SYS_I2C_SPEED, CONFIG_SYS_I2C_SLAVE); if (read_eeprom()) goto err_out; detect_daughter_board(); //if (!strncmp("SKU#01", header.config, 6)) [ // board_id = GP_BOARD; // detect_daughter_board_profile(); //] else if (!strncmp("SKU#02", header.config, 6)) [ // board_id = IA_BOARD; // detect_daughter_board_profile(); //] else if (!strncmp("SKU#03", header.config, 6)) [ // board_id = IPP_BOARD; //] else if (!strncmp("A335BONE", header.name, 8)) [ // board_id = BONE_BOARD; // profile = 1; /* profile 0 is internally considered as 1 */ // daughter_board_connected = 0; //] else if (!strncmp("A335X_SK", header.name, 8)) [ // board_id = SK_BOARD; // profile = 1; /* profile 0 is internally considered as 1 */ // daughter_board_connected = 0; //] else [ // printf("Did not find a recognized configuration, " // "assuming General purpose EVM in Profile 0 with " // "Daughter boardn"); board_id = GP_BOARD; profile = 1; /* profile 0 is internally considered as 1 */ daughter_board_connected = 1; //] configure_evm_pin_mux(board_id, header.version, profile, daughter_board_connected); 还是不行,那块XAM3359的板子在这两种情况都可以启动,但是AM3359的板子还是启动不了, 只输出: U-Boot SPL 2011.09 (Jan 23 2013 - 12:50:30) Texas Instruments Revision detection unimplemented Could not probe the EEPROM; something fundamentally wrong on the I2C bus. read_eeprom() failure. continuing with ddr3 Could not probe the EEPROM; something fundamentally wrong on the I2C bus. |
|
|
|
ggfx 发表于 2018-6-4 13:54 你在这段代码附近的位置加打印信息定位一下,或者用仿真器跟踪下 |
|
|
|
您好,我在附近的位置加可写打印信息,这些信息都可以正常输出: U-Boot SPL 2011.09 (Jan 24 2013 - 13:32:15) Texas Instruments Revision detection unimplemented LL:FUNC:i2c_init@evm.cLine:714 Could not probe the EEPROM; something fundamentally wrong on the I2C bus. read_eeprom() failure. continuing with ddr3 Could not probe the EEPROM; something fundamentally wrong on the I2C bus. LL:FUNC:board_init@evm.cLine:859 LL:FUNC:spl_board_init@evm.c,Line:631 LL:FUNC:spl_board_init@evm.cLine:640 LL:FUNC:spl_board_init@evm.cLine:644 LL:FUNC:spl_board_init@evm.cLine:649 LL:FUNC:spl_board_init@evm.cLine:655 MP S/ M: 0 有时是输出这种: U-Boot SPL 2011.09 (Jan 24 2013 - 13:32:15) Texas Instruments Revision detection unimplemented LL:FUNC:i2c_init@evm.cLine:714 Could not probe the EEPROM; something fundamentally wrong on the I2C bus. read_eeprom() failure. continuing with ddr3 Could not probe the EEPROM; something fundamentally wrong on the I2C bus. LL:FUNC:board_init@evm.cLine:859 LL:FUNC:spl_board_init@evm.c,Line:631 LL:FUNC:spl_board_init@evm.cLine:640 LL:FUNC:spl_board_init@evm.cLine:644 LL:FUNC:spl_board_init@evm.cLine:649 LL:FUNC:spl_board_init@evm.cLine:655 MP S/ M: 0 mmc_init_setup: timedout waiting for cc2! spl: mmc init failed: err - -19 ### ERROR ### Please RESET the board ### |
|
|
|
ggfx 发表于 2018-6-4 14:26 如果没有用到I2C,就把I2C相关的代码都关掉,试一下 |
|
|
|
ggfx 发表于 2018-6-4 14:26 我添加的信息如下: void spl_board_init(void) [ uchar pmic_status_reg; /* init board_id, configure muxes */ board_init(); printk("LL:FUNC:board_init@evm.cLine:%dn",__LINE__);//585 //if (!strncmp("A335BONE", header.name, 8)) if(0) [ printk("LL:FUNC:board_init@evm.cLine:%dn",__LINE__);//588 /* BeagleBone PMIC Code */ if (i2c_probe(TPS65217_CHIP_PM)) return; if (tps65217_reg_read(STATUS, &pmic_status_reg)) return; /* Increase USB current limit to 1300mA */ if (tps65217_reg_write(PROT_LEVEL_NONE, POWER_PATH, USB_INPUT_CUR_LIMIT_1300MA, USB_INPUT_CUR_LIMIT_MASK)) printf("tps65217_reg_write failuren"); /* Only perform PMIC configurations if board rev > A1 */ if (!strncmp(header.version, "00A1", 4)) return; /* Set DCDC2 (MPU) voltage to 1.275V */ if (tps65217_voltage_update(DEFDCDC2, DCDC_VOLT_SEL_1275MV)) [ printf("tps65217_voltage_update failuren"); return; ] /* Set LDO3, LDO4 output voltage to 3.3V */ if (tps65217_reg_write(PROT_LEVEL_2, DEFLS1, LDO_VOLTAGE_OUT_3_3, LDO_MASK)) printf("tps65217_reg_write failuren"); if (tps65217_reg_write(PROT_LEVEL_2, DEFLS2, LDO_VOLTAGE_OUT_3_3, LDO_MASK)) printf("tps65217_reg_write failuren"); if (!(pmic_status_reg & PWR_SRC_AC_BITMASK)) [ printf("No AC power, disabling frequency switchn"); return; ] /* Set MPU Frequency to 720MHz */ mpu_pll_config(MPUPLL_M_720); ] else [ printk("LL:FUNC:spl_board_init@evm.c,Line:%dn",__LINE__);//632 uchar buf[4]; /* * EVM PMIC code. All boards currently want an MPU voltage * of 1.2625V and CORE voltage of 1.1375V to operate at * 720MHz. */ if (i2c_probe(PMIC_CTRL_I2C_ADDR)) return; printk("LL:FUNC:spl_board_init@evm.cLine:%dn",__LINE__);//641 /* VDD1/2 voltage selection register access by control i/f */ if (i2c_read(PMIC_CTRL_I2C_ADDR, PMIC_DEVCTRL_REG, 1, buf, 1)) return; printk("LL:FUNC:spl_board_init@evm.cLine:%dn",__LINE__);//645 buf[0] |= PMIC_DEVCTRL_REG_SR_CTL_I2C_SEL_CTL_I2C; if (i2c_write(PMIC_CTRL_I2C_ADDR, PMIC_DEVCTRL_REG, 1, buf, 1)) return; printk("LL:FUNC:spl_board_init@evm.cLine:%dn",__LINE__);//650 if (!voltage_update(MPU, PMIC_OP_REG_SEL_1_2_6) && !voltage_update(CORE, PMIC_OP_REG_SEL_1_1_3)) /* Frequency switching for OPP 120 */ mpu_pll_config(MPUPLL_M_720); ] printk("LL:FUNC:spl_board_init@evm.cLine:%dn",__LINE__);//656 ] #endif board_init函数修改如下: int board_init(void) [ /* Configure the i2c0 pin mux */ enable_i2c0_pin_mux(); i2c_init(CONFIG_SYS_I2C_SPEED, CONFIG_SYS_I2C_SLAVE); printk("LL:FUNC:board_init@evm.cLine:%dn",__LINE__);//808 if (read_eeprom()) goto err_out; printk("LL:FUNC:board_init@evm.cLine:%dn",__LINE__);//811 detect_daughter_board(); printk("LL:FUNC:board_init@evm.cLine:%dn",__LINE__);//813 //if (!strncmp("SKU#01", header.config, 6)) [ // board_id = GP_BOARD; // detect_daughter_board_profile(); //] else if (!strncmp("SKU#02", header.config, 6)) [ // board_id = IA_BOARD; // detect_daughter_board_profile(); //] else if (!strncmp("SKU#03", header.config, 6)) [ // board_id = IPP_BOARD; //] else if (!strncmp("A335BONE", header.name, 8)) [ // board_id = BONE_BOARD; // profile = 1; /* profile 0 is internally considered as 1 */ // daughter_board_connected = 0; //] else if (!strncmp("A335X_SK", header.name, 8)) [ // board_id = SK_BOARD; // profile = 1; /* profile 0 is internally considered as 1 */ // daughter_board_connected = 0; //] else [ // printf("Did not find a recognized configuration, " // "assuming General purpose EVM in Profile 0 with " // "Daughter boardn"); printk("LL:FUNC:board_init@evm.cLine:%dn",__LINE__);//834 board_id = GP_BOARD; profile = 1; /* profile 0 is internally considered as 1 */ daughter_board_connected = 1; //] configure_evm_pin_mux(board_id, header.version, profile, daughter_board_connected); #ifndef CONFIG_SPL_BUILD board_evm_init(); printk("LL:FUNC:board_evm_init@evm.cLine:%dn",__LINE__);//844 #endif gpmc_init(); return 0; err_out: /* * When we cannot use the EEPROM to determine what board we * are we assume BeagleBone currently as we have not yet * programmed the EEPROMs. */ board_id = BONE_BOARD; profile = 1; /* profile 0 is internally considered as 1 */ daughter_board_connected = 1; configure_evm_pin_mux(board_id, header.version, profile, daughter_board_connected); printk("LL:FUNC:board_init@evm.cLine:%dn",__LINE__);//861 #ifndef CONFIG_SPL_BUILD board_evm_init(); #endif 我看输出信息有mmc_init,就在board_mmc_init加输出信息,可是均没有输出: #ifdef CONFIG_GENERIC_MMC int board_mmc_init(bd_t *bis) [ omap_mmc_init(0); printk("LL:FUNC:board_mmc_init@evm.cLine:%dn",__LINE__);//1177 omap_mmc_init(1); printk("LL:FUNC:board_mmc_init@evm.cLine:%dn",__LINE__);//1179 return 0; ] #endif 串口输出的信息如下: U-Boot SPL 2011.09 (Jan 24 2013 - 14:09:43) Texas Instruments Revision detection unimplemented LL:FUNC:i2c_init@evm.cLine:715 Could not probe the EEPROM; something fundamentally wrong on the I2C bus. read_eeprom() failure. continuing with ddr3 LL:FUNC:board_init@evm.cLine:808 Could not probe the EEPROM; something fundamentally wrong on the I2C bus. LL:FUNC:board_init@evm.cLine:861 LL:FUNC:board_init@evm.cLine:585 LL:FUNC:spl_board_init@evm.c,Line:632 LL:FUNC:spl_board_init@evm.cLine:641 LL:FUNC:spl_board_init@evm.cLine:645 LL:FUNC:spl_board_init@evm.cLine:650 LL:FUNC:spl_board_init@evm.cLine:656 MP S/ M: 0 mmc_init_setup: timedout waiting for cc2! spl: mmc init failed: err - -19 ### ERROR ### Please RESET the board ### |
|
|
|
您好,我不知道evm.c中的board_mmc_init是怎么一回事,我把它改成 //#ifdef CONFIG_GENERIC_MMC int board_mmc_init(bd_t *bis) [ omap_mmc_init(0); printk("LL:FUNC:board_mmc_init@evm.cLine:%dn",__LINE__); omap_mmc_init(1); printk("LL:FUNC:board_mmc_init@evm.cLine:%dn",__LINE__); return 0; ] //#endif 希望即使没有定义也可以执行,输出我加入的这两句,可是还是没有输出, U-Boot SPL 2011.09 (Jan 24 2013 - 14:57:38) Texas Instruments Revision detection unimplemented LL:FUNC:i2c_init@evm.cLine:715 Could not probe the EEPROM; something fundamentally wrong on the I2C bus. read_eeprom() failure. continuing with ddr3 LL:FUNC:board_init@evm.cLine:808 Could not probe the EEPROM; something fundamentally wrong on the I2C bus. LL:FUNC:board_init@evm.cLine:861 LL:FUNC:board_init@evm.cLine:585 LL:FUNC:spl_board_init@evm.c,Line:632 LL:FUNC:spl_board_init@evm.cLine:641 LL:FUNC:spl_board_init@evm.cLine:645 LL:FUNC:spl_board_init@evm.cLine:650 LL:FUNC:spl_board_init@evm.cLine:656 OMAP SD/MMC: 0 -------每次都会输出到这里,下面的那一句就输出了一次, mmc_send_cmd: timedout waiting for stat! 期待您的指导,谢谢!我试试去掉I2C的,在来发贴 |
|
|
|
|
|
|
|
您好,谢谢您的指导,不是软件的事,软件是兼容的,是硬件的问题,解决了,谢谢您的指导! |
|
|
|
|
|
|
|
|
|
|
|
你好,我们这边用到了 AM332 使用 eMMC 卡启动,也碰到了这个问题 不允许替换芯片的情况下,这个问题要如何处理呢? TI是否有了解决方法,或者这个问题是否有定位.谢谢! |
|
|
|
只有小组成员才能发言,加入小组>>
334 浏览 1 评论
528 浏览 2 评论
NA555DR VCC最低电压需要在5V供电,为什么用3.3V供电搭了个单稳态触发器也使用正常?
773 浏览 3 评论
MSP430F249TPMR出现高温存储后失效了的情况,怎么解决?
649 浏览 1 评论
对于多级放大电路板,在PCB布局中,电源摆放的位置应该注意什么?
1126 浏览 1 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
55浏览 29评论
118浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
250浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
199浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
54浏览 13评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 16:09 , Processed in 1.436659 second(s), Total 113, Slave 97 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号