Phase 3.
This commit is contained in:
@@ -372,15 +372,18 @@ extern int machine_has_mouse(void);
|
|||||||
extern int machine_is_sony(void);
|
extern int machine_is_sony(void);
|
||||||
|
|
||||||
extern uint8_t machine_get_p1(void);
|
extern uint8_t machine_get_p1(void);
|
||||||
|
extern void machine_set_p1_default(uint8_t val);
|
||||||
extern void machine_set_p1(uint8_t val);
|
extern void machine_set_p1(uint8_t val);
|
||||||
extern void machine_init_p1(void);
|
extern void machine_init_p1(void);
|
||||||
extern uint8_t machine_handle_p1(uint8_t write, uint8_t val);
|
extern uint8_t machine_handle_p1(uint8_t write, uint8_t val);
|
||||||
extern uint32_t machine_get_gpio(void);
|
extern uint32_t machine_get_gpio(void);
|
||||||
|
extern void machine_set_gpio_default(uint32_t val);
|
||||||
extern void machine_set_gpio(uint32_t val);
|
extern void machine_set_gpio(uint32_t val);
|
||||||
extern void machine_init_gpio(void);
|
extern void machine_init_gpio(void);
|
||||||
extern uint32_t machine_handle_gpio(uint8_t write, uint32_t val);
|
extern uint32_t machine_handle_gpio(uint8_t write, uint32_t val);
|
||||||
extern uint32_t machine_get_gpio_acpi(void);
|
extern uint32_t machine_get_gpio_acpi(void);
|
||||||
extern void machine_set_gpio_acpi(uint32_t gpio_val);
|
extern void machine_set_gpio_acpi_default(uint32_t val);
|
||||||
|
extern void machine_set_gpio_acpi(uint32_t val);
|
||||||
extern void machine_init_gpio_acpi(void);
|
extern void machine_init_gpio_acpi(void);
|
||||||
extern uint32_t machine_handle_gpio_acpi(uint8_t write, uint32_t val);
|
extern uint32_t machine_handle_gpio_acpi(uint8_t write, uint32_t val);
|
||||||
|
|
||||||
|
|||||||
@@ -158,6 +158,41 @@ machine_at_apollo_init(const machine_t *model)
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
machine_at_zappa_gpio_init(void)
|
||||||
|
{
|
||||||
|
uint32_t gpio = 0xffffffff;
|
||||||
|
|
||||||
|
/* Register 0x0079: */
|
||||||
|
/* Bit 7: 0 = Clear password, 1 = Keep password. */
|
||||||
|
/* Bit 6: 0 = NVRAM cleared by jumper, 1 = NVRAM normal. */
|
||||||
|
/* Bit 5: 0 = CMOS Setup disabled, 1 = CMOS Setup enabled. */
|
||||||
|
/* Bit 4: External CPU clock (Switch 8). */
|
||||||
|
/* Bit 3: External CPU clock (Switch 7). */
|
||||||
|
/* 50 MHz: Switch 7 = Off, Switch 8 = Off. */
|
||||||
|
/* 60 MHz: Switch 7 = On, Switch 8 = Off. */
|
||||||
|
/* 66 MHz: Switch 7 = Off, Switch 8 = On. */
|
||||||
|
/* Bit 2: No Connect. */
|
||||||
|
/* Bit 1: No Connect. */
|
||||||
|
/* Bit 0: 0 = 1.5x multiplier, 1 = 2x multiplier (Switch 6). */
|
||||||
|
/* NOTE: A bit is read as 1 if switch is off, and as 0 if switch is on. */
|
||||||
|
gpio = 0xffffe6ff;
|
||||||
|
|
||||||
|
if (cpu_busspeed <= 50000000)
|
||||||
|
gpio |= 0xffff10ff;
|
||||||
|
else if ((cpu_busspeed > 50000000) && (cpu_busspeed <= 60000000))
|
||||||
|
gpio |= 0xffff18ff;
|
||||||
|
else if (cpu_busspeed > 60000000)
|
||||||
|
gpio |= 0xffff00ff;
|
||||||
|
|
||||||
|
if (cpu_dmulti <= 1.5)
|
||||||
|
gpio |= 0xffff01ff;
|
||||||
|
else
|
||||||
|
gpio |= 0xffff00ff;
|
||||||
|
|
||||||
|
machine_set_gpio_default(gpio);
|
||||||
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
machine_at_zappa_init(const machine_t *model)
|
machine_at_zappa_init(const machine_t *model)
|
||||||
{
|
{
|
||||||
@@ -171,6 +206,7 @@ machine_at_zappa_init(const machine_t *model)
|
|||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
machine_at_common_init_ex(model, 2);
|
machine_at_common_init_ex(model, 2);
|
||||||
|
machine_at_zappa_gpio_init();
|
||||||
|
|
||||||
pci_init(PCI_CONFIG_TYPE_1);
|
pci_init(PCI_CONFIG_TYPE_1);
|
||||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||||
|
|||||||
@@ -13278,10 +13278,16 @@ machine_get_p1(void)
|
|||||||
return machine_p1;
|
return machine_p1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
machine_set_p1_default(uint8_t val)
|
||||||
|
{
|
||||||
|
machine_p1 = machine_p1_default = val;
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
machine_set_p1(uint8_t val)
|
machine_set_p1(uint8_t val)
|
||||||
{
|
{
|
||||||
machine_p1 = machines[machine].kbc_p1 & val;
|
machine_p1 = machine_p1_default & val;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -13294,7 +13300,7 @@ machine_handle_p1(uint8_t write, uint8_t val)
|
|||||||
ret = machines[machine].p1_handler(write, val);
|
ret = machines[machine].p1_handler(write, val);
|
||||||
else {
|
else {
|
||||||
if (write)
|
if (write)
|
||||||
machine_p1 = machines[machine].kbc_p1 & val;
|
machine_p1 = machine_p1_default & val;
|
||||||
else
|
else
|
||||||
ret = machine_p1;
|
ret = machine_p1;
|
||||||
}
|
}
|
||||||
@@ -13314,10 +13320,16 @@ machine_get_gpio(void)
|
|||||||
return machine_gpio;
|
return machine_gpio;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
machine_set_gpio_default(uint32_t val)
|
||||||
|
{
|
||||||
|
machine_gpio = machine_gpio_default = val;
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
machine_set_gpio(uint32_t val)
|
machine_set_gpio(uint32_t val)
|
||||||
{
|
{
|
||||||
machine_gpio = machines[machine].gpio & val;
|
machine_gpio = machine_gpio_default & val;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t
|
uint32_t
|
||||||
@@ -13329,7 +13341,7 @@ machine_handle_gpio(uint8_t write, uint32_t val)
|
|||||||
ret = machines[machine].gpio_handler(write, val);
|
ret = machines[machine].gpio_handler(write, val);
|
||||||
else {
|
else {
|
||||||
if (write)
|
if (write)
|
||||||
machine_gpio = machines[machine].gpio & val;
|
machine_gpio = machine_gpio_default & val;
|
||||||
else
|
else
|
||||||
ret = machine_gpio;
|
ret = machine_gpio;
|
||||||
}
|
}
|
||||||
@@ -13349,10 +13361,16 @@ machine_get_gpio_acpi(void)
|
|||||||
return machine_gpio_acpi;
|
return machine_gpio_acpi;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
machine_set_gpio_acpi_default(uint32_t val)
|
||||||
|
{
|
||||||
|
machine_gpio_acpi = machine_gpio_acpi_default = val;
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
machine_set_gpio_acpi(uint32_t val)
|
machine_set_gpio_acpi(uint32_t val)
|
||||||
{
|
{
|
||||||
machine_gpio_acpi = machines[machine].gpio_acpi & val;
|
machine_gpio_acpi = machine_gpio_acpi_default & val;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t
|
uint32_t
|
||||||
@@ -13364,7 +13382,7 @@ machine_handle_gpio_acpi(uint8_t write, uint32_t val)
|
|||||||
ret = machines[machine].gpio_acpi_handler(write, val);
|
ret = machines[machine].gpio_acpi_handler(write, val);
|
||||||
else {
|
else {
|
||||||
if (write)
|
if (write)
|
||||||
machine_gpio_acpi = machines[machine].gpio_acpi & val;
|
machine_gpio_acpi = machine_gpio_acpi_default & val;
|
||||||
else
|
else
|
||||||
ret = machine_gpio_acpi;
|
ret = machine_gpio_acpi;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user