Beispiel #1
0
static void platform_fixups(void)
{
    u64 val;
    void *nvrtc;

    dt_fixup_memory(0, mem_size);
    planetcore_set_mac_addrs(table);

    if (!planetcore_get_decimal(table, PLANETCORE_KEY_CRYSTAL_HZ, &val)) {
        printf("No PlanetCore crystal frequency key.\r\n");
        return;
    }
    ibm405gp_fixup_clocks(val, 0xa8c000);
    ibm4xx_quiesce_eth((u32 *)0xef600800, NULL);
    ibm4xx_fixup_ebc_ranges("/plb/ebc");

    if (!planetcore_get_decimal(table, PLANETCORE_KEY_KB_NVRAM, &val)) {
        printf("No PlanetCore NVRAM size key.\r\n");
        return;
    }
    nvrtc = finddevice("/plb/ebc/nvrtc@4,200000");
    if (nvrtc != NULL) {
        u32 reg[3] = { 4, 0x200000, 0};
        getprop(nvrtc, "reg", reg, 3);
        reg[2] = (val << 10) & 0xffffffff;
        setprop(nvrtc, "reg", reg, 3);
    }
}
Beispiel #2
0
static void warp_fixups(void)
{
	ibm440ep_fixup_clocks(66000000, 11059200, 50000000);
	ibm4xx_sdram_fixup_memsize();
	ibm4xx_fixup_ebc_ranges("/plb/opb/ebc");
	dt_fixup_mac_address_by_alias("ethernet0", bd.bi_enetaddr);
}
Beispiel #3
0
static void sequoia_fixups(void)
{
	unsigned long sysclk = 33333333;

	ibm440ep_fixup_clocks(sysclk, 11059200, 50000000);
	ibm4xx_fixup_ebc_ranges("/plb/opb/ebc");
	ibm4xx_denali_fixup_memsize();
	dt_fixup_mac_addresses(&bd.bi_enetaddr, &bd.bi_enet1addr);
}
static void kilauea_fixups(void)
{
	unsigned long sysclk = 33333333;

	ibm405ex_fixup_clocks(sysclk, KILAUEA_SYS_EXT_SERIAL_CLOCK);
	dt_fixup_memory(bd.bi_memstart, bd.bi_memsize);
	ibm4xx_fixup_ebc_ranges("/plb/opb/ebc");
	dt_fixup_mac_address_by_alias("ethernet0", bd.bi_enetaddr);
	dt_fixup_mac_address_by_alias("ethernet1", bd.bi_enet1addr);
}
Beispiel #5
0
static void ebony_fixups(void)
{
	// FIXME: sysclk should be derived by reading the FPGA registers
	unsigned long sysclk = 33000000;

	ibm440gp_fixup_clocks(sysclk, 6 * 1843200);
	ibm4xx_sdram_fixup_memsize();
	dt_fixup_mac_addresses(ebony_mac0, ebony_mac1);
	ibm4xx_fixup_ebc_ranges("/plb/opb/ebc");
	ebony_flashsel_fixup();
}
Beispiel #6
0
static void ebony_fixups(void)
{
	unsigned long sysclk = 33000000;

	ibm440gp_fixup_clocks(sysclk, 6 * 1843200);
	ibm4xx_sdram_fixup_memsize();
	dt_fixup_mac_address_by_alias("ethernet0", ebony_mac0);
	dt_fixup_mac_address_by_alias("ethernet1", ebony_mac1);
	ibm4xx_fixup_ebc_ranges("/plb/opb/ebc");
	ebony_flashsel_fixup();
}
static void katmai_fixups(void)
{
    unsigned long sysclk = 33333000;

    ibm440spe_fixup_clocks(sysclk, 6 * 1843200, 0);

    ibm440spe_fixup_memsize();

    dt_fixup_mac_address(0, bd.bi_enetaddr);

    ibm4xx_fixup_ebc_ranges("/plb/opb/ebc");
}
Beispiel #8
0
static void katmai_fixups(void)
{
    unsigned long sysclk = 33333000;

    /* 440SP Clock logic is all but identical to 440GX
     * so we just use that code for now at least
     */
    ibm440spe_fixup_clocks(sysclk, 6 * 1843200, 0);

    ibm440spe_fixup_memsize();

    dt_fixup_mac_address(0, bd.bi_enetaddr);

    ibm4xx_fixup_ebc_ranges("/plb/opb/ebc");
}