mirror of
https://github.com/Stichting-MINIX-Research-Foundation/u-boot.git
synced 2025-09-10 04:26:19 -04:00
Convert MPC8610HPCD to use libfdt.
Assumes the presence of the aliases node in the DTS to locate the pci and serial nodes for fixups. Use consistent fdtaddr and fdtfile in environment variables. Signed-off-by: Jon Loeliger <jdl@freescale.com>
This commit is contained in:
parent
c9974ab0a4
commit
1df170f8b2
@ -29,12 +29,8 @@
|
|||||||
#include <i2c.h>
|
#include <i2c.h>
|
||||||
#include <spd.h>
|
#include <spd.h>
|
||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
|
#include <libfdt.h>
|
||||||
|
#include <fdt_support.h>
|
||||||
#if defined(CONFIG_OF_FLAT_TREE)
|
|
||||||
#include <ft_build.h>
|
|
||||||
extern void ft_cpu_setup(void *blob, bd_t *bd);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "../common/pixis.h"
|
#include "../common/pixis.h"
|
||||||
|
|
||||||
@ -459,46 +455,57 @@ void pci_init_board(void)
|
|||||||
#endif /* CONFIG_PCI1 */
|
#endif /* CONFIG_PCI1 */
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(CONFIG_OF_FLAT_TREE) && defined(CONFIG_OF_BOARD_SETUP)
|
#if defined(CONFIG_OF_BOARD_SETUP)
|
||||||
void
|
void
|
||||||
ft_board_setup(void *blob, bd_t *bd)
|
ft_board_setup(void *blob, bd_t *bd)
|
||||||
{
|
{
|
||||||
u32 *p;
|
int node, tmp[2];
|
||||||
int len;
|
const char *path;
|
||||||
|
|
||||||
ft_cpu_setup(blob, bd);
|
do_fixup_by_prop_u32(blob, "device_type", "cpu", 4,
|
||||||
|
"timebase-frequency", bd->bi_busfreq / 4, 1);
|
||||||
|
do_fixup_by_prop_u32(blob, "device_type", "cpu", 4,
|
||||||
|
"bus-frequency", bd->bi_busfreq, 1);
|
||||||
|
do_fixup_by_prop_u32(blob, "device_type", "cpu", 4,
|
||||||
|
"clock-frequency", bd->bi_intfreq, 1);
|
||||||
|
do_fixup_by_prop_u32(blob, "device_type", "soc", 4,
|
||||||
|
"bus-frequency", bd->bi_busfreq, 1);
|
||||||
|
|
||||||
p = ft_get_prop(blob, "/memory/reg", &len);
|
do_fixup_by_compat_u32(blob, "ns16550",
|
||||||
if (p != NULL) {
|
"clock-frequency", bd->bi_busfreq, 1);
|
||||||
*p++ = cpu_to_be32(bd->bi_memstart);
|
|
||||||
*p = cpu_to_be32(bd->bi_memsize);
|
fdt_fixup_memory(blob, bd->bi_memstart, bd->bi_memsize);
|
||||||
}
|
|
||||||
|
|
||||||
|
node = fdt_path_offset(blob, "/aliases");
|
||||||
|
tmp[0] = 0;
|
||||||
|
if (node >= 0) {
|
||||||
|
|
||||||
#ifdef CONFIG_PCI1
|
#ifdef CONFIG_PCI1
|
||||||
p = (u32 *)ft_get_prop(blob, "/" OF_SOC "/pci@8000/bus-range", &len);
|
path = fdt_getprop(blob, node, "pci0", NULL);
|
||||||
if (p != NULL) {
|
if (path) {
|
||||||
p[0] = 0;
|
tmp[1] = pci1_hose.last_busno - pci1_hose.first_busno;
|
||||||
p[1] = pci1_hose.last_busno - pci1_hose.first_busno;
|
do_fixup_by_path(blob, path, "bus-range", &tmp, 8, 1);
|
||||||
debug("pci@8000 first_busno=%d last_busno=%d\n",p[0],p[1]);
|
}
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
#ifdef CONFIG_PCIE1
|
#ifdef CONFIG_PCIE1
|
||||||
p = (u32 *)ft_get_prop(blob, "/" OF_SOC "/pcie@a000/bus-range", &len);
|
path = fdt_getprop(blob, node, "pci1", NULL);
|
||||||
if (p != NULL) {
|
if (path) {
|
||||||
p[0] = 0;
|
tmp[1] = pcie1_hose.last_busno
|
||||||
p[1] = pcie1_hose.last_busno - pcie1_hose.first_busno;
|
- pcie1_hose.first_busno;
|
||||||
debug("pcie@9000 first_busno=%d last_busno=%d\n",p[0],p[1]);
|
do_fixup_by_path(blob, path, "bus-range", &tmp, 8, 1);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#ifdef CONFIG_PCIE2
|
#ifdef CONFIG_PCIE2
|
||||||
p = (u32 *)ft_get_prop(blob, "/" OF_SOC "/pcie@9000/bus-range", &len);
|
path = fdt_getprop(blob, node, "pci2", NULL);
|
||||||
if (p != NULL) {
|
if (path) {
|
||||||
p[0] = 0;
|
tmp[1] = pcie2_hose.last_busno
|
||||||
p[1] = pcie2_hose.last_busno - pcie2_hose.first_busno;
|
- pcie2_hose.first_busno;
|
||||||
debug("pcie@9000 first_busno=%d last_busno=%d\n",p[0],p[1]);
|
do_fixup_by_path(blob, path, "bus-range", &tmp, 8, 1);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -245,17 +245,14 @@
|
|||||||
/*
|
/*
|
||||||
* Pass open firmware flat tree to kernel
|
* Pass open firmware flat tree to kernel
|
||||||
*/
|
*/
|
||||||
#define CONFIG_OF_FLAT_TREE 1
|
#define CONFIG_OF_LIBFDT 1
|
||||||
#define CONFIG_OF_BOARD_SETUP 1
|
#define CONFIG_OF_BOARD_SETUP 1
|
||||||
|
#define CONFIG_OF_STDOUT_VIA_ALIAS 1
|
||||||
|
|
||||||
|
|
||||||
/* maximum size of the flat tree (8K) */
|
/* maximum size of the flat tree (8K) */
|
||||||
#define OF_FLAT_TREE_MAX_SIZE 8192
|
#define OF_FLAT_TREE_MAX_SIZE 8192
|
||||||
|
|
||||||
#define OF_CPU "PowerPC,8610@0"
|
|
||||||
#define OF_SOC "soc@e0000000"
|
|
||||||
#define OF_TBCLK (bd->bi_busfreq / 4)
|
|
||||||
#define OF_STDOUT_PATH "/soc@e0000000/serial@4500"
|
|
||||||
|
|
||||||
#define CFG_64BIT_VSPRINTF 1
|
#define CFG_64BIT_VSPRINTF 1
|
||||||
#define CFG_64BIT_STRTOUL 1
|
#define CFG_64BIT_STRTOUL 1
|
||||||
|
|
||||||
@ -618,8 +615,8 @@
|
|||||||
"consoledev=ttyS0\0" \
|
"consoledev=ttyS0\0" \
|
||||||
"ramdiskaddr=2000000\0" \
|
"ramdiskaddr=2000000\0" \
|
||||||
"ramdiskfile=8610hpcd/ramdisk.uboot\0" \
|
"ramdiskfile=8610hpcd/ramdisk.uboot\0" \
|
||||||
"dtbaddr=c00000\0" \
|
"fdtaddr=c00000\0" \
|
||||||
"dtbfile=8610hpcd/mpc8610_hpcd.dtb\0" \
|
"fdtfile=8610hpcd/mpc8610_hpcd.dtb\0" \
|
||||||
"bdev=sda3\0" \
|
"bdev=sda3\0" \
|
||||||
"en-wd=mw.b f8100010 0x08; echo -expect:- 08; md.b f8100010 1\0" \
|
"en-wd=mw.b f8100010 0x08; echo -expect:- 08; md.b f8100010 1\0" \
|
||||||
"dis-wd=mw.b f8100010 0x00; echo -expect:- 00; md.b f8100010 1\0" \
|
"dis-wd=mw.b f8100010 0x00; echo -expect:- 00; md.b f8100010 1\0" \
|
||||||
@ -658,8 +655,8 @@
|
|||||||
"consoledev=ttyS0\0" \
|
"consoledev=ttyS0\0" \
|
||||||
"ramdiskaddr=2000000\0" \
|
"ramdiskaddr=2000000\0" \
|
||||||
"ramdiskfile=8610hpcd/ramdisk.uboot\0" \
|
"ramdiskfile=8610hpcd/ramdisk.uboot\0" \
|
||||||
"dtbaddr=c00000\0" \
|
"fdtaddr=c00000\0" \
|
||||||
"dtbfile=8610hpcd/mpc8610_hpcd.dtb\0" \
|
"fdtfile=8610hpcd/mpc8610_hpcd.dtb\0" \
|
||||||
"bdev=sda3\0" \
|
"bdev=sda3\0" \
|
||||||
"othbootargs=diufb=15M video=fslfb:1280x1024-32@60,monitor=0\0"\
|
"othbootargs=diufb=15M video=fslfb:1280x1024-32@60,monitor=0\0"\
|
||||||
"monitor=0-DVI\0"
|
"monitor=0-DVI\0"
|
||||||
@ -671,22 +668,22 @@
|
|||||||
"ip=$ipaddr:$serverip:$gatewayip:$netmask:$hostname:$netdev:off " \
|
"ip=$ipaddr:$serverip:$gatewayip:$netmask:$hostname:$netdev:off " \
|
||||||
"console=$consoledev,$baudrate $othbootargs;" \
|
"console=$consoledev,$baudrate $othbootargs;" \
|
||||||
"tftp $loadaddr $bootfile;" \
|
"tftp $loadaddr $bootfile;" \
|
||||||
"tftp $dtbaddr $dtbfile;" \
|
"tftp $fdtaddr $fdtfile;" \
|
||||||
"bootm $loadaddr - $dtbaddr"
|
"bootm $loadaddr - $fdtaddr"
|
||||||
|
|
||||||
#define CONFIG_RAMBOOTCOMMAND \
|
#define CONFIG_RAMBOOTCOMMAND \
|
||||||
"setenv bootargs root=/dev/ram rw " \
|
"setenv bootargs root=/dev/ram rw " \
|
||||||
"console=$consoledev,$baudrate $othbootargs;" \
|
"console=$consoledev,$baudrate $othbootargs;" \
|
||||||
"tftp $ramdiskaddr $ramdiskfile;" \
|
"tftp $ramdiskaddr $ramdiskfile;" \
|
||||||
"tftp $loadaddr $bootfile;" \
|
"tftp $loadaddr $bootfile;" \
|
||||||
"tftp $dtbaddr $dtbfile;" \
|
"tftp $fdtaddr $fdtfile;" \
|
||||||
"bootm $loadaddr $ramdiskaddr $dtbaddr"
|
"bootm $loadaddr $ramdiskaddr $fdtaddr"
|
||||||
|
|
||||||
#define CONFIG_BOOTCOMMAND \
|
#define CONFIG_BOOTCOMMAND \
|
||||||
"setenv bootargs root=/dev/$bdev rw " \
|
"setenv bootargs root=/dev/$bdev rw " \
|
||||||
"console=$consoledev,$baudrate $othbootargs;" \
|
"console=$consoledev,$baudrate $othbootargs;" \
|
||||||
"tftp $loadaddr $bootfile;" \
|
"tftp $loadaddr $bootfile;" \
|
||||||
"tftp $dtbaddr $dtbfile;" \
|
"tftp $fdtaddr $fdtfile;" \
|
||||||
"bootm $loadaddr - $dtbaddr"
|
"bootm $loadaddr - $fdtaddr"
|
||||||
|
|
||||||
#endif /* __CONFIG_H */
|
#endif /* __CONFIG_H */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user