00:04
sb0_ has quit [Quit: Leaving]
00:25
balrog has quit [Ping timeout: 272 seconds]
00:34
balrog has joined #m-labs
03:55
JewFro297 has joined #m-labs
04:00
<
JewFro297 >
I'm working on designing an 80186 compatible computer on the DE0
05:24
JewFro297 has quit [Ping timeout: 240 seconds]
08:00
sh4rm4 has quit [Ping timeout: 264 seconds]
11:40
sh4rm4 has joined #m-labs
12:04
sb0 has joined #m-labs
12:53
jix has joined #m-labs
14:14
JewFro297 has joined #m-labs
15:22
<
ysionneau >
JewFro297: Hi!
15:23
<
ysionneau >
What will be the purpose of your project?
15:23
<
JewFro297 >
It's just for fun, a learning experience type thing
15:23
<
ysionneau >
I mean, you need this old 80186 for something?
15:24
<
ysionneau >
ah ok, good :)
15:24
<
JewFro297 >
Nah I have a 486 machine in my basement that still runs
15:24
<
ysionneau >
I throw mine out a few years ago
15:24
<
ysionneau >
I just kept the CPU
15:24
<
JewFro297 >
Shoulda sold it, they're worth a good amount to collectors
15:24
<
ysionneau >
really?
15:25
<
ysionneau >
it was taking a lot of space for nothing
15:25
<
JewFro297 >
Well, back when I was looking up how much it would cost for a new motherboard I was seeing $1000
15:25
<
ysionneau >
I had 3 old computers taking hell of a place
15:25
<
ysionneau >
I dumped everything except CPUs
15:25
<
JewFro297 >
I don't think they sell for that much though
15:25
<
ysionneau >
because it's rare I think
15:26
<
JewFro297 >
Looks like they aren't, oh well
15:26
<
ysionneau >
good luck then with your project
15:26
<
ysionneau >
Are you gonna do it in Verilog? VHDL? Migen (python)
15:27
<
JewFro297 >
Verilog
15:28
<
JewFro297 >
I've never heard about Migen
15:28
<
JewFro297 >
(Off to google...)
15:29
<
ysionneau >
it's a python framework for designing digital logic
15:29
<
ysionneau >
it's been used to design a System-on-Chip for instance
15:30
<
ysionneau >
it has nice helpers for generating bus signals, arbiters, connecting cores together
15:30
<
JewFro297 >
Looks interesting, it seems sort of like a high level hardware language
15:31
<
ysionneau >
if you have questions about it sb0 here (sometimes his nickname is "lekernel") developped Migen
15:31
<
ysionneau >
yes, high level, tries to do the boring stuff for you
15:31
<
JewFro297 >
Cool, I'll probably check it out sometime
15:32
<
ysionneau >
it supports dataflow paradigm
15:32
<
ysionneau >
I let you check the doc out :)
15:36
<
JewFro297 >
Pretty cool, do you know if it
15:36
<
JewFro297 >
's used in the industry at all?
15:53
<
ysionneau >
it's used by some research lab AFAIK
16:04
<
JewFro297 >
Is the speaker sb0?
17:31
sh4rm4 has quit [Remote host closed the connection]
17:48
sh4rm4 has joined #m-labs
18:01
<
ysionneau >
mwalle: after investigation, the psw gets reset from 0xC3 to 0x03 during the call to splash_display()
18:02
<
ysionneau >
so most certainly a dtlb miss :o
18:02
<
ysionneau >
what's weird is that dtlb miss occure before that, because the 0x43 turns into 0xC3
18:03
<
ysionneau >
(edtlbe is set)
18:05
<
ysionneau >
more precisely it's due to the loop which copies the splash_screen from the flash memory to the main memory (framebuffer)
18:09
<
ysionneau >
or maybe it means somehow I get a double dtlb miss ... which would overwrite edtlbe with dtlbe (which is 0 inside the exception handler)
18:09
<
ysionneau >
but it should be impossible to get this double dtlb miss
18:12
<
ysionneau >
maybe there is an issue if I have 2 load-stores in a row
18:12
<
ysionneau >
and the first causes a dtlb exception
18:12
<
ysionneau >
maybe the second one causes an exception too ...
18:20
<
ysionneau >
turns out it's not the issue: in simulation, 2 loads in a row only triggers the exception handler once and edtlbe is not overwritten
18:37
sb0_ has joined #m-labs
18:41
sb0 has quit [Ping timeout: 252 seconds]
18:53
<
ysionneau >
this is driving me insane.
18:53
<
ysionneau >
who the hell is resetting PSW.
18:58
<
sb0_ >
JewFro297, have you seen zet86?
18:59
<
ysionneau >
pretty cool project :)
19:00
<
ysionneau >
seems to work well, according to the game screenshots
19:01
<
JewFro297 >
Yup, I actually just made an opencores account so I can look at source for reference if I need to
19:03
<
sb0_ >
JewFro297, and yes, use migen, just don't replicate something that already exists
19:04
<
ysionneau >
would be cool to show a softcore written in migen
19:08
<
JewFro297 >
Of course, copying isn't my thing.
19:12
<
ysionneau >
sb0_: funny, the zet project seems to reuse some Milkymist cores (fml and csr)
19:21
<
sb0_ >
yeah, there aren't that many options when you want an open source SDRAM controller that actually works
19:21
mrueg has quit [Remote host closed the connection]
19:22
<
sb0_ >
well, there's grlib too, but it's very complex
19:22
mrueg has joined #m-labs
19:22
mrueg has quit [Changing host]
19:22
mrueg has joined #m-labs
19:26
<
ysionneau >
vga_backbuffer[5393] = splash_src[5393]; <= this disables PSW.DTLBE and PSW.EDTLBE
19:26
<
ysionneau >
I tried booting several times, it's always at index 5393 in the loop
19:27
<
sb0_ >
are you sure it's not an interrupt, like uart?
19:27
<
ysionneau >
there are a few uart lines before that, which do not disable PSW.dtlb
19:27
<
ysionneau >
and it happens during a loop with not uart output
19:28
<
sb0_ >
ok, but did the UART ISR run before that?
19:28
<
ysionneau >
in the middle of the loop
19:28
<
ysionneau >
yes, it ran a few times before that
19:28
<
ysionneau >
TX is using isr, right?
19:30
<
ysionneau >
I sent a lot of keystrokes very early during the BIOS bootup and it's still erasing PSW at index 5393 of the splashscreen loading loop
19:32
<
ysionneau >
well, sometimes it's i=5392 ...
19:32
<
ysionneau >
so it's not always the exact same index :o
19:32
<
ysionneau >
I don't think the timer is used in the BIOS
19:34
mumptai has joined #m-labs
19:35
<
ysionneau >
sb0_: there is a TMU ISR right before the bug!
19:37
<
ysionneau >
ah. got it
19:37
<
ysionneau >
the tmu_isr does some load/stores
19:37
<
ysionneau >
hummm but tlb should be of
19:37
* ysionneau
does not get it
19:48
<
ysionneau >
sb0_: it's definetely due to TMU, I just commented the "CSR_TMU_CTL = td->flags|TMU_CTL_START;" line and PSW always keeps the good expected value :)
19:48
<
ysionneau >
I still don't get why the TMU isr would fuck up the PSW
19:49
<
ysionneau >
even if, by chance, the TMU isr fires when LM32 is servicing a dtlb miss, interrupts should be off and the TMU isr should only be serviced after return from exception
19:52
<
ysionneau >
maybe there is a race condition between Interrupts and TLB exceptions
19:52
<
ysionneau >
hard to simulate/debug :(
19:54
<
ysionneau >
if such a race condition exists, then it's understandable that it happens during this big load-store loop
19:55
<
ysionneau >
since we have an ISR firing regularly (TMU isr) and a big copy loop
19:55
<
ysionneau >
after some loop iteration there is a high chance that the ISR will end up firing at the right moment for the race condition to happen
20:35
balrog has quit [Read error: Operation timed out]
20:46
balrog has joined #m-labs
21:14
Alarm has joined #m-labs
22:49
Alarm has quit [Quit: ChatZilla 0.9.90.1 [Firefox 26.0/20131205075310]]
23:42
sb0_ has quit [Quit: Leaving]
23:44
JewFro297 has quit [Ping timeout: 272 seconds]