code reformat, is the pirq table correct?
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@1605 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
This commit is contained in:
parent
0b607b39ba
commit
9b1a2ff96f
|
@ -27,19 +27,18 @@
|
||||||
static void hard_reset(void)
|
static void hard_reset(void)
|
||||||
{
|
{
|
||||||
set_bios_reset();
|
set_bios_reset();
|
||||||
|
|
||||||
/* enable cf9 */
|
/* enable cf9 */
|
||||||
pci_write_config8(PCI_DEV(0, 0x04, 3), 0x41, 0xf1);
|
pci_write_config8(PCI_DEV(0, 0x04, 3), 0x41, 0xf1);
|
||||||
/* reset */
|
/* reset */
|
||||||
outb(0x0e, 0x0cf9);
|
outb(0x0e, 0x0cf9);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void soft_reset(void)
|
static void soft_reset(void)
|
||||||
{
|
{
|
||||||
set_bios_reset();
|
set_bios_reset();
|
||||||
pci_write_config8(PCI_DEV(0, 0x04, 0), 0x47, 1);
|
pci_write_config8(PCI_DEV(0, 0x04, 0), 0x47, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void memreset_setup(void)
|
static void memreset_setup(void)
|
||||||
{
|
{
|
||||||
|
@ -48,8 +47,7 @@ static void memreset_setup(void)
|
||||||
outb((0 << 7)|(0 << 6)|(0<<5)|(0<<4)|(1<<2)|(0<<0), SMBUS_IO_BASE + 0xc0 + 28);
|
outb((0 << 7)|(0 << 6)|(0<<5)|(0<<4)|(1<<2)|(0<<0), SMBUS_IO_BASE + 0xc0 + 28);
|
||||||
/* Ensure the BIOS has control of the memory lines */
|
/* Ensure the BIOS has control of the memory lines */
|
||||||
outb((0 << 7)|(0 << 6)|(0<<5)|(0<<4)|(1<<2)|(0<<0), SMBUS_IO_BASE + 0xc0 + 29);
|
outb((0 << 7)|(0 << 6)|(0<<5)|(0<<4)|(1<<2)|(0<<0), SMBUS_IO_BASE + 0xc0 + 29);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
/* Ensure the CPU has controll of the memory lines */
|
/* Ensure the CPU has controll of the memory lines */
|
||||||
outb((0 << 7)|(0 << 6)|(0<<5)|(0<<4)|(1<<2)|(1<<0), SMBUS_IO_BASE + 0xc0 + 29);
|
outb((0 << 7)|(0 << 6)|(0<<5)|(0<<4)|(1<<2)|(1<<0), SMBUS_IO_BASE + 0xc0 + 29);
|
||||||
}
|
}
|
||||||
|
@ -123,61 +121,6 @@ static inline int spd_read_byte(unsigned device, unsigned address)
|
||||||
#include "northbridge/amd/amdk8/coherent_ht.c"
|
#include "northbridge/amd/amdk8/coherent_ht.c"
|
||||||
#include "sdram/generic_sdram.c"
|
#include "sdram/generic_sdram.c"
|
||||||
|
|
||||||
#if 0
|
|
||||||
static void enable_lapic(void)
|
|
||||||
{
|
|
||||||
|
|
||||||
msr_t msr;
|
|
||||||
msr = rdmsr(0x1b);
|
|
||||||
msr.hi &= 0xffffff00;
|
|
||||||
msr.lo &= 0x000007ff;
|
|
||||||
msr.lo |= APIC_DEFAULT_BASE | (1 << 11);
|
|
||||||
wrmsr(0x1b, msr);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void stop_this_cpu(void)
|
|
||||||
{
|
|
||||||
unsigned apicid;
|
|
||||||
apicid = apic_read(APIC_ID) >> 24;
|
|
||||||
|
|
||||||
/* Send an APIC INIT to myself */
|
|
||||||
apic_write(APIC_ICR2, SET_APIC_DEST_FIELD(apicid));
|
|
||||||
apic_write(APIC_ICR, APIC_INT_LEVELTRIG | APIC_INT_ASSERT | APIC_DM_INIT);
|
|
||||||
/* Wait for the ipi send to finish */
|
|
||||||
apic_wait_icr_idle();
|
|
||||||
|
|
||||||
/* Deassert the APIC INIT */
|
|
||||||
apic_write(APIC_ICR2, SET_APIC_DEST_FIELD(apicid));
|
|
||||||
apic_write(APIC_ICR, APIC_INT_LEVELTRIG | APIC_DM_INIT);
|
|
||||||
/* Wait for the ipi send to finish */
|
|
||||||
apic_wait_icr_idle();
|
|
||||||
|
|
||||||
/* If I haven't halted spin forever */
|
|
||||||
for(;;) {
|
|
||||||
hlt();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#define PC87360_FDC 0x00
|
|
||||||
#define PC87360_PP 0x01
|
|
||||||
#define PC87360_SP2 0x02
|
|
||||||
#define PC87360_SP1 0x03
|
|
||||||
#define PC87360_SWC 0x04
|
|
||||||
#define PC87360_KBCM 0x05
|
|
||||||
#define PC87360_KBCK 0x06
|
|
||||||
#define PC87360_GPIO 0x07
|
|
||||||
#define PC87360_ACB 0x08
|
|
||||||
#define PC87360_FSCM 0x09
|
|
||||||
#define PC87360_WDT 0x0A
|
|
||||||
|
|
||||||
static void pc87360_enable_serial(void)
|
|
||||||
{
|
|
||||||
pnp_set_logical_device(SIO_BASE, PC87360_SP1);
|
|
||||||
pnp_set_enable(SIO_BASE, 1);
|
|
||||||
pnp_set_iobase0(SIO_BASE, 0x3f8);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define FIRST_CPU 1
|
#define FIRST_CPU 1
|
||||||
#define SECOND_CPU 1
|
#define SECOND_CPU 1
|
||||||
#define TOTAL_CPUS (FIRST_CPU + SECOND_CPU)
|
#define TOTAL_CPUS (FIRST_CPU + SECOND_CPU)
|
||||||
|
@ -228,57 +171,30 @@ static void main(void)
|
||||||
w83627hf_enable_serial(SERIAL_DEV, TTYS0_BASE);
|
w83627hf_enable_serial(SERIAL_DEV, TTYS0_BASE);
|
||||||
uart_init();
|
uart_init();
|
||||||
console_init();
|
console_init();
|
||||||
|
|
||||||
setup_default_resource_map();
|
setup_default_resource_map();
|
||||||
needs_reset = setup_coherent_ht_domain();
|
needs_reset = setup_coherent_ht_domain();
|
||||||
needs_reset |= ht_setup_chain(PCI_DEV(0, 0x18, 0), 0x80);
|
needs_reset |= ht_setup_chain(PCI_DEV(0, 0x18, 0), 0x80);
|
||||||
if (needs_reset) {
|
if (needs_reset) {
|
||||||
print_info("ht reset -\r\n");
|
print_info("ht reset -\r\n");
|
||||||
soft_reset();
|
soft_reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
print_pci_devices();
|
print_pci_devices();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
enable_smbus();
|
enable_smbus();
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
dump_spd_registers(&cpu[0]);
|
dump_spd_registers(&cpu[0]);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
memreset_setup();
|
memreset_setup();
|
||||||
sdram_initialize(sizeof(cpu)/sizeof(cpu[0]), cpu);
|
sdram_initialize(sizeof(cpu)/sizeof(cpu[0]), cpu);
|
||||||
|
|
||||||
#if 1
|
|
||||||
dump_pci_devices();
|
|
||||||
#endif
|
|
||||||
#if 0
|
#if 0
|
||||||
|
dump_pci_devices();
|
||||||
dump_pci_device(PCI_DEV(0, 0x18, 2));
|
dump_pci_device(PCI_DEV(0, 0x18, 2));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Check all of memory */
|
|
||||||
#if 0
|
|
||||||
msr_t msr;
|
|
||||||
msr = rdmsr(TOP_MEM);
|
|
||||||
print_debug("TOP_MEM: ");
|
|
||||||
print_debug_hex32(msr.hi);
|
|
||||||
print_debug_hex32(msr.lo);
|
|
||||||
print_debug("\r\n");
|
|
||||||
#endif
|
|
||||||
#if 0
|
|
||||||
ram_check(0x00000000, msr.lo);
|
|
||||||
#endif
|
|
||||||
#if 0
|
|
||||||
static const struct {
|
|
||||||
unsigned long lo, hi;
|
|
||||||
} check_addrs[] = {
|
|
||||||
/* Check 16MB of memory @ 0*/
|
|
||||||
{ 0x00000000, 0x01000000 },
|
|
||||||
#if TOTAL_CPUS > 1
|
|
||||||
/* Check 16MB of memory @ 2GB */
|
|
||||||
{ 0x80000000, 0x81000000 },
|
|
||||||
#endif
|
|
||||||
};
|
|
||||||
int i;
|
|
||||||
for(i = 0; i < sizeof(check_addrs)/sizeof(check_addrs[0]); i++) {
|
|
||||||
ram_check(check_addrs[i].lo, check_addrs[i].hi);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue