User:Bweither
From REU@MU
Contents
Weekly Log
Week 1
- Orientation
- Met other REU students
- Familiarized with Git versions of Research Xinu
Week 2
- Worked with Rade Latinovich to become familiar with Research Xinu
- Initialized all cores to nullprocess
- Struggling with multicore resched
- All printing after shell established breaks shell, can this change?
Week 3
- Disabled shell to enable Kprintf
- Turned off single core clock
- Scheduled processes on all 4 cores without timer/preemption
- Shared ready list
- Locked ready list with Mutex
Week 4
- Tried to find documentation for BCM 2837 Chip
- Only able to find documentation for BCM 2835
- Decided to use Local Timer clock to generate interrupts
Week 5
- Set up Local Timer, enabling timer
- Unmasked Local Timer IRQ on routing side
- Enabling IRQ from Local Timer crashes program
- What is LT IRQ number on ARM side?
Week 6
- Poured through ARM A53 documentation to try to find IRQ num for Local Timer
- Looked over ARM vA7 documentation to understand IRQ protocols
- Unable to find handling protocol for Local Timer
Week 7
- Decided to use different timer from Local Timer
- Doesn't seem to have any supporting hardware documentation
- Leaves two options: core-specific timers and SoC clock
Week 8
- Found GPU routing register in BCM 2835 documentation
- Allows me to route interrupts from previously working SoC clock to any core
- Set up basic round-robin scheduler from SoC clock
- Unable to handle Interrupts on different cores
Week 9
- Found VBAR in ARM documentation, big thanks to Ben
- Able to handle IRQ's on non-0 cores now
- Preemptive round-robin scheduler working across all cores
- Made poster for poster presentation day
Week 10
- Gave poster presentation
- Worked on writing final paper
- Developed final presentation
- Gave final presentation