Thursday, 2016-12-15

warthog9Bitweasil: if I wanted to try that hypervisor, can I snag it?00:02
BitweasilI can point you to it.  It's part of the STM package on github.00:03
BitweasilIn Test/FrmPkg00:03
* Bitweasil is wandering off, will be on tomorrow.00:03
BitweasilIt's either that or light the generator.  Again. :)00:04
*** vstehle <vstehle!> has quit IRC00:04
*** aholler <aholler!> has quit IRC00:10
*** aholler <aholler!> has joined #minnowboard00:39
*** agust <agust!> has quit IRC01:23
*** dscully <dscully!~dscully@> has quit IRC01:26
*** jimt1 <jimt1!~Adium@2610:160:11:33:1c9b:d1a7:6e62:cc59> has quit IRC03:17
*** m_w <m_w!> has quit IRC03:40
*** m_w <m_w!> has joined #minnowboard03:42
*** m_w <m_w!> has joined #minnowboard04:21
*** m_w <m_w!> has quit IRC05:53
*** vstehle <vstehle!> has joined #minnowboard06:00
*** aholler <aholler!> has quit IRC06:17
*** aholler <aholler!> has joined #minnowboard06:20
*** NullMoogleCable <NullMoogleCable!> has quit IRC07:52
*** NullMoogleCable <NullMoogleCable!> has joined #minnowboard08:09
*** agust <agust!> has joined #minnowboard08:53
*** patrik <patrik!> has quit IRC09:55
*** patrik <patrik!> has joined #minnowboard09:59
*** bluelightning <bluelightning!~paul@pdpc/supporter/professional/bluelightning> has quit IRC10:18
*** NullMoogleCable <NullMoogleCable!> has quit IRC10:43
*** NullMoogleCable <NullMoogleCable!> has joined #minnowboard10:55
*** av500 <av500!~av500@2003:a:174:e400:224:8cff:fe9f:d658> has joined #minnowboard11:17
*** aholler <aholler!> has quit IRC11:31
*** av500 <av500!~av500@2003:a:174:e400:224:8cff:fe9f:d658> has quit IRC11:33
*** NullMoogleCable <NullMoogleCable!> has quit IRC11:48
*** NullMoogleCable <NullMoogleCable!> has joined #minnowboard11:52
*** av500 <av500!~av500@2003:a:174:e400:224:8cff:fe9f:d658> has joined #minnowboard12:43
*** bcran <bcran!> has quit IRC12:48
*** bcran <bcran!> has joined #minnowboard12:51
*** lamego <lamego!~jose@> has joined #minnowboard13:28
* Bitweasil sits and waits for warthog9 to tell the story of the PCI device vs the Evil ACPI Device.16:04
*** dscully <dscully!~dscully@> has joined #minnowboard16:44
*** bluelightning <bluelightning!~paul@> has joined #minnowboard16:55
*** bluelightning <bluelightning!~paul@pdpc/supporter/professional/bluelightning> has joined #minnowboard16:55
Bitweasilwarthog9, how would I change default configuration menu settings in the EFI codebase?17:09
*** wmarone|tmp <wmarone|tmp!> has joined #minnowboard17:18
*** wmarone|tmp <wmarone|tmp!> has quit IRC17:26
*** wmarone|tmp <wmarone|tmp!> has joined #minnowboard17:27
*** wmarone|tmp <wmarone|tmp!> has quit IRC17:37
BitweasilIs there a channel for EFI/UEFI development?  The obvious ones are empty.17:52
BitweasilHuh.  You can memory map IO space?  Doesn't surprise me, just... **sigh** Another thing to work around.18:06
* Bitweasil goes to write a damned inb/outb handler.18:07
BitweasilSince Visual Studio doesn't /do/ inline asm anymore.18:07
warthog9Bitweasil: drop an e-mail out on the mailing list (ours, or Tianocore)19:19
warthog9and I'll make sure the firmware team sees it19:19
warthog9Bitweasil: don't have much of a story on acpi vs. pci19:20
BitweasilEmail re which?  Settings?  I can probably scrounge that up myself if I need.19:23
BitweasilI'm apparently losing the hypervisor to a RDMSR.  Which makes /no/ sense since there's no path I can find that craps out there.  Unless it tosses off an interrupt if you try to read an invalid one, but... I don't *think* it behaves like that.19:23
*** jimt1 <jimt1!~Adium@2610:160:11:33:1c9b:d1a7:6e62:cc59> has joined #minnowboard19:52
*** wmarone <wmarone!> has quit IRC20:25
*** wmarone <wmarone!> has joined #minnowboard20:25
*** stephano <stephano!~stephano@> has quit IRC20:26
BitweasilWho the FUCK writes an exception handler with 'jmp .' as the first instruction?  *annoyed*20:30
ScrambledAurorasoh wow hanging the CPU on a modern-day x86 as means of handling the exception? o_o20:33
*** wmarone|tmp <wmarone|tmp!> has joined #minnowboard20:33
*** wmarone <wmarone!> has quit IRC20:34
BitweasilScrambledAuroras, I'm off in the weeds of weird stuff, but, uh, yeah.  That's exactly what this little hypervisor is doing.20:34
Bitweasiljmp .20:35
Bitweasil    push    %rax20:35
Bitweasil0xebfe.  Right there.20:36
BitweasilAs far as who?  "Copyright (c) 2015, Intel Corporation. All rights reserved." :p20:45
*** stephano <stephano!~stephano@> has joined #minnowboard20:51
*** ml_ <ml_!> has joined #minnowboard20:56
*** wmarone|tmp <wmarone|tmp!> has quit IRC20:57
warthog9Bitweasil: well that makes it slightly more exciting21:17
*** wmarone|tmp <wmarone|tmp!> has joined #minnowboard21:19
*** ml_ <ml_!> has quit IRC21:19
Bitweasilwarthog9, yeah... I figured it'd take me a week to find it and it'd be some stupid silly little problem.  Pretty much the usual for this realm.21:21
*** docdawning|surpr <docdawning|surpr!~j@> has joined #minnowboard22:48
docdawning|surprHello world22:48
BitweasilHello, docdawning|surpr!  Welcome to #minnowboard, your handy-dandy IRC support channel for all things related to Minnowboard products!  What brings you here today?22:49
*** lamego <lamego!~jose@> has quit IRC22:50
Bitweasilwarthog9, if you inject a #GP on RDMSR taking a #GP, Linux boots properly.23:11
warthog9Bitweasil: really?23:11
BitweasilYup.  Read above, but RDMSR went into the hypervisor, which performed RDMSR on the guest's behalf, which took a #GP on an invalid MSR.  I fixed the exception path to actually inject a #GP if the hypervisor took one, and Linux boots properly now with both CPUs.23:12
BitweasilThat was the problem.23:12
BitweasilBitweasil, earlier: "I'm apparently losing the hypervisor to a RDMSR.  Which makes /no/ sense since there's no path I can find that craps out there.  Unless it tosses off an interrupt if you try to read an invalid one, but... I don't *think* it behaves like that."23:13
BitweasilI then proceeded to actually read the manual and discover it'll toss out a #GP. :)23:13
BitweasilForgot that little gem.23:13
* Bitweasil is, sadly, not the walking Intel reference manual he had access to previously.23:13
docdawning|surprBitweasil: Thanks for the warm welcome Bitweasil. I found the Minnowboard due to it being mentioned by Wind River for their Pulsar Linux distro.23:19
docdawning|surprBitweasil: I have a GPIO question23:20
BitweasilThis being an IRC channel, about a technical topic, convention is to clearly state your question and wait around to see if anyone answers.23:20
BitweasilI'm not likely to be useful with GPIO, but if you want to talk about hacking on hypervisors, I'm probably of use.23:21
docdawning|surprBitweasil: I have an application where I have a signal that is active for 7ms at a time, typically with about 500ms between triggering-edges. The signal is ~3.3V-3.5V. In my application, I need something to observe that signal and then quickly log a timestamp (using GPS-sourced time) of the event. Other systems will then use the timestamp for stuff.23:22
BitweasilSounds reasonably trivial, though I'd make sure you clamp to 3.3V before going to the IO pin.23:22
docdawning|surprBitweasil: Do you mean, make sure it doesn't pulse way higher or something? Not quite sure what you mean by "clamp it"?23:23
BitweasilAt the "milliseconds" level, you probably don't even need a realtime kernel.23:23
docdawning|surprBitweasil: Yeah, that's what I was thinking, that 7ms is pretty damn long23:24
BitweasilThe GPIO pins are 3.3V, and I wouldn't push it beyond that.  I think they've got a level converter, but I don't know where they cap out, and I'd suggest making sure they don't exceed 3.3V.23:24
docdawning|surprBitweasil: Oh yeah, of course on that point, no problem there.23:24
docdawning|surprBitweasil: I actually have a PCB that filters the raw signal, so that's my go-to for tuning stuff like that.23:25
BitweasilAll I/O on the Low Speed Expansion Connector is at 3.3V levels. THE PINS ARE NOT 5v TOLERANT23:25
BitweasilSo, somewhere between 3.3V and 5V damage occurs.23:25
docdawning|surprBitweasil: Yeah, handling of the raw electrical stuff doesn't concern me too much. I can navigate that easily enough. I'm mainly working on a high-level approach right now23:25
BitweasilYou can just talk, you know.  You don't have to prefix it with my name.23:25
docdawning|surprI've only never done stuff like this in FPGAs before23:25
docdawning|surprBut seems like bitbashing would be a lot cheaper these days23:26
BitweasilI mean.  What logging precision do you need?23:26
BitweasilA daemon sitting on a core in a spin loop would work just fine, if that's all the board needs to do.23:26
BitweasilThough, if that's all you need to do, I'd probably use a Raspberry Pi.  Cheaper.23:26
docdawning|surprThis is actually for a somewhat industrial application. Not at all life-threatening if it fails, just costs some money.23:28
docdawning|surprSo I don't want to use a Pi23:28
docdawning|surprAND I need the USB 3.0 and SATA23:28
docdawning|surprI'll be shovelling data in over USB at a max of 60MB/s and dumping it on to disk.23:28
BitweasilOk, that's fair.  You could write a kernel module if you wanted to do something interrupt based.23:28
BitweasilNot sure about user... dude, that's a lot more than just logging a signal.23:28
docdawning|surprThat's a great idea and I'm ashamed for not having thought of that.23:28
BitweasilIn that case, you probably don't want to spin in a poll loop.23:28
BitweasilIf I had a bunch of other stuff going on, I'd find out how to trigger an interrupt on the pin state change and log that way.23:29
BitweasilThen you're not wasting CPU and you have some very low latencies.23:29
docdawning|surprYeah, well, the whole project is vastly more than I've said thus far too. But the part I'm mainly considering right now is the sanity of using GPIOs on some little board to observe this pulse and take some action, while dealing with the other stuff.23:29
BitweasilIf you're willing to do some custom work, it should be trivial.23:30
docdawning|surprWhat I really want is to be able to connect a GPIO line to an interrupt handler23:30
BitweasilIf you've got other stuff going on, figuring out how to do interrupts is the way to go.23:30
BitweasilThey can fire off interrupts when the state changes.23:30
BitweasilI don't know how to do that from Linux, but it's doable from the hardware perspetive.23:30
BitweasilI mean, I'm happy to have gotten Linux booted.  I couldn't care less about it once it's up. :)23:30
docdawning|surprYeah, and that's mainly what I'm considering.. If the platform can't do it, then the OS can't either.23:31
BitweasilThe platform can certainly fire interrupts on GPIO changes.23:31
BitweasilThe E3800 reference manual is 5300 pages of wonderful reading on stuff like that.23:31
docdawning|surprI'm comfortable with Linux, though I've not written kernel modules outside of an academic setting.23:31
docdawning|surprBut meh23:31
*** aholler <aholler!> has joined #minnowboard23:31
docdawning|surprThat's good that you say it should work. I'll of course look closer. But I wanted to pick a brain for a little cow-boy hip-shot23:32
docdawning|surprThanks a lot23:32
Bitweasiler np23:32
docdawning|surprNot sure how to return the favour.. Maybe ask me something about 3D printing23:32
BitweasilEh, I'm good.  My workflow is "observe, scratch head and think for a while, have brilliant idea, try it, observe failure, repeat."23:34
BitweasilAnd there are some useful folks in this channel when you're hacking on Minnowboard EFI.23:34
BitweasilDamn.  Battery bank is lower than I like at end of day.  brb, generator.23:39
docdawning|surprHack the Minnowboard EFI. Interesting. What are folks accomplishing with that?23:40
BitweasilHow deep do you understand esoteric corners of x86?23:41
docdawning|surprLol, not deep at all23:42
docdawning|surprI understand the corners of SPARC better23:42
docdawning|surprWhich isn't to say I understand them well23:42
docdawning|surprSame with PDP1123:43
docdawning|surprI'm a lot younger than that makes me sound23:43
BitweasilOk.  Then I do stuff with things in weird corners of x86.23:45
docdawning|surprAny examples?23:50
BitweasilAre you familiar with the dual monitor mode corner of virtualization to stick a hypervisor under the system management mode handler?23:54
docdawning|surprNo, but I just got a boner.23:54
BitweasilTMI.  That's an area I mess around in for fun.23:54
docdawning|surprI am a massive fan of virtualization23:55
BitweasilAnd the Minnowboard is one of the easier boards to play there in.23:55
BitweasilThen you have no idea what system management mode is, because "adding virtualization" does not, in any way, help.23:55
docdawning|surprWhy is that? Well documented?23:55
BitweasilNo, just an open source-ish EFI environment I can work in.23:55
docdawning|surprAhh, cool23:55
BitweasilAnd the reference STM demo code is designed to sort of work on the Minnowboard.23:55
BitweasilYou can do it on other boards, but you're having to use SPI programmers more regularly and such.23:56
BitweasilI only need the SPI programmer when I screw up badly here. :)23:56
docdawning|surprYeah, I'm a big fan of Virtuazliation from an end-user vantage point. I use it heavily, constantly. But I don't work with it directly.23:56
BitweasilSo, uh, a few times a day.23:56
docdawning|surprI'm what "Tron" would call, "User!"23:56
BitweasilIt's ugly.23:56
docdawning|surprSounds good23:57
BitweasilAnyway, I'm going to let the generator idle down and then head off for the weekend.  Later!23:57
docdawning|surprThat sounds bizarre and my imagination probably tells a better story there than whatever reality is.23:57
docdawning|surprThanks for the help.23:57
BitweasilMy office doesn't have a grid connection.23:58
BitweasilAnd it's been cloudy.23:58
BitweasilSo the generator has to make up some of the gap.23:58
docdawning|surprWhere are you?23:58
BitweasilRural farm country, USA.23:58
docdawning|surprHuh, okay23:59

Generated by 2.11.0 by Marius Gedminas - find it at!