irclog2html for blob on 2001.09.23

18:22:46erikmhi
18:36:28prpplaguehowdy
18:37:23prpplagueerikm: are you available for questions about blob?
18:52:08erikmprpplague: yes
18:53:29prpplaguei'm new to blob, the sa-1100 based device i'm trying to get blob running on has a write protected bootload thats not linux friendly
18:53:59prpplaguei'd like to have the original bootloader call blob at a different flash address
18:54:41erikmis the original bootloader able to call a program at any location in memory?
18:55:12prpplagueyes, i've linked the blob-rest to a flash address and can get it to run somewhat
18:55:38prpplaguethe problem i think i'm having is the original bootloader is turning on the mmu and doing some mapping
18:55:49erikmaieee
18:55:59erikmwhat platform is it?
18:56:03prpplaguedo i need to turn the mmu off before getting blob running?
18:56:11erikm(and what bootloader)
18:56:13prpplaguethe ELF board from InHand Electronics
18:56:28prpplagueits based on the old Omnimeter platform
18:57:03erikmhmm
18:58:13erikmblob doesn't care about the MMU as long as it has a one-to-one physical-virtual mapping
18:59:44prpplaguethats the problem flash normally resides at 0x00000000 but after mmu is started the flash is relocated to 0x04000000 and dram at 0x00000000
18:59:56erikmthat's sick
19:00:00prpplaguei know
19:00:17prpplaguei've got some assembly to un-do this
19:00:23erikmoh, that's good
19:00:43erikmthe solution should be quite easy:
19:01:04erikmmake a separate blob-start code that disables the MMU
19:02:11erikmafter disabling the MMU, jump to the 0xc0000400 (start of trampoline.S) and you're in business
19:04:07prpplaguewhat about the fact that the blob with not be located at 0x00000000 in flash but rather at 0x00020000 ?
19:04:45erikmprpplague: that shouldn't be a real problem. blob-rest doesn't know about that
19:05:00prpplagueohh, gotya
19:05:00erikmprpplague: blob-rest assumes it is located at 0xc0000400
19:05:25erikmit only starts to matter as soon as you're trying to write the flash
19:05:43erikmbut I think the most important thing right now is to get it running at all
19:07:01prpplagueright, what about when the get_memory_map function is called in memory.c won't this over right the code at 0xc0000400 ?
19:07:59erikmno, it carefully doesn't touch that part
19:08:08erikm(hey *I* coded it :)
19:08:35prpplaguelol
19:09:15erikmthe memory is scanned in 1MB chunks starting at 0xc0000000, so it jumps over the stuff at 0xc0000400
19:10:43prpplagueahh,so it only writes a zero at the base of each one meg chunk
19:10:51erikmyes
19:11:29erikmand the memory at 0xc0000000 isn't used anyway so we can touch it without problems
19:12:31prpplagueok two more questions and i'll leave you alone...
19:12:43prpplaguein the README on porting it refers to:
19:12:46prpplague #if defined FOOBAR
19:12:46prpplague  mdcas0:         .long   0x1c71c01f
19:12:46prpplague  mdcas1:         .long   0xff1c71c7
19:12:46prpplague  mdcas2:         .long   0xffffffff
19:12:46prpplague  mdcnfg:         .long   0x0334b21f
19:12:47prpplague  #endif
19:13:07prpplaguewhat are these and where do the values come from?
19:14:27erikmthat are the memory timing parameters. it's explained int reference #1 (see the comments at the top of the file)
19:14:43erikmyou won't need them because the hostile bootloader will set them for you
19:15:29prpplagueahh, must have missed it, also there is in the memsetup.c also is liste mcs0 which is not referenced in the README
19:16:50erikmyeah, because that's for the sa1110, not for the sa1100
19:17:11erikmI'm currently rewriting the sa1110 memory setup
19:17:18prpplagueahh, so when i include my new entry, don't include mcs0
19:17:26erikm(or actually: writing it from scratch)
19:17:31prpplaguealright, one left...
19:17:58prpplaguewhen figuring the clock speed 0x09 is 190mhz is 0x0a 206.7 ?
19:18:27erikmif you can't get rid of the evil bootloader, you don't need to setup the memory anymore
19:18:37erikmso you shouldn't have to bother yet
19:18:59prpplagueahh, thats right!
19:20:11prpplaguejust for reference... you might want to include in the README a table of hex values that correspond to clock speed
19:20:40prpplaguethanks erik, i really appreciate the info
19:20:52erikmwhy? it is documented in the SA1100 manual
19:22:20prpplaguei didn't know that, i'm still a sa newbie
19:24:33prpplaguei have the architectural reference manual for arm, what would it be listed under?
19:25:21erikmget it from developer.intel.com
19:25:51prpplaguenever mind, found it
19:26:34erikmit's zipped, it's still huge, but it's good
19:26:52erikm(though arm arm rev5 is also huge)
19:27:28prpplaguei've got the books from one of the old intel sa-1100 multimedia boards
19:27:58prpplagueif you ever find yourself around tyler,tx i'll buy you a steak and a beer, thanks for the help
19:28:23erikmI think I need to keep a notebook with all people who want to buy me a beer :)
19:29:49prpplaguesounds like a nice app for a handheld device, "hmm i'll be in the xxx area, who owes me a beer? let me check my handheld..."
19:30:10prpplagueowe-a-beer-lart
19:32:13erikmheh :)
19:52:33prpplaguethis is an incorrect syntax right?
19:52:36prpplague     ldr r4, =0x000FFFFF
19:53:23erikmwhat do you want to do?
19:54:30prpplaguethis was a cut-n-paster from the code i was sent to turn the mmu maping off, however this line is getting a syntax error during the compile
19:56:10erikmI think you either want ldr r4, 0x000ffff, or ldr r4, #0x000ffff
19:56:17erikmbut the last one wont work
19:56:31erikmehm, sorry, it will
19:57:50prpplaguei think this code was previously used on a m$ setup
19:59:05erikmI think you just want ldr r4, 0x000ffff
19:59:17erikm(load r4 with the contents of memory location 0x000ffff)
19:59:20prpplaguein startup.S, in the copy_loop, what determines where the code comes froms
20:00:00prpplagueya, thats what it was, i'm looking at a ref for intel arm development
20:00:02erikmsee comments just above copy_loop
20:01:59prpplagueya i see this:
20:02:03prpplague/* get a clue where we are running, so we know what to copy */
20:02:03prpplagueandr0, pc, #0xff000000/* we don't care about the low bits */
20:02:24prpplaguebut i not sure i understand what is happening here...
20:03:58erikmit ands the pc with 0xff000000 and puts it in r0
20:04:21erikmso r0 effectively contains the upper 8 bits of the pc
20:04:48erikmwhich means that it contains 0x00000000 when running from flash, or 0xc0000000 when running from RAM
20:07:24prpplagueso if hardcoded r0 with the location 0x0002000 it would copy from flash to ram properly, a better way would be to add a flag or something for non-standard locations
20:08:02erikmhardcoding should do for the time being
20:08:17prpplaguethanks once again
20:12:36erikmgoes zzz
20:12:37erikmbye
23:44:48prpplaguehowdy BZFlag

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