[video member=miotatsu stream_platform=twitch project=riscy title="BareD, Story Time, & measure_cpu_freq" vod_platform=youtube id=A3WD0IVXD64 annotator=Miblo] [0:08][Recap and set the stage for the day] [0:57][Consult forum responses regarding zero-initialisation[ref site="SiFive Forums" page="The Big RISCY BUSINESS Question Thread" url=https://forums.sifive.com/t/the-big-riscy-business-question-thread/531/4]][:platform :research] [3:14][Mention an upcoming collaboration with @RiskyFive] [6:07][Walk through BareD[ref site=GitHub page=BareD url=https://github.com/miotatsu/BareD]][:language] [10:02][BareD's cstr.d[ref site=GitHub page=BareD url=https://github.com/miotatsu/BareD]][:language :"string manipulation"] [13:06][BareD's platform.d[ref site=GitHub page=BareD url=https://github.com/miotatsu/BareD]][:language :memory :"platform layer"] [18:47][BareD's ldc_linux_x86_64.d[ref site=GitHub page=BareD url=https://github.com/miotatsu/BareD]][:language :"platform layer"] [26:20][Plug "Writing C software without the standard library: Linux Edition"[ref site="Franc\[e\]sco's Gopherspace" page="Writing C software without the standard library: Linux Edition" url=http://weeb.ddns.net/0/programming/c_without_standard_library_linux.txt]][:platform :research] [27:47][Recount :experience programming Piworld[ref site=imgur page=Piworld url=https://imgur.com/a/vhR3T] in TI_BASIC assembly][:asm] [32:29][The origin story of ~riscy][:trivia] [34:03][Read through get_cpu_freq() in init.c and study measure_cpu_freq()][:hardware :research] [39:20][Marry up the value returned by get_timer_freq() with the documentation on RTC Count Registers[ref site="SiFive Developers" page="Platform Reference Manual" url=https://www.sifive.com/documentation/freedom-soc/freedom-e300-platform-reference-manual/]][:hardware :research] [42:28][Marry up mtime_lo() and mtime_hi() with the CLINT documentation[ref site="SiFive Developers" page="E3 Coreplex Manual" url=https://static.dev.sifive.com/pdfjs/web/viewer.html?file=https://static.dev.sifive.com/SiFive-E3-Coreplex-v1.2.pdf]][:hardware :research] [47:40][Skim through the Control and Status Registers documentation[ref site="RISC-V" page="Draft Privileged ISA Specification v1.9.1" url=https://riscv.org/specifications/privileged-isa/]][:hardware :research] [52:20][Read 3.1.15 Hardware Performance Monitor, on mcycle[ref site="RISC-V" page="Draft Privileged ISA Specification v1.9.1" url=https://riscv.org/specifications/privileged-isa/]][:hardware :research] [56:27][Summarise what the mcycle is, and relate it to measure_cpu_freq()][:hardware :research :timing] [59:07][Don the Thinking Cap with the determination to work through the CPU frequency formula on the whiteboard] [/video]