cdsteinkuehler / br2rauc

Buildroot + RAUC
Other
51 stars 18 forks source link

Can't get rid of recovery partition. #15

Closed synaption closed 2 years ago

synaption commented 2 years ago

I think all I had to do previously was comment out the recovery partition section in the genimage.cfg, but since pulling this latest version, it does not work. Maybe I'm just missing a step. I think it has something to do with looking for the partitions in the wrong place now. Here is some of the output at boot if that helps:

U-Boot 2022.01 (Jun 11 2022 - 22:03:46 -0500)

DRAM:  948 MiB
RPI Compute Module 4 (0xa03140)
MMC:   mmcnr@7e300000: 1, mmc@7e340000: 0
Loading Environment from MMC... OK
In:    serial
Out:   serial
Err:   serial
Net:   eth0: ethernet@7d580000
PCIe BRCM: link down
starting USB...
Bus xhci@7e9c0000: Register 1000140 NbrPorts 1
Starting the controller
USB XHCI 1.10
scanning bus xhci@7e9c0000 for devices... 1 USB Device(s) found
       scanning usb for storage devices... 0 Storage Device(s) found
Hit any key to stop autoboot:  0 
switch to partitions #0, OK
mmc0(part 0) is current device
Scanning mmc 0:1...
Found U-Boot script /boot.scr
3993 bytes read in 10 ms (389.6 KiB/s)
## Executing script at 02400000
gpio: pin gpio4 (gpio 4) value is 1
Found valid slot A, 2 attempts remaining
Using firmware device-tree
Saving Environment to MMC... Writing to MMC(0)... OK
Loading kernel
Failed to load '/boot/Image'
Starting kernel
Bad Linux ARM64 Image magic!
SCRIPT FAILED: continuing...
libfdt fdt_check_header(): FDT_ERR_BADMAGIC
Card did not respond to voltage select! : -110
Scanning disk mmcnr@7e300000.blk...
Disk mmcnr@7e300000.blk not ready
Scanning disk mmc@7e340000.blk...
Found 7 disks
No EFI system partition
BootOrder not defined
EFI boot manager: Cannot load any image
Card did not respond to voltage select! : -110
MMC Device 2 not found
no mmc device at slot 2

Device 0: unknown device
PCIe BRCM: link down
BOOTP broadcast 1
DHCP client bound to address 192.168.1.104 (2 ms)
*** Warning: no boot file name; using 'C0A80168.img'
Using ethernet@7d580000 device
TFTP from server 192.168.1.2; our IP address is 192.168.1.104
Filename 'C0A80168.img'.
Load address: 0x1000000
Loading: T T Read start4.elf bytes  2240608 hnd 0x00000013 sha256 208c3799f1dfc7ab
Read fixup4.dat bytes     5354 hnd 0x00000011 sha256 637399c791c3a96a
0x00a03140 0x00000000 0x00000fff
MEM GPU: 76 ARM: 948 TOTAL: 1024
Starting start4.elf @ 0xfec00200 partition 0
PCI reset
+

