Deep Dive w/Scott: ARMv8A MMU episode artwork

EPISODE · Sep 24, 2021 · 1H 56M

Deep Dive w/Scott: ARMv8A MMU

from Adafruit Industries · host Adafruit Industries

Join Scott as he continues his quest to get TinyUSB running on the Raspberry Pi 4 and answers questions folks have. Support Adafruit, and by extension me, by purchasing hardware from https://adafruit.com Chat with me and lot of others on the Adafruit Discord at https://adafru.it/discord. No stream next week! Latest code is here: https://github.com/tannewt/tinyusb/tree/rpi 0:00 Getting started 0:01:30 audio debrief from last week 0:03:28 housekeeping 0:08:00 First time watching your live stream. What are we learning today? 0:09:10 Cortex A / MMU 0:10:20 ​If you learn original python on a pc, is it then easy to go from there to circuit python? 0:11:10 qemu further progress 0:13:40 board init() 0:15:30 unaligned access 0:17:30 What model of Pi will this run on? And will it be ARM32 or 64? 0:19:10 if you run CP on metal RPI4, is there the need for 32 bits? 0:21:15 local setup on desk 0:22:30 OSH Park Pi Development v1 project to eliminate all the wires above 0:25:00 https://github.com/chickadee-tech/pi-developer 0:25:45 catch the exceptions in boot.s 0:27:40 load VBAR_EL1 with virtual vector table address 0:29:00 arm stub switches from EL3? to EL2 0:29:40 4-way split terminal tinyusb, serial, gdb 0:32:22 cortex-a.py (in gdb) 0:32:47 ARM Cortex-A Programmers Guide for ARMv8-A pdf (MMU overview) 0:34:15 TTBR0_EL0 (EL2) 0:35:10 Arm architecture reference DDIO487G_b_armv8_arm.pdf 0:35:51 ESR_EL2 register 0:38:42 cortex-a.py - decode exception code 0:40:15 Python pattern matching in python 3.10 (match switch) 0:41:45 What other information can we extract from the exception 0:42:25 FAR ( fault address register? ) / extend the decoding 0:50:45 ashw.io/blog/arm64-pgtable-tool - and youtube video 0:54:00 decoding virtual address ( from BruceS ) 0:56:20 pi4 address map from bcm2711-peripherals(1).pdf 0:58:00 setup_mmu_flat_map() in mmu.c 1:00:10 Level 1 access flag fault 1:02:00 Translation fault level 1 1:03:30 access flag fault level 1 1:06:20 Long-descriptor level 1 and level 2 descriptor formats 1:10:00 github ashwio/arm64-pgtable-tool python code 1:14:10 “The Access flag” , ok, add the MM_DESCRIPTOR_ACCESS_FLAG 1:17:10 got a little further - maybe try it out on the hardware (instead of qemu) 1:22:30 decode the Data Abort further - translation fault level 1 1:27:50 we have uart output! 1:29:00 summary - flags in translation table needed to get access flag set to 1 1:39:00 dcd_init() 1:39:58 What side projects are you looking forward to diving deeper into in the coming weeks? 1:42:00 Did you ever ask adafruit to manufacture your old board? 1:44:04 UPS truck arrived - (new iPhone? ) Be right back 1:45:58 back - unboxing 1:51:45 recap - MMU / fixed table lookup / added access flag / used python to decode information about access fault / uart output 1:53:00 next steps 1:53:54 wrap up 1:55:50 - see you in two week Visit the Adafruit shop online - http://www.adafruit.com ----------------------------------------- LIVE CHAT IS HERE! http://adafru.it/discord Adafruit on Instagram: https://www.instagram.com/adafruit Subscribe to Adafruit on YouTube: http://adafru.it/subscribe New tutorials on the Adafruit Learning System: http://learn.adafruit.com/ -----------------------------------------

