Index: firmware/export/pp5020.h =================================================================== --- firmware/export/pp5020.h (revision 17190) +++ firmware/export/pp5020.h (working copy) @@ -21,6 +21,8 @@ /* All info gleaned and/or copied from the iPodLinux project. */ +#define QHARRAY_ATTR __attribute__((section(".qharray"),nocommon)) + /* DRAM starts at 0x10000000, but in Rockbox we remap it to 0x00000000 */ #define DRAM_START 0x10000000 Index: firmware/export/imx31l.h =================================================================== --- firmware/export/imx31l.h (revision 17190) +++ firmware/export/imx31l.h (working copy) @@ -34,6 +34,7 @@ #define FRAME_SIZE (240*320*2) #define DEVBSS_ATTR __attribute__((section(".devbss"),nocommon)) +#define QHARRAY_ATTR DEVBSS_ATTR /* * AIPS 1 Index: firmware/target/arm/usb-drv-arc.c =================================================================== --- firmware/target/arm/usb-drv-arc.c (revision 17190) +++ firmware/target/arm/usb-drv-arc.c (working copy) @@ -339,7 +339,7 @@ } __attribute__((packed)); static struct queue_head qh_array[NUM_ENDPOINTS*2] - USBDEVBSS_ATTR __attribute__((aligned (2048))); + QHARRAY_ATTR __attribute__((aligned (2048))); static struct wakeup transfer_completion_signal[NUM_ENDPOINTS*2] SHAREDBSS_ATTR; Index: firmware/target/arm/olympus/app.lds =================================================================== --- firmware/target/arm/olympus/app.lds (revision 17190) +++ firmware/target/arm/olympus/app.lds (working copy) @@ -104,8 +104,17 @@ _vectorscopy = LOADADDR(.vectors); - .iram IRAMORIG : + .ibss IRAMORIG (NOLOAD) : { + _iedata = .; + *(.qharray) + *(.ibss) + . = ALIGN(0x4); + _iend = .; + } > IRAM + + .iram _iend : + { _iramstart = .; *(.icode) *(.irodata) @@ -116,14 +125,6 @@ _iramcopy = LOADADDR(.iram); - .ibss (NOLOAD) : - { - _iedata = .; - *(.ibss) - . = ALIGN(0x4); - _iend = .; - } > IRAM - .idle_stacks (NOLOAD) : { *(.idle_stacks) Index: firmware/target/arm/ipod/app.lds =================================================================== --- firmware/target/arm/ipod/app.lds (revision 17190) +++ firmware/target/arm/ipod/app.lds (working copy) @@ -104,8 +104,17 @@ _vectorscopy = LOADADDR(.vectors); - .iram IRAMORIG : + .ibss IRAMORIG (NOLOAD) : { + _iedata = .; + *(.qharray) + *(.ibss) + . = ALIGN(0x4); + _iend = .; + } > IRAM + + .iram _iend : + { _iramstart = .; *(.icode) *(.irodata) @@ -116,14 +125,6 @@ _iramcopy = LOADADDR(.iram); - .ibss (NOLOAD) : - { - _iedata = .; - *(.ibss) - . = ALIGN(0x4); - _iend = .; - } > IRAM - .idle_stacks (NOLOAD) : { *(.idle_stacks) Index: firmware/target/arm/sandisk/app.lds =================================================================== --- firmware/target/arm/sandisk/app.lds (revision 17190) +++ firmware/target/arm/sandisk/app.lds (working copy) @@ -104,8 +104,17 @@ _vectorscopy = LOADADDR(.vectors); - .iram IRAMORIG : + .ibss IRAMORIG (NOLOAD) : { + _iedata = .; + *(.qharray) + *(.ibss) + . = ALIGN(0x4); + _iend = .; + } > IRAM + + .iram _iend : + { _iramstart = .; *(.icode) *(.irodata) @@ -116,14 +125,6 @@ _iramcopy = LOADADDR(.iram); - .ibss (NOLOAD) : - { - _iedata = .; - *(.ibss) - . = ALIGN(0x4); - _iend = .; - } > IRAM - .idle_stacks (NOLOAD) : { *(.idle_stacks) Index: firmware/target/arm/iriver/app.lds =================================================================== --- firmware/target/arm/iriver/app.lds (revision 17190) +++ firmware/target/arm/iriver/app.lds (working copy) @@ -104,8 +104,17 @@ _vectorscopy = LOADADDR(.vectors); - .iram IRAMORIG : + .ibss IRAMORIG (NOLOAD) : { + _iedata = .; + *(.qharray) + *(.ibss) + . = ALIGN(0x4); + _iend = .; + } > IRAM + + .iram _iend : + { _iramstart = .; *(.icode) *(.irodata) @@ -116,14 +125,6 @@ _iramcopy = LOADADDR(.iram); - .ibss (NOLOAD) : - { - _iedata = .; - *(.ibss) - . = ALIGN(0x4); - _iend = .; - } > IRAM - .idle_stacks (NOLOAD) : { *(.idle_stacks)