MESS:00:00:03.671377:0: arasan: arasan_emmc_open
MESS:00:00:03.880996:0: brfs: File read: /mfs/sd/config.txt
MESS:00:00:03.884673:0: brfs: File read: 2820 bytes
MESS:00:00:03.936590:0: HDMI0:EDID error reading EDID block 0 attempt 0
MESS:00:00:03.946101:0: HDMI0:EDID error reading EDID block 0 attempt 1
MESS:00:00:03.955615:0: HDMI0:EDID error reading EDID block 0 attempt 2
MESS:00:00:03.965122:0: HDMI0:EDID error reading EDID block 0 attempt 3
MESS:00:00:03.974635:0: HDMI0:EDID error reading EDID block 0 attempt 4
MESS:00:00:03.984144:0: HDMI0:EDID error reading EDID block 0 attempt 5
MESS:00:00:03.993658:0: HDMI0:EDID error reading EDID block 0 attempt 6
MESS:00:00:04.003165:0: HDMI0:EDID error reading EDID block 0 attempt 7
MESS:00:00:04.012678:0: HDMI0:EDID error reading EDID block 0 attempt 8
MESS:00:00:04.022187:0: HDMI0:EDID error reading EDID block 0 attempt 9
MESS:00:00:04.026692:0: HDMI0:EDID giving up on reading EDID block 0
MESS:00:00:04.051854:0: HDMI1:EDID error reading EDID block 0 attempt 0
MESS:00:00:04.061361:0: HDMI1:EDID error reading EDID block 0 attempt 1
MESS:00:00:04.070875:0: HDMI1:EDID error reading EDID block 0 attempt 2
MESS:00:00:04.080385:0: HDMI1:EDID error reading EDID block 0 attempt 3
MESS:00:00:04.089898:0: HDMI1:EDID error reading EDID block 0 attempt 4
MESS:00:00:04.099405:0: HDMI1:EDID error reading EDID block 0 attempt 5
MESS:00:00:04.108919:0: HDMI1:EDID error reading EDID block 0 attempt 6
MESS:00:00:04.118428:0: HDMI1:EDID error reading EDID block 0 attempt 7
MESS:00:00:04.127942:0: HDMI1:EDID error reading EDID block 0 attempt 8
MESS:00:00:04.137449:0: HDMI1:EDID error reading EDID block 0 attempt 9
MESS:00:00:04.141954:0: HDMI1:EDID giving up on reading EDID block 0
MESS:00:00:04.147962:0: brfs: File read: /mfs/sd/config.txt
MESS:00:00:04.153505:0: gpioman: gpioman_get_pin_num: pin DISPLAY_SDA not defined
MESS:00:00:04.159533:0: gpioman: gpioman_get_pin_num: pin LEDS_PWR_OK not defined
MESS:00:00:04.187299:0: gpioman: gpioman_get_pin_num: pin FLASH_0_ENABLE not defined
MESS:00:00:04.191936:0: gpioman: gpioman_get_pin_num: pin FLASH_0_INDICATOR not defined
MESS:00:00:04.199677:0: gpioman: gpioman_get_pin_num: pin FLASH_0_ENABLE not defined
MESS:00:00:04.207127:0: gpioman: gpioman_get_pin_num: pin FLASH_0_INDICATOR not defined
MESS:00:00:04.668256:0: gpioman: gpioman_get_pin_num: pin LEDS_PWR_OK not defined
MESS:00:00:04.673901:0: *** Restart logging
MESS:00:00:04.676544:0: brfs: File read: 2820 bytes
MESS:00:00:04.686260:0: hdmi: HDMI0:EDID error reading EDID block 0 attempt 0
MESS:00:00:04.696291:0: hdmi: HDMI0:EDID error reading EDID block 0 attempt 1
MESS:00:00:04.706329:0: hdmi: HDMI0:EDID error reading EDID block 0 attempt 2
MESS:00:00:04.716361:0: hdmi: HDMI0:EDID error reading EDID block 0 attempt 3
MESS:00:00:04.726398:0: hdmi: HDMI0:EDID error reading EDID block 0 attempt 4
MESS:00:00:04.736428:0: hdmi: HDMI0:EDID error reading EDID block 0 attempt 5
MESS:00:00:04.746465:0: hdmi: HDMI0:EDID error reading EDID block 0 attempt 6
MESS:00:00:04.756497:0: hdmi: HDMI0:EDID error reading EDID block 0 attempt 7
MESS:00:00:04.766534:0: hdmi: HDMI0:EDID error reading EDID block 0 attempt 8
MESS:00:00:04.776564:0: hdmi: HDMI0:EDID error reading EDID block 0 attempt 9
MESS:00:00:04.781591:0: hdmi: HDMI0:EDID giving up on reading EDID block 0
MESS:00:00:04.792217:0: hdmi: HDMI0:EDID error reading EDID block 0 attempt 0
MESS:00:00:04.802246:0: hdmi: HDMI0:EDID error reading EDID block 0 attempt 1
MESS:00:00:04.812284:0: hdmi: HDMI0:EDID error reading EDID block 0 attempt 2
MESS:00:00:04.822316:0: hdmi: HDMI0:EDID error reading EDID block 0 attempt 3
MESS:00:00:04.832353:0: hdmi: HDMI0:EDID error reading EDID block 0 attempt 4
MESS:00:00:04.842382:0: hdmi: HDMI0:EDID error reading EDID block 0 attempt 5
MESS:00:00:04.852420:0: hdmi: HDMI0:EDID error reading EDID block 0 attempt 6
MESS:00:00:04.862453:0: hdmi: HDMI0:EDID error reading EDID block 0 attempt 7
MESS:00:00:04.872490:0: hdmi: HDMI0:EDID error reading EDID block 0 attempt 8
MESS:00:00:04.882520:0: hdmi: HDMI0:EDID error reading EDID block 0 attempt 9
MESS:00:00:04.887547:0: hdmi: HDMI0:EDID giving up on reading EDID block 0
MESS:00:00:04.893147:0: hdmi: HDMI:hdmi_get_state is deprecated, use hdmi_get_display_state instead
MESS:00:00:04.906937:0: hdmi: HDMI1:EDID error reading EDID block 0 attempt 0
MESS:00:00:04.916976:0: hdmi: HDMI1:EDID error reading EDID block 0 attempt 1
MESS:00:00:04.927005:0: hdmi: HDMI1:EDID error reading EDID block 0 attempt 2
MESS:00:00:04.937043:0: hdmi: HDMI1:EDID error reading EDID block 0 attempt 3
MESS:00:00:04.947076:0: hdmi: HDMI1:EDID error reading EDID block 0 attempt 4
MESS:00:00:04.957113:0: hdmi: HDMI1:EDID error reading EDID block 0 attempt 5
MESS:00:00:04.967143:0: hdmi: HDMI1:EDID error reading EDID block 0 attempt 6
MESS:00:00:04.977180:0: hdmi: HDMI1:EDID error reading EDID block 0 attempt 7
MESS:00:00:04.987212:0: hdmi: HDMI1:EDID error reading EDID block 0 attempt 8
MESS:00:00:04.997249:0: hdmi: HDMI1:EDID error reading EDID block 0 attempt 9
MESS:00:00:05.002271:0: hdmi: HDMI1:EDID giving up on reading EDID block 0
MESS:00:00:05.012893:0: hdmi: HDMI1:EDID error reading EDID block 0 attempt 0
MESS:00:00:05.022931:0: hdmi: HDMI1:EDID error reading EDID block 0 attempt 1
MESS:00:00:05.032961:0: hdmi: HDMI1:EDID error reading EDID block 0 attempt 2
MESS:00:00:05.042997:0: hdmi: HDMI1:EDID error reading EDID block 0 attempt 3
MESS:00:00:05.053030:0: hdmi: HDMI1:EDID error reading EDID block 0 attempt 4
MESS:00:00:05.063067:0: hdmi: HDMI1:EDID error reading EDID block 0 attempt 5
MESS:00:00:05.073097:0: hdmi: HDMI1:EDID error reading EDID block 0 attempt 6
MESS:00:00:05.083134:0: hdmi: HDMI1:EDID error reading EDID block 0 attempt 7
MESS:00:00:05.093167:0: hdmi: HDMI1:EDID error reading EDID block 0 attempt 8
MESS:00:00:05.103205:0: hdmi: HDMI1:EDID error reading EDID block 0 attempt 9
MESS:00:00:05.108224:0: hdmi: HDMI1:EDID giving up on reading EDID block 0
MESS:00:00:05.113823:0: hdmi: HDMI:hdmi_get_state is deprecated, use hdmi_get_display_state instead
MESS:00:00:05.122588:0: HDMI0: hdmi_pixel_encoding: 300000000
MESS:00:00:05.128055:0: HDMI1: hdmi_pixel_encoding: 300000000
MESS:00:00:05.134018:0: gpioman: gpioman_get_pin_num: pin CAMERA_0_I2C_PORT not defined
MESS:00:00:05.145517:0: dtb_file 'bcm2711-rpi-cm4.dtb'
MESS:00:00:05.152599:0: brfs: File read: /mfs/sd/bcm2711-rpi-cm4.dtb
MESS:00:00:05.155846:0: Loading 'bcm2711-rpi-cm4.dtb' to 0x100 size 0xcc10
MESS:00:00:05.175514:0: brfs: File read: 52240 bytes
MESS:00:00:05.181689:0: brfs: File read: /mfs/sd/overlays/overlay_map.dtb
MESS:00:00:05.253398:0: brfs: File read: 1703 bytes
MESS:00:00:05.256109:0: brfs: File read: /mfs/sd/config.txt
MESS:00:00:05.260928:0: dtparam: audio=on
MESS:00:00:05.274584:0: brfs: File read: 2820 bytes
MESS:00:00:05.283388:0: brfs: File read: /mfs/sd/overlays/vc4-kms-v3d-pi4.dtbo
MESS:00:00:05.352581:0: Loaded overlay 'vc4-kms-v3d'
MESS:00:00:05.511824:0: brfs: File read: 3823 bytes
MESS:00:00:05.521326:0: brfs: File read: /mfs/sd/overlays/miniuart-bt.dtbo
MESS:00:00:05.545895:0: Loaded overlay 'miniuart-bt'
MESS:00:00:05.547837:0: dtparam: watchdog=true
MESS:00:00:05.629980:0: brfs: File read: 1819 bytes
MESS:00:00:05.632225:0: brfs: File read: /mfs/sd/cmdline.txt
MESS:00:00:05.637152:0: Read command line from file 'cmdline.txt':
MESS:00:00:05.643030:0: 'root=/dev/mmcblk0p2 rootwait console=tty1 console=ttyAMA0,115200 fw_dtb cgroup_memory=1 cgroup_enable=memory'
MESS:00:00:05.680176:0: CMA size reduced to 256MB (total_mem 1024MB, gpu_mem 76MB)
MESS:00:00:05.757103:0: brfs: File read: 109 bytes
MESS:00:00:05.808239:0: brfs: File read: /mfs/sd/u-boot.bin
MESS:00:00:05.810705:0: Loading 'u-boot.bin' to 0x80000 size 0x8f4c0
MESS:00:00:05.816792:0: Device tree loaded to 0x2eff2e00 (size 0xd16b)
MESS:00:00:05.824819:0: uart: Set PL011 baud rate to 103448.300000 Hz
MESS:00:00:05.832097:0: uart: Baud rate change done...
MESS:00:00:05.834119:0: uart: Baud rate change done...
MESS:00:00:05.840785:0: gpioman: gpioman_get_pin_num: pin SDCARD_CONTROL_POWER not defined

