From f1cd203d2f867a92c4cbbe77bf082ced97b632df Mon Sep 17 00:00:00 2001 From: Jev Date: Fri, 7 Nov 2025 22:25:14 +0100 Subject: [PATCH] add firmware from working rpi --- firmware/config.txt | 98 ++++++++++++++++++ firmware/overlays/iotg-rpi4/README | 69 ++++++++++++ .../overlays/iotg-rpi4/iotg-rpi4-dio.dtbo | Bin 0 -> 2835 bytes .../overlays/iotg-rpi4/iotg-rpi4-eeprom.dtbo | Bin 0 -> 770 bytes .../iotg-rpi4/iotg-rpi4-gpio-exp.dtbo | Bin 0 -> 1431 bytes .../overlays/iotg-rpi4/iotg-rpi4-ie-a.dtbo | Bin 0 -> 2602 bytes .../overlays/iotg-rpi4/iotg-rpi4-ie-b.dtbo | Bin 0 -> 2722 bytes .../overlays/iotg-rpi4/iotg-rpi4-ie-c.dtbo | Bin 0 -> 2735 bytes .../overlays/iotg-rpi4/iotg-rpi4-ie-d.dtbo | Bin 0 -> 2974 bytes .../overlays/iotg-rpi4/iotg-rpi4-rtc.dtbo | Bin 0 -> 931 bytes .../overlays/iotg-rpi4/iotg-rpi4-tpm.dtbo | Bin 0 -> 1536 bytes 11 files changed, 167 insertions(+) create mode 100755 firmware/config.txt create mode 100755 firmware/overlays/iotg-rpi4/README create mode 100755 firmware/overlays/iotg-rpi4/iotg-rpi4-dio.dtbo create mode 100755 firmware/overlays/iotg-rpi4/iotg-rpi4-eeprom.dtbo create mode 100755 firmware/overlays/iotg-rpi4/iotg-rpi4-gpio-exp.dtbo create mode 100755 firmware/overlays/iotg-rpi4/iotg-rpi4-ie-a.dtbo create mode 100755 firmware/overlays/iotg-rpi4/iotg-rpi4-ie-b.dtbo create mode 100755 firmware/overlays/iotg-rpi4/iotg-rpi4-ie-c.dtbo create mode 100755 firmware/overlays/iotg-rpi4/iotg-rpi4-ie-d.dtbo create mode 100755 firmware/overlays/iotg-rpi4/iotg-rpi4-rtc.dtbo create mode 100755 firmware/overlays/iotg-rpi4/iotg-rpi4-tpm.dtbo diff --git a/firmware/config.txt b/firmware/config.txt new file mode 100755 index 0000000..afe2822 --- /dev/null +++ b/firmware/config.txt @@ -0,0 +1,98 @@ +# For more options and information see +# http://rpf.io/configtxt +# Some settings may impact device functionality. See link above for details + +# uncomment if you get no picture on HDMI for a default "safe" mode +#hdmi_safe=1 + +# uncomment the following to adjust overscan. Use positive numbers if console +# goes off screen, and negative if there is too much border +#overscan_left=16 +#overscan_right=16 +#overscan_top=16 +#overscan_bottom=16 + +# uncomment to force a console size. By default it will be display's size minus +# overscan. +#framebuffer_width=1280 +#framebuffer_height=720 + +# uncomment if hdmi display is not detected and composite is being output +#hdmi_force_hotplug=1 + +# uncomment to force a specific HDMI mode (this will force VGA) +#hdmi_group=1 +#hdmi_mode=1 + +# uncomment to force a HDMI mode rather than DVI. This can make audio work in +# DMT (computer monitor) modes +#hdmi_drive=2 + +# uncomment to increase signal to HDMI, if you have interference, blanking, or +# no display +#config_hdmi_boost=4 + +# uncomment for composite PAL +#sdtv_mode=2 + +#uncomment to overclock the arm. 700 MHz is the default. +#arm_freq=800 + +# Uncomment some or all of these to enable the optional hardware interfaces +#dtparam=i2c_arm=on +#dtparam=i2s=on +#dtparam=spi=on + +# Uncomment this to enable infrared communication. +#dtoverlay=gpio-ir,gpio_pin=17 +#dtoverlay=gpio-ir-tx,gpio_pin=18 + +# Additional overlays and parameters are documented /boot/overlays/README + +# Enable audio (loads snd_bcm2835) +dtparam=audio=on + +# Automatically load overlays for detected cameras +camera_auto_detect=1 + +# Automatically load overlays for detected DSI displays +display_auto_detect=1 + +# Enable DRM VC4 V3D driver +dtoverlay=vc4-kms-v3d +max_framebuffers=2 + +# Run in 64-bit mode +arm_64bit=1 + +# Disable compensation for displays with overscan +disable_overscan=1 + +[cm4] +# Enable host mode on the 2711 built-in XHCI USB controller. +# This line should be removed if the legacy DWC2 controller is required +# (e.g. for USB device mode) or if USB support is not required. +#otg_mode=1 + +[all] + +[pi4] +# Run as fast as firmware / board allows +arm_boost=1 + +[all] + +[cm4] +dtoverlay=dwc2,dr_mode=host +dtparam=ant2 +enable_uart=1 +force_eeprom_read=0 +disable_poe_fan=1 + +######## iotg-rpi4 configuration - Begin +dtoverlay=iotg-rpi4/iotg-rpi4-ie-a,can +dtoverlay=iotg-rpi4/iotg-rpi4-ie-b,can +dtoverlay=iotg-rpi4/iotg-rpi4-eeprom +dtoverlay=iotg-rpi4/iotg-rpi4-rtc +dtoverlay=iotg-rpi4/iotg-rpi4-gpio-exp +######## iotg-rpi4 configuration - End diff --git a/firmware/overlays/iotg-rpi4/README b/firmware/overlays/iotg-rpi4/README new file mode 100755 index 0000000..2a31158 --- /dev/null +++ b/firmware/overlays/iotg-rpi4/README @@ -0,0 +1,69 @@ +Name: iotg-rpi4-eeprom +Info: Compulab IOTG-RPi4 EEPROM AT24C08 over I2C6 bus, address 0x54 + The EEPROM stores sensitive Manufacturing Data which should + not be changed or modified +Load: dtoverlay=iotg-rpi4-eeprom +Params: + +Name: iotg-rpi4-gpio-exp +Info: Compulab IOTG-RPi4 GPIO Expanders PCA9555 over I2C6 bus + - #1: address 0x27: user LEDs, various RST signals for internal use + - #2: address 0x21: IEx type detect signals +Load: dtoverlay=iotg-rpi4-gpio-exp +Params: + +Name: iotg-rpi4-rtc +Info: Compulab IOTG-RPi4 RTC AM1805 I2C1 bus, address 0x69 +Load: dtoverlay=iotg-rpi4-rtc +Params: + +Name: iotg-rpi4-tpm +Info: Compulab IOTG-RPi4 TPM SLB9670 by Infineon over SPI1 bus, CS1 +Load: dtoverlay=iotg-rpi4-tpm +Params: + +Name: iotg-rpi4-dio +Info: Compulab IOTG-RPi4 Digital inputs and outputs (DIO) extension module +Load: dtoverlay=iotg-rpi4-dio, +Params: ab Configure slot A as output (GPIOs 0-3) and + slot B as input (GPIOs 4-7) + (boolean, optional) + cd Configure slot C as output (GPIOs 8-11) and + slot D as input (GPIOs 18-21) + (boolean, optional) + +Name: iotg-rpi4-ie-a +Info: Compulab IOTG-RPi4 IEA extension module +Load: dtoverlay=iotg-rpi4-ie-a,= +Params: can Configure MCP251xFD CAN controller + over SPI3 bus, CS0 + (boolean, optional) + uart Configure UART2 on GPIOs 0,1 + (boolean, optional) + +Name: iotg-rpi4-ie-b +Info: Compulab IOTG-RPi4 IEB extension module +Load: dtoverlay=iotg-rpi4-ie-b,= +Params: can Configure MCP251xFD CAN controller + over SPI4 bus, CS0 + (boolean, optional) + uart Configure UART3 on GPIOs 4,5 + (boolean, optional) + +Name: iotg-rpi4-ie-c +Info: Compulab IOTG-RPi4 IEC extension module +Load: dtoverlay=iotg-rpi4-ie-c,= +Params: can Configure MCP251xFD CAN controller + over SPI0 bus, CS0 + (boolean, optional) + uart Configure UART4 on GPIOs 8,9 + (boolean, optional) + +Name: iotg-rpi4-ie-d +Info: Compulab IOTG-RPi4 IED extension module +Load: dtoverlay=iotg-rpi4-ie-d,= +Params: can Configure MCP251xFD CAN controller + over SPI1 bus, CS0 + (boolean, optional) + uart Configure UART5 on GPIOs 12,13 + (boolean, optional) diff --git a/firmware/overlays/iotg-rpi4/iotg-rpi4-dio.dtbo b/firmware/overlays/iotg-rpi4/iotg-rpi4-dio.dtbo new file mode 100755 index 0000000000000000000000000000000000000000..7b58839c6b27ff9b3a6906764ebadb40e40c682c GIT binary patch literal 2835 zcmcImOK#La5bfcg43Qvw*6{*_5YZ&z6BNl(#F91pmVYy`WKUZj8-m1w1uG<0NSuHZ zZ~{(%kT?fd0P6K`+BWfMhQU&~-CeJ$tE#K2{eA1#PsWBf7-LTv+dQW69?^B8YeaZ{ z(E1hi*?151>^zNI_zue`e-K9b!QuYC<_*SWFv*i?b-X86fW1I8{7nyy1I}Yn=E1b$ z902gK*LIwYgF36s8f@7i!k*`djGjT93Z5oB;6*x}5kvDZ-gmwq>2K`)jL7IQ^5K&5 zumNP`qb22GzbhXvDGxu44N{Mdvx>Zl&k#0({t{=z6fweM;sH4$`&@G7bHorh@bSDL zGB(W5`9SiFj&<)3<=s6WcJ`Dp>G2uyyGV42=rWP9cQv08nYj-5yw3fhyX*5~EL*#= zCw%BTXVldO(I%0>BMz(i{DdU`-~Q0u_4yFX4WD6upU>OGM{m1Hbc^WU&Y3!-qXRKq z=l;-bedb)eOv*BilbPy_%J$oYi2?LgKlN3)`<^O0=^rpBF2>WK7AA8ss)T$`rLxsi zxEN1^TA0eksI>Gwl^#~lsf+P6sD*jsV$@Olo(j3u^VY?98suQ^5dWQvX~xHIxghmI z=KTsXA6%KH-+s$9yU)iZWONUiz0O0C=`2A0-X;1pvJHQ4{*V)4DK;4j)mg-yA(hRZvcn>PTh1?XQ`Lf{Zt$sUOTkLt4)6 z4?B{pY8buoDv_-}tD}3LLQL9iG2J__i&3>>`VV?X7o!TRAEOejAEOGZAJgrnU3CdZu%7 IQlx_Y0iNPvMgRZ+ literal 0 HcmV?d00001 diff --git a/firmware/overlays/iotg-rpi4/iotg-rpi4-eeprom.dtbo b/firmware/overlays/iotg-rpi4/iotg-rpi4-eeprom.dtbo new file mode 100755 index 0000000000000000000000000000000000000000..2a23e73f898baa792b245e0d5215c7726a6d0b8a GIT binary patch literal 770 zcmah{y-ve05Wch^fuIsFfS4ITs8y4w{Bil54h%zAto`Xl?MR*0^ zE>1{WBsl5w-F^OYceeB1`TPKAw*cTAp!JOY2(gXWLXf>6e`Ujk)v2;J`VPgR;%PVJ zsek5q)t(b67N;UJBe!HoyMoyGLPPHaLH;0=WV0Y30qw6McJc|E5rIbB8e)GeA~uz# z=BUnLRj01&f%E!?Je`No^tTh$y1)8UuS>)(Vh{1VmXEBR>%X(m{xyQ`s_uP@F&X8{ zXLW=qRGtPp9GwhGmDO!h%uFg|*B@{fpQ@=BVSF=}-(gH|SI=GELl8vCLMgzu z2W^;{YN!ikEEP@W0+%_T^dcqhry}Ds`_rLV!vPzQmC(A!g_M};C_;@AyQHN#wQjZ$k&xiHD&n$ooK3LmKWwLJIC98= z2LMip8wXy13umr<5nch9S+DK12S8$_$$T^4?9A+}H>WE$KpK6HG2OVbor8OQd-7eTsHmmZ2;Lb>t_7wQV<;jxH4 zd&W5h5WkFaBRsNaJe04@rK6Sg^|!MS{{)3*mDhfOm=@XR&svEbd%MwS@MO57Z^mp60Iwq zOxjOtjFRU*Mohit_8Y`&%KnUc-tDzmmz!+BEZ#Mts~fz3X!iE^p}*H=e84(v&jPED zF#{Pvu-`VH1;CzLoIRBaZ8#Vh17@~&J3PQp=$jTM(zpS{X!-WX2L?CFdL7n6inTz3 zM<&CB2=&~j^UQ~>7H4>enC2(%U~xX`Bcrqa&wTEvT5nO$`#o&1#VieSq!(y|kY2D7 zNme4sZWOFUl9foZ4+>Ty$x5^VhQ)(cdjN+xPSR@S_ee9K^Dhd%on+<@LoX@c&RvZ8 zSSuc#UR!uywZ+*jd|R~V%fIYV^OpC(`Pe;~Myj;DtNWPeYni9sOzn6g(qr(QZS zI=ka-)ZfaG`eM(`$PJt{_Nw(WX|!``in&~NLO-%ocjyVo%0rUc=`?{nQDFO`wCdn^ zp>tFn$Kusg1kNn`6T{#HR_)O!7D-Zdgy*4|xUYr6lgJILP8g(d=y@WB)yyH|Vle?} fdTt=9s@zLE7-38K4QTkj3qvQv)tycG!)5K?>`*V2 literal 0 HcmV?d00001 diff --git a/firmware/overlays/iotg-rpi4/iotg-rpi4-ie-a.dtbo b/firmware/overlays/iotg-rpi4/iotg-rpi4-ie-a.dtbo new file mode 100755 index 0000000000000000000000000000000000000000..89fb72c6474c19fdf732fb5d80924f639b4f0bd6 GIT binary patch literal 2602 zcma)8J8u**5cVb@0U;6~KnT&Cf&_xBE_X?IoOCEXqM<>8V&&WQU6$;NeT0OHA~h`? z1;2rUKR}<3njb(xK|=w|=f`?)PaCl0v&TF0&G_?-eaEZ6zcY634rA;AV`o0oc$@k~ z>KCX}b8=dLE2r~6juw|`T*Z8n`|3L8v-!DO+X5VC_L_EVNwu^#fGnI4H;ZCeZi;o zHzdj0uHYMb$374@+G5p+4;UQR?r>z}i?&>}SL6!ND|eL*a5aE&SRRTt1SL zis?M&)9^q9t^|Z=xOu!ZdES(Yl{+iF^W6 zZ4)#wz#5J;lkmXXC`mPifzq2k2>po`&dY3=N?WR18^!eHj3;TNcZjpSMRqIw`qCTp8}~xL;|{t@HrK7q=A2EP z!Hcy|`Q!|&-PW94M~&#X>4vB>b1;beAz|%Utc_90^O-1#61zC(U_{rbU*?g!F;Yw` zZY#ohVoe7B#_@U0-3!K4H z?H#pyBqb{!YZ=(4+c;DawS9mWgN1R?&ekoy<9$rb^!zQB<(jHNe(*5agmLT=jXa z2;T@jH%XuHSQN}i8_XmzD@tBg1ZE!-TeowasB2T|xvR8gd6X;o%b=|<^m=JSMA zJTDnN|6vsIGR?__5CLmlD}J=sI(!fR80w2ezL|(_)AI}UZwLr-MJ-Db;cF;84wceh DULOwq literal 0 HcmV?d00001 diff --git a/firmware/overlays/iotg-rpi4/iotg-rpi4-ie-b.dtbo b/firmware/overlays/iotg-rpi4/iotg-rpi4-ie-b.dtbo new file mode 100755 index 0000000000000000000000000000000000000000..626d1d2a1235383dc1cf52cec12aa00ef23511dc GIT binary patch literal 2722 zcma)8J8u**5cUO-5&{xLfPn54BtT?!k34{rPNG4gMxvov`F4HDD*MW=Hzbkx1*vH% z_znC8dOB);01^~56u^9btatBn0ZViCcxS#Dk7wrm`Rea)j9vb~7<d0Z+`t}|SjYYn}_9>CI5B@`E;L%iLd~EoQ^L-*h z4qexaX6-tgk72U*?|*XHVk0JBl(yE# z@+(noL-&ay3Pq_aTg#z(en5DPXwam~cdV;wtczl-b8p<$F&THApZM}qDR$ccU4zgy z5M6^|AT)yZ;TGxtB3e=v;!O*2P>D1+9_f~+;&Ge8i1=M7^To$ya>wOi+`W#s$^GbSg_J##KWfdH?`1TY(yu% literal 0 HcmV?d00001 diff --git a/firmware/overlays/iotg-rpi4/iotg-rpi4-ie-c.dtbo b/firmware/overlays/iotg-rpi4/iotg-rpi4-ie-c.dtbo new file mode 100755 index 0000000000000000000000000000000000000000..3512ee537c88beb38b80db620e2f64d82df42a5b GIT binary patch literal 2735 zcma)8J8u+85biY~VGI%=K;Ud;#N*`AKCm&YSqbSNM<-nX$$hXL6SSYh^CTDX=0wE9ox#A|b*4Gri)B(i?5h*Vo+MiPj~4A6 z-%nr4JmN>b4*}e-5?u_!f=?nD;E>jeA!kn`EU*`(dCZg2*#q7+qSHiHeuJLj|GeEH zojSROpDnwcy(~=qQ2N5p!lY>F0BgNr1D-aqfa&76LtFz7cOc(y;Whn+{Jh^=I9Bl? z&ig$PrQ$$2HfyUBi)^?(IGhGvS_q|9=jE|x6|dg;G(41nr;Ops`tjGwJS>(X-FQ7~dJbZd%Y6o#zxl{CfF+Jc%v}3s#)k`wfr)^w%-|L~B-?q0X2RJ*neQf-ieGfJc7XwWhBa57^5&d7iH*@?2 z%CwLptgl2hhMpyP7|23*zm|JSGT$LQMs{h_Ek4$rH`a|a)-^ir>Ku=|Iyd94@^>ZS zu^iWx;uTrg_xi4Vls^y1_74TnZ3A@;QrAFr4VHm2ND2sXT_O61Xhn6MH_hdXN+#lH zq(`X2x=Lw7u1}CBUd#_?rBvPcesL5}(#T{3wr`T&TCX0;!(L;~^p?!D8>F-DbhcVL zE+?&7a+`EEozC`Ropx^;pK0P$nSFuq`7+tsb+-DWlIMG}wCPa!fXtsxX0S+xnz!@B z$qb#0J8U^R5`~AH6a=+Iq*uppVi|==Df7I_N-yI%{qbox5yu~d|98XABK*7VkTi7t zBDQBvZ)ZkC#ebb-o;PHg`5w_flqmDa>uX<3p6UOAM}8~YWTY;Q`Tr&OqjYN-UB}D+ zU)t{%Ik0mRwk(eshy~l0oFBS7W-+YpG3mhOyq;>O8Uu3%OZmTKPQVW4#4eGwk3PgQ zyy`jd77zQXNaKu`A$_heU7D;Yd07?ugGhZJs86G5MeiX@6PE4sB&emSP|AI_p}Sqk zC@R=Y=d%qS1i35$ABj!Dh?U9T;@$eHBGIj*Tj1UnW_^v}RAsmN~CpZ?!m&(DuFADuJ1tYlW LE08VytFL|n3RoI6 literal 0 HcmV?d00001 diff --git a/firmware/overlays/iotg-rpi4/iotg-rpi4-ie-d.dtbo b/firmware/overlays/iotg-rpi4/iotg-rpi4-ie-d.dtbo new file mode 100755 index 0000000000000000000000000000000000000000..d68bc504395111b275fd2219a884ebb985c23dc8 GIT binary patch literal 2974 zcmaJ@OOF&c5Ox!gLKdVv*a#_HhE0?gt=S%SAR4Jrj*;>MA|;VJo^H=>Yx_k%U^f!K zfHT(|@*DCOa)%RVegG02xa5$eKHJrv?wMIjHFmkHzIwP^HHffd=EbSm%15{kRAV{w#^s z&;Oy;HohQNPZG6~UDje7nAm$t1iRotpA$W^^^NoO>>9PkYuqiiGmgRKTo;YKIR+c` zFY+|5%lIU%?)0aFZH^Il8H4>B`;0i@GusFMrx*A%^%#FypBdwC`i441ylm$=t)a_2 z&J?lm8DMtjaE~}Ad(k=U%(L~0{T}Cy?K+$Hhc=0W?zqO;|MA^_skM#ISiU0aZA4M| zNY!HL+k8%R*_aPYLHAqRaYL`m0(!>{Jn-FATDlxk+h3KCe*!^>cYPmeOY#Ma_A> zEHfK1@^+i__NK1MPuKeSbW1P)g5>uvl;7;vUy{ykrxOfp?C7oEl1|`s?hbVNTeI2I zz9zjNoZfu9-tb=9+)(H1DlP`(<^^H>zEVSUqm06gPkz8aT# zCEIkFDPhXky!P}z_gxNWmzLeZAdh&Y`aDr$Rw#% z)A&Z}phJ5OoM3A{6oIsF47nMA==5UubB#0o}^$b%MoyBHKZPJ5bUiA!;tbA-D(~ zHSlIXaR>-8(p!(m&u_*v``Z3^W32he7&~Tc;T`K9umP+CWY37dl~$KFAxtvEY8DQE?6ja(jSF7m9yBjOZ?wPuW+0%+d?E{)|`%r(WyYTj&5skS?S zYOCK^^e_y~B#rXKxS8yLbKjc|Gw99Ct@lgKmCiujj7ODBQNuoT9-NNXw_FdU?R(4x z0~Z9ltesl%3{{Bd1!s?{!eUtI$WTtOyi98)~tD;1*GCf1L?AWkcDC4PgJFon) zacD|!Fh)L=XKb6tv6jYkg-jB|wvD=#m9OP+Ixj1_vC3mP8^ASXY_8ep5`#h|u8B+q K!Y@8yk@E{x!NDH@ literal 0 HcmV?d00001 diff --git a/firmware/overlays/iotg-rpi4/iotg-rpi4-tpm.dtbo b/firmware/overlays/iotg-rpi4/iotg-rpi4-tpm.dtbo new file mode 100755 index 0000000000000000000000000000000000000000..d68b193a67e3527b2b4d9eeb993274bee30f5e77 GIT binary patch literal 1536 zcma)6y^ho{5O#n=AUKKNj*0^bp^G-zMI3B(bTm8xMdWy$B_eS`oS+RA{nhsZlr%IH zJO+*gZ=V&x~ij%%A;z|JP5(E;Cxs7~6YE`y-;8L^p`AzLDPXou>PG zR=7y}KKQs2`C%;b`B50!GcT$5I+vCM^ zhQt``uM^!Ox=nP4=q{1Nxo3GNKPDM*UBGUzgdV_+@PO&^bpF7DzmtIntReL|by+&w z|K;S)=M(G~BxB+H3el^TOn8&kL)~ihs-}!)~m_xv?+<+v+j>m#4G%`O~A|*bWwIft*>Yl2pk;9a;nEXt|m<#JgJT z`X|m??+31c@t?-vFfkM0T`jTG9P2iZi%fTOjPv_MC$s(n%m%YQJ7dltlKtsc`+sK{ z|M=AVEXMyB*UZM5q?@L+VVXQX62|8qBUskFTFZJFuwEGsftN!2>oP6$c}&9jZkYKK z3cdb z>MHXU&!uKg3Ye=q(>1Rf%__NOG)R8VH-1vdca2n{g~mRiqX*Dk5OmJiFy3s~AC6Wo A3IG5A literal 0 HcmV?d00001