mirror of
https://github.com/Stichting-MINIX-Research-Foundation/u-boot.git
synced 2025-09-11 05:02:26 -04:00
Merge with /home/wd/git/u-boot/custodian/u-boot-mpc86xx
This commit is contained in:
commit
5c3d767621
@ -59,7 +59,7 @@
|
|||||||
#define LAWAR2 (LAWAR_EN | LAWAR_TRGT_IF_PCI1 | (LAWAR_SIZE & LAWAR_SIZE_512M))
|
#define LAWAR2 (LAWAR_EN | LAWAR_TRGT_IF_PCI1 | (LAWAR_SIZE & LAWAR_SIZE_512M))
|
||||||
|
|
||||||
#define LAWBAR3 ((CFG_PCI2_MEM_BASE>>12) & 0xffffff)
|
#define LAWBAR3 ((CFG_PCI2_MEM_BASE>>12) & 0xffffff)
|
||||||
#define LAWAR3 (~LAWAR_EN & (LAWAR_TRGT_IF_PCI2 | (LAWAR_SIZE & LAWAR_SIZE_512M)))
|
#define LAWAR3 (LAWAR_EN | LAWAR_TRGT_IF_PCI2 | (LAWAR_SIZE & LAWAR_SIZE_512M))
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This is not so much the SDRAM map as it is the whole localbus map.
|
* This is not so much the SDRAM map as it is the whole localbus map.
|
||||||
@ -67,11 +67,11 @@
|
|||||||
#define LAWBAR4 ((0xf8100000>>12) & 0xffffff)
|
#define LAWBAR4 ((0xf8100000>>12) & 0xffffff)
|
||||||
#define LAWAR4 (LAWAR_EN | LAWAR_TRGT_IF_LBC | (LAWAR_SIZE & LAWAR_SIZE_2M))
|
#define LAWAR4 (LAWAR_EN | LAWAR_TRGT_IF_LBC | (LAWAR_SIZE & LAWAR_SIZE_2M))
|
||||||
|
|
||||||
#define LAWBAR5 ((CFG_PCI1_IO_BASE>>12) & 0xffffff)
|
#define LAWBAR5 ((CFG_PCI1_IO_PHYS>>12) & 0xffffff)
|
||||||
#define LAWAR5 (LAWAR_EN | LAWAR_TRGT_IF_PCI1 | (LAWAR_SIZE & LAWAR_SIZE_16M))
|
#define LAWAR5 (LAWAR_EN | LAWAR_TRGT_IF_PCI1 | (LAWAR_SIZE & LAWAR_SIZE_16M))
|
||||||
|
|
||||||
#define LAWBAR6 ((CFG_PCI2_IO_BASE>>12) & 0xffffff)
|
#define LAWBAR6 ((CFG_PCI2_IO_PHYS>>12) & 0xffffff)
|
||||||
#define LAWAR6 (~LAWAR_EN &( LAWAR_TRGT_IF_PCI2 | (LAWAR_SIZE & LAWAR_SIZE_16M)))
|
#define LAWAR6 (LAWAR_EN | LAWAR_TRGT_IF_PCI2 | (LAWAR_SIZE & LAWAR_SIZE_16M))
|
||||||
|
|
||||||
#define LAWBAR7 ((0xfe000000 >>12) & 0xffffff)
|
#define LAWBAR7 ((0xfe000000 >>12) & 0xffffff)
|
||||||
#define LAWAR7 (LAWAR_EN | LAWAR_TRGT_IF_LBC | (LAWAR_SIZE & LAWAR_SIZE_32M))
|
#define LAWAR7 (LAWAR_EN | LAWAR_TRGT_IF_LBC | (LAWAR_SIZE & LAWAR_SIZE_32M))
|
||||||
@ -84,7 +84,7 @@
|
|||||||
#define LAWAR8 ((LAWAR_TRGT_IF_DDR2 | (LAWAR_SIZE & LAWAR_SIZE_512M)) & ~LAWAR_EN)
|
#define LAWAR8 ((LAWAR_TRGT_IF_DDR2 | (LAWAR_SIZE & LAWAR_SIZE_512M)) & ~LAWAR_EN)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define LAWBAR9 ((CFG_RIO_MEM_BASE>>12) & 0xfffff)
|
#define LAWBAR9 ((CFG_RIO_MEM_PHYS>>12) & 0xfffff)
|
||||||
#define LAWAR9 (LAWAR_EN | LAWAR_TRGT_IF_RIO | (LAWAR_SIZE & LAWAR_SIZE_512M))
|
#define LAWAR9 (LAWAR_EN | LAWAR_TRGT_IF_RIO | (LAWAR_SIZE & LAWAR_SIZE_512M))
|
||||||
|
|
||||||
.section .bootpg, "ax"
|
.section .bootpg, "ax"
|
||||||
|
@ -280,22 +280,38 @@ ft_cpu_setup(void *blob, bd_t *bd)
|
|||||||
|
|
||||||
#if defined(CONFIG_MPC86XX_TSEC1)
|
#if defined(CONFIG_MPC86XX_TSEC1)
|
||||||
p = ft_get_prop(blob, "/" OF_SOC "/ethernet@24000/mac-address", &len);
|
p = ft_get_prop(blob, "/" OF_SOC "/ethernet@24000/mac-address", &len);
|
||||||
memcpy(p, bd->bi_enetaddr, 6);
|
if (p != NULL)
|
||||||
|
memcpy(p, bd->bi_enetaddr, 6);
|
||||||
|
p = ft_get_prop(blob, "/" OF_SOC "/ethernet@24000/local-mac-address", &len);
|
||||||
|
if (p)
|
||||||
|
memcpy(p, bd->bi_enetaddr, 6);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(CONFIG_MPC86XX_TSEC2)
|
#if defined(CONFIG_MPC86XX_TSEC2)
|
||||||
p = ft_get_prop(blob, "/" OF_SOC "/ethernet@25000/mac-address", &len);
|
p = ft_get_prop(blob, "/" OF_SOC "/ethernet@25000/mac-address", &len);
|
||||||
memcpy(p, bd->bi_enet1addr, 6);
|
if (p != NULL)
|
||||||
|
memcpy(p, bd->bi_enet1addr, 6);
|
||||||
|
p = ft_get_prop(blob, "/" OF_SOC "/ethernet@25000/local-mac-address", &len);
|
||||||
|
if (p != NULL)
|
||||||
|
memcpy(p, bd->bi_enet1addr, 6);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(CONFIG_MPC86XX_TSEC3)
|
#if defined(CONFIG_MPC86XX_TSEC3)
|
||||||
p = ft_get_prop(blob, "/" OF_SOC "/ethernet@26000/mac-address", &len);
|
p = ft_get_prop(blob, "/" OF_SOC "/ethernet@26000/mac-address", &len);
|
||||||
memcpy(p, bd->bi_enet2addr, 6);
|
if (p != NULL)
|
||||||
|
memcpy(p, bd->bi_enet2addr, 6);
|
||||||
|
p = ft_get_prop(blob, "/" OF_SOC "/ethernet@26000/local-mac-address", &len);
|
||||||
|
if (p != NULL)
|
||||||
|
memcpy(p, bd->bi_enet2addr, 6);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(CONFIG_MPC86XX_TSEC4)
|
#if defined(CONFIG_MPC86XX_TSEC4)
|
||||||
p = ft_get_prop(blob, "/" OF_SOC "/ethernet@27000/mac-address", &len);
|
p = ft_get_prop(blob, "/" OF_SOC "/ethernet@27000/mac-address", &len);
|
||||||
memcpy(p, bd->bi_enet3addr, 6);
|
if (p != NULL)
|
||||||
|
memcpy(p, bd->bi_enet3addr, 6);
|
||||||
|
p = ft_get_prop(blob, "/" OF_SOC "/ethernet@27000/local-mac-address", &len);
|
||||||
|
if (p != NULL)
|
||||||
|
memcpy(p, bd->bi_enet3addr, 6);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -51,20 +51,32 @@ extern int dma_xfer(void *dest, uint count, void *src);
|
|||||||
#define CFG_SUPER_BANK_INTERLEAVING 0
|
#define CFG_SUPER_BANK_INTERLEAVING 0
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Convert picoseconds into clock cycles (rounding up if needed).
|
* Convert picoseconds into DRAM clock cycles (rounding up if needed).
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int
|
static unsigned int
|
||||||
picos_to_clk(int picos)
|
picos_to_clk(unsigned int picos)
|
||||||
{
|
{
|
||||||
int clks;
|
/* use unsigned long long to avoid rounding errors */
|
||||||
|
const unsigned long long ULL_2e12 = 2000000000000ULL;
|
||||||
|
unsigned long long clks;
|
||||||
|
unsigned long long clks_temp;
|
||||||
|
|
||||||
clks = picos / (2000000000 / (get_bus_freq(0) / 1000));
|
if (! picos)
|
||||||
if (picos % (2000000000 / (get_bus_freq(0) / 1000)) != 0) {
|
return 0;
|
||||||
|
|
||||||
|
clks = get_bus_freq(0) * (unsigned long long) picos;
|
||||||
|
clks_temp = clks;
|
||||||
|
clks = clks / ULL_2e12;
|
||||||
|
if (clks_temp % ULL_2e12) {
|
||||||
clks++;
|
clks++;
|
||||||
}
|
}
|
||||||
|
|
||||||
return clks;
|
if (clks > 0xFFFFFFFFULL) {
|
||||||
|
clks = 0xFFFFFFFFULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
return (unsigned int) clks;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -241,25 +241,39 @@ in_flash:
|
|||||||
bl setup_ccsrbar
|
bl setup_ccsrbar
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Fix for SMP linux - Changing arbitration to round-robin */
|
|
||||||
lis r3, CFG_CCSRBAR@h
|
|
||||||
ori r3, r3, 0x1000
|
|
||||||
xor r4, r4, r4
|
|
||||||
li r4, 0x1000
|
|
||||||
stw r4, 0(r3)
|
|
||||||
|
|
||||||
|
/* -- MPC8641 Rev 1.0 MCM Errata fixups -- */
|
||||||
|
|
||||||
|
/* skip fixups if not Rev 1.0 */
|
||||||
|
mfspr r4, SVR
|
||||||
|
rlwinm r4,r4,0,24,31
|
||||||
|
cmpwi r4,0x10
|
||||||
|
bne 1f
|
||||||
|
|
||||||
|
lis r3,MCM_ABCR@ha
|
||||||
|
lwz r4,MCM_ABCR@l(r3) /* ABCR -> r4 */
|
||||||
|
|
||||||
|
/* set ABCR[A_STRM_CNT] = 0 */
|
||||||
|
rlwinm r4,r4,0,0,29
|
||||||
|
|
||||||
|
/* set ABCR[ARB_POLICY] to 0x1 (round-robin) */
|
||||||
|
addi r0,r0,1
|
||||||
|
rlwimi r4,r0,12,18,19
|
||||||
|
|
||||||
|
stw r4,MCM_ABCR@l(r3) /* r4 -> ABCR */
|
||||||
|
sync
|
||||||
|
|
||||||
|
/* Set DBCR[ERD_DIS] */
|
||||||
|
lis r3,MCM_DBCR@ha
|
||||||
|
lwz r4,MCM_DBCR@l(r3)
|
||||||
|
oris r4, r4, 0x4000
|
||||||
|
stw r4,MCM_DBCR@l(r3)
|
||||||
|
sync
|
||||||
|
1:
|
||||||
/* setup the law entries */
|
/* setup the law entries */
|
||||||
bl law_entry
|
bl law_entry
|
||||||
sync
|
sync
|
||||||
|
|
||||||
/* Don't use this feature due to bug in 8641D PD4 */
|
|
||||||
/* Disable ERD_DIS */
|
|
||||||
lis r3, CFG_CCSRBAR@h
|
|
||||||
ori r3, r3, 0x1008
|
|
||||||
lwz r4, 0(r3)
|
|
||||||
oris r4, r4, 0x4000
|
|
||||||
stw r4, 0(r3)
|
|
||||||
sync
|
|
||||||
|
|
||||||
#if (EMULATOR_RUN == 1)
|
#if (EMULATOR_RUN == 1)
|
||||||
/* On the emulator we want to adjust these ASAP */
|
/* On the emulator we want to adjust these ASAP */
|
||||||
|
@ -9,6 +9,15 @@
|
|||||||
|
|
||||||
#define EXC_OFF_SYS_RESET 0x0100 /* System reset offset */
|
#define EXC_OFF_SYS_RESET 0x0100 /* System reset offset */
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* platform register addresses
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define GUTS_SVR (CFG_CCSRBAR + 0xE00A4)
|
||||||
|
#define MCM_ABCR (CFG_CCSRBAR + 0x01000)
|
||||||
|
#define MCM_DBCR (CFG_CCSRBAR + 0x01008)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* l2cr values. Look in config_<BOARD>.h for the actual setup
|
* l2cr values. Look in config_<BOARD>.h for the actual setup
|
||||||
*/
|
*/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user