04:06:46 | Sammy | uh |
07:32:59 | seletz | morning |
07:37:38 | Russ | morning |
07:51:11 | | que tal, mmatten |
07:51:11 | mmatten | hi |
09:22:14 | seletz | erikm: morning |
09:22:48 | erikm | morning |
11:31:42 | Sammy | later... |
12:38:10 | Fare | Gakuk! |
12:38:14 | | que tal, seletz |
12:38:14 | seletz | hello |
12:38:17 | Fare | I have blob working, now |
12:38:22 | seletz | cool |
12:38:29 | Fare | what should I do to port the kernel, now? |
12:38:34 | seletz | have patches? |
12:38:43 | Fare | I sent them to erikm |
12:38:46 | Fare | want them too? |
12:38:55 | seletz | no, thats ok |
12:39:19 | Fare | my patch includes a generally useful facility of kernel piggyback as a load method |
12:39:39 | Fare | so you put the zImage on piggyback to blob and it just works |
12:40:09 | Fare | blob used to move 64KB during its chain loading |
12:40:12 | Fare | that's lame |
12:40:21 | Fare | now it moves exactly the size of the rest, no more no less |
12:41:32 | erikm | Fare: better upload the patch to sourceforge so others can also integrate it |
12:41:43 | Fare | hum. How do I do that? |
12:41:52 | Fare | hi, btw |
12:42:05 | erikm | Fare: go to www.sf.net/projects/blob/ and select patches |
12:42:25 | erikm | Fare: if you have a SF account you can login and you will even get mail as soon as the status of the patch changhes |
12:43:18 | Fare | ok |
12:48:15 | Fare | erikm: this should be in the README |
12:49:08 | erikm | Fare: send a patch :) |
12:49:19 | Fare | also, how do I specify the default configuration for a given platform? |
12:49:29 | Fare | erikm: same patch or another one? |
12:49:44 | erikm | Fare: different one is better |
12:50:03 | erikm | Fare: play with the _flags variables |
12:55:38 | Fare | I hope it's ok to send a patch relative to current CVS |
12:55:54 | erikm | no problem |
12:56:50 | Fare | I see no example of playing with _flag for other targets |
12:57:12 | erikm | right :) |
12:57:53 | Fare | It's not easy to split the piggy and jornada patches, because they modify the same files |
12:58:15 | erikm | no problem |
13:05:23 | Fare | submitting... |
13:05:40 | Fare | bloody slow |
13:06:16 | Fare | how come there are patches submitted by you? |
13:06:23 | Fare | can't you just directly commit to CVS? |
13:06:57 | Fare | hum. |
13:07:09 | Fare | and can you give a few hints with porting the kernel? |
13:08:33 | erikm | Fare: I just uploaded them because I didn't have time to integrate |
13:09:06 | Fare | I suppose then that my patch will never get integrated :( |
13:09:14 | Fare | what about kernel porting? |
13:09:21 | Fare | how should I proceed with debugging? |
13:09:49 | erikm | porting an sa1100 is simple. just see how lart.c is done, for example |
13:11:13 | Fare | erikm: problem is, I get no output from the kernel whatsoever |
13:11:21 | Fare | it seems to just die |
13:11:31 | Fare | also, how am I to guess all those magic numbers? |
13:11:53 | Fare | is there a documented way to steal them from the underlying system? |
13:12:02 | erikm | Fare: see www.arm.linux.org.uk, developer section |
13:33:26 | sammy_wms | hi all |
13:33:34 | sammy_wms | at home now :) |
13:34:04 | mmatten_ | hi sammy :) |
13:34:39 | sammy_wms | is begin get clean his web side ... |
13:34:49 | sammy_wms | hello mmatten :D |
13:56:11 | prpplague | morning all |
13:56:24 | prpplague | everyone been larted this morning? |
13:58:35 | sammy_wms | not yet |
13:58:59 | sammy_wms | because here is 22:00 ^_^ |
13:59:42 | sammy_wms | :P |
14:00:04 | prpplague | erikm: what day are you arriving at OLS? |
14:00:37 | sammy_wms | is @_@ |
14:10:46 | mmatten_ | when will you be there prpplague? |
14:28:23 | erik_ | prpplague: 25th |
14:28:53 | erik_ | prpplague: I arrive somewhere around 16:00 at ottawa airport |
14:29:52 | mmatten | we'll get there 25th round 18:40 (at airport)... |
14:30:45 | erik_ | prpplague: I'm flying in from new york (newark airport) |
14:31:58 | erik_ | walks to clean room for half an hour |
14:32:13 | sammy_wms | ho ho ^_^ |
14:32:35 | sammy_wms | is finish update his web side :) |
14:32:47 | mmatten | sammy_wms: url ? |
14:32:55 | sammy_wms | sammy.homelinux.org |
14:33:06 | sammy_wms | http://sammy.homelinux.org |
14:33:38 | sammy_wms | I will start put something on this few days ... |
14:34:46 | mmatten | phpnuke eh ? :) |
14:34:54 | sammy_wms | yeap |
14:36:25 | mmatten | can't read the menus though :< |
14:39:54 | sammy_wms | I will porting one English version later :) |
14:53:08 | Fare | where in blob do I specify the linux command line? |
15:02:13 | Fare | erikm: I have a question about the way the kernel is loaded, though |
15:02:34 | Fare | erikm: where does blob puts its kernel initialization parameter? |
15:02:40 | Fare | how does the kernel know? |
15:03:03 | Fare | how can I ensure it isn't overwritten while the kernel is uncompressed? |
15:03:29 | Fare | later on, I'll have to ask: where should I put the ramdisk (considering the piggy loader) |
15:06:04 | Fare | what about the overwriting of the interrupt vectors and such? |
15:06:07 | erikm | Fare: specified in the machine specific file, and as of 2.4.18-rmk6 it is specified in r2 |
15:06:19 | Fare | (and of the framebuffer, mapped by WinCE at 0xc0002e00) |
15:06:43 | Fare | erikm: should I upgrade from rmk5 to rmk6? |
15:07:21 | Fare | and what is the tag list about? |
15:07:32 | Fare | where do I set the tags? the command-line? |
15:07:36 | erikm | Fare: you can ensure it's not overwritten by setting the correct values for the parameters described on the developers section of www.arm.linux.org.uk |
15:07:36 | erikm | rmk5 is good as well, yhough rmk6 is better (because newer) |
15:07:36 | erikm | yes |
15:07:47 | erikm | goes back to clean room |
15:17:00 | Fare | what's PARAM_RAM_BASE used for? |
15:17:07 | Fare | where should I put it? |
15:17:44 | erikm | for kernel parameters/command line, AFAIK. see src/blob/linux.c |
15:19:12 | mmatten | wasn't PARAM_RAM_BASE one of the blob partitions? |
15:19:51 | mmatten | eh just ignore me misunderstood the question :) |
15:20:19 | Fare | erikm: how low can I put it? how long will it be? would 0xc0000100 do? |
15:21:36 | Fare | PARAM_RAM_BASE seems only used in main.c |
15:23:58 | prpplague | is back from nasty departmental meeting |
15:25:09 | prpplague | erikm / mmatten : i'll be arriving the Ottawa around 16:20 on the 25th |
15:25:38 | prpplague | erikm: we'll have to excate flight numbers |
15:26:36 | Fare | what's the relationshp between BLOB_RAM_BASE and BLOB_ABS_RAM_BASE ? |
15:32:39 | mmatten | hmmm seems we'll be the last arrivals :) |
15:33:46 | mmatten | the reservation booth (or what it was called) closes soon afterwards iirc |
15:37:35 | mmatten | <- goin home now, maybe later tonight i'll drop in again |
15:58:15 | erikm | prpplague: I don't have the flight number right here. I fly with continental (or whatever carrier they use) |
15:59:15 | erikm | Fare: BLOB_RAM_BASE is where blob downloads a new blob image. BLOB_ABS_RAM_BASE is where the first stage loader loads the second stage loader |
15:59:49 | sammy_wms | prpplague/erikm: is that OLS have online movie ? |
16:00:02 | erikm | sammy_wms: don't know |
16:00:07 | sammy_wms | I mean web online ... |
16:00:59 | | ols is Ottawa Linux Symposium or http://www.ottawalinuxsymposium.org/ or http://www.linuxsymposium.org/2002/ |
16:00:59 | erikm | lxrbot: ols? |
16:00:59 | lxrbot | i guess ols is the Ottawa Linux Symposium, see http://www.linuxsymposium.org |
16:01:10 | Fare | erikm: ok, I finally figured it out by reading the sources |
16:01:18 | Fare | erikm: how long is a typical tag list? |
16:01:42 | Fare | and how do I specify default kernel parameters? |
16:01:47 | erikm | Fare: five tags at minimum |
16:02:13 | erikm | start tag, two ramdisk tags, one memory tag and en end tag |
16:02:15 | Fare | can I confidently assume that it will be less than 0x2100 bytes? |
16:02:20 | erikm | oh, sure |
16:02:31 | Fare | what about the command line arguments? |
16:02:43 | erikm | in an extra tag |
16:02:49 | erikm | ATAG_CMDLINE, IIRC |
16:03:02 | Fare | ok, so if I have a 100-byte command line, I'm still very safe. |
16:03:16 | Fare | but how do I specify a default command line in the blob sources? |
16:03:26 | Fare | (so as not to have to type it) |
16:03:40 | erikm | put it in the param list |
16:04:25 | Fare | erikm: where is it? |
16:04:35 | Fare | and what's BLOB_PARAM_BASE ? |
16:04:50 | erikm | BLOB_XXX_BASE is where blob downloads XXX |
16:05:06 | Fare | (I have the feeling BLOB PARAM BASE is useless to me cause I don't have flash) |
16:05:42 | erikm | I still have to fix that |
16:05:53 | erikm | is without blob source over here, so I'm guessing |
16:17:05 | Fare | hum. So I twiddled all those _BASEs, and It died at |
16:17:17 | Fare | Autoboot (10 seconds) in progress, press any key to stop .Sc |
16:43:44 | Fare | hum. What kills blob early on? |
16:44:04 | Fare | I've the feeling it's where the kernel is loaded -- the only important thing I changed. |
16:48:12 | Fare | ouch -- the rest-ld-script didn't depend on jornada820.h |
16:48:31 | Fare | so when I changed some paramater, the other ones didn't change as well |
16:48:32 | Fare | EVIL |
16:51:50 | Fare | that still doesn't explain the crash, though |
16:53:24 | Fare | I used to go farther than that... |
17:16:46 | Fare | I feel dumb |
17:16:51 | Fare | could I go that far w/o being in SVC mode? |
17:32:05 | Fare | hum |
17:32:16 | Fare | ok, so making clean and rebuilding now works, |
17:32:26 | Fare | but I get a magic value failed when I try to boot. |
17:32:30 | Fare | how come? |
17:33:34 | Fare | blob> help // parse_args(): argv[0] = help // *** get_num_commandmat(): command magic failed at 0xc06affb3 // *** magic value failed |
17:34:39 | Fare | Grrrrr! something's rotten. |
17:55:08 | Fare | can you explain utils/test/ to me? |
17:55:22 | Fare | when I try to make from blob/ it chokes at that place |
18:07:25 | Fare | hum. Re-made clean, recompiled, etc. |
18:27:41 | Fare | it still dies soon after loading kernel |
21:16:26 | Fare | why would it die after a few seconds? |
21:21:45 | erikm | Fare: blob might overwrite itself. the command magic failed is a hint |
21:32:41 | Fare | hello again |
21:32:52 | Fare | well, I recompiled everything |
21:33:06 | Fare | and now it dies after a few seconds |
21:33:41 | erikm | enable debug information |
21:33:44 | Fare | it loads the kernel from 0xc06* where I put the rest to 0xc00* where it should be |
21:33:48 | Fare | I did enable debug information |
21:34:23 | Fare | I actually made *regress* how sad! |
21:34:55 | Fare | maybe I should maintain many copies of my modifications to the blob cvs, so as to keep "working" ones... |
21:36:10 | Fare | it loads the kernel, shows the blob prompt then dies |
21:36:36 | Fare | or if I set a > -1 timeout, it dies after 1 second or so of wait |
21:37:28 | erikm | when does it load the kernel? the initialisations should be done first |
21:42:37 | Fare | and now, I realize that cvs diff doesn't produce a correct patch file! |
21:42:48 | Fare | a few initializations are done |
21:42:53 | Fare | kernel loaded from load_kernel |
21:43:16 | Fare | right after blob should the elf map and stack pointer |
21:43:32 | Fare | which look correct |
21:44:30 | erikm | no |
21:45:22 | erikm | after blob data segment there are the .commandlist, .initlist, .exitlist, .ptaglist, and .bbss segments |
21:45:32 | erikm | I think you're overwriting those |
21:45:55 | erikm | you can safely write stuff 4 bytes after __bss_end |
21:47:54 | Fare | what would I be overwriting them with? |
21:48:47 | Fare | the whole of rest is at 0xc0640000 |
21:48:58 | Fare | including the piggy zImage between .rodata and .got |
21:49:18 | Fare | no, between .rodata and .data |
21:49:49 | Fare | should I increase stack size? where? |
21:50:15 | Fare | I moved the rest upwards, so that all copying would be done *way* downward |
21:50:29 | Fare | since I know I have 16MB, I'm pretty safe about that |
21:57:27 | Fare | ok, I made a perl script to transform the cvs diff output into a patch. |
21:58:10 | erikm | cvs diff output *is* a patch |
21:59:47 | Fare | erikm: well, my combination of cvs diff and patch options was incompatible, in any case |
22:00:04 | erikm | cvs diff -u works perfectly well |
22:00:15 | Fare | cvs did output some RCS file: lines followed by diff -u -r1.7 foo |
22:00:36 | Fare | and the diff -u -r1.7 foo being unqualified by its path is improper for recursive patch |
22:00:46 | erikm | patch ignores RCS stuff |
22:02:22 | Fare | exactly |
22:02:28 | Fare | it reads the diff -u -r1.7 foo line |
22:02:45 | Fare | when it ought to read diff -u old/path/to/foo new/path/to/foo |
22:04:05 | erikm | cvs diff always difss against the repository, or it diff two revisions in the repository |
22:06:36 | Fare | that's ok. a bit of perl solved that part |
22:06:59 | erikm | I don't see what's wrong with cvs... |
22:07:04 | Fare | what worries me is that the only significant difference I see is in the BLOB_*_BASE stuff |
22:07:13 | Fare | I'll revert to old values... |
22:10:51 | Fare | reasons I see: some DMA-based device reads params from RAM, and I overwrite those params, causing havoc |
22:11:11 | Fare | after all, the framebuffer is still active |
22:11:19 | Fare | maybe some other device is around there, too? |
22:11:43 | Fare | that would explain why loading the kernel low has wreaking effects. |
22:13:20 | Fare | does that sound plausible? |
22:16:18 | erikm | the framebuffer doesn't care |
22:16:34 | erikm | it just displays whatever is in it and doesn't really care what that is |
22:17:00 | erikm | it won't overwrite something or so |
22:17:03 | Fare | something is wierd |
22:17:10 | Fare | I just got blob to not crash |
22:17:34 | Fare | BUT, I had put #define KERNEL_RAM_BASE(0xc0408000) |
22:17:45 | Fare | and it load_kernel'ed it to 0xc0008000 |
22:17:50 | Fare | I'm baffled |
22:18:10 | Fare | (btw, loading it at c0008000 is what I want) |
22:18:35 | erikm | whatever you do, don't let regions overlap |
22:18:57 | Fare | boot just died w/o uncompressing |
22:19:11 | erikm | goes zzz |
22:19:17 | prpplague | night erikm |
22:19:22 | erikm | 'night |
22:19:32 | erikm | (00:23 over here) |
22:26:12 | Fare | died again! |
22:26:15 | Fare | grumble! |
22:28:05 | Fare | died again |
22:28:15 | Fare | I don't understand anything anymore! |
22:39:47 | Fare | I should have kept the working blob, and diff'ed it |