U-Boot 2022.01 (Jun 11 2022 - 22:03:46 -0500)

DRAM:  948 MiB
RPI Compute Module 4 (0xa03140)
MMC:   mmcnr@7e300000: 1, mmc@7e340000: 0
Loading Environment from MMC... OK
In:    serial
Out:   serial
Err:   serial
Net:   eth0: ethernet@7d580000
PCIe BRCM: link down
starting USB...
Bus xhci@7e9c0000: Register 1000140 NbrPorts 1
Starting the controller
USB XHCI 1.10
scanning bus xhci@7e9c0000 for devices... 1 USB Device(s) found
       scanning usb for storage devices... 0 Storage Device(s) found
Hit any key to stop autoboot:  0 
switch to partitions #0, OK
mmc0(part 0) is current device
Scanning mmc 0:1...
Found U-Boot script /boot.scr
3993 bytes read in 10 ms (389.6 KiB/s)
## Executing script at 02400000
gpio: pin gpio4 (gpio 4) value is 1
Found valid slot A, 1 attempts remaining
Using firmware device-tree
Saving Environment to MMC... Writing to redundant MMC(0)... OK
Loading kernel
Failed to load '/boot/Image'
Starting kernel
Bad Linux ARM64 Image magic!
SCRIPT FAILED: continuing...
libfdt fdt_check_header(): FDT_ERR_BADMAGIC
Card did not respond to voltage select! : -110
Scanning disk mmcnr@7e300000.blk...
Disk mmcnr@7e300000.blk not ready
Scanning disk mmc@7e340000.blk...
Found 7 disks
No EFI system partition
BootOrder not defined
EFI boot manager: Cannot load any image
Card did not respond to voltage select! : -110
MMC Device 2 not found
no mmc device at slot 2

Device 0: unknown device
PCIe BRCM: link down
BOOTP broadcast 1
BOOTP broadcast 2
DHCP client bound to address 192.168.1.104 (252 ms)
*** Warning: no boot file name; using 'C0A80168.img'
Using ethernet@7d580000 device
TFTP from server 192.168.1.2; our IP address is 192.168.1.104
Filename 'C0A80168.img'.
Load address: 0x1000000
Loading: T 
cdsteinkuehler commented 2 years ago

The recovery image comes before the A and B rootfs partitions, so if you just comment out the recovery partition section in the genimage.cfg the A and B partition numbers will change. You will need to update the U-Boot script with the appropriate settings (eg: load_* and rauc_args environment variables) with the proper mmc device numbers and root= device for the Linux kernel.

cdsteinkuehler commented 2 years ago

Given your genimage configuration, I believe your uSD partitions should be:

1: boot 2: rootfs0 3: rootfs1 4: extended partition 5: upload 6: data

You'll need to adjust the U-Boot script to use mmc 0:2 or mmc 0:3 and set root= to /dev/mmcblk0p2 or /dev/mmcblk0p3

...but you should double-check exactly what the genimage utility is doing. I've had it do some unexpected things, so make sure everything is really getting written out the way you're expecting.

On 6/17/2022 3:59 PM, bob mcgrath wrote:

