diff options
author | Frank Gevaerts <frank@gevaerts.be> | 2008-04-20 18:43:47 +0000 |
---|---|---|
committer | Frank Gevaerts <frank@gevaerts.be> | 2008-04-20 18:43:47 +0000 |
commit | 7a2d9ddb08edb65b39bb3276dd60aec4ce7e8d87 (patch) | |
tree | 599cff1325bca86d777b65eb183245bd5717cac4 /firmware/target | |
parent | 850a11250a8c5b6825b080ff843f30fd68cb71f6 (diff) | |
download | rockbox-7a2d9ddb08edb65b39bb3276dd60aec4ce7e8d87.tar.gz rockbox-7a2d9ddb08edb65b39bb3276dd60aec4ce7e8d87.zip |
move some data around to place qh_array at the start of iram. This saves up to about 2k iram on PP
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17194 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/target')
-rw-r--r-- | firmware/target/arm/imx31/app.lds | 1 | ||||
-rw-r--r-- | firmware/target/arm/ipod/app.lds | 19 | ||||
-rw-r--r-- | firmware/target/arm/iriver/app.lds | 19 | ||||
-rw-r--r-- | firmware/target/arm/olympus/app.lds | 19 | ||||
-rw-r--r-- | firmware/target/arm/sandisk/app.lds | 19 | ||||
-rw-r--r-- | firmware/target/arm/usb-drv-arc.c | 9 |
6 files changed, 49 insertions, 37 deletions
diff --git a/firmware/target/arm/imx31/app.lds b/firmware/target/arm/imx31/app.lds index 7a7bd550d1..3725daca04 100644 --- a/firmware/target/arm/imx31/app.lds +++ b/firmware/target/arm/imx31/app.lds @@ -152,6 +152,7 @@ SECTIONS .devbss (NOLOAD) : { _devbssdata = .; + *(.qharray) *(.devbss*) _devbssend = .; } > DEVBSS diff --git a/firmware/target/arm/ipod/app.lds b/firmware/target/arm/ipod/app.lds index bf5eae0515..ccd23eb31b 100644 --- a/firmware/target/arm/ipod/app.lds +++ b/firmware/target/arm/ipod/app.lds @@ -104,7 +104,16 @@ SECTIONS _vectorscopy = LOADADDR(.vectors); - .iram IRAMORIG : + .ibss IRAMORIG (NOLOAD) : + { + _iedata = .; + *(.qharray) + *(.ibss) + . = ALIGN(0x4); + _iend = .; + } > IRAM + + .iram _iend : { _iramstart = .; *(.icode) @@ -116,14 +125,6 @@ SECTIONS _iramcopy = LOADADDR(.iram); - .ibss (NOLOAD) : - { - _iedata = .; - *(.ibss) - . = ALIGN(0x4); - _iend = .; - } > IRAM - .idle_stacks (NOLOAD) : { *(.idle_stacks) diff --git a/firmware/target/arm/iriver/app.lds b/firmware/target/arm/iriver/app.lds index bf5eae0515..ccd23eb31b 100644 --- a/firmware/target/arm/iriver/app.lds +++ b/firmware/target/arm/iriver/app.lds @@ -104,7 +104,16 @@ SECTIONS _vectorscopy = LOADADDR(.vectors); - .iram IRAMORIG : + .ibss IRAMORIG (NOLOAD) : + { + _iedata = .; + *(.qharray) + *(.ibss) + . = ALIGN(0x4); + _iend = .; + } > IRAM + + .iram _iend : { _iramstart = .; *(.icode) @@ -116,14 +125,6 @@ SECTIONS _iramcopy = LOADADDR(.iram); - .ibss (NOLOAD) : - { - _iedata = .; - *(.ibss) - . = ALIGN(0x4); - _iend = .; - } > IRAM - .idle_stacks (NOLOAD) : { *(.idle_stacks) diff --git a/firmware/target/arm/olympus/app.lds b/firmware/target/arm/olympus/app.lds index bf5eae0515..ccd23eb31b 100644 --- a/firmware/target/arm/olympus/app.lds +++ b/firmware/target/arm/olympus/app.lds @@ -104,7 +104,16 @@ SECTIONS _vectorscopy = LOADADDR(.vectors); - .iram IRAMORIG : + .ibss IRAMORIG (NOLOAD) : + { + _iedata = .; + *(.qharray) + *(.ibss) + . = ALIGN(0x4); + _iend = .; + } > IRAM + + .iram _iend : { _iramstart = .; *(.icode) @@ -116,14 +125,6 @@ SECTIONS _iramcopy = LOADADDR(.iram); - .ibss (NOLOAD) : - { - _iedata = .; - *(.ibss) - . = ALIGN(0x4); - _iend = .; - } > IRAM - .idle_stacks (NOLOAD) : { *(.idle_stacks) diff --git a/firmware/target/arm/sandisk/app.lds b/firmware/target/arm/sandisk/app.lds index bf5eae0515..ccd23eb31b 100644 --- a/firmware/target/arm/sandisk/app.lds +++ b/firmware/target/arm/sandisk/app.lds @@ -104,7 +104,16 @@ SECTIONS _vectorscopy = LOADADDR(.vectors); - .iram IRAMORIG : + .ibss IRAMORIG (NOLOAD) : + { + _iedata = .; + *(.qharray) + *(.ibss) + . = ALIGN(0x4); + _iend = .; + } > IRAM + + .iram _iend : { _iramstart = .; *(.icode) @@ -116,14 +125,6 @@ SECTIONS _iramcopy = LOADADDR(.iram); - .ibss (NOLOAD) : - { - _iedata = .; - *(.ibss) - . = ALIGN(0x4); - _iend = .; - } > IRAM - .idle_stacks (NOLOAD) : { *(.idle_stacks) diff --git a/firmware/target/arm/usb-drv-arc.c b/firmware/target/arm/usb-drv-arc.c index a2f8819962..92955e1ac2 100644 --- a/firmware/target/arm/usb-drv-arc.c +++ b/firmware/target/arm/usb-drv-arc.c @@ -338,8 +338,15 @@ struct queue_head { unsigned int wait; /* for softwate use, indicates if the transfer is blocking */ } __attribute__((packed)); +#if CONFIG_CPU == IMX31L +static struct queue_head qh_array[NUM_ENDPOINTS*2] + QHARRAY_ATTR __attribute__((aligned (2048))); +#else +/* This still needs to be 2048 byte aligned, but QHARRAY_ATTR should take + care of that */ static struct queue_head qh_array[NUM_ENDPOINTS*2] - USBDEVBSS_ATTR __attribute__((aligned (2048))); + QHARRAY_ATTR __attribute__((aligned (4))); +#endif static struct wakeup transfer_completion_signal[NUM_ENDPOINTS*2] SHAREDBSS_ATTR; |