summaryrefslogtreecommitdiffstats
path: root/firmware/target
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target')
-rw-r--r--firmware/target/arm/imx31/app.lds1
-rw-r--r--firmware/target/arm/ipod/app.lds19
-rw-r--r--firmware/target/arm/iriver/app.lds19
-rw-r--r--firmware/target/arm/olympus/app.lds19
-rw-r--r--firmware/target/arm/sandisk/app.lds19
-rw-r--r--firmware/target/arm/usb-drv-arc.c9
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;