I thought that would be all I had to do as well, but now I am having no luck. Maybe you can spot the problem.

image data.ext4 {
  name = "Data"
  mountpoint = /data
  ext4 {
      use-mke2fs = true
      label = "Data"
      features = "^64bit"
  }
  size = 20000M
}

image upload.ext4 {
  name = "Upload"
  empty = true
  ext4 {
      use-mke2fs = true
      label = "Upload"
      features = "^64bit"
  }
  size = 3000M
}

image sdcard.img {
  hdimage {
      partition-table-type = mbr
      extended-partition = 4
  }

  partition ubootenv0 {
      image = "uboot-env.bin"
      in-partition-table = false
      offset = 1M
  }

  partition ubootenv1 {
      image = "uboot-env.bin"
      in-partition-table = false
      offset = 2M
  }

  partition boot0 {
      partition-type = 0xC
      bootable = true
      image = "boot.vfat"
      # Leave room for U-Boot environment
      offset = 4M
  }

  partition boot1 {
      image = "boot.vfat"
      in-partition-table = false
      # 256M + 4M
      offset = 260M
  }

# partition rescue {
#     partition-type = 0x83
#     image = "rootfs.squashfs"
#     size = 256M
# }

  partition rootfs0 {
      partition-type = 0x83
      image = "rootfs.ext4"
      size = 3000M
  }

  partition rootfs1 {
      partition-type = 0x83
      image = "rootfs.ext4"
      size = 3000M
  }

  partition upload {
      partition-type = 0x83
      image = "upload.ext4"
      size = 3000M
  }
  partition data {
      partition-type = 0x83
      image = "data.ext4"
      size = 20000M
  }
}
test -n "${BOOT_ORDER}" || setenv BOOT_ORDER "A B"
test -n "${BOOT_A_LEFT}" || setenv BOOT_A_LEFT 3
test -n "${BOOT_B_LEFT}" || setenv BOOT_B_LEFT 3
test -n "${bootargs_default}" || setenv bootargs_default coherent_pool=1M vc_mem.mem_base=0x3ec00000 vc_mem.mem_size=0x40000000 rootwait
test -n "${DTB_FILE}" || setenv DTB_FILE bcm2711-rpi-cm4.dtb

# RPi firmware uses a dynamic fdt_addr, but U-Boot does not use the fw
# provided address if fdt_addr is already defined in the environment!
# Copy fdt_addr to a local variable and delete the environment variable
# so it never gets accidentally saved:
fdt_addr=${fdt_addr}
env delete fdt_addr

# To boot from the rescue partition, tie GPIO4 (pin 7) to GND (pin 9)
# The gpio input command will return an exit status of 0 (true)
# If the pin is high (pulled up by default) the exit status is 1 (false)
#  if gpio input gpio4 ; then
#     # GPIO4 is shorted to ground so boot in rescue mode
#     echo "Booting from rescue partition"
#     setenv load_uenv "load mmc 0:2 ${kernel_addr_r} /boot/uEnv.txt"
#     setenv load_fdt "load mmc 0:2 ${fdt_addr_r} /boot/${DTB_FILE}"
#     setenv load_kernel "load mmc 0:2 ${kernel_addr_r} /boot/Image"
#     raucargs="root=/dev/mmcblk0p2"
#     rescue=true
#  else
  raucargs=unset
  for BOOT_SLOT in "${BOOT_ORDER}"; do
      if test "x${raucargs}" != "xunset"; then
          # skip remaining slots
      elif test "x${BOOT_SLOT}" = "xA"; then
          if test ${BOOT_A_LEFT} -gt 0; then
              echo "Found valid slot A, ${BOOT_A_LEFT} attempts remaining"
              setexpr BOOT_A_LEFT ${BOOT_A_LEFT} - 1
              setenv load_uenv "load mmc 0:5 ${kernel_addr_r} /boot/uEnv.txt"
              setenv load_fdt "load mmc 0:5 ${fdt_addr_r} /boot/${DTB_FILE}"
              setenv load_kernel "load mmc 0:5 ${kernel_addr_r} /boot/Image"
              raucargs="root=/dev/mmcblk0p4 rauc.slot=A"
          fi
      elif test "x${BOOT_SLOT}" = "xB"; then
          if test ${BOOT_B_LEFT} -gt 0; then
              echo "Found valid slot B, ${BOOT_B_LEFT} attempts remaining"
              setexpr BOOT_B_LEFT ${BOOT_B_LEFT} - 1
              setenv load_uenv "load mmc 0:6 ${kernel_addr_r} /boot/uEnv.txt"
              setenv load_fdt "load mmc 0:6 ${fdt_addr_r} /boot/${DTB_FILE}"
              setenv load_kernel "load mmc 0:6 ${kernel_addr_r} /boot/Image"
              raucargs="root=/dev/mmcblk0p5 rauc.slot=B"
          fi
      fi
  done
