mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-07-11 17:11:37 +00:00
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: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
43e60814b3
commit
6bb9ba7260
5 changed files with 36 additions and 34 deletions
|
@ -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)
|
||||||
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)
|
||||||
|
|
||||||
/* 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)
|
||||||
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;
|
||||||
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)
|
||||||
*/
|
*/
|
||||||
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)
|
||||||
{
|
{
|
||||||
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)
|
||||||
{
|
{
|
||||||
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 {
|
||||||
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 {
|
||||||
#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)
|
||||||
/* 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)
|
||||||
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;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue