Working on the support for Inseego FG2000

Hello :), I'm new to OpenWrt

I have an Inseego FG2000 device and am trying to add support for it in OpenWRT.

Model Version CPU CPU MHz CPU Cores_numcores Flash MB RAM MB WLAN Hardware WLAN 2.4GHz WLAN 5.0GHz RJ11 Ethernet 1Gbit ports(QCA8075) Ethernet 5Gbit ports(AQR108) Modem USB ports
Inseego-fg2000 SRT860H_v2.0/2.1 Qualcomm IPQ8072A 2200 4 8 8MB NOR, 4GB eMMC 1024 DDR4 Qualcomm QCN5024, Qualcomm QCN5054 b/g/n/ax a/n/ac/ax 1 3 1 - 1x 3.0,1x 2.0

I have successfully dumped the device's flash, which can be accessed via the link. The OEM firmware is based on QSDK, using Linux-4.4.60 and built upon OpenWrt 15.

The firmware I have compiled has the following issues:

  1. All Ethernet ports are not working properly—the Ethernet corresponding to aqr108 isn't even shown in the ip addr show command.
  2. Wi-Fi is not functioning correctly.
  3. The root file system cannot be found.

OEM bootlog

qnap_301w-initramfs bootlog

According to what I compiled and evaluated when writing the device tree firmware initramfs bootlog

OEM extract dts

I copied the configuration written by qnap301 dts

uboot printenv

baudrate=115200
bootargs=console=ttyMSM0,115200n8
bootcmd=aq_load_fw&&bootipq
bootdelay=2
eth2addr=0:ff:ff:ff:ff:ff
ethact=eth0
ethaddr=32:38:38:30:41:32
fdt_high=0x4A400000
fdtcontroladdr=4a9709c0
flash_type=8
gatewayip=192.168.0.1
ipaddr=192.168.1.1
machid=8010008
netmask=255.255.255.0
serverip=192.168.1.10
soc_version_major=2
soc_version_minor=0
stderr=serial@78B3000
stdin=serial@78B3000
stdout=serial@78B3000

Environment size: 457/65532 bytes

uboot mmc part

Partition Map for MMC device 0  --   Partition Type: EFI

Part	Start LBA	End LBA		Name
	Attributes
	Type GUID
	Partition GUID
  1	0x00000022	0x00003021	"0:HLOS"
	attrs:	0x0000000000000000
	type:	b51f2982-3ebe-46de-8721-ee641e1f9997
	guid:	0927785f-b9b1-904e-2113-ee2e36153a46
  2	0x00003022	0x00006021	"0:HLOS_1"
	attrs:	0x0000000000000000
	type:	a71da577-7f81-4626-b4a2-e377f9174525
	guid:	b929f081-3360-e5ba-35dd-724185242c8a
  3	0x00006022	0x00046021	"rootfs"
	attrs:	0x0000000000000000
	type:	98d2248d-7140-449f-a954-39d67bd6c3b4
	guid:	2a694f92-5d0e-3938-d9f8-634eca81848d
  4	0x00046022	0x00048021	"0:WIFIFW"
	attrs:	0x0000000000000000
	type:	5911fd72-35be-424e-975d-69c957ad3a43
	guid:	0fe07bc7-9839-c9d3-882b-3a0b987c0ccd
  5	0x00048022	0x00088021	"rootfs_1"
	attrs:	0x0000000000000000
	type:	5647b280-dc2a-485d-9913-cf53ac40fa32
	guid:	b68d7f34-87c4-9787-95e5-72fdcaaf3105
  6	0x00088022	0x0008a021	"0:WIFIFW_1"
	attrs:	0x0000000000000000
	type:	a640a4e3-6aeb-4d83-81a0-dfeae6b7d1a5
	guid:	bcaecc40-e1a2-e294-dcee-48c8495099a4
  7	0x0008a022	0x0010a021	"rootfs_data"
	attrs:	0x0000000000000000
	type:	ab1760da-a8bb-4d6f-98d2-9ad3ab9009cd
	guid:	c0078633-ac62-7730-cfb9-0406d121dc83
  8	0x0010a022	0x0014a021	"factory"
	attrs:	0x0000000000000000
	type:	4e2e2f3a-fca9-4797-a903-50b044a6f219
	guid:	04c26b41-dfcc-0618-cc61-19de5605cfd9
  9	0x0014a022	0x0034a021	"fota"
	attrs:	0x0000000000000000
	type:	13a2f67c-8b63-4ba3-9cb3-7538d684f1e9
	guid:	da11f343-036a-01c5-9b20-afb5bc8c6e47
 10	0x0034a022	0x006fa021	"docker"
	attrs:	0x0000000000000000
	type:	62782669-ef28-4ff3-b7cc-4a2bcb2cf8a3
	guid:	6e0530cf-3199-49c3-58eb-8afaa261177a

