Modify EEPROM on PocketBeagle through uBoot

Is it possible to modify the contents of the embeddedd eeprom on the pocketbeagle? When I get into uBoot I issue the command:
=> i2c md 0x50 00.2 0x20
0000: aa 55 33 ee 41 33 33 35 50 42 47 4c 30 30 41 32 .U3.A335PBGL00A2
0010: 31 37 34 34 47 50 42 31 31 35 39 38 ff ff ff ff 1744GPB11598…

which shows the header uboot checks for when going through the boot process. If I wanted to modify this header through i2c commands in uboot is it possible? I try issuing => i2c mw 0x50 00.2 0xbb to change the first two bytes of the eeprom but when I read it back the original data is shown. Thanks

GND the write-protect...

Regards,

Thanks for the reply. I was trying to match a custom board eeprom with that of the pocket beagle to avoid having to bypass the eeprom in uboot but it turns out we didnt bring out the eeprom wp pin so we’re unable to ground it. I attmepted to use the uboot patch you created for bypassing eeprom (https://raw.githubusercontent.com/RobertCNelson/Bootloader-Builder/master/patches/v2018.03-rc1/0002-NFM-Production-eeprom-assume-device-is-BeagleBone-Bl.patch) but booting this always errors out when trying to start the kernel, here is the boot log:

U-Boot 2018.01-dirty (May 18 2018 - 17:23:40 -0400)

CPU : AM335X-GP rev 2.1

I2C: ready

DRAM: 512 MiB

No match for driver ‘omap_hsmmc’

No match for driver ‘omap_hsmmc’

Some drivers were not found

Reset Source: Power-on reset has occurred.

MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1

Using default environment

not set. Validating first E-fuse MAC

BeagleBone: cape eeprom: i2c_probe: 0x54:

BeagleBone: cape eeprom: i2c_probe: 0x55:

BeagleBone: cape eeprom: i2c_probe: 0x56:

BeagleBone: cape eeprom: i2c_probe: 0x57:

Net: eth0: RGMII MODE

Could not get PHY for cpsw: addr 0

cpsw, usb_ether

Press SPACE to abort autoboot in 2 seconds

board_name=[A335BLNK] …

Card did not respond to voltage select!

mmc_init: -95, time 13

** Bad device mmc 0 **

Card did not respond to voltage select!

mmc_init: -95, time 13

Card did not respond to voltage select!

mmc_init: -95, time 13

Card did not respond to voltage select!

mmc_init: -95, time 13

gpio: pin 56 (gpio 56) value is 0

gpio: pin 55 (gpio 55) value is 0

gpio: pin 54 (gpio 54) value is 0

gpio: pin 53 (gpio 53) value is 1

Card did not respond to voltage select!

mmc_init: -95, time 13

Card did not respond to voltage select!

mmc_init: -95, time 13

switch to partitions #0, OK

mmc1 is current device

Scanning mmc 1:1…

gpio: pin 56 (gpio 56) value is 0

gpio: pin 55 (gpio 55) value is 0

gpio: pin 54 (gpio 54) value is 0

gpio: pin 53 (gpio 53) value is 1

switch to partitions #0, OK

mmc1 is current device

gpio: pin 54 (gpio 54) value is 1

Checking for: /uEnv.txt …

Checking for: /boot.scr …

Checking for: /boot/boot.scr …

Checking for: /boot/uEnv.txt …

gpio: pin 55 (gpio 55) value is 1

2964 bytes read in 26 ms (111.3 KiB/s)

Loaded environment from /boot/uEnv.txt

debug: [dtb=am335x-pocketbeagle.dtb] …

Using: dtb=am335x-pocketbeagle.dtb …

Checking if uname_r is set in /boot/uEnv.txt…

gpio: pin 56 (gpio 56) value is 1

Running uname_boot …

loading /boot/vmlinuz-4.4.91-ti-r141 …

8938752 bytes read in 750 ms (11.4 MiB/s)

loading /boot/dtbs/4.4.91-ti-r141/am335x-pocketbeagle.dtb …

128789 bytes read in 53 ms (2.3 MiB/s)

uboot_overlays: [fdt_buffer=0x60000] …

uboot_overlays: loading /lib/firmware/AM335X-PRU-RPROC-4-4-TI-00A0.dtbo …

2402 bytes read in 265 ms (8.8 KiB/s)

loading /boot/initrd.img-4.4.91-ti-r141 …

5368382 bytes read in 456 ms (11.2 MiB/s)

debug: [console=ttyO0,115200n8 root=/dev/mmcblk1p1 ro rootfstype=ext4 rootwait coherent_pool=1M net.ifnames=0 quiet] …

debug: [bootz 0x82000000 0x88080000:51ea3e 88000000] …

Flattened Device Tree blob at 88000000

Booting using the fdt blob at 0x88000000

reserving fdt memory region: addr=88000000 size=80000

Using Device Tree in place at 88000000, end 88082fff

Starting kernel …

[ 0.003003] clocksource_probe: no matching clocksources found

[ 2.596533] wkup_m3_ipc 44e11324.wkup_m3_ipc: could not get rproc handle

[ 2.817697] omap_voltage_late_init: Voltage driver support not added

[ 2.827108] PM: Cannot get wkup_m3_ipc handle

Loading, please wait…

[ 3.333098] musb-hdrc musb-hdrc.1.auto: VBUS_ERROR in a_wait_vrise (80, <SessEnd), retry #3, port1 0008010c

Gave up waiting for root device. Common problems:

  • Boot args (cat /proc/cmdline)

  • Check rootdelay= (did the system wait long enough?)

  • Check root= (did the system wait for the right device?)

  • Missing modules (cat /proc/modules; ls /dev)

ALERT! /dev/mmcblk1p1 does not exist. Dropping to a shell!

modprobe: module i8042 not found in modules.dep

modprobe: module ehci-orion not found in modules.dep

modprobe: module uhci-hcd not found in modules.dep

modprobe: module ohci-hcd not found in modules.dep

BusyBox v1.22.1 (Debian 1:1.22.0-9+deb8u1) built-in shell (ash)

Enter ‘help’ for a list of built-in commands.

/bin/sh: can’t access tty; job control turned off

(initramfs)

/dev/mmcblk1p1 to not be found even though uboot is able to acquire the dtb and kernel image from the sd card?

Thanks for the reply. I was trying to match a custom board eeprom with that
of the pocket beagle to avoid having to bypass the eeprom in uboot but it
turns out we didnt bring out the eeprom wp pin so we're unable to ground it.
I attmepted to use the uboot patch you created for bypassing eeprom
(https://raw.githubusercontent.com/RobertCNelson/Bootloader-Builder/master/patches/v2018.03-rc1/0002-NFM-Production-eeprom-assume-device-is-BeagleBone-Bl.patch)
but booting this always errors out when trying to start the kernel, here is
the boot log:

Which version of the Octavo SIP? The newer one has a dedicated GPIO
"inside" the coating, to force the wp. :wink:

U-Boot 2018.01-dirty (May 18 2018 - 17:23:40 -0400)

CPU : AM335X-GP rev 2.1

I2C: ready

DRAM: 512 MiB

No match for driver 'omap_hsmmc'

No match for driver 'omap_hsmmc'

Some drivers were not found

Reset Source: Power-on reset has occurred.

MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1

Using default environment

<ethaddr> not set. Validating first E-fuse MAC

BeagleBone: cape eeprom: i2c_probe: 0x54:

BeagleBone: cape eeprom: i2c_probe: 0x55:

BeagleBone: cape eeprom: i2c_probe: 0x56:

BeagleBone: cape eeprom: i2c_probe: 0x57:

Net: eth0: RGMII MODE

Could not get PHY for cpsw: addr 0

cpsw, usb_ether

Press SPACE to abort autoboot in 2 seconds

board_name=[A335BLNK] ...

Card did not respond to voltage select!

mmc_init: -95, time 13

** Bad device mmc 0 **

Card did not respond to voltage select!

mmc_init: -95, time 13

Card did not respond to voltage select!

mmc_init: -95, time 13

Card did not respond to voltage select!

mmc_init: -95, time 13

gpio: pin 56 (gpio 56) value is 0

gpio: pin 55 (gpio 55) value is 0

gpio: pin 54 (gpio 54) value is 0

gpio: pin 53 (gpio 53) value is 1

Card did not respond to voltage select!

mmc_init: -95, time 13

Card did not respond to voltage select!

mmc_init: -95, time 13

switch to partitions #0, OK

mmc1 is current device

Scanning mmc 1:1...

gpio: pin 56 (gpio 56) value is 0

gpio: pin 55 (gpio 55) value is 0

gpio: pin 54 (gpio 54) value is 0

gpio: pin 53 (gpio 53) value is 1

switch to partitions #0, OK

mmc1 is current device

gpio: pin 54 (gpio 54) value is 1

Checking for: /uEnv.txt ...

Checking for: /boot.scr ...

Checking for: /boot/boot.scr ...

Checking for: /boot/uEnv.txt ...

gpio: pin 55 (gpio 55) value is 1

2964 bytes read in 26 ms (111.3 KiB/s)

Loaded environment from /boot/uEnv.txt

debug: [dtb=am335x-pocketbeagle.dtb] ...

Using: dtb=am335x-pocketbeagle.dtb ...

Checking if uname_r is set in /boot/uEnv.txt...

gpio: pin 56 (gpio 56) value is 1

Running uname_boot ...

loading /boot/vmlinuz-4.4.91-ti-r141 ...

8938752 bytes read in 750 ms (11.4 MiB/s)

loading /boot/dtbs/4.4.91-ti-r141/am335x-pocketbeagle.dtb ...

128789 bytes read in 53 ms (2.3 MiB/s)

uboot_overlays: [fdt_buffer=0x60000] ...

uboot_overlays: loading /lib/firmware/AM335X-PRU-RPROC-4-4-TI-00A0.dtbo ...

2402 bytes read in 265 ms (8.8 KiB/s)

loading /boot/initrd.img-4.4.91-ti-r141 ...

5368382 bytes read in 456 ms (11.2 MiB/s)

debug: [console=ttyO0,115200n8 root=/dev/mmcblk1p1 ro rootfstype=ext4
rootwait coherent_pool=1M net.ifnames=0 quiet] ...

open /boot/uEnv.txt and remove "quiet", you'll get some useful
information over serial.

Regards,