Index: trunk/i386/libsaio/gma.h =================================================================== --- trunk/i386/libsaio/gma.h (revision 2625) +++ trunk/i386/libsaio/gma.h (revision 2626) @@ -247,34 +247,34 @@ #define GMA_HASWELL_CRW_E_GT1 GFX_MODEL_CONSTRUCT(INTEL, 0x0D0E) #define GMA_HASWELL_CRW_E_GT2 GFX_MODEL_CONSTRUCT(INTEL, 0x0D1E) #define GMA_HASWELL_CRW_E_GT3 GFX_MODEL_CONSTRUCT(INTEL, 0x0D2E) -#define GMA_HASWELL_CRW_M_GT2_PLUS_IG GFX_MODEL_CONSTRUCT(INTEL, 0x0D36) +#define GMA_HASWELL_CRW_M_GT2_PLUS_IG GFX_MODEL_CONSTRUCT(INTEL, 0x0D36) // Crystal Well Integrated Graphics Controller #define GMA_HASWELL_CRW_S_GT2_PLUS_IG GFX_MODEL_CONSTRUCT(INTEL, 0x0D3A) /* Brodwell */ -#define GMA_BRODWELL_BDW_1602 GFX_MODEL_CONSTRUCT(INTEL, 0x1602) // +#define GMA_BRODWELL_BDW_1602 GFX_MODEL_CONSTRUCT(INTEL, 0x1602) // Intel(R) HD Graphics Drivers #define GMA_BRODWELL_BDW_U_GT1 GFX_MODEL_CONSTRUCT(INTEL, 0x1606) // BDW U GT1 -#define GMA_BRODWELL_BDW_160A GFX_MODEL_CONSTRUCT(INTEL, 0x160A) // -#define GMA_BRODWELL_BDW_160B GFX_MODEL_CONSTRUCT(INTEL, 0x160B) // -#define GMA_BRODWELL_BDW_160D GFX_MODEL_CONSTRUCT(INTEL, 0x160D) // -#define GMA_BRODWELL_BDW_160E GFX_MODEL_CONSTRUCT(INTEL, 0x160E) // -#define GMA_BRODWELL_BDW_1612 GFX_MODEL_CONSTRUCT(INTEL, 0x1612) // +#define GMA_BRODWELL_BDW_160A GFX_MODEL_CONSTRUCT(INTEL, 0x160A) // Broadwell-U Integrated Graphics +#define GMA_BRODWELL_BDW_160B GFX_MODEL_CONSTRUCT(INTEL, 0x160B) // Broadwell-U Integrated Graphics +#define GMA_BRODWELL_BDW_160D GFX_MODEL_CONSTRUCT(INTEL, 0x160D) // Broadwell-U Integrated Graphics +#define GMA_BRODWELL_BDW_160E GFX_MODEL_CONSTRUCT(INTEL, 0x160E) // Intel(R) HD Graphics Drivers +#define GMA_BRODWELL_BDW_1612 GFX_MODEL_CONSTRUCT(INTEL, 0x1612) // Intel(R) HD Graphics 5600 Drivers #define GMA_BRODWELL_BDW_U_GT2 GFX_MODEL_CONSTRUCT(INTEL, 0x1616) // BDW U GT2 Intel(R) HD Graphics 5500 Drivers -#define GMA_BRODWELL_BDW_161B GFX_MODEL_CONSTRUCT(INTEL, 0x161B) // -#define GMA_BRODWELL_BDW_161A GFX_MODEL_CONSTRUCT(INTEL, 0x161A) // -#define GMA_BRODWELL_BDW_161D GFX_MODEL_CONSTRUCT(INTEL, 0x161D) // +#define GMA_BRODWELL_BDW_161B GFX_MODEL_CONSTRUCT(INTEL, 0x161B) // Broadwell-U Integrated Graphics +#define GMA_BRODWELL_BDW_161A GFX_MODEL_CONSTRUCT(INTEL, 0x161A) // Broadwell-U Integrated Graphics +#define GMA_BRODWELL_BDW_161D GFX_MODEL_CONSTRUCT(INTEL, 0x161D) // Broadwell-U Integrated Graphics #define GMA_BRODWELL_BDW_Y_GT2 GFX_MODEL_CONSTRUCT(INTEL, 0x161E) // BDW Y GT2 Intel(R) HD Graphics 5300 Drivers -#define GMA_BRODWELL_BDW_1622 GFX_MODEL_CONSTRUCT(INTEL, 0x1622) // -#define GMA_BRODWELL_BDW_162A GFX_MODEL_CONSTRUCT(INTEL, 0x162A) // +#define GMA_BRODWELL_BDW_1622 GFX_MODEL_CONSTRUCT(INTEL, 0x1622) // Intel(R) Iris(TM) Pro Graphics 6200 Drivers +#define GMA_BRODWELL_BDW_162A GFX_MODEL_CONSTRUCT(INTEL, 0x162A) // Intel(R) Iris(TM) Pro Graphics 6300P Drivers #define GMA_BRODWELL_BDW_U_GT3 GFX_MODEL_CONSTRUCT(INTEL, 0x1626) // BDW U GT3 15W Intel(R) HD Graphics 6000 Drivers #define GMA_BRODWELL_BDW_U_GT3_2 GFX_MODEL_CONSTRUCT(INTEL, 0x162B) // BDW U GT3 28W Intel(R) Iris(TM) Pro Graphics 6100 Drivers -#define GMA_BRODWELL_BDW_162D GFX_MODEL_CONSTRUCT(INTEL, 0x162D) // -#define GMA_BRODWELL_BDW_162E GFX_MODEL_CONSTRUCT(INTEL, 0x162E) // -#define GMA_BRODWELL_BDW_1632 GFX_MODEL_CONSTRUCT(INTEL, 0x1632) // -#define GMA_BRODWELL_BDW_1636 GFX_MODEL_CONSTRUCT(INTEL, 0x1636) // -#define GMA_BRODWELL_BDW_163A GFX_MODEL_CONSTRUCT(INTEL, 0x163A) // -#define GMA_BRODWELL_BDW_163B GFX_MODEL_CONSTRUCT(INTEL, 0x163B) // -#define GMA_BRODWELL_BDW_163D GFX_MODEL_CONSTRUCT(INTEL, 0x163D) // -#define GMA_BRODWELL_BDW_163E GFX_MODEL_CONSTRUCT(INTEL, 0x163E) // +#define GMA_BRODWELL_BDW_162D GFX_MODEL_CONSTRUCT(INTEL, 0x162D) // Intel(R) Iris(TM) Pro Graphics 6300P Drivers +#define GMA_BRODWELL_BDW_162E GFX_MODEL_CONSTRUCT(INTEL, 0x162E) // Broadwell-U Integrated Graphics +#define GMA_BRODWELL_BDW_1632 GFX_MODEL_CONSTRUCT(INTEL, 0x1632) // Broadwell-U Integrated Graphics +#define GMA_BRODWELL_BDW_1636 GFX_MODEL_CONSTRUCT(INTEL, 0x1636) // Broadwell-U Integrated Graphics +#define GMA_BRODWELL_BDW_163A GFX_MODEL_CONSTRUCT(INTEL, 0x163A) // Broadwell-U Integrated Graphics +#define GMA_BRODWELL_BDW_163B GFX_MODEL_CONSTRUCT(INTEL, 0x163B) // Broadwell-U Integrated Graphics +#define GMA_BRODWELL_BDW_163D GFX_MODEL_CONSTRUCT(INTEL, 0x163D) // Broadwell-U Integrated Graphics +#define GMA_BRODWELL_BDW_163E GFX_MODEL_CONSTRUCT(INTEL, 0x163E) // Broadwell-U Integrated Graphics /* https://fossies.org/linux/MesaLib/include/pci_ids/i965_pci_ids.h Index: trunk/i386/libsaio/ati.c =================================================================== --- trunk/i386/libsaio/ati.c (revision 2625) +++ trunk/i386/libsaio/ati.c (revision 2626) @@ -7,69 +7,13 @@ #include "ati.h" +/* vals */ +static value_t aty_name; +static value_t aty_nameparent; +card_t *card; + static bool doit = false; -static const char *chip_family_name[] = { - "UNKNOW", - "R420", - "R423", - "RV410", - "RV515", - "R520", - "RV530", - "RV560", - "RV570", - "R580", - /* IGP */ - "RS600", - "RS690", - "RS740", - "RS780", - "RS880", - /* R600 */ - "R600", - "RV610", - "RV620", - "RV630", - "RV635", - "RV670", - /* R700 */ - "RV710", - "RV730", - "RV740", - "RV770", - "RV772", - "RV790", - /* Evergreen */ - "Cedar", - "Cypress", - "Hemlock", - "Juniper", - "Redwood", - /* Northern Islands */ - "Barts", - "Caicos", - "Cayman", - "Turks", - /* Southern Islands */ - "Palm", - "Sumo", - "Sumo2", - "Aruba", - "Tahiti", - "Pitcairn", - "Verde", - "Oland", - "Hainan", - "Bonaire", - "Kaveri", - "Kabini", - "Hawaii", - /* ... */ - "Mullins", - "" -}; - static card_config_t card_configs[] = { {NULL, 0}, /* OLDController */ @@ -1766,7 +1710,68 @@ { 0x0000, 0x00000000, CHIP_FAMILY_UNKNOW, "AMD Unknown", kNull } }; -dev_prop_t ati_devprop_list[] = { +static const char *chip_family_name[] = { + "UNKNOW", + "R420", + "R423", + "RV410", + "RV515", + "R520", + "RV530", + "RV560", + "RV570", + "R580", + /* IGP */ + "RS600", + "RS690", + "RS740", + "RS780", + "RS880", + /* R600 */ + "R600", + "RV610", + "RV620", + "RV630", + "RV635", + "RV670", + /* R700 */ + "RV710", + "RV730", + "RV740", + "RV770", + "RV772", + "RV790", + /* Evergreen */ + "Cedar", + "Cypress", + "Hemlock", + "Juniper", + "Redwood", + /* Northern Islands */ + "Barts", + "Caicos", + "Cayman", + "Turks", + /* Southern Islands */ + "Palm", + "Sumo", + "Sumo2", + "Aruba", + "Tahiti", + "Pitcairn", + "Verde", + "Oland", + "Hainan", + "Bonaire", + "Kaveri", + "Kabini", + "Hawaii", + /* ... */ + "Mullins", + "" +}; + +AtiDevProp ati_devprop_list[] = { {FLAGTRUE, false, "@0,AAPL,boot-display", get_bootdisplay_val, NULVAL }, // {FLAGTRUE, false, "@0,ATY,EFIDisplay", NULL, STRVAL("TMDSA") }, @@ -1802,19 +1807,6 @@ {FLAGTRUE, false, NULL, NULL, NULVAL } }; -bool get_hdmiaudio(value_t * val) -{ - bool doit = false; - if(getBoolForKey(kEnableHDMIAudio, &doit, &bootInfo->chameleonConfig) && doit){ - val->type = kStr; - val->size = strlen("onboard-1") + 1; - val->data = (uint8_t *)"onboard-1"; - - return true; - } - return false; -} - bool get_bootdisplay_val(value_t *val) { static uint32_t v = 0; @@ -1835,6 +1827,20 @@ return true; } +bool get_hdmiaudio(value_t * val) +{ + bool doit = false; + if(getBoolForKey(kEnableHDMIAudio, &doit, &bootInfo->chameleonConfig) && doit) + { + val->type = kStr; + val->size = strlen("onboard-1") + 1; + val->data = (uint8_t *)"onboard-1"; + + return true; + } + return false; +} + bool get_vrammemory_val(value_t *val) { return false; @@ -1999,7 +2005,7 @@ bzero(val, sizeof(value_t)); } -void devprop_add_list(dev_prop_t devprop_list[]) +void devprop_add_list(AtiDevProp devprop_list[]) { int i, pnum; value_t *val = malloc(sizeof(value_t)); @@ -2065,6 +2071,7 @@ if (rom_header->signature != 0xaa55) { + //verbose("invalid ROM signature %x\n", rom_header->signature); return false; } @@ -2072,11 +2079,13 @@ if (rom_pci_header->signature != 0x52494350) { + //verbose("invalid ROM header %x\n", rom_pci_header->signature); return false; } if (rom_pci_header->vendor_id != pci_dev->vendor_id || rom_pci_header->device_id != pci_dev->device_id) { + //verbose("invalid ROM vendor=%x deviceID=%d\n", rom_pci_header->vendor_id, rom_pci_header->device_id); return false; } @@ -2112,6 +2121,7 @@ if (!validate_rom((option_rom_header_t *)card->rom, card->pci_dev)) { + verbose("validate_rom fails\n"); card->rom_size = 0; card->rom = 0; return false; @@ -2161,6 +2171,7 @@ if (!validate_rom(rom_addr, card->pci_dev)) { + verbose("There is no ROM @0x%x\n", rom_addr); return false; } card->rom_size = rom_addr->rom_size * 512; @@ -2381,6 +2392,8 @@ pci_dev->vendor_id, pci_dev->device_id, pci_dev->subsys_id.subsys.vendor_id, pci_dev->subsys_id.subsys.device_id); return false; } + verbose("Found ATI card! Device ID:[%04X:%04X] Subsystem ID:[%08X] - Radeon [%04X:%08X] %s\n", + pci_dev->vendor_id, pci_dev->device_id, pci_dev->subsys_id, card->info->device_id, card->info->subsys_id, card->info->model_name); card->fb = (uint8_t *)(pci_config_read32(pci_dev->dev.addr, PCI_BASE_ADDRESS_0) & ~0x0f); card->mmio = (uint8_t *)(pci_config_read32(pci_dev->dev.addr, PCI_BASE_ADDRESS_2) & ~0x0f); @@ -2416,6 +2429,7 @@ if (card->info->chip_family >= CHIP_FAMILY_CEDAR) { + verbose("ATI Radeon EVERGREEN family\n"); card->flags |= EVERGREEN; } Index: trunk/i386/libsaio/ati.h =================================================================== --- trunk/i386/libsaio/ati.h (revision 2625) +++ trunk/i386/libsaio/ati.h (revision 2626) @@ -17,17 +17,12 @@ #include "ati_reg.h" /* DEFINES */ -#define OFFSET_TO_GET_ATOMBIOS_STRINGS_START 0x6e -#define Reg32(reg) (*(volatile uint32_t *)(card->mmio + reg)) -#define RegRead32(reg) (Reg32(reg)) +#define Reg32(reg) (*(volatile uint32_t *)(card->mmio + reg)) +#define RegRead32(reg) (Reg32(reg)) #define RegWrite32(reg, value) (Reg32(reg) = value) -/* Flags */ -#define MKFLAG(n) (1 << n) -#define FLAGTRUE MKFLAG(0) -#define EVERGREEN MKFLAG(1) - +#define OFFSET_TO_GET_ATOMBIOS_STRINGS_START 0x6e #define DATVAL(x) {kPtr, sizeof(x), (uint8_t *)x} #define STRVAL(x) {kStr, sizeof(x), (uint8_t *)x} #define BYTVAL(x) {kCst, 1, (uint8_t *)x} @@ -107,6 +102,12 @@ CHIP_FAMILY_LAST } ati_chip_family_t; +//card to #ports +typedef struct { + const char *name; + uint8_t ports; +} card_config_t; + typedef enum { kNull, /* OLDController */ @@ -193,40 +194,18 @@ kBasset, kGreyhound, kCfgEnd -} ati_config_name_t; +} config_name_t; -/* Typedefs STRUCTS */ -typedef struct { - type_t type; - uint32_t size; - uint8_t *data; -} value_t; - -//card to #ports -typedef struct { - const char *name; - uint8_t ports; -} card_config_t; - //radeon card (includes teh AtiConfig) typedef struct { - uint16_t device_id; - uint32_t subsys_id; - ati_chip_family_t chip_family; - const char *model_name; - ati_config_name_t cfg_name; + uint16_t device_id; + uint32_t subsys_id; + ati_chip_family_t chip_family; + const char *model_name; + config_name_t cfg_name; } radeon_card_info_t; -// dev_tree representation typedef struct { - uint32_t flags; - bool all_ports; - char *name; - bool (*get_value)(value_t *val); - value_t default_val; -} dev_prop_t; - -typedef struct { struct DevPropDevice *device; radeon_card_info_t *info; pci_dt_t *pci_dev; @@ -243,7 +222,30 @@ } card_t; +/* Flags */ +#define MKFLAG(n) (1 << n) +#define FLAGTRUE MKFLAG(0) +#define EVERGREEN MKFLAG(1) +#define FLAGMOBILE MKFLAG(2) +#define FLAGOLD MKFLAG(3) +#define FLAGNOTFAKE MKFLAG(4) +/* Typedefs STRUCTS */ +typedef struct { + type_t type; + uint32_t size; + uint8_t *data; +} value_t; + +// dev_tree representation +typedef struct { + uint32_t flags; + bool all_ports; + char *name; + bool (*get_value)(value_t *val); + value_t default_val; +} AtiDevProp; + /* functions */ bool get_bootdisplay_val(value_t *val); bool get_vrammemory_val(value_t *val); @@ -262,9 +264,4 @@ bool get_vramtotalsize_val(value_t *val); bool get_hdmiaudio(value_t * val); -/* vals */ -static value_t aty_name; -static value_t aty_nameparent; -card_t *card; - #endif