cat /proc/mtd

dev:    size   erasesize  name
mtd0: 00050000 00010000 "0:SBL1"
mtd1: 00010000 00010000 "0:MIBIB"
mtd2: 00020000 00010000 "0:BOOTCONFIG"
mtd3: 00020000 00010000 "0:BOOTCONFIG1"
mtd4: 00180000 00010000 "0:QSEE_1"
mtd5: 00180000 00010000 "0:QSEE"
mtd6: 00010000 00010000 "0:DEVCFG_1"
mtd7: 00010000 00010000 "0:DEVCFG"
mtd8: 00010000 00010000 "0:APDP"
mtd9: 00010000 00010000 "0:APDP_1"
mtd10: 00040000 00010000 "0:RPM_1"
mtd11: 00040000 00010000 "0:RPM"
mtd12: 00010000 00010000 "0:CDT_1"
mtd13: 00010000 00010000 "0:CDT"
mtd14: 00010000 00010000 "0:APPSBLENV"
mtd15: 000a0000 00010000 "0:APPSBL_1"
mtd16: 000a0000 00010000 "0:APPSBL"
mtd17: 00040000 00010000 "0:ART"
mtd18: 00080000 00010000 "0:ETHPHYFW"

cat /proc/partitions

major minor  #blocks  name

   1        0       4096 ram0
   1        1       4096 ram1
   1        2       4096 ram2
   1        3       4096 ram3
   1        4       4096 ram4
   1        5       4096 ram5
   1        6       4096 ram6
   1        7       4096 ram7
   1        8       4096 ram8
   1        9       4096 ram9
   1       10       4096 ram10
   1       11       4096 ram11
   1       12       4096 ram12
   1       13       4096 ram13
   1       14       4096 ram14
   1       15       4096 ram15
  31        0        320 mtdblock0
  31        1         64 mtdblock1
  31        2        128 mtdblock2
  31        3        128 mtdblock3
  31        4       1536 mtdblock4
  31        5       1536 mtdblock5
  31        6         64 mtdblock6
  31        7         64 mtdblock7
  31        8         64 mtdblock8
  31        9         64 mtdblock9
  31       10        256 mtdblock10
  31       11        256 mtdblock11
  31       12         64 mtdblock12
  31       13         64 mtdblock13
  31       14         64 mtdblock14
  31       15        640 mtdblock15
  31       16        640 mtdblock16
  31       17        256 mtdblock17
  31       18        512 mtdblock18
 179        0    3817472 mmcblk0
 179        1       6144 mmcblk0p1
 179        2       6144 mmcblk0p2
 179        3     131072 mmcblk0p3
 179        4       4096 mmcblk0p4
 179        5     131072 mmcblk0p5
 179        6       4096 mmcblk0p6
 179        7     262144 mmcblk0p7
 179        8     131072 mmcblk0p8
 179        9    1048576 mmcblk0p9
 179       10    1933312 mmcblk0p10
 179       32        512 mmcblk0rpmb

