Changeset 1190


Ignore:
Timestamp:
05/24/11 12:05:52 (2 years ago)
Author:
msl
Message:

EXMEM support

  • author rudi

+ optional EXMEM support for A590 101b and A720 100c

Location:
trunk/platform
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/platform/a590/sub/101b/boot.c

    r891 r1190  
    124124              "MOV     R0, #0x53000\n" 
    125125              "STR     R0, [SP,#0x74-0x70]\n" 
    126         ); 
    127 //              "LDR     R0, =0xE5304\n"          // 0xa5304 + 0x40000, note: 0x20000 *should* have been enough, but our code was overwritten... 
    128                                                 // ...thus we push the memory pool a little more up (0x30000 = 192k) 
    129         asm volatile ( 
     126#if defined(OPT_CHDK_IN_EXMEM)  
     127              "LDR     R0, =0xA5304\n" // use original heap offset since CHDK is loaded in high memory  
     128#else 
    130129              "LDR     R0, =new_sa\n" 
    131130              "LDR     R0, [R0]\n" 
    132         ); 
    133         asm volatile ( 
     131#endif 
    134132              "LDR     R2, =0x279C00\n" 
    135133              "LDR     R1, =0x272968\n" 
  • trunk/platform/a590/sub/101b/makefile.inc

    r801 r1190  
    55 
    66MEMBASEADDR=0x1900 
     7ROMBASEADDR=0xffc00000 
    78RESTARTSTART=0x63000 
    8 MEMISOSTART=0xA5304 
    9 ROMBASEADDR=0xffc00000 
    109 
     10MAXRAMADDR=0x1FFFFFF # 32MB RAM 
     11EXMEM_BUFFER_SIZE=0x400000 # Amount of EXMEM memory to allocate for CHDK = 4MB, on change update MEMISOSTART 
     12EXMEM_HEAP_SKIP=0x0 # no skipping needed 
     13 
     14ifdef OPT_CHDK_IN_EXMEM 
     15MEMISOSTART=0x1BFFFD0  # MAXRAMADDR+1 - EXMEM_HEAP_SKIP - EXMEM_BUFFER_SIZE -32 
     16else 
     17MEMISOSTART=0xA5304  # original non-exmem value  
     18endif 
    1119 
    1220PLFLAGS=-DMEMBASEADDR=$(MEMBASEADDR) -DMEMISOSTART=$(MEMISOSTART) -DMEMISOSIZE=$(MEMISOSIZE) 
  • trunk/platform/a590/sub/101b/stubs_entry_2.S

    r1018 r1190  
    4343NHSTUB(TurnOnMic, 0xFFC35CFC) 
    4444NHSTUB(TurnOffMic, 0xFFC35D28) 
     45 
     46NHSTUB(exmem_alloc, 0xFFC5869C) 
  • trunk/platform/a720/sub/100c/boot.c

    r1091 r1190  
    121121              "MOV     R0, #0x53000\n" 
    122122              "STR     R0, [SP,#0x74-0x70]\n" 
    123         ); 
    124 //              "LDR     R0, =0xDD024\n"          // 0x9d024 + 0x40000, note: 0x20000 *should* have been enough, but our code was overwritten... 
    125                                                 // ...thus we push the memory pool a little more up (0x30000 = 192k) 
    126         asm volatile ( 
     123#if defined(OPT_CHDK_IN_EXMEM)  
     124              "LDR     R0, =0x9D024\n" // use original heap offset since CHDK is loaded in high memory  
     125#else 
    127126              "LDR     R0, =new_sa\n" 
    128127              "LDR     R0, [R0]\n" 
    129         ); 
    130         asm volatile ( 
     128#endif 
    131129              "LDR     R2, =0x2ABC00\n" 
    132130              "LDR     R1, =0x2A4968\n" 
  • trunk/platform/a720/sub/100c/makefile.inc

    r801 r1190  
    55 
    66MEMBASEADDR=0x1900 
     7ROMBASEADDR=0xffc00000 
    78RESTARTSTART=0x50000 
    8 MEMISOSTART=0x9D024 
    9 ROMBASEADDR=0xffc00000 
    109 
     10MAXRAMADDR=0x1FFFFFF # 32MB RAM 
     11EXMEM_BUFFER_SIZE=0x400000 # Amount of EXMEM memory to allocate for CHDK = 4MB, on change update MEMISOSTART 
     12EXMEM_HEAP_SKIP=0x0 # no skipping needed 
     13 
     14ifdef OPT_CHDK_IN_EXMEM 
     15MEMISOSTART=0x1BFFFD0  # MAXRAMADDR+1 - EXMEM_HEAP_SKIP - EXMEM_BUFFER_SIZE -32 
     16else 
     17MEMISOSTART=0x9D024  # original non-exmem value  
     18endif 
    1119 
    1220PLFLAGS=-DMEMBASEADDR=$(MEMBASEADDR) -DMEMISOSTART=$(MEMISOSTART) -DMEMISOSIZE=$(MEMISOSIZE) 
  • trunk/platform/a720/sub/100c/stubs_entry_2.S

    r1069 r1190  
    199199 
    200200NHSTUB(apex2us, 0xFFD6363C) //for extra long exposures 
     201 
     202NHSTUB(exmem_alloc, 0xFFC56B44) 
Note: See TracChangeset for help on using the changeset viewer.