GL-B2200 firmware update via Uboot issue

Hi,

I’m trying to update the firmware of my GL-B2200 in order to switch to OpenWrt. I’m following the instructions detailed here, i.e. using an openwrt-ipq40xx-generic-glinet_gl-b2200-squashfs-emmc.img file to send it to Uboot.

If I use the official gunzipped eMMC OpenWrt image, everything works fine using the Uboot web UI or TFTP.

However, if I try to use an image I built, which is much bigger than the official OpenWrt one (55 M vs 39M), I’m not able to send the image to Uboot, as the download seems to stop after a fixed size limit (see below for detailed logs).

I’ve tried to find a hard-coded limit in the Uboot code, but I didn’t find anything. Is there a limit for the size of files that the Uboot is able to handle?

Using Uboot web UI

If I use the Uboot web UI, the download stops after 50790751 bytes sent. The Uboot console just hangs forever.

Uboot console output
Press press RESET button for more than 5 seconds to run web failsafe mode

RESET button is pressed for: 5 second(s)

RESET button was pressed for 5 seconds
HTTP server is starting for firmware update…

NetOurEther = 94:83:c4:15:96:21
HTTP server is starting at IP: 192.168.1.1
HTTP server is ready!

Request for: /
274.uip_closed
Request for: /style.css
274.uip_closed
Found boundary value: “-----------------------------109002613118121432763846925744”
Data will be downloaded at 0x84000000 in RAM
Upgrade type: firmware
Upload file size: 57019107 bytes
Loading: #######################################
[…]
#######################################
########################

Using TFTP

If I use TFTP to download the file, the download stops at some point with a prefetch_abort error.

Uboot console output
Hit "gl" key to stop booting:  0

(IPQ40xx) # run lf
Using eth0 device
TFTP from server 192.168.1.2; our IP address is 192.168.1.1
Filename ‘openwrt-gl-b2200.bin’.
Load address: 0x84000000
Loading: #################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
###############prefetch abort
pc : [] lr : [<00000040>]
sp : 8706faf8 ip : 8706f82c fp : 8738474c
r10: 000005be r9 : 87368378 r8 : 8706ff4c
r7 : 000005bc r6 : 87369470 r5 : 0306fde8 r4 : 87389bfa
r3 : 000005bc r2 : 000005bc r1 : 87389bfe r0 : 8706f82c

I think this is case.

@lizh can you have a look.

Hi dohseven:
You need to update your uboot.

wget uboot-ipq40xx/uboot-gl-ap1300-b1300-s1300-b2200-20220826-md5-b599d2fa9955ca701fc25e6d29659c86.bin at master · gl-inet/uboot-ipq40xx · GitHub

Thanks!

Hi @lizh,

Thanks for your answer, I’ll try that. The Uboot binary you linked seems to be for GL AP1300, is it okay to use it also for GL B2200? I’m a bit worried to update the Uboot, as I don’t want to brick my device!

Yes, The uboot can also be applied with B2200.