root@Chimay:/# cat /proc/mtd
dev:    size   erasesize  name
mtd0: 00050000 00010000 "0:SBL1"
mtd1: 00010000 00010000 "0:MIBIB"
mtd2: 00020000 00010000 "0:BOOTCONFIG"
mtd3: 00020000 00010000 "0:BOOTCONFIG1"
mtd4: 00180000 00010000 "0:QSEE_1"
mtd5: 00180000 00010000 "0:QSEE"
mtd6: 00010000 00010000 "0:DEVCFG_1"
mtd7: 00010000 00010000 "0:DEVCFG"
mtd8: 00010000 00010000 "0:APDP"
mtd9: 00010000 00010000 "0:APDP_1"
mtd10: 00040000 00010000 "0:RPM_1"
mtd11: 00040000 00010000 "0:RPM"
mtd12: 00010000 00010000 "0:CDT_1"
mtd13: 00010000 00010000 "0:CDT"
mtd14: 00010000 00010000 "0:APPSBLENV"
mtd15: 000a0000 00010000 "0:APPSBL_1"
mtd16: 000a0000 00010000 "0:APPSBL"
mtd17: 00040000 00010000 "0:ART"
mtd18: 00080000 00010000 "0:ETHPHYFW"

uboot help

?       - alias for 'help'
aq_load_fw- LOAD aq-fw-binary
aq_phy_restart- Restart Aquantia phy
base    - print or set address offset
bdinfo  - print Board Info structure
bootipq - bootipq from flash device
bootm   - boot application image from memory
bootp   - boot image via network using BOOTP/TFTP protocol
bootz   - boot Linux zImage image from memory
canary  - test stack canary
chpart  - change active partition
cmp     - memory compare
cp      - memory copy
crc32   - checksum calculation
dcache  - enable or disable data cache
dhcp    - boot image via network using DHCP/TFTP protocol
dm      - Driver model low level access
echo    - echo args to console
env     - environment handling commands
erase   - erase FLASH memory
exectzt - execute TZT

exit    - exit script
false   - do nothing, unsuccessfully
fdt     - flattened device tree utility commands
flash   - flash part_name 
	flash part_name load_addr file_size 

flasherase- flerase part_name 

flinfo  - print FLASH memory information
fuseipq - fuse QFPROM registers from memory

go      - start application at address 'addr'
help    - print command description/usage
i2c     - I2C sub-system
icache  - enable or disable instruction cache
imxtract- extract a part of a multi-image
ipq_mdio- IPQ mdio utility commands
is_sec_boot_enabled- check secure boot fuse is enabled or not

itest   - return true/false on integer compare
loop    - infinite loop on address range
md      - memory display
mii     - MII utility commands
mm      - memory modify (auto-incrementing address)
mmc     - MMC sub system
mmcinfo - display MMC info
mtdparts- define flash/nand partitions
mtest   - simple RAM read/write test
mw      - memory write (fill)
nand    - NAND sub-system
nboot   - boot from NAND device
nm      - memory modify (constant address)
pci     - list and access PCI Configuration Space
ping    - send ICMP ECHO_REQUEST to network host
printenv- print environment variables
protect - enable or disable FLASH write protection
reset   - Perform RESET of the CPU
run     - run commands in an environment variable
runmulticore- Enable and schedule secondary cores
saveenv - save environment variables to persistent storage
secure_authenticate- authenticate the signed image

setenv  - set environment variables
sf      - SPI flash sub-system
showvar - print local hushshell variables
sleep   - delay execution for some time
smeminfo- print SMEM FLASH information
source  - run script from memory
test    - minimal test like /bin/sh
tftpboot- boot image via network using TFTP protocol
tftpput - TFTP put command, for uploading files to a server
true    - do nothing, successfully
uart    - UART sub-system
ubi     - ubi commands
usb     - USB sub-system
usbboot - boot from USB device
version - print monitor, compiler and linker version

I would greatly appreciate any guidance, suggestions, or contributions from the community to help integrate this device into OpenWRT.

Post those boot logs?

I assume U-Boot be interrupted, since you've managed to boot the Qnap initramfs ?

Yes,i can can interrupted U-Boot
I've tried that, but it wasn't very helpful.

Type "help" in uboot to see available commands.

It has been added on the first floor