summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorroot <root@ka-ata-killa.ourano.james.local>2021-03-03 10:35:16 +0000
committerroot <root@ka-ata-killa.ourano.james.local>2021-03-03 10:35:16 +0000
commitf10c1497babaf3010def44a999092a4b55e84460 (patch)
treee64c6c52779ffbda10f0b1d59c6223b646dc6c16
parentb4bfacd4c294966fa09f296aecf6513f9d30c4ed (diff)
downloadclock-f10c1497babaf3010def44a999092a4b55e84460.tar.gz
clock-f10c1497babaf3010def44a999092a4b55e84460.tar.bz2
clock-f10c1497babaf3010def44a999092a4b55e84460.zip
fix hang when ptp clock rolls over during fetch
-rw-r--r--app/Makefile3
-rw-r--r--app/ptp.c3
2 files changed, 5 insertions, 1 deletions
diff --git a/app/Makefile b/app/Makefile
index 526a58f..4b7d33a 100644
--- a/app/Makefile
+++ b/app/Makefile
@@ -119,6 +119,9 @@ ds:
debug: ${PROG}.elf
${PREFIX}-gdb -x gdb.script ${PROG}.elf
+debugfl: ${PROG}.elf
+ ${PREFIX}-gdb -x gdbfl.script ${PROG}.elf
+
# openocd
protos: ${CSRCS}
diff --git a/app/ptp.c b/app/ptp.c
index 264918f..c05d0c3 100644
--- a/app/ptp.c
+++ b/app/ptp.c
@@ -80,11 +80,12 @@ uint64_t ptp_get (void)
{
uint32_t pl, ph;
- ph = ETH_PTPTSHR;
do {
+ ph = ETH_PTPTSHR;
compiler_mb();
pl = ETH_PTPTSLR;
+ compiler_mb();
} while (ph != ETH_PTPTSHR);
return ptp_to_u64 (pl, ph);