E750 custom Openwrt NAND image not booting

Hi,
I’m compiling a custom NAND image for the e750 using the openwrt repo:

Branch openwrt-19.07.7 / firmware 3.201

firmware compiled size is ~15MB with extra kernel extensions.
Loading the img through uBoot sometimes lets the e750 boot, but most of the time it does not. Compiling the same image for NOR boots successfully and reliably.
Any ideas how to get the NAND image booting reliably - is it related to kernel size?

Can you share your configuration?

customize.json:

{
"packages": {
	"basic": "libustream-openssl -dnsmasq dnsmasq-full -wpad-mini iwinfo kmod-nls-cp437 kmod-nls-iso8859-1 kmod-nls-utf8 kmod-nf-nathelper kmod-nf-nathelper-extra ethtool fcgi lighttpd lighttpd-mod-access lighttpd-mod-cgi lighttpd-mod-expire lighttpd-mod-fastcgi lighttpd-mod-proxy unzip wpa-cli bridge ip-full -unbound stubby mwan3 -wpad-basic wpad-openssl -PCI_SUPPORT -luci -luci-mod-rpc ipset",
	"vpn": "openvpn-openssl wireguard gl-wg gl-wg-server gl-vpn gl-vpn-server -gl-ss -gl-ss-server",
	"storage": "blkid kmod-fs-ext4 kmod-fs-ntfs kmod-fs-vfat kmod-fs-exfat ntfs-3g -samba36-server -minidlna",
	"usb": "kmod-usb-storage-uas kmod-usb-storage kmod-usb-uhci kmod-usb2 kmod-usb-ohci kmod-usb-acm kmod-usb-net-huawei-cdc-ncm comgt chat comgt-directip comgt-ncm kmod-usb-serial kmod-usb-serial-cp210x kmod-usb-serial-option kmod-usb-serial-wwan kmod-usb-serial-sierrawireless kmod-rt2800-usb usb-modeswitch kmod-mppe kmod-usb-net kmod-usb-net-cdc-ether kmod-usb-net-rndis kmod-usb-net-qmi-wwan uqmi kmod-usb-net-ipheth libusbmuxd libimobiledevice usbmuxd",
	"glinet": "-gl-airkiss gl-crond gl-s2s gl-portal gl-cloud-ui gl-route-policy gl-qos-internal gl-tertf gl-fw gl-base-files -gl-files-brower gl-firewall gl-modem gl-repeater gl-sdk gl-software gl-ui gl-util gl-wan-detect gl-wifi-core gl-monitor gl-ipv6 rtty-openssl gl-upload",
	"glinet_vixmini": "gl-sdk gl-base-files -gl-files-brower gl-firewall gl-repeater gl-software -gl-ui gl-ui-vixmini gl-util gl-wan-detect gl-wifi-core gl-monitor",
	"basic_vixmini": "dnsmasq -wpad-mini iwinfo -kmod-nls-cp437 -kmod-nls-iso8859-1 -kmod-nls-utf8 kmod-nf-nathelper-extra -luci luci-mod-rpc ethtool fcgi lighttpd lighttpd-mod-openssl lighttpd-mod-access lighttpd-mod-cgi lighttpd-mod-expire lighttpd-mod-fastcgi lighttpd-mod-proxy unzip wpa-cli wpad bridge ip-full mwan3",
	"custom_oneboxx": "iptables-mod-ipsec kmod-crypto-authenc kmod-crypto-cbc kmod-crypto-ctr kmod-crypto-deflate kmod-crypto-des kmod-crypto-ecdh kmod-crypto-echainiv kmod-crypto-gcm kmod-crypto-gf128 kmod-crypto-ghash kmod-crypto-hmac kmod-crypto-iv kmod-crypto-kpp kmod-crypto-md5 kmod-crypto-rng kmod-crypto-seqiv kmod-crypto-sha256 kmod-crypto-wq kmod-ipsec kmod-ipsec4 kmod-ipsec6 kmod-ipt-ipsec kmod-iptunnel4 kmod-iptunnel6 kmod-lib-zlib-deflate kmod-lib-zlib-inflate libaio libatomic libiwinfo-lua liblua liblucihttp-lua liblucihttp liblzma libncurses libstdcpp libubus-lua lua luci-app-firewall luci-base luci-lib-ip luci-lib-jsonc luci-lib-nixio luci-mod-admin-full luci-proto-ipv6 luci-proto-ppp luci-theme-bootstrap luci nano nginx openssh-sftp-server php7-cli php7-fpm php7-mod-curl php7-mod-hash php7-mod-iconv php7-mod-json php7-mod-opcache php7-mod-openssl php7-mod-pdo-mysql php7-mod-pdo php7-mod-phar php7-mod-session php7-mod-shmop php7-mod-simplexml php7-mod-zip php7 rpcd-mod-rrdns rpcd strongswan-charon strongswan-default strongswan-ipsec strongswan-libtls strongswan-mod-aes strongswan-mod-attr strongswan-mod-ccm strongswan-mod-cmac strongswan-mod-connmark strongswan-mod-constraints strongswan-mod-curl strongswan-mod-curve25519 strongswan-mod-des strongswan-mod-dnskey strongswan-mod-eap-identity strongswan-mod-eap-md5 strongswan-mod-eap-mschapv2 strongswan-mod-eap-tls strongswan-mod-fips-prf strongswan-mod-gcm strongswan-mod-gmp strongswan-mod-hmac strongswan-mod-kernel-netlink strongswan-mod-md4 strongswan-mod-md5 strongswan-mod-nonce strongswan-mod-openssl strongswan-mod-pem strongswan-mod-pgp strongswan-mod-pkcs1 strongswan-mod-pubkey strongswan-mod-random strongswan-mod-rc2 strongswan-mod-resolve strongswan-mod-revocation strongswan-mod-sha1 strongswan-mod-sha2 strongswan-mod-socket-default strongswan-mod-sshkey strongswan-mod-stroke strongswan-mod-updown strongswan-mod-x509 strongswan-mod-xauth-generic strongswan-mod-xcbc strongswan terminfo uhttpd-mod-ubus uhttpd zoneinfo-africa zoneinfo-asia zoneinfo-atlantic zoneinfo-australia-nz zoneinfo-core zoneinfo-europe zoneinfo-india zoneinfo-northamerica zoneinfo-pacific zoneinfo-poles zoneinfo-simple zoneinfo-southamerica",
	"built_oneboxx": "uclibcxx libreadline libaio libmysqlclient mysql-server"
},
"profiles": {
            "oneboxx": {
		"profile": "glinet_gl-e750-nor-nand",
		"version": "3.201",
		"imagebuilder": "3.5/openwrt-imagebuilder-ath79-nand_3.5",
		"packages": "kmod-GobiNet kmod-GobiSerial gl-base-files-ar gl-base-files-e750 $basic $vpn $storage $usb $glinet gl-e750-mcu gl-tor gl-upload rtty-openssl $custom_oneboxx $built_oneboxx",
		"files": "/home/builder/oneboxx-e750/files"
	}
}

}

Your kernel may exceed 2MB. If it exceeds 2MB, you need to write firmware via uboot.
https://docs.gl-inet.com/en/3/troubleshooting/debrick/

I am writing the firmware via uBoot - that is when the issue happens (and via sysupgrade)

Does it require custom compiled uBoot?

No. Uboot should not be changed

My kernel is probably larger than 2MB, but I still experience same problem when loading via uBoot (sometimes boot correctly after install, then not after restart).