ArmbianHelper changed the topic of #armbian to: armbian - Linux for ARM development boards | www.armbian.com | Github: github.com/armbian | Commits: #armbian-commits | Developer talk: #armbian-devel | Forum/Twitter feed: #armbian-rss | Logs: -> irc.armbian.com
<Armbian-Discord>
<clever> well, its using the strength of the PIO, you can take a stream of 32bit samples, and just clock them out some gpio at any defined rate you want, up to 1 sample per clock
<Armbian-Discord>
<clever> hdmi/dvi is 4 differential lanes, but the rp2040 lacks differential pins, so its cheating by just bit-banging 8 pins at once and PIO can easily take 8bit chunks from each 32bit sample, and shift it out 8 pins on every clock
<Armbian-Discord>
<clever> so the only hard part, is creating an array of 8bit samples, and keeping ahead of that playback
<Armbian-Discord>
<Tonymac32> I've played with similar configurations before
<Armbian-Discord>
<clever> was the propeller just some arm-m cores? or something special?
<Armbian-Discord>
<Tonymac32> It was a spaecial parallax-designed core
<Armbian-Discord>
<clever> ah, same as the PIO then
<Armbian-Discord>
<Tonymac32> I would guess it took some queues from the Scenix SX
<Armbian-Discord>
<Tonymac32> the SX was a 50 MHz micro from forever ago that was designed to implement serial protocols in software
<Armbian-Discord>
<Tonymac32> Parallax aquired it
<Armbian-Discord>
<clever> there are ~3 things in PIO that allow continuous sample playback 1: there is the out 8 opcode, which just takes 8bits from the output shift register, and presents it on 8 gpio 2: the PIO can be configured to auto-pull from a FIFO when the OSR runs dry, so you can do 8bits on every clock, and never pause 3: there are loop start/end registers you can configure, so the processor will loop automatically without a jump
<Armbian-Discord>
opcode, saving another cycle on each loop
<Armbian-Discord>
<clever> it also has some other opcodes that let it implement more complex bi-directional protocols, but hdmi/dvi doesnt need those
<Armbian-Discord>
<clever> the other major factor, is that while the rp2050 is rated for 125mhz usage, the dvi demo overclocked it beyond 400mhz, lol
<Armbian-Discord>
<Tonymac32> luckily my monitors still have VGA ports, so I can use an ESP32 http://www.fabglib.org/
<ArmbianHelper>
^ FabGL: FabGL Library
<Armbian-Discord>
<Tonymac32> in case you wanted to also emulate windows 3.0 on the same device 😄
<Armbian-Discord>
<MicroLinux (Salva)> Well, I wasn't aware that V3D was labeled as VPU since those are use for media decoding/encoding abd gpus are for 3d/2d acceleration
<Armbian-Discord>
<clever> the VPU and V3D are entirely seperate blocks
<Armbian-Discord>
<clever> the last 2 videos, are examples of what the 2d core (hvs) can do on its own
<Armbian-Discord>
<MicroLinux (Salva)> Also clever
<Armbian-Discord>
<MicroLinux (Salva)> Since you know about graphics
<Armbian-Discord>
<MicroLinux (Salva)> I was testing games that weren't meant for KMSDRM on.. KMSDRM, trying to get the best performance as possible, since glmark2 differences are stupidly high comparing x11 vs wayland, and I didn't note such jump going from x11 to wayland on real games, the same with KMSDRM... anyway, it's amazing we can do so (I tested some x86_64 games on KMSDRM)
<Armbian-Discord>
<MicroLinux (Salva)> Anyway, very few stuff run there haha but would be cool to tey to add those on batocera since we don't need xorg neither wayland, just pure KMSDRM
<Armbian-Discord>
<MicroLinux (Salva)> I use box64 emulator of course
<Armbian-Discord>
<clever> the 2d core on the rpi very closely matches what KMSDRM does with planes and crtc stuff
<Armbian-Discord>
<clever> basically, you generate a list of images in ram, for each image you list off its address, stride, pixel format, source w/h, dest w/h, and dest x/y
<Armbian-Discord>
<MicroLinux (Salva)> Well, my goal with KMSDRM was to improve mostly rpi4 user's experience since xorg does poop on rpi4
<Armbian-Discord>
<clever> the hardware will then composite all of the images together on the fly, and generate a video signal from that
<Armbian-Discord>
<MicroLinux (Salva)> Do you own other pies?
<Armbian-Discord>
<clever> yeah, i have one of every model
<Armbian-Discord>
<MicroLinux (Salva)> Noiceee
<Armbian-Discord>
<MicroLinux (Salva)> They aren't that much rpi ninjas here haha
<Armbian-Discord>
<clever> thats the rpi-open-firmware on the right side
<Armbian-Discord>
<MicroLinux (Salva)> Even alyssa was there at that time
<Armbian-Discord>
<clever> rpi-open-firmware compiles down to a single bootcode.bin, when loaded by the maskrom, it brings the dram online, then loads zImage and boots linux
<Armbian-Discord>
<clever> but it wasnt very flexible in its design, and was already tight on space
<Armbian-Discord>
<MicroLinux (Salva)> And what works and what doesnt right now?
<Armbian-Discord>
<clever> so i ported little-kernel to the VPU, and then added features to that
<Armbian-Discord>
<clever> which is the LK line down the middle, in the above image
<Armbian-Discord>
<clever> with LK, i can access the 2d core fully, and i have a basic demo of the 3d core as well, so 2d/3d are fully working
<Armbian-Discord>
<clever> and with LK, i can boot linux, and then get usb-host working under linux
<Armbian-Discord>
<MicroLinux (Salva)> Good.
<Armbian-Discord>
<MicroLinux (Salva)> What about the vpu? Will it ever work?
<Armbian-Discord>
<clever> yes
<Armbian-Discord>
<clever> the VPU is what is responsible for turning the arm core on
<Armbian-Discord>
<clever> without the VPU, its just a brick!
<Armbian-Discord>
<MicroLinux (Salva)> Yes, but from linux
<Armbian-Discord>
<MicroLinux (Salva)> It will work?
<Armbian-Discord>
<clever> i dont have linux driving the 2d core yet, it fails to bring PLLH online
<Armbian-Discord>
<MicroLinux (Salva)> I mean, for decoding
<Armbian-Discord>
<clever> h264 decoding is in the VCE, another hw block
<Armbian-Discord>
<clever> and there is no source code for driving the VCE
<Armbian-Discord>
<MicroLinux (Salva)> Warn me if you get more stuff working, bc this should be reviewed and shown on youtube. I will not do it bc I don't make rpi content anymore, but for sure jeff or @lukefrenner will be interested
<Armbian-Discord>
<clever> i do have a discord where ive been posting news, and there is also #armbian-broadcom on this server
<Armbian-Discord>
<clever> where did i put that link...