**** BEGIN LOGGING AT Tue Aug 20 03:01:37 2019 Aug 20 07:46:41 lol, wow... some "Platinum Product Expert" on the gmail support forum was saying stuff that was wrong, gave advice that 1. degrades security 2. did not help the original poster, marked his answer as the "Recommended Answer" (even though it didn't help the OP at all), and when I pointed this out to him, emphasizing the better workaround for the problem in general (which worked for me and others) while ... Aug 20 07:46:47 ...pointing out that OP (who was already using that solution until it randomly broke for her) is still unresolved, and that his answered should therefore definitely not be marked as "recommended" ... he responded by locking the topic. what a great guy Aug 20 07:51:20 when using bbb gpio outputs configured as pull-up, what's their working voltage range? Aug 20 07:51:46 all digital I/O of the beaglebone is 3.3V, regardless of configuration Aug 20 07:53:09 i feared that. i need 5V outs, at least Aug 20 07:53:52 use a level shifter Aug 20 08:05:20 i need a dozen GPIOs (say 8 out, 4 in) and 3 PWMs, working at 0-5V (up to 24V is fine). is there an easy to find and well supported cape ready for that? Aug 20 08:05:35 is google down? Aug 20 08:07:14 zmatt: i'm asking advice because of the "easy to find" and "well supported" parts, which in my experience vary a lot in the beagleboard ecosystem Aug 20 08:11:18 the last time i bought a new cape was the comms cape, from the beagleboard.org project. hands on, i found that there were very little if no documentation and examples at all, CAN ports were not enabled out of the box, neither directly supported in the latest official images and kernels. it was too much of an effort to sort all of that for my project, and i had to found other solutions. Aug 20 08:12:42 i have to admit i often feel a bit lost in such wandering Aug 20 08:13:20 yeah the state of documentation for those capes was pretty bad... and it's indeed a bit stupid that it took so long for overlays to show up, I'd kinda assume someone would make those during prototyping/testing :P Aug 20 08:13:59 (of course that's due to my ignorance, but i really would like to leverage the bbb's potential more often than i could) Aug 20 08:14:07 (the overlay was eventually added though, on june 11) Aug 20 08:15:18 yeah i got confirmation here from rcn about that. in the next version of the project i'd probably stick with that Aug 20 08:16:46 tohugh in general the chance of finding an off-the-shelf cape that has exactly some particular shopping list of stuff you need is not very large. depending on the application it may be worth considering a breadboard solution or a custom cape Aug 20 08:16:51 *though Aug 20 09:21:24 hi. does the bbb cpu have a chip id? or is all the board info stored in the eeprom? Aug 20 09:23:39 antoine89: you can use MAC address as unique identifier (it comes from the SoC's factory-programmed eFUSEs) Aug 20 09:24:50 zmatt: thanks, this is the first time i hear about the efuses on the bbb Aug 20 09:26:13 I think the MAC address is the only unique identifier in the SoC... but one unique identifier suffices of course Aug 20 09:26:28 ok.they are factory burned, and non-writable, no? Aug 20 09:27:42 i know some boards from olimex also have efuses and they can be modified if you apply a special voltage Aug 20 09:27:50 yeah, "customer efuse" functionality is only available on High Security am335x devices (same goes for most of TI's SoCs I think), while the beaglebone has a General Purpose variant Aug 20 09:31:06 ok, thanks very much. i was just looking to get a board that doesnt have any identifier Aug 20 09:31:06 yeah, efuse programming requires involves a pulse on "VPP". that ball is not connected to anything on the beaglebone (there'd be no point since the customer efuse peripheral is non-functional on GP devices anyway) Aug 20 09:31:21 that sounds silly Aug 20 09:32:18 :). yeah well i like the idea because of privacy Aug 20 09:32:47 I think if you override the MAC address (or disable the ethernet interface) then only the kernel (and root users if /dev/mem is enabled) can access the identifier Aug 20 09:33:28 if you put in enough effort, any chip can be uniquely identified by bias in the initial state of internal SRAM after power up Aug 20 09:35:07 yes, your first statement is true. haha thats just like phone cameras because each camera has certain physical unique identifiers Aug 20 09:36:09 I have trouble imagining a scenario where hiding the SoC's unique identifier would do you any good Aug 20 09:36:59 mainly i was looking to dodge tracking websites like facebook and google because i had read an article that said that they link accounts based on the chip ids Aug 20 09:37:24 websites cannot access hardware Aug 20 09:37:30 they get an identifier from the browser Aug 20 09:37:57 there are tons of ways for websites to track you actually Aug 20 09:38:01 also i liked the idea of a generic board in which i simply rewrite the os on the sd card, and its a fresh system. and if others used it then it would be only the IP that could identify the user Aug 20 09:38:04 none of them involve hardware identifiers Aug 20 09:38:50 yes, for sure, but i think they can access some hardware info throught JS, i cant find that damn article right now Aug 20 09:39:03 no Aug 20 09:39:29 maybe their cookies then? Aug 20 09:40:22 cookies sure, but you can wipe those or configure your browser to refuse them (although I suspect the latter is a bad idea on many sites :D ) Aug 20 09:40:38 evrika Aug 20 09:41:29 ? Aug 20 09:42:05 i meant eurika. which means https://en.wikipedia.org/wiki/Eureka_(word) Aug 20 09:42:33 anyway, thats kind of what i wanted to do Aug 20 09:42:53 cookies are however just one of many ways to track you Aug 20 09:43:49 there wouldnt be much else than the response time Aug 20 09:46:20 your IP address is already pretty useful, there are also more ways to keep state in the browser than just cookies Aug 20 09:47:55 of course the IP address, but if you rewrite the microSD with a new OS between uses and there would be multiple users sitting behind TOR for example, you would never knwo which is which Aug 20 09:49:00 so what are you going to use this for? reflashing your PC every day doesn't sound very practical for daily use :P Aug 20 09:49:05 its just a theory, but thanks very much for helping me clarify some aspects Aug 20 09:49:25 then again I wouldn't want to browse the web (or use a desktop environment in general) on a beaglebone anyway, oof Aug 20 09:49:31 you could have multiple gmails and facebook accounts, and not have searches linked to each other for example Aug 20 09:49:46 well yes, probably not Aug 20 09:49:47 chrome already didn't run very comfortably on my previous laptop, which has 4GB of ram Aug 20 09:50:24 i;m just a privacy geek Aug 20 09:50:45 I used to be more like that... nowadays I mostly just want to get shit done Aug 20 09:50:47 :D Aug 20 09:52:10 my dream is to start a business, becaues people pay for vpns, and tor boxes and so on, so there is a market Aug 20 09:53:06 and if you think about it, nothing really works. because you said it: you cant do anything Aug 20 09:55:22 do you happen to know maybe any generic boards that dont come with identifiers? Aug 20 09:58:08 like I said earlier, every board can be identified if you try hard enough Aug 20 09:58:58 also, a unique MAC address is required for devices that have an ethernet port Aug 20 10:01:54 thats good for me to know about things such as SRAM. MAC adresses is not an issue Aug 20 10:01:59 and your MAC address should not accessible by webpages. unless you have IPv6 privacy disabled I guess Aug 20 10:02:48 in general, obtaining access to hardware identifiers already requires so much access to the system that it feels silly to worry merely about hardware identifiers at that point Aug 20 10:03:16 (note btw that both eMMC and SD cards also contain unique IDs) Aug 20 10:03:41 i have a step by step approach, and at the moment it is board unique identifiers that i am interested in Aug 20 10:04:01 i know about sd cards ids Aug 20 10:05:58 if you know more about the issue, such as was the case with SRAM, please tell me more Aug 20 12:54:37 Hey zmatt! So i'm trying to slightly modify your py-uio library: https://github.com/mvduin/py-uio Aug 20 12:55:47 I want to be able to check if a pru is already running and if so not reset it when setting up the other pru. Aug 20 12:56:31 I have two linux services that each use one pru and the pruss.initialize() is only called from the first service. Aug 20 12:57:10 However, if I only want to run one service or start them in the opposite order then this creates problems. Aug 20 12:58:34 I was thinking about adding a parameter to pruss.initialize() that determines which pru you want to initialize. So one service could call pruss.initialize(core=0), and the other would call pruss.initialize(core=0) or something like that. Aug 20 12:58:58 * I mean core=0 for one and core=1 for the other Aug 20 13:10:12 Hello all, I would like to create a jump table in pasm Aug 20 13:10:23 I believe that the way to go is to set up a sequence of jump commands Aug 20 13:10:53 the jump to the line of the desired jump command with JMP Aug 20 13:11:05 JMP needs to be given an address relative to the first entry, though Aug 20 13:11:40 If I label the first entry with JUMP_TABLE:, do I get is address with "LDI r16, &JUMP_TABLE" ?? Aug 20 13:51:51 Hey dcmertens, where did you find this info about making a jump table? I've never heard of one. Aug 20 13:52:53 I've used jump commands, but just to jump to a label Aug 20 13:54:22 hunterl, it almost certainly came up when I was reading about switch statements Aug 20 13:54:53 as in, "How is it that switch statements are O(1) operations?" Aug 20 13:54:56 answer: jump table Aug 20 13:57:34 fwiw, with real switch statement implementations with non-consecutive ranges, I understand that compilers usually use a kind of hashing jump table Aug 20 14:01:33 m Aug 20 14:46:39 Ok, could you explain how you want to use the jump table in your code? I'm still not following exactly. Aug 20 14:47:31 hunterl, I want to have one PRU program which performs a basic task but then can take configurable additional tasks Aug 20 14:47:39 in my case, the main task is to sample data Aug 20 14:47:42 on the analog system Aug 20 14:47:59 but while waiting between samples, I want to be able to do other things Aug 20 14:48:06 like send an SPI command out, perhaps Aug 20 14:49:19 the simplest way I can think to do this is to have a set of commands indexed by an integer Aug 20 14:49:30 and that integer indicates which command to run Aug 20 14:49:37 0 is the first command, 1 is the second, etc Aug 20 14:50:36 right now I have instructions 0=halt (halt instructions, not the PRU), 1=wait for specified number of samples, 2=chip select (GPIO), 3=SPI increment, 4=SPI decrement, 5=SPI set Aug 20 14:50:56 that's rather specific to my problem, but does that give you the idea? Aug 20 14:55:58 Ok, yeah I think I understand now. Aug 20 15:04:20 This may be too simplistic, but could you just do something like give each section of code that runs an instruction a label like "SPI_DEC" Aug 20 15:04:42 that's exactly what I do Aug 20 15:04:55 so, the jump table itself is a sequence of commands like Aug 20 15:04:58 JMP INSTRUCTION_HALT Aug 20 15:05:03 JMP INSTRUCTION_WAIT Aug 20 15:05:06 ... Aug 20 15:05:11 JMP INSTRUCTION_SPI_INCREMENT Aug 20 15:05:22 then, I implement the command under their respective labels Aug 20 15:06:11 now that I'm implementing my commands, I only have a handful, so maybe a jump table is overkill Aug 20 15:06:17 Oh, ok Aug 20 15:06:45 so if I see command 2, I jump to the instruction at JUMP_TABLE + 2 Aug 20 15:06:52 which itself jumps to the real command Aug 20 15:06:57 So you want to get the location of each of these JMP commands in memory. Aug 20 15:07:03 Gotcha Aug 20 15:07:07 right Aug 20 15:07:20 and I need to know the memory location of the first command so I can use a JMP instruction Aug 20 15:08:27 Have you tried your suggestion of LDI r16, &JMP_TABLE Aug 20 15:08:39 I'm still implementing my ideas Aug 20 15:08:47 once I've written a few commands I'll try it Aug 20 15:08:54 and we'll see if the compiler gets upset Aug 20 15:12:05 It looks like it might work, on page 45 of the PRU Reference guide the section on labels shows the command LDI R1.W0, #MyLabel being used which I assume is just loading the address of the labeled instruction into the first word of R1 Aug 20 15:13:42 Then the JMP command documentation says it can jump to a 16 bit address specified by a register or immediate value. Aug 20 15:13:52 That's what I expected, but the document I have on hand doesn't show that. Aug 20 15:14:02 what is the title of the document you have? Aug 20 15:14:23 https://github.com/beagleboard/am335x_pru_package/blob/master/am335xPruReferenceGuide.pdf Aug 20 15:14:31 thanks! Aug 20 15:14:46 This is the best PRU reference I've found, it took me a while wandering in the weeds before I found it though. Aug 20 15:16:00 Section 5.3.4 has the PRU instruction set Aug 20 15:16:15 ah, yeah I'd seen this before but found the TI wiki usually had what I needed. Aug 20 15:16:20 of course, now the wiki is gone! Aug 20 15:16:31 and this, clearly, spells out more details that the wiki did not Aug 20 15:16:50 Yeah, it's been super helpful for me Aug 20 15:20:56 I'm reading further, it says that labels are used to specify targets of jump instructions, but can also be used in an instruction that calls for an immediate value (so long as the label's value fits in the immediate field's specified bit width) Aug 20 15:21:16 hunterl++ Aug 20 15:21:20 you're doing my research for me. :-) Aug 20 15:21:25 thanks! Aug 20 15:21:55 Sure, I'm trying to learn this stuff myself Aug 20 16:50:02 Hi. I have made an SD card with the proper partitions and with an MLO and u-boot.img file only on it. My goal is to make it drop to a uboot console with a long press on the boot button. But all it does is to start in a regular fashion. I have the uart-cable connected to see the output from boot Aug 20 18:43:16 Hello all, does anybody know a command-line way to reset the PRU? I keep having to reset my BB **** ENDING LOGGING AT Wed Aug 21 02:59:58 2019