At this moment, these are the files required to build the basic function 64 bit version of the DPC3848V.
The switch LEDs inherently indicate activity, but there is no intention to make the unit LEDs work.
The LED gpio controller is working in its raw 14 line form that somehow get multiplexed.

I am personally using OpenWrt 25.12.5. I just rebuilt it very quickly using just the files I have here.
They work for this version perfectly. Others not sure.

I took the approach that the generic build basically works but needs a few mods to function.
I doubt the web based firmware update would work properly as it stands and may even brick the box.
PLEASE BE CAREFUL. Also I myself had to reprogram it when I changed the LAN address and did not put
the TCP/24 (/24). There is no button to recover the unit so you must be careful.

In the end I noticed the kernel build option - builtin command line:
This allows you to configure the boot a bit different by programming the kernel partition only, not in use.
That is to say the kernel is loaded into dram and then not actively a mount in the system. I made a second
kernel with a builtin line allowing being run from a USB stick. This allows the programming of the unit
outside of sysupgrade. 

Again this approach was based on the existing 3848 scheme where the interactive boot loader is left
at the start of the emmc. I have 3 partitions although you only need 2. The 3 used for this box before
were mmcblk0p1 (kernel)8MB : mmcblk0p2 (arts data for wifi)6MB : mmcblk0p3 (rootfs)around 95MB.
The mmcblk0p1 should not be deleted, but just resized to retain the lower bootloader.

The bootloader has to be a certain version to turn off the ARM core so it will not interfere, and 
luckily I had a unit with the version I copied to other boxes. You should always retain a copy of the 
wifi calibration (ARTS) data. In the former provided openwrt scheme a parition 2 was made with the ARTS
data formerly from partition 6. 

(1) Use git to clone the current openwrt git repository.
    git clone https://github.com/openwrt/openwrt.git
    git tag
    git checkout v25.12.5
(2) Add the feeds and update them using script/feeds.
(3) Ensure any missing perl modules or whatever is installed to make it build.
(4) The file 300-puma.patch has to be put in x86 patches folder: [openwrt]/target/linux/x86/patches-xxxx
    (if your ath9k does not have an eeprom like all mine you have to patch the driver with the following.
     The former developer has a DPC3848VE, which seems to have an EEPROM. You could just rebuild with
     this patch if the ath9k does not work, but you also have to copy the ARTS (n) file to firmware)
    The file 600-matthew-ath9k.patch has to be put in the folder: 
    [openwrt]/package/kernel/mac80211/patches/ath9k
(5) The 2 Config files here are called something else to make them not hidden and readable.
    MenuConfig-Config should be copied to [openwrt]/.config
    You then make kernel_menuconfig.
    Copy The KernelConfig-Config to somewhere you can easily load it from the kernel_menuconfig from the 
    load at the bottom. You should then save it as .config to make it the active configuration.     
(6) make V=s
(7) The 3 critial output files from the build are
    openwrt-x86-64-generic-kernel.bin
    openwrt-x86-64-generic-targz-rootfs.tar.gz
    openwrt-x86-64-generic-squashfs-rootfs.img.gz
 
    What I do is take a USB memory stick over 1Gb in size. I 
    (a) Make a single largest partition
    (b) Format that as ext4
    (c) Mount that on the system
    (d) Go to that directory and zcat the targz-rootfs one 
    (e) Create a folder I call it /transfer
    (f) Copy the other 2 to /transfer
    (g) gunzip the squash...gz file : Unmount the usb stick
    (h) Insert Stick ->Start the 3848 pressing a key to get into the command area (ttl serial)
    (i) Use ymodem 0x100000 to put the *kernel.bin file into dram
    (j) execute the dram and thus load the kernel with the target of the 
        inserted usb stick root=/dev/sda1 rootwait
    (k) The console will mess up after the init so you have to switch to 
        network ssh to get a shell
    (l) dd if=/transfer/openwrt-x86-64-generic-kernel.bin of=/dev/mmcblk0p1
        dd if=/transfer/openwrt-x86-64-generic-squashfs-rootfs.img of=/dev/mmcblk0p3 (then reboot)  
    (m) In the new 3848 shell mount -o ro /dev/mmcblk0p2 /mnt
        cp /mnt/cal/calData_11ac.bin /lib/firmware/ath10k/cal-pci-0000:03:00.0.bin
        cp /mnt/cal/calData_11n.bin /lib/firmware/ath9k-n-file.bin
        This adds the ARTS data in the firmware path for wifis.
    (n) Type reboot in ssh and when it comes back it should be all done  

My build included the packages for smartphone tethering, NAS samba serving, python3, RTL-SDR, 
aircrack, wget ssl.

*********************
I just added the file 'mmc-bootloader.img' has the bootloader that supports turning off the ARM core
with the commands below. It is literally the first 2MB of /dev/mmcblk0
If you need it just dd if=mmc-bootloader.img of=/dev/mmcblk0 before doing anything else. Well after 
saving the former arts partition (orig /dev/mmcblk0p6) to somewhere external. 
I guess it would also set up the partitions for you since the partition table is in it.
Also I am guessing it would include everything below by default anyway so you can skip it.
*********************
This is the setup for the interactive bootloader to make it start up properly
(upload using y modem serial and start kernel from thumb drive with linux root)
ymodem 0x100000
bootkernel -b 0x100000 "console=uart,mmio32,0xdffe0200 pci=nocrs root=/dev/sda1 rootwait"

(configure essential hardware effective on restart)
cpc set ipmode 1
cpc set gmux 1
cpc set boottype 1
cpc set docddroff 0x1fffffff
cpc set docddrsize 0x1

( make the new boot script from shell)
script on
gpio set 51 1
gpio set 69 1
gpio set 98 1
gpio set 116 1
gpio set 51 0
gpio set 69 0
load -m 0x100000 -s 0x240000 -l 0x710000 -t emmc
gpio set 98 0
bootkernel -b 0x100000 "console=uart,mmio32,0xdffe0200 pci=nocrs root=/dev/mmcblk0p3 rootwait"
(press enter to complete script)
