X-Git-Url: https://git.friedersdorff.com/?a=blobdiff_plain;f=tmk_core%2Fldscript_keymap_avr51.x;h=00845bd4d091c2e3270ff83af2a58ea5596dd5e2;hb=12e5a3a13eb86852ad58c131e28ba29c5f09bb2d;hp=864a4dec1d2795c4d1c68b44272747ca806ddb9f;hpb=909277107f4e8289d86a04e6a571ad879925add6;p=max%2Ftmk_keyboard.git diff --git a/tmk_core/ldscript_keymap_avr51.x b/tmk_core/ldscript_keymap_avr51.x index 864a4dec..00845bd4 100644 --- a/tmk_core/ldscript_keymap_avr51.x +++ b/tmk_core/ldscript_keymap_avr51.x @@ -14,7 +14,53 @@ __SIGNATURE_REGION_LENGTH__ = DEFINED(__SIGNATURE_REGION_LENGTH__) ? __SIGNATURE __USER_SIGNATURE_REGION_LENGTH__ = DEFINED(__USER_SIGNATURE_REGION_LENGTH__) ? __USER_SIGNATURE_REGION_LENGTH__ : 1K; MEMORY { + /* With keymap section + * + * TODO: should be as below + * Flash Map of AT90USB(128KB) + * +------------+ 0x0000 + * | .vectors | + * | .progmem | + * | .init0-9 | > text region + * | .text | + * | .fini9-0 | + * | | + * |------------| _etext + * | .data | + * | .bss | > data region + * | .noinit | + * | | + * |------------| 0x1D800 + * | .keymap | > keymap region(2KB) + * |------------| 0x1E000 + * | bootloader | 8KB + * +------------+ 0x1FFFF + * + * FIXME: Use this To fit to ATMega32U4 unimap address + * Flash Map of AT90USB(128KB) + * +------------+ 0x0000 + * | .vectors | + * | .progmem | + * | .init0-9 | > text region + * | .text | + * | .fini9-0 | + * | | + * |------------| _etext + * | .data | + * | .bss | > data region + * | .noinit | + * | | + * |------------| 0x6800 + * | .keymap | > keymap region(2KB) + * |------------| 0x7000 + * ~ ~ + * ~ ~ + * |------------| 0x1E000 + * | bootloader | 8KB + * +------------+ 0x1FFFF + */ text (rx) : ORIGIN = 0, LENGTH = __TEXT_REGION_LENGTH__ + keymap (rw!x) : ORIGIN = 0x6800, LENGTH = 2K data (rw!x) : ORIGIN = 0x800100, LENGTH = __DATA_REGION_LENGTH__ eeprom (rw!x) : ORIGIN = 0x810000, LENGTH = __EEPROM_REGION_LENGTH__ fuse (rw!x) : ORIGIN = 0x820000, LENGTH = __FUSE_REGION_LENGTH__ @@ -196,6 +242,19 @@ SECTIONS _end = . ; PROVIDE (__heap_start = .) ; } > data + /* keymap region is located at end of flash + * .fn_actions Fn actions definitions + * .keymaps Mapping layers + */ + .keymap : + { + PROVIDE(__keymap_start = .) ; + *(.keymap.fn_actions) /* 32*actions = 64bytes */ + . = ALIGN(0x40); + *(.keymap.keymaps) /* rest of .keymap section */ + *(.keymap*) + /* . = ALIGN(0x800); */ /* keymap section takes 2KB- */ + } > keymap = 0x00 /* zero fill */ .eeprom : { /* See .data above... */