01:10:23 | prpplague | hey seletz_ |
01:10:26 | prpplague | up late? |
07:16:12 | | que tal, mmatten |
07:16:12 | mmatten | hi |
08:40:36 | seletz | morning |
08:40:59 | seletz | BZFlag: hmm, you had a poblem with my CF code? |
08:54:34 | BZFlag | seletz: I just messed up something without saving a backup. =( |
08:55:01 | BZFlag | in moving to the new code I lost my code that mostly worked. now I'm back where I can't see the card ID. |
08:56:14 | Russ | hey erikm |
08:56:36 | Russ | I'm having a problem with the intel flash code on some strataflash on an "assabetish" system |
08:58:26 | Russ | bootldr is on the system, and that can flash fine, |
08:58:43 | Russ | I chain boot blob (flash as a kernel, and bootldr loads it as such) |
08:59:01 | Russ | I can erase flash ok |
08:59:22 | Russ | but it doesn't make it past the first few 0x100 bytes |
08:59:33 | Russ | its starts looping, and occasionaly times out |
09:01:35 | Russ | flash_write_region(): flashing 0x00030000 (196608) words from 0xc0800000 to 0x00140000 |
09:01:35 | Russ | erasing at 0x00144668... scanning down... resume writing at 0x00140000 |
09:01:35 | Russ | erasing at 0x00140334... scanning down... resume writing at 0x00140000 |
09:01:35 | Russ | erasing at 0x001404c4... scanning down... resume writing at 0x00140000 |
09:01:43 | Russ | that type of thing over and over |
09:05:15 | Sammy | Russ: maybe that flash is bad , I have that experience before :( |
09:05:34 | Russ | bootldr flashes it just fine |
09:13:26 | erikm | Russ: hey Russ |
09:13:36 | Russ | hey erikm |
09:13:38 | erikm | Russ: are you sure the slash isn't locked or so? |
09:14:07 | Russ | ya, the slash stops |
09:14:33 | Russ | I don't have the schematics of this board, so I could be missing something subtle |
09:14:56 | Russ | but If I flash a jffs2 root with bootldr, boot blob, download my kernel, boot the kernel, it will mount the jffs2 root just fine |
09:15:36 | Russ | I should probably see how well mtd writes the flash |
09:15:48 | erikm | (I meant flash, not slash, sorry %) |
09:15:57 | Russ | ya |
09:16:10 | Russ | I can erase the flash no problem |
09:16:30 | seletz | shot his analogue HW board right now :( |
09:16:40 | Russ | the chips are two E28F128's |
09:17:01 | erikm | Russ: can you dump the contents of the flash to see they are indeed erased? |
09:17:23 | Russ | I have |
09:17:57 | erikm | hmm, could still be a bit stuck-at-one |
09:18:45 | erikm | try to flash a block with zeros |
09:18:59 | erikm | you might have to change the flash algorithm to continue despite errors |
09:19:19 | Russ | lemme have bootldr do that |
09:19:27 | erikm | then dump the contents of the flash, look for bits stuck-at-one, and try to discover a pattern |
09:24:06 | Russ | coming out all zeros |
09:24:27 | erikm | strange |
09:24:40 | Russ | I had a problem earlier, where if I didn't give the IrDA device a power setting, It would read back zeros for the upper 16 bits of flash |
09:24:57 | Russ | and many times, 0x0080 |
09:25:10 | erikm | might be something similar. figure out what kind of initialisations the kernel uses |
09:25:17 | Russ | and I couldn't get it to read back the true value without a reset |
09:25:23 | erikm | (and/or bootldr) |
09:25:28 | Russ | I can't get the source |
09:25:38 | erikm | even not for the kernel? |
09:25:42 | Russ | nope |
09:25:49 | erikm | but you do have a binary? |
09:25:52 | Russ | right |
09:26:01 | erikm | ok, that's a GPL violation |
09:26:05 | Russ | I know |
09:26:09 | Russ | they are in korea |
09:26:17 | erikm | who is "they" |
09:26:32 | Russ | ciit tech |
09:26:36 | Russ | (ciitech.co.kr) |
09:26:43 | seletz | looking |
09:26:43 | erikm | arm-linux kernel? |
09:27:00 | Russ | yup, they are using the assabet arch number |
09:27:38 | erikm | Russ: oh, I'm sure rmk and nico will find that interesting |
09:29:04 | Russ | prpplauge has tried for quite some time to get them compliant |
09:29:13 | erikm | does an rmk summoning dance |
09:29:23 | seletz | lol |
09:32:51 | Russ | i basically have the port done, execpt for hammering out some uda1341ts issues, audio paths, ucb1x00-battery driver, and a driver for the buttons |
09:33:18 | Russ | cpu scaling is mostly woring, it works at 103200, but not 52600 |
09:33:22 | Russ | I don't know if it should |
09:33:31 | erikm | Russ: is it a sa1110? |
09:33:34 | Russ | ya |
09:33:54 | erikm | Russ: ok, that's a known issue. some designs stop at 147000 |
09:34:18 | erikm | Russ: we need somebody with a logic analyser to figure out what's going on on the bus |
09:35:07 | seletz | erikm: well, i have a logic analyzer |
09:35:25 | Russ | it'd also be helpfull to get a part number on the debug connector so I could hook up jtag and pull out the CPLD schematics |
09:35:40 | erikm | seletz: ok. I think we can discuss the issue at OLS, much easier to explain IMHO |
09:35:44 | seletz | erikm: i'll be glad to help out if someone explains the problem to me (i'm a software guy at last ...) |
09:35:58 | seletz | erikm: cool, ok. |
09:36:47 | Russ | erikm: when you were talking about issues with implementing a pci bus on an sa11x0, were you talking about a complete bus, or supporting even slaves |
09:37:30 | Russ | I haven't had much time to go into it, but I've been slowing going through the pci spec and rtl8139 datasheet |
09:39:45 | erikm | Russ: the main problem is that your PCI north bridge has to take the sa1110 bus for bus master transfers |
09:40:02 | Russ | optimally, it seems an address/command could be sent out, and then a burst of 4 to maybe 16 words of cache transfers |
09:40:23 | Russ | I don't want a north brigde |
09:40:27 | Russ | I don't want slots |
09:40:32 | seletz | detects HW gurus talking :) |
09:40:39 | erikm | Russ: that means that the north bridge has to control the SDRAM, including things in the right order, and also doing SDRAM refreshes |
09:41:21 | Russ | right, I don't want a north bridge, I just want to put some PCI chips and glue logic in SRAM space (or maybe DRAM space) |
09:41:55 | erikm | glue logic == PCI north bridge |
09:42:19 | Russ | not what I'm thinking |
09:42:33 | Russ | I'm thinking decode and maybe a latch for address/command |
09:43:13 | Russ | it wouldn't support additional bus masters |
09:44:22 | Russ | it wouldn't support additional bridges either |
09:44:41 | Russ | or any bridges for that matter |
09:45:13 | erikm | question is if the other PCI chips (rtl8139 etc) will like that |
09:45:26 | Russ | that's why I'm reading through both data sheets |
09:45:50 | Russ | but for a 33MHz bus (or 40MHz) where you can get $8 chips that do 10/100 |
09:45:54 | Russ | hey _rmk_ |
09:46:00 | _rmk_ | Russ: first thing I'll say is what Linus said about the armlinux.net thing: |
09:46:03 | seletz | _rmk_: hi |
09:46:13 | _rmk_ | Quite frankly, as long as they are in korea, there's probably not much to |
09:46:13 | _rmk_ | be done. Trying to go after them in any legal way simply isn't practical |
09:46:14 | _rmk_ | until there is some real presense in either Europe or the US. |
09:46:37 | _rmk_ | --- end quote --- |
09:46:47 | Russ | going after them has basically been given up on |
09:47:19 | erikm | Russ: but where did you get the board? through a US representative, or directly from .kr? |
09:47:25 | Russ | I almost have the port done, its mainly figuring out what all they changed from the assabet reference design |
09:47:33 | Russ | erikm: prpplauge sent it to me |
09:48:46 | erikm | Russ: and I suppose you don't know where he got it... |
09:48:59 | Russ | erikm: nope, would have to ask him |
09:49:33 | erikm | _rmk_: so bottom line is that we can't do anything against .kr companies for as long as they stay in .kr :( |
09:50:17 | _rmk_ | erikm: that's Linus' interpretation - if .kr didn't sign up to the international copyright agreements, then that would be the case. |
09:50:25 | Russ | they also have a bunch of warez on their ftp |
09:50:42 | seletz | ugh |
09:50:51 | erikm | Russ: intersting. put the BSA on it };-) |
09:50:57 | seletz | mybe give a hint to m$ |
09:51:02 | mmatten | :> |
09:51:36 | Russ | dear ms...a company promoting linux is pirating your software... |
09:51:48 | seletz | no |
09:52:10 | seletz | dear m$, i got this sw from ftp:///, may i have support? |
09:52:21 | seletz | (anonymous writer) |
09:52:31 | Russ | anyway, I gots to sleep |
09:53:02 | _rmk_ | does the name 'skiff147' mean anything to people here? |
09:53:13 | Russ | just the skiff portion |
09:53:41 | _rmk_ | its not the name of one machine from the skiff cluster, is it? |
09:54:10 | erikm | skiff is the nickname of the compaq personal server |
09:54:42 | _rmk_ | erikm: yep. I happen to be holding one with a post-it note on that says skiff147 |
09:55:28 | erikm | _rmk_: isn't it skiff #147? |
09:55:55 | _rmk_ | the serial number is 1268 |
09:57:06 | BZFlag | http://www.google.com/intl/xx-elmer/ |
09:58:29 | erikm | _rmk_: could be that it's the 147th *working* skiff and number 1 through 1121 boards were broken |
09:58:32 | erikm | BZFlag: lol :) |
09:58:39 | _rmk_ | erikm: hehe |
09:58:58 | _rmk_ | now, where would jamey hang out? #handhelds.org ? |
09:59:16 | erikm | or #ipaq |
09:59:20 | | jamey was last seen on #zaurus 1 days, 21 hours, 58 minutes and 52 seconds ago, saying: <private message> [Mon Jun 10 13:00:28 2002] |
09:59:20 | BZFlag | ibot: seen jamey |
10:00:00 | _rmk_ | hmm. |
10:00:38 | _rmk_ | wonders if the rj45 jack on the back of this is ether. its helpfully marked "phone" |
10:00:58 | _rmk_ | and the 9 pin D is marked "10baseT" |
10:01:26 | _rmk_ | and a switch is marked "serial" |
10:01:28 | seletz | thats weird |
10:01:34 | seletz | lol |
10:02:23 | BZFlag | that's one of those new-fangled serial switches. |
10:03:52 | _rmk_ | considers running this compaq personal server as a dev machine and a public access box (and if I do, it'll be going on a separate network segment here, just in case anyone gets any ideas about tcpdump 8)) |
10:05:57 | _rmk_ | hmm, have to get some extra IPs from mailbox if I do. |
10:09:46 | seletz | _rmk_: btw, something planned yet for the ARM Linux BOF at OLS? |
10:10:08 | _rmk_ | umm, no. |
10:10:33 | _rmk_ | that mail I sent out about it - I only got 3 replies ;( |
10:10:55 | seletz | ugh, thats a shame. |
10:11:29 | seletz | _rmk_: well, i guess we'll stick with prpplagues arm beer BOF then :) |
10:12:12 | erikm | has to be honest that he has been too busy to even *look* at the linux-arm-* lists |
10:16:17 | seletz | well, SIGLUNCH over here ... |
10:21:02 | erikm | yeah, over here as well |
10:21:15 | BZFlag | 4am here. ;-) |
10:21:45 | erikm | BZFlag: shouldn't our caring father go to sleep as well...? ;) |
10:21:52 | erikm | BZFlag: (btw, how's the little one?) |
10:25:52 | BZFlag | erikm: doing well now, thanx. he's sleeping for about 6hrs at a time at night now. |
14:06:51 | prpplague | morning guys |
14:07:32 | | privet, seletz |
14:07:32 | seletz | prpplague: hi |
14:33:00 | prpplague | argh, i seem to have mis placed my "programming ansi c" book |
14:40:24 | seletz | prpplague: oh, the holy k&r ansi c bible? |
14:44:15 | seletz | hmm. |
14:45:05 | seletz | i need to do k*x+d on each of thermeasured values. grrr. Guess its asm time :( |
14:48:06 | prpplague | seletz: yep thats the one |
14:48:36 | seletz | prpplague: what do you need to know? or is it just that you miss it? |
15:03:03 | prpplague | seletz: just that i'm missing it |
15:03:18 | prpplague | seletz: not sure if someone has swipped it or whether i left it at home |
15:03:45 | prpplague | seletz: besides, my pr0n is hidden in there, lol |
15:04:01 | prpplague | seletz: jk |
15:08:33 | seletz | lol |
16:05:10 | prpplague | seletz: when do you expect a response from the board producers on the "hack kit" |
16:05:28 | seletz | prpplague: this week or beginning of next week. |
16:05:39 | seletz | ugh |
16:05:52 | seletz | prpplague: this week or start of next week. |
16:06:00 | seletz | prpplague: grammar :( |
16:06:44 | prpplague | seletz: np, i understood |
16:07:02 | seletz | prpplague: why? some urgent issues? |
16:08:19 | seletz | prpplague: at OLS i'll have most figures. |
16:08:22 | prpplague | seletz: no just curious |
16:08:23 | prpplague | seletz: i'm excited about getting started |
16:08:39 | prpplague | seletz: i've start laying out some "sample" applications |
16:10:58 | seletz | getting tired i'm writing bogus code ... |
16:11:15 | prpplague | lol |
16:11:21 | prpplague | thats what i was doing last night |
16:11:35 | prpplague | seletz: i've got this array that i step through in a loop |
16:12:20 | prpplague | seletz: all 80 are do the exactly the same thing in the loop except for item number 18 |
16:12:36 | prpplague | seletz: item 18 has to open an additional screen |
16:13:00 | prpplague | seletz: i really had just hardcoding an "if" in the loop |
16:13:32 | prpplague | seletz: i mean what if the item number changes or more of these exceptions come along |
16:14:33 | seletz | prpplague: am i that tired? I see nothing wrong with it ... |
16:15:16 | prpplague | seletz: its just doesn't seem generic enough |
16:15:17 | seletz | is writing a userspace test program for his data aquisition kernel driver |
16:15:57 | seletz | prpplague: oh my. use #defines or whatnot. but if its only one number i'd think later.... |
16:24:32 | prpplague | seletz: ya, thats what i finally did, its just not as clean and flexible as i had hoped |
16:25:32 | prpplague | seletz: i'm afraid i may have to add some more "exceptions" later down the road |
16:29:33 | seletz | prpplague: do a typedef struct operation { int id; ... }; and use a function table (array of function pointers). |
16:30:11 | seletz | prpplague: then you can: ret = (func_table[id].func)(args); in your loop |
16:30:38 | seletz | prpplague: have a setup routine which sets up the table dynamically. |
16:30:58 | seletz | prpplague: just my .02$ ... |
16:34:27 | prpplague | seletz: hmm, that sounds do-able |
16:34:43 | seletz | prpplague: forget the struct thing. |
16:35:08 | seletz | prpplague: you need only a array of functions. Probably all of the same signature, though. |
16:35:35 | seletz | prpplague: you might also use C++ for that .... |
16:35:44 | prpplague | seletz: hmm just do a matching array of functions that correspond the the other array item, so when item item[18] is reach you do function[18] |
16:35:44 | seletz | running .... :) |
16:35:54 | prpplague | seletz: leaving? |
16:36:10 | seletz | no, because of my C++ joke :) |
16:36:35 | prpplague | seletz: ohh, sorry , didn't get it untill now |
16:36:44 | seletz | prpplague: why 2 arrays? |
16:37:39 | seletz | prpplague: use typedef int (*itemfunc)( int id, ... ); itemfunc ftable[MAX_ITEMS]; |
16:37:56 | seletz | then do |
16:38:26 | seletz | for (id=0;...) { ret = ftable[id](id, some_other_args );; } |
16:39:02 | seletz | that way you can have several ids have the same func. |
16:39:23 | seletz | and you get the actual id in the function. |
16:39:51 | seletz | for now you could just point every id to the same function. Later update. |
16:41:09 | prpplague | cool, thats what i was looking for |
16:41:11 | seletz | ugh, thats _really_ bad |
16:41:14 | seletz | http://www.theregister.co.uk/content/55/25689.html |
16:41:31 | prpplague | saves buffer |
16:41:36 | seletz | lol |
16:42:19 | prpplague | seletz: i after all these years, i still have problems with some c/c++ concepts, guess i'm still partial to gw-basic, lol |
16:42:20 | seletz | crash XFree + linux box _remotely_ in 3 sec. |
16:42:33 | seletz | eeeeek! |
16:42:37 | seletz | you named it! |
16:42:58 | seletz | vanishes in a puff of smoke |
16:43:33 | prpplague | lol |
16:43:53 | prpplague | which one c++ or basic? |
16:44:05 | seletz | basic :) |
16:44:22 | prpplague | lol |
16:44:23 | seletz | man. reminds me of my old simon's basic days .... |
16:44:42 | seletz | (or even amiga basic. yuck.) |
16:45:01 | prpplague | seletz: mine was gw-basic and applesoft basic |
16:47:53 | prpplague | seletz: i'm looking at your typedef suggestion |
16:48:10 | seletz | hmm, hope i got the * right |
16:48:14 | seletz | :) |
16:48:28 | seletz | ok, looks good |
16:48:38 | prpplague | seletz: when you say you can point multiple id's to the same function, where are you placing that? |
16:48:54 | seletz | ok |
16:49:37 | seletz | have a func_for_ids_10_to_100( int id, ... ) { ... } |
16:49:42 | seletz | then do a |
16:50:24 | seletz | for ( id=10: id<100; id++) { ftable[id] = func_for_ids_10_to_100; } |
16:50:38 | prpplague | ahh, ok that pulls it together |
16:50:42 | prpplague | i understand now |
16:50:54 | seletz | i guess you have to do |
16:50:55 | prpplague | seletz: thanks i really appreciate the c 101 |
16:51:29 | seletz | ret = (*ftable[xx])(xx, a,b,c); |
16:51:32 | seletz | not |
16:51:46 | seletz | ret = ftable[xx](xx, a, b, c ); |
16:52:01 | seletz | note the star |
16:52:08 | seletz | hmmm |
16:52:33 | seletz | ahyes, and you have to do ftable[id] = &func_for...; |
16:52:51 | seletz | oh my. |
16:52:53 | seletz | try it. |
16:52:55 | seletz | :) |
16:52:59 | seletz | YMMV |
16:53:23 | seletz | as i said, i'm tired. sigh. |
16:53:36 | prpplague | np |
16:54:30 | seletz | ok, i'm off now |
16:55:05 | seletz | prpplague: last thing, use varargs. Tent you're most flexible. (but its dangerous..) |
16:55:15 | seletz | going home |
16:55:45 | seletz | see ya |
17:41:11 | erikm | goes home |