irclog2html for blob on 2002.06.17

07:51:11que tal, mmatten
09:22:14seletzerikm: morning
12:38:14que tal, seletz
12:38:17FareI have blob working, now
12:38:29Farewhat should I do to port the kernel, now?
12:38:34seletzhave patches?
12:38:43FareI sent them to erikm
12:38:46Farewant them too?
12:38:55seletzno, thats ok
12:39:19Faremy patch includes a generally useful facility of kernel piggyback as a load method
12:39:39Fareso you put the zImage on piggyback to blob and it just works
12:40:09Fareblob used to move 64KB during its chain loading
12:40:12Farethat's lame
12:40:21Farenow it moves exactly the size of the rest, no more no less
12:41:32erikmFare: better upload the patch to sourceforge so others can also integrate it
12:41:43Farehum. How do I do that?
12:41:52Farehi, btw
12:42:05erikmFare: go to and select patches
12:42:25erikmFare: 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:48:15Fareerikm: this should be in the README
12:49:08erikmFare: send a patch :)
12:49:19Farealso, how do I specify the default configuration for a given platform?
12:49:29Fareerikm: same patch or another one?
12:49:44erikmFare: different one is better
12:50:03erikmFare: play with the _flags variables
12:55:38FareI hope it's ok to send a patch relative to current CVS
12:55:54erikmno problem
12:56:50FareI see no example of playing with _flag for other targets
12:57:12erikmright :)
12:57:53FareIt's not easy to split the piggy and jornada patches, because they modify the same files
12:58:15erikmno problem
13:05:40Farebloody slow
13:06:16Farehow come there are patches submitted by you?
13:06:23Farecan't you just directly commit to CVS?
13:07:09Fareand can you give a few hints with porting the kernel?
13:08:33erikmFare: I just uploaded them because I didn't have time to integrate
13:09:06FareI suppose then that my patch will never get integrated :(
13:09:14Farewhat about kernel porting?
13:09:21Farehow should I proceed with debugging?
13:09:49erikmporting an sa1100 is simple. just see how lart.c is done, for example
13:11:13Fareerikm: problem is, I get no output from the kernel whatsoever
13:11:21Fareit seems to just die
13:11:31Farealso, how am I to guess all those magic numbers?
13:11:53Fareis there a documented way to steal them from the underlying system?
13:12:02erikmFare: see, developer section
13:33:26sammy_wmshi all
13:33:34sammy_wmsat home now :)
13:34:04mmatten_hi sammy :)
13:34:39sammy_wmsis begin get clean his web side ...
13:34:49sammy_wmshello mmatten :D
13:56:11prpplaguemorning all
13:56:24prpplagueeveryone been larted this morning?
13:58:35sammy_wmsnot yet
13:58:59sammy_wmsbecause here is 22:00 ^_^
14:00:04prpplagueerikm: what day are you arriving at OLS?
14:00:37sammy_wmsis @_@
14:10:46mmatten_when will you be there prpplague?
14:28:23erik_prpplague: 25th
14:28:53erik_prpplague: I arrive somewhere around 16:00 at ottawa airport
14:29:52mmattenwe'll get there 25th round 18:40 (at airport)...
14:30:45erik_prpplague: I'm flying in from new york (newark airport)
14:31:58erik_walks to clean room for half an hour
14:32:13sammy_wmsho ho ^_^
14:32:35sammy_wmsis finish update his web side :)
14:32:47mmattensammy_wms: url ?
14:33:38sammy_wmsI will start put something on this few days ...
14:34:46mmattenphpnuke eh ? :)
14:36:25mmattencan't read the menus though :<
14:39:54sammy_wmsI will porting one English version later :)
14:53:08Farewhere in blob do I specify the linux command line?
15:02:13Fareerikm: I have a question about the way the kernel is loaded, though
15:02:34Fareerikm: where does blob puts its kernel initialization parameter?
15:02:40Farehow does the kernel know?
15:03:03Farehow can I ensure it isn't overwritten while the kernel is uncompressed?
15:03:29Farelater on, I'll have to ask: where should I put the ramdisk (considering the piggy loader)
15:06:04Farewhat about the overwriting of the interrupt vectors and such?
15:06:07erikmFare: specified in the machine specific file, and as of 2.4.18-rmk6 it is specified in r2
15:06:19Fare(and of the framebuffer, mapped by WinCE at 0xc0002e00)
15:06:43Fareerikm: should I upgrade from rmk5 to rmk6?
15:07:21Fareand what is the tag list about?
15:07:32Farewhere do I set the tags? the command-line?
15:07:36erikmFare: you can ensure it's not overwritten by setting the correct values for the parameters described on the developers section of
15:07:36erikmrmk5 is good as well, yhough rmk6 is better (because newer)
15:07:47erikmgoes back to clean room
15:17:00Farewhat's PARAM_RAM_BASE used for?
15:17:07Farewhere should I put it?
15:17:44erikmfor kernel parameters/command line, AFAIK. see src/blob/linux.c
15:19:12mmattenwasn't PARAM_RAM_BASE one of the blob partitions?
15:19:51mmatteneh just ignore me misunderstood the question :)
15:20:19Fareerikm: how low can I put it? how long will it be? would 0xc0000100 do?
15:21:36FarePARAM_RAM_BASE seems only used in main.c
15:23:58prpplagueis back from nasty departmental meeting
15:25:09prpplagueerikm / mmatten : i'll be arriving the Ottawa around 16:20 on the 25th
15:25:38prpplagueerikm: we'll have to excate flight numbers
15:26:36Farewhat's the relationshp between BLOB_RAM_BASE and BLOB_ABS_RAM_BASE ?
15:32:39mmattenhmmm seems we'll be the last arrivals :)
15:33:46mmattenthe reservation booth (or what it was called) closes soon afterwards iirc
15:37:35mmatten<- goin home now, maybe later tonight i'll drop in again
15:58:15erikmprpplague: I don't have the flight number right here. I fly with continental (or whatever carrier they use)
15:59:15erikmFare: 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:49sammy_wmsprpplague/erikm: is that OLS have online movie ?
16:00:02erikmsammy_wms: don't know
16:00:07sammy_wmsI mean web online ...
16:00:59ols is Ottawa Linux Symposium or or
16:00:59erikmlxrbot: ols?
16:00:59lxrboti guess ols is the Ottawa Linux Symposium, see
16:01:10Fareerikm: ok, I finally figured it out by reading the sources
16:01:18Fareerikm: how long is a typical tag list?
16:01:42Fareand how do I specify default kernel parameters?
16:01:47erikmFare: five tags at minimum
16:02:13erikmstart tag, two ramdisk tags, one memory tag and en end tag
16:02:15Farecan I confidently assume that it will be less than 0x2100 bytes?
16:02:20erikmoh, sure
16:02:31Farewhat about the command line arguments?
16:02:43erikmin an extra tag
16:02:49erikmATAG_CMDLINE, IIRC
16:03:02Fareok, so if I have a 100-byte command line, I'm still very safe.
16:03:16Farebut how do I specify a default command line in the blob sources?
16:03:26Fare(so as not to have to type it)
16:03:40erikmput it in the param list
16:04:25Fareerikm: where is it?
16:04:35Fareand what's BLOB_PARAM_BASE ?
16:04:50erikmBLOB_XXX_BASE is where blob downloads XXX
16:05:06Fare(I have the feeling BLOB PARAM BASE is useless to me cause I don't have flash)
16:05:42erikmI still have to fix that
16:05:53erikmis without blob source over here, so I'm guessing
16:17:05Farehum. So I twiddled all those _BASEs, and It died at
16:17:17FareAutoboot (10 seconds) in progress, press any key to stop .Sc
16:43:44Farehum. What kills blob early on?
16:44:04FareI've the feeling it's where the kernel is loaded -- the only important thing I changed.
16:48:12Fareouch -- the rest-ld-script didn't depend on jornada820.h
16:48:31Fareso when I changed some paramater, the other ones didn't change as well
16:51:50Farethat still doesn't explain the crash, though
16:53:24FareI used to go farther than that...
17:16:46FareI feel dumb
17:16:51Farecould I go that far w/o being in SVC mode?
17:32:16Fareok, so making clean and rebuilding now works,
17:32:26Farebut I get a magic value failed when I try to boot.
17:32:30Farehow come?
17:33:34Fareblob> help  //  parse_args(): argv[0] = help  //  *** get_num_commandmat(): command magic failed at 0xc06affb3  //  *** magic value failed
17:34:39FareGrrrrr! something's rotten.
17:55:08Farecan you explain utils/test/ to me?
17:55:22Farewhen I try to make from blob/  it chokes at that place
18:07:25Farehum. Re-made clean, recompiled, etc.
18:27:41Fareit still dies soon after loading kernel
21:16:26Farewhy would it die after a few seconds?
21:21:45erikmFare: blob might overwrite itself. the command magic failed is a hint
21:32:41Farehello again
21:32:52Farewell, I recompiled everything
21:33:06Fareand now it dies after a few seconds
21:33:41erikmenable debug information
21:33:44Fareit loads the kernel from 0xc06* where I put the rest to 0xc00* where it should be
21:33:48FareI did enable debug information
21:34:23FareI actually made *regress* how sad!
21:34:55Faremaybe I should maintain many copies of my modifications to the blob cvs, so as to keep "working" ones...
21:36:10Fareit loads the kernel, shows the blob prompt then dies
21:36:36Fareor if I set a > -1 timeout, it dies after 1 second or so of wait
21:37:28erikmwhen does it load the kernel? the initialisations should be done first
21:42:37Fareand now, I realize that cvs diff doesn't produce a correct patch file!
21:42:48Farea few initializations are done
21:42:53Farekernel loaded from load_kernel
21:43:16Fareright after blob should the elf map and stack pointer
21:43:32Farewhich look correct
21:45:22erikmafter blob data segment there are the .commandlist, .initlist, .exitlist, .ptaglist, and .bbss segments
21:45:32erikmI think you're overwriting those
21:45:55erikmyou can safely write stuff 4 bytes after __bss_end
21:47:54Farewhat would I be overwriting them with?
21:48:47Farethe whole of rest is at 0xc0640000
21:48:58Fareincluding the piggy zImage between .rodata and .got
21:49:18Fareno, between .rodata and .data
21:49:49Fareshould I increase stack size? where?
21:50:15FareI moved the rest upwards, so that all copying would be done *way* downward
21:50:29Faresince I know I have 16MB, I'm pretty safe about that
21:57:27Fareok, I made a perl script to transform the cvs diff output into a patch.
21:58:10erikmcvs diff output *is* a patch
21:59:47Fareerikm: well, my combination of cvs diff and patch options was incompatible, in any case
22:00:04erikmcvs diff -u works perfectly well
22:00:15Farecvs did output some RCS file: lines followed by diff -u -r1.7 foo
22:00:36Fareand the diff -u -r1.7 foo being unqualified by its path is improper for recursive patch
22:00:46erikmpatch ignores RCS stuff
22:02:28Fareit reads the diff -u -r1.7 foo line
22:02:45Farewhen it ought to read diff -u old/path/to/foo new/path/to/foo
22:04:05erikmcvs diff always difss against the repository, or it diff two revisions in the repository
22:06:36Farethat's ok. a bit of perl solved that part
22:06:59erikmI don't see what's wrong with cvs...
22:07:04Farewhat worries me is that the only significant difference I see is in the BLOB_*_BASE stuff
22:07:13FareI'll revert to old values...
22:10:51Farereasons I see: some DMA-based device reads params from RAM, and I overwrite those params, causing havoc
22:11:11Fareafter all, the framebuffer is still active
22:11:19Faremaybe some other device is around there, too?
22:11:43Farethat would explain why loading the kernel low has wreaking effects.
22:13:20Faredoes that sound plausible?
22:16:18erikmthe framebuffer doesn't care
22:16:34erikmit just displays whatever is in it and doesn't really care what that is
22:17:00erikmit won't overwrite something or so
22:17:03Faresomething is wierd
22:17:10FareI just got blob to not crash
22:17:34FareBUT, I had put #define KERNEL_RAM_BASE(0xc0408000)
22:17:45Fareand it load_kernel'ed it to 0xc0008000
22:17:50FareI'm baffled
22:18:10Fare(btw, loading it at c0008000 is what I want)
22:18:35erikmwhatever you do, don't let regions overlap
22:18:57Fareboot just died w/o uncompressing
22:19:11erikmgoes zzz
22:19:17prpplaguenight erikm
22:19:32erikm(00:23 over here)
22:26:12Faredied again!
22:28:05Faredied again
22:28:15FareI don't understand anything anymore!
22:39:47FareI should have kept the working blob, and diff'ed it

Generated by by Jeff Waugh - find it at! Modified by Tim Riker to work with infobot logs, split per channel and by date, etc.