#fi

if test "x${raucargs}" = "xunset"; then
  echo "No valid slot found, resetting tries to 3"
  setenv BOOT_A_LEFT 3
  setenv BOOT_B_LEFT 3
  saveenv
  reset
fi

# Examine the fdt loaded by the firmware
# Pass fw_dtb to use the dtb loaded by the firmware
fdt_live=unset
fdt addr ${fdt_addr}
fdt get value bootargs_fw /chosen bootargs
for arg in ${bootargs_fw} ; do
  if test "x${arg}" = "xfw_dtb" ; then
      fdt_live=${fdt_addr}
  fi
done

# Save bootargs_fw in a local variable for later use
bootargs_fw=${bootargs_fw}
env del bootargs_fw

# If we're not using the dtb loaded by the firmware, load our dtb
# and fixup the emmc2 dma-ranges setting so newer SOCs will boot
# For details of what the FW modifies, see this RPi forum post:
# https://forums.raspberrypi.com/viewtopic.php?t=329799#p1974233
if test "x${rescue}" = "xtrue" -o "x${fdt_live}" = "xunset"; then
  # Using device-tree from rootfs
  # Check to see if we have any customizations in a uEnv.txt file
  env del bootargs_force bootargs_extra
  echo "Checking for /boot/uEnv.txt"
  if run load_uenv ; then
      echo "Importing uEnv.txt"
      env import -t -r ${fileaddr} ${filesize}
  fi

  # Fixup emmc2 dma range, which varies based on SOC revision
  # U-Boot's fdt get/set functions don't seem to work as expected
  # on properties with multiple values, so just do a memcpy()

  # Get a ptr/len for the FW modified dma-ranges
  fdt addr ${fdt_addr}
  fdt get addr tmp_src /emmc2bus dma-ranges
  fdt get size tmp_len /emmc2bus dma-ranges

  # Load our actual device-tree file
  echo "Loading device-tree"
  run load_fdt

  # Copy FW fixed-up dma-ranges to loaded device-tree
  fdt addr ${fdt_addr_r}
  fdt get addr tmp_dst /emmc2bus dma-ranges
  cp $tmp_src $tmp_dst $tmp_len

  # FIXME: Update PCIe dma-ranges if using PCIe!

  # Point to run-time device-tree
  fdt_live=${fdt_addr_r}

  # cleanup environment
  env del tmp_src tmp_len tmp_dst;

  # Setup kernel parameters
  if test -n "${bootargs_force}" ; then
      setenv bootargs "${bootargs_force} ${raucargs}"
  else
      setenv bootargs "${bootargs_default} ${bootargs_extra} ${raucargs}"
  fi
else
  # Using FW provided device-tree
  # Append rauc boot arguments to FW generated command line
  # This setting will override /chosen/bootargs in the device-tree
  echo "Using firmware device-tree"
  setenv bootargs "${bootargs_fw} ${raucargs}"
fi

# Store updated boot state...
# ...above code should have modified BOOT_(AB)_LEFT and bootargs
setenv silent 1 #not sure this should be here
saveenv

echo "Loading kernel"
run load_kernel

echo "Starting kernel"
booti ${kernel_addr_r} - ${fdt_live}

I tried root=/dev/mmcblk0p3 and 4 too.

-- Charles Steinkuehler @.***