-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Grant Likely
authored and
Paul Mackerras
committed
Sep 22, 2007
1 parent
2bfa9ad
commit dd558b3
Showing
7 changed files
with
136 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,2 @@ | ||
--- | ||
refs/heads/master: ad25a4cca7f21b53e3af8303d922a87c910677d7 | ||
refs/heads/master: 85498ae87c7d789de613b7e21bd539577142c3cb |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
/* | ||
* Old U-boot compatibility for MPC5200 | ||
* | ||
* Author: Grant Likely <grant.likely@secretlab.ca> | ||
* | ||
* Copyright (c) 2007 Secret Lab Technologies Ltd. | ||
* Copyright (c) 2007 Freescale Semiconductor, Inc. | ||
* | ||
* This program is free software; you can redistribute it and/or modify it | ||
* under the terms of the GNU General Public License version 2 as published | ||
* by the Free Software Foundation. | ||
*/ | ||
|
||
#include "ops.h" | ||
#include "stdio.h" | ||
#include "io.h" | ||
#include "cuboot.h" | ||
|
||
#define TARGET_PPC_MPC52xx | ||
#include "ppcboot.h" | ||
|
||
static bd_t bd; | ||
|
||
static void platform_fixups(void) | ||
{ | ||
void *soc, *reg; | ||
int div; | ||
u32 sysfreq; | ||
|
||
|
||
dt_fixup_memory(bd.bi_memstart, bd.bi_memsize); | ||
dt_fixup_mac_addresses(bd.bi_enetaddr); | ||
dt_fixup_cpu_clocks(bd.bi_intfreq, bd.bi_busfreq / 4, bd.bi_busfreq); | ||
|
||
/* Unfortunately, the specific model number is encoded in the | ||
* soc node name in existing dts files -- once that is fixed, | ||
* this can do a simple path lookup. | ||
*/ | ||
soc = find_node_by_devtype(NULL, "soc"); | ||
if (soc) { | ||
setprop(soc, "bus-frequency", &bd.bi_ipbfreq, | ||
sizeof(bd.bi_ipbfreq)); | ||
|
||
if (!dt_xlate_reg(soc, 0, (void*)®, NULL)) | ||
return; | ||
div = in_8(reg + 0x204) & 0x0020 ? 8 : 4; | ||
sysfreq = bd.bi_busfreq * div; | ||
setprop(soc, "system-frequency", &sysfreq, sizeof(sysfreq)); | ||
} | ||
} | ||
|
||
void platform_init(unsigned long r3, unsigned long r4, unsigned long r5, | ||
unsigned long r6, unsigned long r7) | ||
{ | ||
CUBOOT_INIT(); | ||
ft_init(_dtb_start, _dtb_end - _dtb_start, 32); | ||
serial_console_init(); | ||
platform_ops.fixups = platform_fixups; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,69 @@ | ||
/* | ||
* MPC5200 PSC serial console support. | ||
* | ||
* Author: Grant Likely <grant.likely@secretlab.ca> | ||
* | ||
* Copyright (c) 2007 Secret Lab Technologies Ltd. | ||
* Copyright (c) 2007 Freescale Semiconductor, Inc. | ||
* | ||
* It is assumed that the firmware (or the platform file) has already set | ||
* up the port. | ||
*/ | ||
|
||
#include "types.h" | ||
#include "io.h" | ||
#include "ops.h" | ||
|
||
/* Programmable Serial Controller (PSC) status register bits */ | ||
#define MPC52xx_PSC_SR 0x04 | ||
#define MPC52xx_PSC_SR_RXRDY 0x0100 | ||
#define MPC52xx_PSC_SR_RXFULL 0x0200 | ||
#define MPC52xx_PSC_SR_TXRDY 0x0400 | ||
#define MPC52xx_PSC_SR_TXEMP 0x0800 | ||
|
||
#define MPC52xx_PSC_BUFFER 0x0C | ||
|
||
static void *psc; | ||
|
||
static int psc_open(void) | ||
{ | ||
/* Assume the firmware has already configured the PSC into | ||
* uart mode */ | ||
return 0; | ||
} | ||
|
||
static void psc_putc(unsigned char c) | ||
{ | ||
while (!(in_be16(psc + MPC52xx_PSC_SR) & MPC52xx_PSC_SR_TXRDY)) ; | ||
out_8(psc + MPC52xx_PSC_BUFFER, c); | ||
} | ||
|
||
static unsigned char psc_tstc(void) | ||
{ | ||
return (in_be16(psc + MPC52xx_PSC_SR) & MPC52xx_PSC_SR_RXRDY) != 0; | ||
} | ||
|
||
static unsigned char psc_getc(void) | ||
{ | ||
while (!(in_be16(psc + MPC52xx_PSC_SR) & MPC52xx_PSC_SR_RXRDY)) ; | ||
return in_8(psc + MPC52xx_PSC_BUFFER); | ||
} | ||
|
||
int mpc5200_psc_console_init(void *devp, struct serial_console_data *scdp) | ||
{ | ||
int n; | ||
|
||
/* Get the base address of the psc registers */ | ||
n = getprop(devp, "virtual-reg", &psc, sizeof(psc)); | ||
if (n != sizeof(psc)) { | ||
if (!dt_xlate_reg(devp, 0, (void *)&psc, NULL)) | ||
return -1; | ||
} | ||
|
||
scdp->open = psc_open; | ||
scdp->putc = psc_putc; | ||
scdp->getc = psc_getc; | ||
scdp->tstc = psc_tstc; | ||
|
||
return 0; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters