cow321 has quit [Remote host closed the connection]
cow321 has joined #riscv
JanC_ has joined #riscv
JanC has quit [Killed (silver.libera.chat (Nickname regained by services))]
JanC_ is now known as JanC
JanC_ has joined #riscv
JanC has quit [Killed (calcium.libera.chat (Nickname regained by services))]
JanC_ is now known as JanC
ldevulder has joined #riscv
mps_ has joined #riscv
vgtw has joined #riscv
rattlesn- has joined #riscv
djdelorie2 has joined #riscv
mps has quit [Ping timeout: 260 seconds]
rattlesnake has quit [Ping timeout: 260 seconds]
djdelorie has quit [Ping timeout: 260 seconds]
vgtw_ has quit [Ping timeout: 260 seconds]
rattlesn- is now known as rattlesnake
JanC_ has joined #riscv
JanC has quit [Killed (erbium.libera.chat (Nickname regained by services))]
JanC_ is now known as JanC
agentcasey has quit [Read error: Connection reset by peer]
agentcasey has joined #riscv
ldevulder has quit [Remote host closed the connection]
ldevulder has joined #riscv
LainIwakura has joined #riscv
surfer has quit [Ping timeout: 244 seconds]
JanC_ has joined #riscv
JanC is now known as Guest4654
JanC_ is now known as JanC
jacklsw has joined #riscv
LainIwakura has quit [Ping timeout: 240 seconds]
JanC_ has joined #riscv
JanC is now known as Guest9159
Guest9159 has quit [Killed (copper.libera.chat (Nickname regained by services))]
JanC_ is now known as JanC
jacklsw has quit [Quit: Back to the real life]
j4n has quit [Remote host closed the connection]
stolen has joined #riscv
haritz has joined #riscv
haritz has quit [Changing host]
haritz has joined #riscv
coldfeet has joined #riscv
naoki has quit [Quit: naoki]
ldevulder has quit [Ping timeout: 268 seconds]
ldevulder has joined #riscv
JRepin has quit [Quit: Konversation terminated!]
JRepin has joined #riscv
unnick has joined #riscv
coldfeet has quit [Remote host closed the connection]
impomatic has joined #riscv
coldfeet has joined #riscv
squelch21 has quit [Ping timeout: 252 seconds]
Stat_headcrabbed has joined #riscv
<palmer>
smaeul: ya, that EXPERT thing is on for-next: * bafa451a96d0 - (riscv/for-next, for-next) riscv: defconfig: Remove EXPERT (2 weeks ago) <Joel Stanley>
<smaeul>
palmer: got it, thanks!
BootLayer has joined #riscv
ksp4 has quit [Remote host closed the connection]
cousteau has joined #riscv
<cousteau>
Morning
<cousteau>
How do breakpoints work? What magic happens when I type `b` in gdb?
ksp4 has joined #riscv
ypcolxz has joined #riscv
<cousteau>
Does gdb tell the target (a RISC-V core, in this case) "hey, whenever you reach memory address 0x12345678, trigger a breakpoint/interrupt and tell me"?
ypcolxz has quit [Client Quit]
<palmer>
cousteau: for SW breakpoints GDB writes an `ebreak` at the address, for HW breakpoints the trigger registers get used
<cousteau>
Or does it inject a "breakpoint instruction" (I think this is EBREAK) at the point where it wants to insert the interrupt, and then the debug module takes over, does things, and eventually the "debugging machine" tells the core "ok, well done, now execute this instruction that was supposed to be in place of that EBREAK instruction and continue from
<cousteau>
there"?
<cousteau>
palmer: ok, that was what I had sort of figured out but wasn't sure
<palmer>
ya, basically it's either one depending on the mode ;)
<cousteau>
so... what happens when I type `b` in gdb? HW or SW breakpoint? Or "it depends"?
<palmer>
ya, it depends
<palmer>
the default is SW breakpoints, because they're basically free
<cousteau>
(stop replying my questions before I ask them!) :)
<cousteau>
I see
<palmer>
but if you're doing something like XIP flash, then GDB is supposed to figure that out and use a HW breakpoint (which really just means telling OpenOCD to set one)
<cousteau>
And I guess there is a limited support for HW breakpoints, because they need to be stored in some sort of CAM and comparisons are expensive
<cousteau>
*limited number of HW breakpoints
andyc has joined #riscv
<palmer>
Ya, there's a limited number
<palmer>
And in RISC-V they alias with other debug mode triggers
<cousteau>
There could even be zero, and rely 100% on SW breakpoints, right? And there can be as many SW breakpoints as the gdb program I have installed in my computer can fit into my computer's memory
<cousteau>
...well, as many as there are instructions in the RV program
<palmer>
Ya, HW breakpoints are optional (and not well supported, they require reaching into debug mode with can get tricky)
<cousteau>
OK, I need to have a look at that thing about debug mode triggers
<palmer>
And yes, you can basically overwrite every instruction with a breakpoint (until you run out of memory for tracking them, or whatever blows up first...)
stolen has quit [Quit: Connection closed for inactivity]
jacklsw has joined #riscv
<conchuod>
seemingly the break is "kbuild: Create intermediate vmlinux build with relocations preserved"
<palmer>
which is ac4f06789b4f ("kbuild: Create intermediate vmlinux build with relocations preserved")
<conchuod>
I'll post on list later, got other stuff to do
cousteau has quit [Quit: Client closed]
vagrantc has joined #riscv
Stat_headcrabbed has quit [Ping timeout: 245 seconds]
ksp4 has quit [Remote host closed the connection]
ksp4 has joined #riscv
impomatic has quit [Ping timeout: 240 seconds]
ldevulder has quit [Ping timeout: 260 seconds]
andyc has quit [Quit: Connection closed for inactivity]
JanC_ has joined #riscv
JanC is now known as Guest359
Guest359 has quit [Killed (silver.libera.chat (Nickname regained by services))]
JanC_ is now known as JanC
vagrantc has quit [Quit: leaving]
ldevulder has joined #riscv
ganboing has joined #riscv
<ganboing>
Speaking of HW breakpoints, is it currently supported in linux kernel? I saw some effort last year to utilize SBI debug triggers extension to do that, but looks like no much progress so far?
jacklsw has quit [Remote host closed the connection]
JanC has quit [Ping timeout: 260 seconds]
JanC has joined #riscv
JanC has quit [Ping timeout: 252 seconds]
BootLayer has quit [Quit: Leaving]
psydroid2 has joined #riscv
JanC has joined #riscv
ganboing has quit [Read error: Connection reset by peer]
ldevulder has quit [Ping timeout: 260 seconds]
JanC has quit [Ping timeout: 245 seconds]
JanC has joined #riscv
JanC_ has joined #riscv
JanC has quit [Killed (lithium.libera.chat (Nickname regained by services))]