Skip to content
Snippets Groups Projects
Commit 6bb9ba72 authored by Simon Glass's avatar Simon Glass Committed by Tom Rini
Browse files

ppc: Move dp_alloc_base, dp_alloc_top to arch_global_data


Move these fields into arch_global_data and tidy up.

Signed-off-by: default avatarSimon Glass <sjg@chromium.org>
parent 43e60814
No related branches found
No related tags found
No related merge requests found
...@@ -30,8 +30,8 @@ m8260_cpm_reset(void) ...@@ -30,8 +30,8 @@ m8260_cpm_reset(void)
/* Reclaim the DP memory for our use. /* Reclaim the DP memory for our use.
*/ */
gd->dp_alloc_base = CPM_DATAONLY_BASE; gd->arch.dp_alloc_base = CPM_DATAONLY_BASE;
gd->dp_alloc_top = gd->dp_alloc_base + CPM_DATAONLY_SIZE; gd->arch.dp_alloc_top = gd->arch.dp_alloc_base + CPM_DATAONLY_SIZE;
/* /*
* Reset CPM * Reset CPM
...@@ -60,21 +60,22 @@ m8260_cpm_dpalloc(uint size, uint align) ...@@ -60,21 +60,22 @@ m8260_cpm_dpalloc(uint size, uint align)
uint savebase; uint savebase;
align_mask = align - 1; align_mask = align - 1;
savebase = gd->dp_alloc_base; savebase = gd->arch.dp_alloc_base;
if ((off = (gd->dp_alloc_base & align_mask)) != 0) off = gd->arch.dp_alloc_base & align_mask;
gd->dp_alloc_base += (align - off); if (off != 0)
gd->arch.dp_alloc_base += (align - off);
if ((off = size & align_mask) != 0) if ((off = size & align_mask) != 0)
size += align - off; size += align - off;
if ((gd->dp_alloc_base + size) >= gd->dp_alloc_top) { if ((gd->arch.dp_alloc_base + size) >= gd->arch.dp_alloc_top) {
gd->dp_alloc_base = savebase; gd->arch.dp_alloc_base = savebase;
panic("m8260_cpm_dpalloc: ran out of dual port ram!"); panic("m8260_cpm_dpalloc: ran out of dual port ram!");
} }
retloc = gd->dp_alloc_base; retloc = gd->arch.dp_alloc_base;
gd->dp_alloc_base += size; gd->arch.dp_alloc_base += size;
memset((void *)&immr->im_dprambase[retloc], 0, size); memset((void *)&immr->im_dprambase[retloc], 0, size);
......
...@@ -43,8 +43,8 @@ m8560_cpm_reset(void) ...@@ -43,8 +43,8 @@ m8560_cpm_reset(void)
/* Reclaim the DP memory for our use. /* Reclaim the DP memory for our use.
*/ */
gd->dp_alloc_base = CPM_DATAONLY_BASE; gd->arch.dp_alloc_base = CPM_DATAONLY_BASE;
gd->dp_alloc_top = gd->dp_alloc_base + CPM_DATAONLY_SIZE; gd->arch.dp_alloc_top = gd->arch.dp_alloc_base + CPM_DATAONLY_SIZE;
/* /*
* Reset CPM * Reset CPM
...@@ -69,21 +69,22 @@ m8560_cpm_dpalloc(uint size, uint align) ...@@ -69,21 +69,22 @@ m8560_cpm_dpalloc(uint size, uint align)
uint savebase; uint savebase;
align_mask = align - 1; align_mask = align - 1;
savebase = gd->dp_alloc_base; savebase = gd->arch.dp_alloc_base;
if ((off = (gd->dp_alloc_base & align_mask)) != 0) off = gd->arch.dp_alloc_base & align_mask;
gd->dp_alloc_base += (align - off); if (off != 0)
gd->arch.dp_alloc_base += (align - off);
if ((off = size & align_mask) != 0) if ((off = size & align_mask) != 0)
size += align - off; size += align - off;
if ((gd->dp_alloc_base + size) >= gd->dp_alloc_top) { if ((gd->arch.dp_alloc_base + size) >= gd->arch.dp_alloc_top) {
gd->dp_alloc_base = savebase; gd->arch.dp_alloc_base = savebase;
panic("m8560_cpm_dpalloc: ran out of dual port ram!"); panic("m8560_cpm_dpalloc: ran out of dual port ram!");
} }
retloc = gd->dp_alloc_base; retloc = gd->arch.dp_alloc_base;
gd->dp_alloc_base += size; gd->arch.dp_alloc_base += size;
memset((void *)&(cpm->im_dprambase[retloc]), 0, size); memset((void *)&(cpm->im_dprambase[retloc]), 0, size);
......
...@@ -31,8 +31,8 @@ DECLARE_GLOBAL_DATA_PTR; ...@@ -31,8 +31,8 @@ DECLARE_GLOBAL_DATA_PTR;
int dpram_init (void) int dpram_init (void)
{ {
/* Reclaim the DP memory for our use. */ /* Reclaim the DP memory for our use. */
gd->dp_alloc_base = CPM_DATAONLY_BASE; gd->arch.dp_alloc_base = CPM_DATAONLY_BASE;
gd->dp_alloc_top = CPM_DATAONLY_BASE + CPM_DATAONLY_SIZE; gd->arch.dp_alloc_top = CPM_DATAONLY_BASE + CPM_DATAONLY_SIZE;
return (0); return (0);
} }
...@@ -43,19 +43,19 @@ int dpram_init (void) ...@@ -43,19 +43,19 @@ int dpram_init (void)
*/ */
uint dpram_alloc (uint size) uint dpram_alloc (uint size)
{ {
uint addr = gd->dp_alloc_base; uint addr = gd->arch.dp_alloc_base;
if ((gd->dp_alloc_base + size) >= gd->dp_alloc_top) if ((gd->arch.dp_alloc_base + size) >= gd->arch.dp_alloc_top)
return (CPM_DP_NOSPACE); return (CPM_DP_NOSPACE);
gd->dp_alloc_base += size; gd->arch.dp_alloc_base += size;
return addr; return addr;
} }
uint dpram_base (void) uint dpram_base (void)
{ {
return gd->dp_alloc_base; return gd->arch.dp_alloc_base;
} }
/* Allocate some memory from the dual ported ram. We may want to /* Allocate some memory from the dual ported ram. We may want to
...@@ -66,12 +66,12 @@ uint dpram_alloc_align (uint size, uint align) ...@@ -66,12 +66,12 @@ uint dpram_alloc_align (uint size, uint align)
{ {
uint addr, mask = align - 1; uint addr, mask = align - 1;
addr = (gd->dp_alloc_base + mask) & ~mask; addr = (gd->arch.dp_alloc_base + mask) & ~mask;
if ((addr + size) >= gd->dp_alloc_top) if ((addr + size) >= gd->arch.dp_alloc_top)
return (CPM_DP_NOSPACE); return (CPM_DP_NOSPACE);
gd->dp_alloc_base = addr + size; gd->arch.dp_alloc_base = addr + size;
return addr; return addr;
} }
...@@ -80,6 +80,6 @@ uint dpram_base_align (uint align) ...@@ -80,6 +80,6 @@ uint dpram_base_align (uint align)
{ {
uint mask = align - 1; uint mask = align - 1;
return (gd->dp_alloc_base + mask) & ~mask; return (gd->arch.dp_alloc_base + mask) & ~mask;
} }
#endif /* CONFIG_SYS_ALLOC_DPRAM */ #endif /* CONFIG_SYS_ALLOC_DPRAM */
...@@ -112,6 +112,10 @@ struct arch_global_data { ...@@ -112,6 +112,10 @@ struct arch_global_data {
unsigned long arbiter_event_attributes; unsigned long arbiter_event_attributes;
unsigned long arbiter_event_address; unsigned long arbiter_event_address;
#endif #endif
#if defined(CONFIG_SYS_ALLOC_DPRAM) || defined(CONFIG_CPM2)
unsigned int dp_alloc_base;
unsigned int dp_alloc_top;
#endif
}; };
/* /*
...@@ -141,10 +145,6 @@ typedef struct global_data { ...@@ -141,10 +145,6 @@ typedef struct global_data {
#ifdef CONFIG_PRE_CONSOLE_BUFFER #ifdef CONFIG_PRE_CONSOLE_BUFFER
unsigned long precon_buf_idx; /* Pre-Console buffer index */ unsigned long precon_buf_idx; /* Pre-Console buffer index */
#endif #endif
#if defined(CONFIG_SYS_ALLOC_DPRAM) || defined(CONFIG_CPM2)
unsigned int dp_alloc_base;
unsigned int dp_alloc_top;
#endif
#if defined(CONFIG_4xx) #if defined(CONFIG_4xx)
u32 uart_clk; u32 uart_clk;
#endif /* CONFIG_4xx */ #endif /* CONFIG_4xx */
......
...@@ -356,7 +356,7 @@ uint dpalloc (uint size, uint align) ...@@ -356,7 +356,7 @@ uint dpalloc (uint size, uint align)
/* Pointer to initial global data area */ /* Pointer to initial global data area */
if (dpinit_done == 0) { if (dpinit_done == 0) {
dpbase = gd->dp_alloc_base; dpbase = gd->arch.dp_alloc_base;
dpinit_done = 1; dpinit_done = 1;
} }
...@@ -369,7 +369,7 @@ uint dpalloc (uint size, uint align) ...@@ -369,7 +369,7 @@ uint dpalloc (uint size, uint align)
if ((off = size & align_mask) != 0) if ((off = size & align_mask) != 0)
size += align - off; size += align - off;
if ((dpbase + size) >= gd->dp_alloc_top) { if ((dpbase + size) >= gd->arch.dp_alloc_top) {
dpbase = savebase; dpbase = savebase;
printf ("dpalloc: ran out of dual port ram!"); printf ("dpalloc: ran out of dual port ram!");
return 0; return 0;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment