summaryrefslogtreecommitdiff
path: root/include/link_defs.h
diff options
context:
space:
mode:
authorAnton Staaf <robotboy@chromium.org>2015-04-08 10:44:40 -0700
committerChromeOS Commit Bot <chromeos-commit-bot@chromium.org>2015-04-13 20:00:58 +0000
commit8c0cef260727ba125def62cfd0ef9c09fc9c2172 (patch)
tree15e9e12056e60a51c360bb939d60c327aec69010 /include/link_defs.h
parent0016de8250807601f46fb3736f93518155eca95f (diff)
downloadchrome-ec-8c0cef260727ba125def62cfd0ef9c09fc9c2172.tar.gz
USB: Fix memcpy routines
The memcpy like routines for moving to and from usb packet RAM couldn't deal with all unaligned uses, this fixes their behavior. In particular, a previous caller might assume that the packet RAM addresses were contiguous and attempt to break up a call into two separate chunks (as the queue insertion/removal code does). But this can lead to invalid pointers passed to these memcpy routines. A much cleaner solution is to make the packet RAM address space contiguous. To do so the memcpy routines take packet RAM addresses instead of AHB address space mapped addresses and __usb_ram_start needed to change to be of type usb_uint so that pointer arithmatic on it worked correctly on all platforms, this also allowed the usb_sram_addr macro to be simplified. Signed-off-by: Anton Staaf <robotboy@chromium.org> BRANCH=None BUG=None TEST=make buildall -j Verify that USB still works on Ryu and discovery-stm32f072 Change-Id: I479461f07a3203f1e6e0cf9705f512a5a43c4646 Reviewed-on: https://chromium-review.googlesource.com/264764 Trybot-Ready: Anton Staaf <robotboy@chromium.org> Tested-by: Anton Staaf <robotboy@chromium.org> Reviewed-by: Anton Staaf <robotboy@chromium.org> Commit-Queue: Anton Staaf <robotboy@chromium.org>
Diffstat (limited to 'include/link_defs.h')
-rw-r--r--include/link_defs.h5
1 files changed, 0 insertions, 5 deletions
diff --git a/include/link_defs.h b/include/link_defs.h
index cfb7f0ced2..92783eb946 100644
--- a/include/link_defs.h
+++ b/include/link_defs.h
@@ -57,11 +57,6 @@ extern const struct hook_data __hooks_second_end[];
extern const struct deferred_data __deferred_funcs[];
extern const struct deferred_data __deferred_funcs_end[];
-/* USB data */
-extern const uint8_t __usb_desc[];
-extern const uint8_t __usb_desc_end[];
-extern const uint16_t __usb_ram_start[];
-
/* I2C fake devices for unit testing */
extern const struct test_i2c_read_dev __test_i2c_read8[];
extern const struct test_i2c_read_dev __test_i2c_read8_end[];