[BISECTED] BeagleBone Black doesn't boot after a58147c2dbbf

Matwey V. Kornilov matwey.kornilov at gmail.com
Mon Aug 15 20:12:42 CEST 2022


пн, 15 авг. 2022 г. в 20:53, Nishanth Menon <nm at ti.com>:
>
> On 20:30-20220815, Matwey V. Kornilov wrote:
> > Hi Nishanth,
> >
> > I just reverted 0dba4586 and have the following diff in the config:
> >
> > diff --git a/configs/am335x_evm_defconfig b/configs/am335x_evm_defconfig
> > index b500ed0fdd..b403901879 100644
> > --- a/configs/am335x_evm_defconfig
> > +++ b/configs/am335x_evm_defconfig
> > @@ -9,6 +9,9 @@ CONFIG_AM335X_USB0=y
> >  CONFIG_AM335X_USB0_PERIPHERAL=y
> >  CONFIG_AM335X_USB1=y
> >  CONFIG_SPL=y
> > +CONFIG_DEBUG_UART_BASE=0x44e09000
> > +CONFIG_DEBUG_UART_CLOCK=48000000
> > +CONFIG_DEBUG_UART=y
> >  CONFIG_DISTRO_DEFAULTS=y
> >  CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y
> >  CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x4030ff00
> > @@ -102,6 +105,9 @@ CONFIG_DRIVER_TI_CPSW=y
> >  CONFIG_DM_PMIC=y
> >  # CONFIG_SPL_DM_PMIC is not set
> >  CONFIG_PMIC_TPS65217=y
> > +CONFIG_DEBUG_UART_OMAP=y
> > +CONFIG_DEBUG_UART_SHIFT=2
> > +CONFIG_DEBUG_UART_ANNOUNCE=y
> >  CONFIG_SPI=y
> >  CONFIG_DM_SPI=y
> >  CONFIG_OMAP3_SPI=y
> >
> >
> > I've applied your patch and see the following output now:
>
> Thanks.
>
> >
> > <debug_uart>
> > ti_i2c_eeprom_get: 97: rc=0 header=0xee3355aa
> > ti_i2c_eeprom_get: 101: rc=0
> > ti_i2c_eeprom_get: 109: rc=0
> > ti_i2c_eeprom_get: 120: header=0xee3355aa
>
> 1 byte read operation passed here. so it never enters the 2 byte read op
> check. Is'nt this supposed to be a 2 byte addressing eeprom device?
>
> I wonder if changing that code to:
> (void)dm_i2c_read(dev, 0, (uint8_t *)&hdr_read, 4);
> if (hdr_read != header) {
> to:
>
> rc = dm_i2c_read(dev, 0, (uint8_t *)&hdr_read, 4);
> if (rc || (hdr_read != header) {
>
> might help?
>
> > ti_i2c_eeprom_get: 138: header=0xee3355aa
>
> > ti_i2c_eeprom_get: 143: rc=0
> > ti_i2c_eeprom_get: 191: Out OK
>
> So the header for sure matched, but not the data, I presume. Can we
> cross check with the updated debug printf("ep[%d]=0x%02x\n",i, ep[i]);
> that I added below?
>
> > Bad EEPROM or unknown board, cannot configure pinmux.
> >
>
> 8<---
> diff --git a/board/ti/common/board_detect.c b/board/ti/common/board_detect.c
> index ed34991377ee..34dfc1acb3a0 100644
> --- a/board/ti/common/board_detect.c
> +++ b/board/ti/common/board_detect.c
> @@ -90,13 +90,16 @@ static int __maybe_unused ti_i2c_eeprom_get(int bus_addr, int dev_addr,
>         int rc;
>
>  #if CONFIG_IS_ENABLED(DM_I2C)
> +       int i;
>         struct udevice *dev;
>         struct udevice *bus;
>
>         rc = uclass_get_device_by_seq(UCLASS_I2C, bus_addr, &bus);
> +       printf("%s: %d: rc=%d header=0x%08x\n", __func__, __LINE__, rc, header);
>         if (rc)
>                 return rc;
>         rc = dm_i2c_probe(bus, dev_addr, 0, &dev);
> +       printf("%s: %d: rc=%d\n", __func__, __LINE__, rc);
>         if (rc)
>                 return rc;
>
> @@ -104,6 +107,7 @@ static int __maybe_unused ti_i2c_eeprom_get(int bus_addr, int dev_addr,
>          * Read the header first then only read the other contents.
>          */
>         rc = i2c_set_chip_offset_len(dev, 1);
> +       printf("%s: %d: rc=%d\n", __func__, __LINE__, rc);
>         if (rc)
>                 return rc;
>
> @@ -114,6 +118,7 @@ static int __maybe_unused ti_i2c_eeprom_get(int bus_addr, int dev_addr,
>          * addressing works
>          */
>         (void)dm_i2c_read(dev, 0, (uint8_t *)&hdr_read, 4);
> +       printf("%s: %d: header=0x%08x\n", __func__, __LINE__, hdr_read);
>
>         /* Corrupted data??? */
>         if (hdr_read != header) {
> @@ -122,24 +127,32 @@ static int __maybe_unused ti_i2c_eeprom_get(int bus_addr, int dev_addr,
>                  * 2 byte address (some newer boards need this..)
>                  */
>                 rc = i2c_set_chip_offset_len(dev, 2);
> +       printf("%s: %d: rc=%d\n", __func__, __LINE__, rc);
>                 if (rc)
>                         return rc;
>
>                 rc = dm_i2c_read(dev, 0, (uint8_t *)&hdr_read, 4);
> +       printf("%s: %d: rc=%d\n", __func__, __LINE__, rc);
>                 if (rc)
>                         return rc;
>         }
> +       printf("%s: %d: header=0x%08x\n", __func__, __LINE__, hdr_read);
>         if (hdr_read != header)
>                 return -1;
>
>         rc = dm_i2c_read(dev, 0, ep, size);
> +       printf("%s: %d: rc=%d\n", __func__, __LINE__, rc);
>         if (rc)
>                 return rc;
> +
> +       for (i = 0; i< size; i++)
> +               printf("ep[%d]=0x%02x\n",i, ep[i]);
>  #else
>         u32 byte;
>
>         gpi2c_init();
>         rc = ti_i2c_eeprom_init(bus_addr, dev_addr);
> +       printf("%s: %d: rc=%d header=0x%08x\n", __func__, __LINE__, rc, header);
>         if (rc)
>                 return rc;
>
> @@ -157,6 +170,7 @@ static int __maybe_unused ti_i2c_eeprom_get(int bus_addr, int dev_addr,
>         (void)i2c_read(dev_addr, 0x0, byte, (uint8_t *)&hdr_read, 4);
>
>         /* Corrupted data??? */
> +       printf("%s: %d: header=0x%08x\n", __func__, __LINE__, hdr_read);
>         if (hdr_read != header) {
>                 /*
>                  * read the eeprom header using i2c again, but use only a
> @@ -165,16 +179,20 @@ static int __maybe_unused ti_i2c_eeprom_get(int bus_addr, int dev_addr,
>                 byte = 2;
>                 rc = i2c_read(dev_addr, 0x0, byte, (uint8_t *)&hdr_read,
>                               4);
> +               printf("%s: %d: rc=%d\n", __func__, __LINE__, rc);
>                 if (rc)
>                         return rc;
>         }
> +       printf("%s: %d: header=0x%08x\n", __func__, __LINE__, hdr_read);
>         if (hdr_read != header)
>                 return -1;
>
>         rc = i2c_read(dev_addr, 0x0, byte, ep, size);
> +       printf("%s: %d: rc=%d\n", __func__, __LINE__, rc);
>         if (rc)
>                 return rc;
>  #endif
> +       printf("%s: %d: Out OK\n", __func__, __LINE__);
>         return 0;
>  }


<debug_uart>
ti_i2c_eeprom_get: 98: rc=0 header=0xee3355aa
ti_i2c_eeprom_get: 102: rc=0
ti_i2c_eeprom_get: 110: rc=0
ti_i2c_eeprom_get: 121: header=0xee3355aa
ti_i2c_eeprom_get: 139: header=0xee3355aa
ti_i2c_eeprom_get: 144: rc=0
ep[0]=0xff
ep[1]=0xff
ep[2]=0xff
ep[3]=0xff
ep[4]=0xff
ep[5]=0xff
ep[6]=0xff
ep[7]=0xff
ep[8]=0xff
ep[9]=0xff
ep[10]=0xff
ep[11]=0xff
ep[12]=0xff
ep[13]=0xff
ep[14]=0xff
ep[15]=0xff
ep[16]=0xff
ep[17]=0xff
ep[18]=0xff
ep[19]=0xff
ep[20]=0xff
ep[21]=0xff
ep[22]=0xff
ep[23]=0xff
ep[24]=0xff
ep[25]=0xff
ep[26]=0xff
ep[27]=0xff
ep[28]=0xff
ep[29]=0xff
ep[30]=0xff
ep[31]=0xff
ep[32]=0xff
ep[33]=0xff
ep[34]=0xff
ep[35]=0xff
ep[36]=0xff
ep[37]=0xff
ep[38]=0xff
ep[39]=0xff
ep[40]=0xff
ep[41]=0xff
ep[42]=0xff
ep[43]=0xff
ep[44]=0xff
ep[45]=0xff
ep[46]=0xff
ep[47]=0xff
ep[48]=0xff
ep[49]=0xff
ep[50]=0xff
ep[51]=0xff
ep[52]=0xff
ep[53]=0xff
ep[54]=0xff
ep[55]=0xff
ep[56]=0xff
ep[57]=0xff
ep[58]=0xff
ep[59]=0xff
ep[60]=0xff
ep[61]=0xff
ep[62]=0xff
ep[63]=0xff
ep[64]=0xff
ep[65]=0xff
ep[66]=0xff
ep[67]=0xff
ep[68]=0xff
ep[69]=0xff
ep[70]=0xff
ep[71]=0xff
ep[72]=0xff
ep[73]=0xff
ep[74]=0xff
ep[75]=0xff
ep[76]=0xff
ep[77]=0xff
ti_i2c_eeprom_get: 195: Out OK
Bad EEPROM or unknown board, cannot configure pinmux.


>
> diff --git a/configs/am335x_evm_defconfig b/configs/am335x_evm_defconfig
> index b500ed0fdd8d..b4039018793b 100644
> --- a/configs/am335x_evm_defconfig
> +++ b/configs/am335x_evm_defconfig
> @@ -9,6 +9,9 @@ CONFIG_AM335X_USB0=y
>  CONFIG_AM335X_USB0_PERIPHERAL=y
>  CONFIG_AM335X_USB1=y
>  CONFIG_SPL=y
> +CONFIG_DEBUG_UART_BASE=0x44e09000
> +CONFIG_DEBUG_UART_CLOCK=48000000
> +CONFIG_DEBUG_UART=y
>  CONFIG_DISTRO_DEFAULTS=y
>  CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y
>  CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x4030ff00
> @@ -102,6 +105,9 @@ CONFIG_DRIVER_TI_CPSW=y
>  CONFIG_DM_PMIC=y
>  # CONFIG_SPL_DM_PMIC is not set
>  CONFIG_PMIC_TPS65217=y
> +CONFIG_DEBUG_UART_OMAP=y
> +CONFIG_DEBUG_UART_SHIFT=2
> +CONFIG_DEBUG_UART_ANNOUNCE=y
>  CONFIG_SPI=y
>  CONFIG_DM_SPI=y
>  CONFIG_OMAP3_SPI=y
> --
> Regards,
> Nishanth Menon
> Key (0xDDB5849D1736249D) / Fingerprint: F8A2 8693 54EB 8232 17A3  1A34 DDB5 849D 1736 249D



-- 
With best regards,
Matwey V. Kornilov


More information about the U-Boot mailing list