{"id":185,"date":"2025-12-07T04:24:05","date_gmt":"2025-12-06T17:24:05","guid":{"rendered":"https:\/\/securelang.net\/cms\/?p=185"},"modified":"2025-12-07T04:24:05","modified_gmt":"2025-12-06T17:24:05","slug":"back-to-real-work","status":"publish","type":"post","link":"https:\/\/securelang.net\/cms\/blog\/2025\/12\/07\/back-to-real-work\/","title":{"rendered":"Back To Real Work"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">I&#8217;ve now written some replacement code for PLIC (the interrupt controller on RISC-V) as well as some new code for toggling GPIO pins but this is left to be tested &amp; finished another day.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A full device driver kit will come later but I figured access to GPIO pins would be the most useful driver overall! I&#8217;ve found a bit of reference information for GPIO on a couple of devices and I&#8217;ve only implemented limited support for one so far but it should be straightforward to get some GPIO going on different devices as long as I can find enough information.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I&#8217;ll need to decide on some API for GPIO access before this will be usable from user programs or from other drivers. The other important part needed to get some drivers working is some mechanism to configure devices from the device tree info, at the moment the system parses the file but doesn&#8217;t do much with the information except for detecting memory, so it will at least have to pass on some base addresses or other info to individual drivers.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I&#8217;ve now written some replacement code for PLIC (the interrupt controller on RISC-V) as well as some new code for toggling GPIO pins but this is left to be tested &amp; finished another day. A full device driver kit will come later but I figured access to GPIO pins would be the most useful driver [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"pagelayer_contact_templates":[],"_pagelayer_content":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-185","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/securelang.net\/cms\/wp-json\/wp\/v2\/posts\/185","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/securelang.net\/cms\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/securelang.net\/cms\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/securelang.net\/cms\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/securelang.net\/cms\/wp-json\/wp\/v2\/comments?post=185"}],"version-history":[{"count":1,"href":"https:\/\/securelang.net\/cms\/wp-json\/wp\/v2\/posts\/185\/revisions"}],"predecessor-version":[{"id":186,"href":"https:\/\/securelang.net\/cms\/wp-json\/wp\/v2\/posts\/185\/revisions\/186"}],"wp:attachment":[{"href":"https:\/\/securelang.net\/cms\/wp-json\/wp\/v2\/media?parent=185"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/securelang.net\/cms\/wp-json\/wp\/v2\/categories?post=185"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/securelang.net\/cms\/wp-json\/wp\/v2\/tags?post=185"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}