Join Scott as he continues his quest to get TinyUSB running on the Raspberry Pi 4 and answers questions folks have. Support Adafruit, and by extension me, by purchasing hardware from https://adafruit.com Chat with me and lot of others on the Adafruit Discord at https://adafru.it/discord. No stream next week! Latest code is here: https://github.com/tannewt/tinyusb/tree/rpi 0:00 Getting started 0:01:30 audio debrief from last week 0:03:28 housekeeping 0:08:00 First time watching your live stream. What are we learning today? 0:09:10 Cortex A / MMU 0:10:20 ​If you learn original python on a pc, is it then easy to go from there to circuit python? 0:11:10 qemu further progress 0:13:40 board init() 0:15:30 unaligned access 0:17:30 What model of Pi will this run on? And will it be ARM32 or 64? 0:19:10 if you run CP on metal RPI4, is there the need for 32 bits? 0:21:15 local setup on desk 0:22:30 OSH Park Pi Development v1 project to eliminate all the wires above 0:25:00 https://github.com/chickadee-tech/pi-developer 0:25:45 catch the exceptions in boot.s 0:27:40 load VBAR_EL1 with virtual vector table address 0:29:00 arm stub switches from EL3? to EL2 0:29:40 4-way split terminal tinyusb, serial, gdb 0:32:22 cortex-a.py (in gdb) 0:32:47 ARM Cortex-A Programmers Guide for ARMv8-A pdf (MMU overview) 0:34:15 TTBR0_EL0 (EL2) 0:35:10 Arm architecture reference DDIO487G_b_armv8_arm.pdf 0:35:51 ESR_EL2 register 0:38:42 cortex-a.py - decode exception code 0:40:15 Python pattern matching in python 3.10 (match switch) 0:41:45 What other information can we extract from the exception 0:42:25 FAR ( fault address register? ) / extend the decoding 0:50:45 ashw.io/blog/arm64-pgtable-tool - and youtube video 0:54:00 decoding virtual address ( from BruceS ) 0:56:20 pi4 address map from bcm2711-peripherals(1).pdf 0:58:00 setup_mmu_flat_map() in mmu.c 1:00:10 Level 1 access flag fault 1:02:00 Translation fault level 1 1:03:30 access flag fault level 1 1:06:20 Long-descriptor level 1 and level 2 descriptor formats 1:10:00 github ashwio/arm64-pgtable-tool python code 1:14:10 “The Access flag” , ok, add the MM_DESCRIPTOR_ACCESS_FLAG 1:17:10 got a little further - maybe try it out on the hardware (instead of qemu) 1:22:30 decode the Data Abort further - translation fault level 1 1:27:50 we have uart output! 1:29:00 summary - flags in translation table needed to get access flag set to 1 1:39:00 dcd_init() 1:39:58 What side projects are you looking forward to diving deeper into in the coming weeks? 1:42:00 Did you ever ask adafruit to manufacture your old board? 1:44:04 UPS truck arrived - (new iPhone? ) Be right back 1:45:58 back - unboxing 1:51:45 recap - MMU / fixed table lookup / added access flag / used python to decode information about access fault / uart output 1:53:00 next steps 1:53:54 wrap up 1:55:50 - see you in two week Visit the Adafruit shop online - http://www.adafruit.com ----------------------------------------- LIVE CHAT IS HERE! http://adafru.it/discord Adafruit on Instagram: https://www.instagram.com/adafruit Subscribe to Adafruit on YouTube: http://adafru.it/subscribe New tutorials on the Adafruit Learning System: http://learn.adafruit.com/ -----------------------------------------

NOW PLAYING

Deep Dive w/Scott: ARMv8A MMU

0:00 1:56:29

No transcript for this episode yet

We transcribe on demand. Request one and we'll notify you when it's ready — usually under 10 minutes.

API Intersection Stoplight Building a successful API requires more than just coding. It starts with collaborative design, focuses on creating a great developer experience, and ends with getting your company on board, maintaining consistency, and maximizing your API’s profitability.In the API Intersection, you’ll learn from experienced API practitioners who transformed their organizations, and get tangible advice to build quality APIs with collaborative API-first design.Jason Harmon brings over a decade of industry-recognized REST API experience to discuss topics around API design, governance, identity/auth versioning, and more.They’ll answer listener questions, and discuss best practices on API design (definition, modeling, grammar), Governance (multi-team design, reviewing new API’s), Platform Transformation (culture, internal education, versioning) and more.They’ll also chat with experienced API practitioners from a wide array of industries to draw out practical takeaways and insights you can use.H TV Podcast Industries Chris Jones, Derek O'Neill and John Harrison. TV Podcast Industries TV Podcast Industries is a podcast that provides discussions and reviews of various TV shows, including recent popular series like Alien Earth, The Sandman, The Last of Us, The Boys, and Daredevil Born Again. They also cover shows such as Ironheart, Star Trek: Picard, The Rings of Power, and many more, spanning both Marvel and DC universes, as well as other genres. Heart to Heart Podcast One on One / Next Level Studios In the Heart to Heart Podcast, we talk to some of our favorite & most interesting people in the entertainment industry so you can feel empowered and learn that even in the most challenging of industries, where there’s a will there’s a way.Whether you’re an actor, a writer, a casting director, a talent rep, or just someone interested in the behind the scene happenings of the entertainment industry, this podcast will have something for you. NOW, this isn’t just another How To podcast for actors. Plenty of those shows already exist. In Heart to Heart, every guest will share stories inspired by their sometimes winding path to success on their own terms. Revisionist History Pushkin Industries Revisionist History is Malcolm Gladwell's journey through the overlooked and the misunderstood. Every episode re-examines something from the past—an event, a person, an idea, even a song—and asks whether we got it right the first time. From Pushkin Industries. Because sometimes the past deserves a second chance.To get early access to ad-free episodes and extra content, subscribe to Pushkin+ in Apple Podcasts or at pushkin.fm/plus.iHeartMedia is the exclusive podcast partner of Pushkin Industries.

Frequently Asked Questions

How long is this episode of Adafruit Industries?

This episode is 1 hour and 56 minutes long.

When was this Adafruit Industries episode published?

This episode was published on September 24, 2021.

What is this episode about?

Join Scott as he continues his quest to get TinyUSB running on the Raspberry Pi 4 and answers questions folks have. Support Adafruit, and by extension me, by purchasing hardware from https://adafruit.com Chat with me and lot of others on the...

Can I download this Adafruit Industries episode?

Yes, you can download this episode by clicking the download button on the episode player, or subscribe to the podcast in your preferred podcast app for automatic downloads.
URL copied to clipboard!