summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorroot <root@new-fish.medaka.james.internal>2026-01-16 18:05:48 +0000
committerroot <root@new-fish.medaka.james.internal>2026-01-16 18:05:48 +0000
commit3fd30876ca4e4b0e793ddf41f6c34150f729a97d (patch)
treef96202041800836e44162784b9c63d134cad7fe7
parentd28fcdb4a278d95927b5e7ada52601ba151806ac (diff)
downloadhp_instrument_lcds-master.tar.gz
hp_instrument_lcds-master.tar.bz2
hp_instrument_lcds-master.zip
Reset phy in u-boot, use initrd for target, and support ro mount of the sd cardHEADmaster
-rw-r--r--fpga/ebaz4205/Makefile49
-rw-r--r--fpga/ebaz4205/linux-6.18.5-pq/master/endstop88
-rw-r--r--fpga/ebaz4205/src/bootscript22
-rw-r--r--fpga/ebaz4205/src/fs/boot/Makefile12
-rw-r--r--fpga/ebaz4205/src/fs/etc/dracut.conf.d/compress.conf1
-rw-r--r--fpga/ebaz4205/src/fs/etc/dracut.conf.d/omit.conf1
-rw-r--r--fpga/ebaz4205/src/fs/etc/dracut.conf.d/overlay.conf1
-rwxr-xr-xfpga/ebaz4205/src/fs/usr/local/bin/mutable-chroot9
-rw-r--r--fpga/ebaz4205/src/uEnv.txt12
-rw-r--r--fpga/ebaz4205/u-boot-pq/v2019.07-ebaz4205/reset-phy.patch39
-rw-r--r--fpga/ebaz4205/u-boot-pq/v2019.07-ebaz4205/series1
11 files changed, 195 insertions, 40 deletions
diff --git a/fpga/ebaz4205/Makefile b/fpga/ebaz4205/Makefile
index 73a6d0c..5af6da4 100644
--- a/fpga/ebaz4205/Makefile
+++ b/fpga/ebaz4205/Makefile
@@ -2,14 +2,15 @@ CCC=CROSS_COMPILE=arm-none-eabi-
UB=u-boot
UBO=${UB}/spl/boot.bin ${UB}/u-boot.img
-LO=build/uImage
-#LD=linux-4.19
-#LD=linux-6.16.4
+LO=build/vmlinuz-fallback
LV=6.18.5
+LP=${LV}-scope
LD=linux-${LV}
MD=${PWD}/modules
FD=../hp_lcd_driver
+SD=${PWD}/staged
+
DP=${DIP}:/boot/uboot/
DIP=10.16.66.71
@@ -20,30 +21,29 @@ DTB=build/ebaz4205-zynq7.dtb
BS=build/bootscript
-OUTS=${UBO} ${LO} ${RDO} src/uEnv.txt ${DTB} ${BS} #${VIVO}
+UBOUTS=${UBO} ${RDO} src/uEnv.txt ${DTB} ${BS} ${VIVO} ${L}
-default:staged/stamp
+default:${SD}/stamp ${BS}
-staged/stamp:${OUTS}
- mkdir -p staged
- for i in ${OUTS}; do install -m 644 $$i staged; done
+${SD}/stamp:${UBOUTS} ${SD}/lib/modules/stamp ${LD}/arch/arm/boot/zImage
+ mkdir -p ${SD}/boot/uboot
+ install -m 644 ${LD}/arch/arm/boot/zImage ${SD}/boot/vmlinuz-${LP}
+ install -m 644 ${LD}/.config ${SD}/boot/config-${LP}
+ tar cfC - src/fs . | tar xvfpBC - ${SD}
+ ln -sf boot/vmlinuz-${LP} ${SD}/vmlinuz
+ ln -sf boot/initrd.img-${LP} ${SD}/initrd.img
+ for i in ${UBOUTS}; do install -m 644 $$i ${SD}/boot/uboot; done
touch $@
-sync: staged/stamp ${LD}/arch/arm/boot/zImage
- #rsync -varP staged/ ${DP}
- scp ${LD}/arch/arm/boot/zImage ${DIP}:/boot/vmlinuz-${LV}-scope
- rsync -varP modules/lib/modules/ ${DIP}:/lib/modules/
- #ssh -n ${DIP} "update-initramfs -k ${LV}-scope -u"
- ssh -n ${DIP} "dracut --kver ${LV}-scope --force"
+sync: staged/stamp
+ tar cfC - staged boot etc initrd.img lib/modules usr/local/bin vmlinuz | ssh ${DIP} "tar xfpBCv - /live/image"
+ #ssh -n ${DIP} "chroot /live/image dracut --kver ${LV}-scope --force"
#ssh -n ${DIP} "reboot" &
${BS}:src/bootscript
mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d $< $@
-
-
-
${RDO}:build/nowt.cpio
mkimage -A ARM -O Linux -T RAMDisk -C none -d $< $@
@@ -51,9 +51,6 @@ build/nowt.cpio:
mkdir -p nowt
cpio -Hnewc -o < /dev/null > $@ || /bin/rm -f $@
-
-
-
${VIVO}:
(cd ${FD} && ${MAKE})
@@ -67,7 +64,11 @@ ${LO}:${LD}/arch/arm/boot/zImage
${LD}/arch/arm/boot/zImage:${LD}/Makefile ${LD}/.config
LOCALVERSION="" ${MAKE} -C ${LD} ${CCC} ARCH=arm -j 32
mkdir -p ${MD}
- LOCALVERSION="" ${MAKE} -C ${LD} ${CCC} ARCH=arm INSTALL_MOD_PATH=${MD} modules_install
+
+${SD}/lib/modules/stamp: ${LD}/Makefile ${LD}/.config
+ mkdir -p ${SD}
+ LOCALVERSION="" ${MAKE} -C ${LD} ${CCC} ARCH=arm INSTALL_MOD_PATH=${SD} modules_install
+ touch $@
#${LD}/.config:src/linux-config ${LD}/Makefile
@@ -88,7 +89,7 @@ build/${LD}.tar.xz:
wget -O $@ https://www.kernel.org/pub/linux/kernel/v6.x/${LD}.tar.xz
-${UBO}:${UB}/.config #dummy
+${UBO}:${UB}/.config dummy
${MAKE} ${CCC} -C ${UB} HOSTCFLAGS+=-fcommon
${UB}/.config:${UB}/config.mk
@@ -96,6 +97,10 @@ ${UB}/.config:${UB}/config.mk
${UB}/config.mk:
git clone --depth 1 -b v2019.07-ebaz4205 https://github.com/embed-me/u-boot.git ${UB}
+ ln -s ../../${UB}-pq ${UB}/.git/patches
+ echo -n > ${UB}-pq/v2019.07-ebaz4205/status
+ (cd ${UB} && guilt push -a)
+ touch $@
dummy:
diff --git a/fpga/ebaz4205/linux-6.18.5-pq/master/endstop b/fpga/ebaz4205/linux-6.18.5-pq/master/endstop
index e69de29..773978d 100644
--- a/fpga/ebaz4205/linux-6.18.5-pq/master/endstop
+++ b/fpga/ebaz4205/linux-6.18.5-pq/master/endstop
@@ -0,0 +1,88 @@
+diff --git a/.config b/.config
+index b88dfbaab..3fef3e73a 100644
+--- a/.config
++++ b/.config
+@@ -2,24 +2,22 @@
+ # Automatically generated file; DO NOT EDIT.
+ # Linux/arm 6.18.5 Kernel Configuration
+ #
+-CONFIG_CC_VERSION_TEXT="arm-none-eabi-gcc (15:14.2.rel1-1) 14.2.1 20241119"
++CONFIG_CC_VERSION_TEXT="arm-none-eabi-gcc (Fedora 9.2.0-1.fc30) 9.2.0"
+ CONFIG_CC_IS_GCC=y
+-CONFIG_GCC_VERSION=140201
++CONFIG_GCC_VERSION=90200
+ CONFIG_CLANG_VERSION=0
+ CONFIG_AS_IS_GNU=y
+-CONFIG_AS_VERSION=24400
++CONFIG_AS_VERSION=23200
+ CONFIG_LD_IS_BFD=y
+-CONFIG_LD_VERSION=24400
++CONFIG_LD_VERSION=23200
+ CONFIG_LLD_VERSION=0
+ CONFIG_RUSTC_VERSION=0
+ CONFIG_RUSTC_LLVM_VERSION=0
+-CONFIG_CC_HAS_ASM_GOTO_OUTPUT=y
+-CONFIG_CC_HAS_ASM_GOTO_TIED_OUTPUT=y
++CONFIG_GCC_ASM_GOTO_OUTPUT_BROKEN=y
+ CONFIG_CC_HAS_ASM_INLINE=y
+-CONFIG_CC_HAS_ASSUME=y
+ CONFIG_CC_HAS_NO_PROFILE_FN_ATTR=y
+ CONFIG_LD_CAN_USE_KEEP_IN_OVERLAY=y
+-CONFIG_PAHOLE_VERSION=130
++CONFIG_PAHOLE_VERSION=0
+ CONFIG_IRQ_WORK=y
+ CONFIG_BUILDTIME_TABLE_SORT=y
+ CONFIG_THREAD_INFO_IN_TASK=y
+@@ -228,8 +226,6 @@ CONFIG_RD_ZSTD=y
+ CONFIG_INITRAMFS_PRESERVE_MTIME=y
+ CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y
+ # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+-CONFIG_HAVE_LD_DEAD_CODE_DATA_ELIMINATION=y
+-# CONFIG_LD_DEAD_CODE_DATA_ELIMINATION is not set
+ CONFIG_LD_ORPHAN_WARN=y
+ CONFIG_LD_ORPHAN_WARN_LEVEL="warn"
+ CONFIG_SYSCTL=y
+@@ -713,8 +709,6 @@ CONFIG_PARAVIRT=y
+ # CONFIG_PARAVIRT_TIME_ACCOUNTING is not set
+ CONFIG_XEN_DOM0=y
+ CONFIG_XEN=y
+-CONFIG_CC_HAVE_STACKPROTECTOR_TLS=y
+-CONFIG_STACKPROTECTOR_PER_TASK=y
+ # end of Kernel Features
+
+ #
+@@ -975,8 +969,6 @@ CONFIG_HAVE_GCC_PLUGINS=y
+ CONFIG_GCC_PLUGINS=y
+ # CONFIG_GCC_PLUGIN_LATENT_ENTROPY is not set
+ CONFIG_FUNCTION_ALIGNMENT=0
+-CONFIG_CC_HAS_MIN_FUNCTION_ALIGNMENT=y
+-CONFIG_CC_HAS_SANE_FUNCTION_ALIGNMENT=y
+ # end of General architecture-dependent options
+
+ CONFIG_RT_MUTEXES=y
+@@ -6559,17 +6551,10 @@ CONFIG_DEFAULT_SECURITY_DAC=y
+ #
+ # Memory initialization
+ #
+-CONFIG_CC_HAS_AUTO_VAR_INIT_PATTERN=y
+-CONFIG_CC_HAS_AUTO_VAR_INIT_ZERO_BARE=y
+-CONFIG_CC_HAS_AUTO_VAR_INIT_ZERO=y
+ CONFIG_INIT_STACK_NONE=y
+-# CONFIG_INIT_STACK_ALL_PATTERN is not set
+-# CONFIG_INIT_STACK_ALL_ZERO is not set
+ # CONFIG_KSTACK_ERASE is not set
+ CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y
+ # CONFIG_INIT_ON_FREE_DEFAULT_ON is not set
+-CONFIG_CC_HAS_ZERO_CALL_USED_REGS=y
+-# CONFIG_ZERO_CALL_USED_REGS is not set
+ # end of Memory initialization
+
+ #
+@@ -7090,7 +7075,6 @@ CONFIG_HAVE_ARCH_KGDB=y
+ # CONFIG_KGDB is not set
+ CONFIG_ARCH_HAS_UBSAN=y
+ # CONFIG_UBSAN is not set
+-CONFIG_HAVE_KCSAN_COMPILER=y
+ # end of Generic Kernel Debugging Instruments
+
+ #
diff --git a/fpga/ebaz4205/src/bootscript b/fpga/ebaz4205/src/bootscript
index d6110d5..a528892 100644
--- a/fpga/ebaz4205/src/bootscript
+++ b/fpga/ebaz4205/src/bootscript
@@ -1,13 +1,9 @@
-#setenv bootargs earlyprintk console=ttyPS0,115200 ip=dhcp nfsroot=10.16.64.32:/export/roots/scope,nfsvers=3,tcp rw panic=30
-#tftpboot ${kernel_load_address} /pxe/scope/uImage
-#tftpboot ${ramdisk_load_address} /pxe/scope/nowt.cpio.uboot
-#tftpboot ${devicetree_load_address} /pxe/scope/ebaz4205-zynq7.dtb
-setenv bootargs root=/dev/mmcblk0p3 ro rootwait earlyprintk console=ttyPS0,115200 systemd.volatile=overlay panic=30
-#setenv bootargs root=/dev/mmcblk0p3 ro rootwait
-#setenv bootargs root=/dev/mmcblk0p3 ro rootwait systemd.volatile=state
-setenv kernel_image vmlinuz
-setenv ramdisk_image initrd.img
-run mmc_loadkernel
-run mmc_loadramdisk
-run mmc_loaddtb
-bootm ${kernel_load_address} ${ramdisk_load_address} ${devicetree_load_address}
+if false; then
+ setenv bootargs earlyprintk console=ttyPS0,115200 ip=dhcp nfsroot=10.16.64.32:/export/roots/scope,nfsvers=3,tcp rw panic=30
+ tftpboot ${kernel_load_address} /pxe/scope/uImage
+ tftpboot ${ramdisk_load_address} /pxe/scope/nowt.cpio.uboot
+ tftpboot ${devicetree_load_address} /pxe/scope/ebaz4205-zynq7.dtb
+ bootm ${kernel_load_address} ${ramdisk_load_address} ${devicetree_load_address}
+else
+ run defaultboot
+fi
diff --git a/fpga/ebaz4205/src/fs/boot/Makefile b/fpga/ebaz4205/src/fs/boot/Makefile
new file mode 100644
index 0000000..ce1b042
--- /dev/null
+++ b/fpga/ebaz4205/src/fs/boot/Makefile
@@ -0,0 +1,12 @@
+default: uboot/vmlinuz uboot/initrd.img
+
+uboot/vmlinuz: /vmlinuz
+ mkimage -A ARM -O Linux -T Kernel -C none -d $< $@
+
+uboot/initrd.img: /initrd.img
+ mkimage -A ARM -O Linux -T RAMDisk -C none -d $< $@
+
+/initrd.img: /lib/modules/stamp
+ dracut --force
+
+
diff --git a/fpga/ebaz4205/src/fs/etc/dracut.conf.d/compress.conf b/fpga/ebaz4205/src/fs/etc/dracut.conf.d/compress.conf
new file mode 100644
index 0000000..45d77ab
--- /dev/null
+++ b/fpga/ebaz4205/src/fs/etc/dracut.conf.d/compress.conf
@@ -0,0 +1 @@
+compress="gzip"
diff --git a/fpga/ebaz4205/src/fs/etc/dracut.conf.d/omit.conf b/fpga/ebaz4205/src/fs/etc/dracut.conf.d/omit.conf
new file mode 100644
index 0000000..9f9e855
--- /dev/null
+++ b/fpga/ebaz4205/src/fs/etc/dracut.conf.d/omit.conf
@@ -0,0 +1 @@
+omit_dracutmodules+=" lvm kernel-modules dm crypt "
diff --git a/fpga/ebaz4205/src/fs/etc/dracut.conf.d/overlay.conf b/fpga/ebaz4205/src/fs/etc/dracut.conf.d/overlay.conf
new file mode 100644
index 0000000..fcc7c42
--- /dev/null
+++ b/fpga/ebaz4205/src/fs/etc/dracut.conf.d/overlay.conf
@@ -0,0 +1 @@
+add_dracutmodules+=" overlayfs "
diff --git a/fpga/ebaz4205/src/fs/usr/local/bin/mutable-chroot b/fpga/ebaz4205/src/fs/usr/local/bin/mutable-chroot
new file mode 100755
index 0000000..2e9fd65
--- /dev/null
+++ b/fpga/ebaz4205/src/fs/usr/local/bin/mutable-chroot
@@ -0,0 +1,9 @@
+#!/bin/bash
+mount -w -n -o remount /live/image
+mount -w -n -o remount /boot
+mount -w -n -o remount /boot/uboot
+for i in dev dev/pts proc sys boot boot/uboot; do
+mount --bind /$i /live/image/$i
+done
+chroot /live/image su -
+
diff --git a/fpga/ebaz4205/src/uEnv.txt b/fpga/ebaz4205/src/uEnv.txt
index 0319721..21c5554 100644
--- a/fpga/ebaz4205/src/uEnv.txt
+++ b/fpga/ebaz4205/src/uEnv.txt
@@ -1,15 +1,17 @@
machine_name=ebaz4205-zynq7
-kernel_image=uImage
+kernel_image=vmlinuz
setmac=load mmc 0 ${ramdisk_load_address} mac.txt && env import -t ${ramdisk_load_address} ${filesize}
loadkernel=load mmc 0 ${kernel_load_address} ${kernel_image}
devicetree_image=ebaz4205-zynq7.dtb
loaddtb=load mmc 0 ${devicetree_load_address} ${devicetree_image}
-ramdisk_image=nowt.cpio.uboot
+ramdisk_image=initrd.img
loadramdisk=load mmc 0 ${ramdisk_load_address} ${ramdisk_image}
notbootargs=earlyprintk console=ttyPS0,115200 root=/dev/mmcblk0p3 ro rootwait
-bootargs=root=/dev/mmcblk0p3 ro rootwait
+#bootargs=root=/dev/mmcblk0p3 ro rootwait earlyprintk console=ttyPS0,115200 systemd.volatile=overlay panic=30
+bootargs=root=/dev/mmcblk0p3 ro rootwait earlyprintk console=ttyPS0,115200 rootovl panic=30
bitstream_image=hp_lcd_driver.bin
bitstream_type=load
fpga_config=fpga ${bitstream_type} 0 ${bitstream_load_address} ${filesize}
-notsdboot=if mmcinfo; then run leds_bootstate_0;run uenvboot;echo Setting MAC address...; run setmac ; echo Copying Linux from SD to RAM...; run mmc_loadkernel && run mmc_loaddtb && run mmc_loadramdisk && run mmc_loadfpga && run leds_bootstate_1; echo Configure FPGA...; run fpga_config && run leds_bootstate_2; echo Handoff to Linux kernel...;bootm ${kernel_load_address} ${ramdisk_load_address} ${devicetree_load_address}; fi
-sdboot=if mmcinfo; then run leds_bootstate_0;run uenvboot;echo Setting MAC address...; run setmac ; echo Copying Linux from SD to RAM...; run mmc_loadfpga && run fpga_config && dhcp && tftpboot 0x4000000 /pxe/scope/bootscript && source 0x4000000; fi
+defaultboot=echo Copying Linux from SD to RAM...; run mmc_loadkernel && run mmc_loaddtb && run mmc_loadramdisk && run mmc_loadfpga && run leds_bootstate_2; echo Handoff to Linux kernel...;bootm ${kernel_load_address} ${ramdisk_load_address} ${devicetree_load_address}
+fallbackboot=if mmcinfo; then run leds_bootstate_0;run uenvboot;echo Setting MAC address...; run setmac ; echo Copying Linux from SD to RAM...; run mmc_loadfpga && run fpga_config; run defaultboot; fi
+sdboot=if mmcinfo; then run leds_bootstate_0;run uenvboot;echo Setting MAC address...; run setmac ; echo Copying Linux from SD to RAM...; run mmc_loadfpga && run fpga_config; dhcp; if dhcp; then tftpboot 0x4000000 /pxe/scope/bootscript && source 0x4000000; else run defaultboot; fi; fi
diff --git a/fpga/ebaz4205/u-boot-pq/v2019.07-ebaz4205/reset-phy.patch b/fpga/ebaz4205/u-boot-pq/v2019.07-ebaz4205/reset-phy.patch
new file mode 100644
index 0000000..d9fea3d
--- /dev/null
+++ b/fpga/ebaz4205/u-boot-pq/v2019.07-ebaz4205/reset-phy.patch
@@ -0,0 +1,39 @@
+diff --git a/drivers/net/phy/phy.c b/drivers/net/phy/phy.c
+index c1c1af9a..23eab241 100644
+--- a/drivers/net/phy/phy.c
++++ b/drivers/net/phy/phy.c
+@@ -220,6 +220,7 @@ int genphy_config_aneg(struct phy_device *phydev)
+ int genphy_update_link(struct phy_device *phydev)
+ {
+ unsigned int mii_reg;
++ unsigned i;
+
+ /*
+ * Wait if the link is up, and autonegotiation is in progress
+@@ -234,9 +235,25 @@ int genphy_update_link(struct phy_device *phydev)
+ if (phydev->link && mii_reg & BMSR_LSTATUS)
+ return 0;
+
++ u16 bmcr = phy_read(phydev,MDIO_DEVAD_NONE, MII_BMCR);
++ phy_write(phydev, MDIO_DEVAD_NONE,MII_BMCR, bmcr | BMCR_RESET);
++ udelay(1000);
++
++ i = 0;
++ bmcr = phy_read(phydev, MDIO_DEVAD_NONE, MII_BMCR);
++ while (bmcr & BMCR_RESET) {
++ if ((i++ % 500) == 0)
++ printf(".");
++ if (i > PHY_ANEG_TIMEOUT) break;
++ udelay(1000); /* 1 ms */
++ bmcr = phy_read(phydev, MDIO_DEVAD_NONE, MII_BMCR);
++ }
++
++ //genphy_config_aneg(phydev);
++
+ if ((phydev->autoneg == AUTONEG_ENABLE) &&
+ !(mii_reg & BMSR_ANEGCOMPLETE)) {
+- int i = 0;
++ i = 0;
+
+ printf("%s Waiting for PHY auto negotiation to complete",
+ phydev->dev->name);
diff --git a/fpga/ebaz4205/u-boot-pq/v2019.07-ebaz4205/series b/fpga/ebaz4205/u-boot-pq/v2019.07-ebaz4205/series
new file mode 100644
index 0000000..ea24f62
--- /dev/null
+++ b/fpga/ebaz4205/u-boot-pq/v2019.07-ebaz4205/series
@@ -0,0 +1 @@
+reset-phy.patch