Kyösti Mälkki has uploaded this change for review.

View Change

usbdebug: Use fixed size field

The structure is placed inside CBMEM, one should
use types with fixed size.

Change-Id: I60382664a53650b225abc1f77c87ed4e121d429e
Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
---
M src/drivers/usb/ehci_debug.c
1 file changed, 17 insertions(+), 12 deletions(-)

git pull ssh://review.coreboot.org:29418/coreboot refs/changes/82/31182/1
diff --git a/src/drivers/usb/ehci_debug.c b/src/drivers/usb/ehci_debug.c
index cf3976c..3532466 100644
--- a/src/drivers/usb/ehci_debug.c
+++ b/src/drivers/usb/ehci_debug.c
@@ -28,8 +28,8 @@
#include "ehci.h"

struct ehci_debug_info {
- void *ehci_base;
- void *ehci_debug;
+ u64 ehci_base;
+ u64 ehci_debug;

struct dbgp_pipe ep_pipe[DBGP_MAX_ENDPOINTS];
};
@@ -262,7 +262,9 @@
int dbgp_bulk_write_x(struct dbgp_pipe *pipe, const char *bytes, int size)
{
struct ehci_debug_info *dbg_info = dbgp_ehci_info();
- return dbgp_bulk_write(dbg_info->ehci_debug, pipe, bytes, size);
+ struct ehci_dbg_port *port;
+ port = (void *)(uintptr_t)dbg_info->ehci_debug;
+ return dbgp_bulk_write(port, pipe, bytes, size);
}

static int dbgp_bulk_read(struct ehci_dbg_port *ehci_debug, struct dbgp_pipe *pipe,
@@ -296,7 +298,9 @@
int dbgp_bulk_read_x(struct dbgp_pipe *pipe, void *data, int size)
{
struct ehci_debug_info *dbg_info = dbgp_ehci_info();
- return dbgp_bulk_read(dbg_info->ehci_debug, pipe, data, size);
+ struct ehci_dbg_port *port;
+ port = (void *)(uintptr_t)dbg_info->ehci_debug;
+ return dbgp_bulk_read(port, pipe, data, size);
}

void dbgp_mdelay(int ms)
@@ -446,8 +450,8 @@

/* Keep all endpoints disabled before any printk() call. */
memset(info, 0, sizeof (*info));
- info->ehci_base = (void *)ehci_bar;
- info->ehci_debug = (void *)(ehci_bar + offset);
+ info->ehci_base = ehci_bar;
+ info->ehci_debug = ehci_bar + offset;
info->ep_pipe[0].status |= DBGP_EP_NOT_PRESENT;

dprintk(BIOS_INFO, "ehci_bar: 0x%x debug_offset 0x%x\n", ehci_bar, offset);
@@ -456,7 +460,7 @@
ehci_regs = (struct ehci_regs *)(ehci_bar +
HC_LENGTH(read32(&ehci_caps->hc_capbase)));

- struct ehci_dbg_port *ehci_debug = info->ehci_debug;
+ struct ehci_dbg_port *ehci_debug = (void *)(uintptr_t)info->ehci_debug;

if (CONFIG_USBDEBUG_DEFAULT_PORT > 0)
ehci_debug_select_port(CONFIG_USBDEBUG_DEFAULT_PORT);
@@ -581,7 +585,8 @@

dbgp_mdelay(100);

- ret = dbgp_probe_gadget(info->ehci_debug, &info->ep_pipe[0]);
+ struct ehci_dbg_port *port = (void *)(uintptr_t)info->ehci_debug;
+ ret = dbgp_probe_gadget(port, &info->ep_pipe[0]);
if (ret < 0) {
dprintk(BIOS_INFO, "Could not probe gadget on debug port.\n");
ret = -6;
@@ -653,12 +658,12 @@
void usbdebug_re_enable(unsigned ehci_base)
{
struct ehci_debug_info *dbg_info = dbgp_ehci_info();
- unsigned diff;
+ u64 diff;
int i;

- diff = (unsigned)dbg_info->ehci_base - ehci_base;
+ diff = dbg_info->ehci_base - ehci_base;
dbg_info->ehci_debug -= diff;
- dbg_info->ehci_base = (void *)ehci_base;
+ dbg_info->ehci_base = ehci_base;

for (i=0; i<DBGP_MAX_ENDPOINTS; i++)
if (dbg_info->ep_pipe[i].status & DBGP_EP_VALID)
@@ -678,7 +683,7 @@
int usbdebug_hw_init(bool force)
{
struct ehci_debug_info *dbg_info = dbgp_ehci_info();
- unsigned int ehci_base, dbg_offset;
+ u32 ehci_base, dbg_offset;

if (dbgp_enabled() && !force)
return 0;

To view, visit change 31182. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: I60382664a53650b225abc1f77c87ed4e121d429e
Gerrit-Change-Number: 31182
Gerrit-PatchSet: 1
Gerrit-Owner: Kyösti Mälkki <kyosti.malkki@gmail.com>
Gerrit-MessageType: newchange