Add support for the VIA 8237S
Fix the LBA28/LBA48 crossover bug. Approved by: re@
This commit is contained in:
parent
fb6e00667c
commit
358904bf9d
@ -738,7 +738,7 @@ ata_modify_if_48bit(struct ata_request *request)
|
||||
|
||||
atadev->flags &= ~ATA_D_48BIT_ACTIVE;
|
||||
|
||||
if ((request->u.ata.lba >= ATA_MAX_28BIT_LBA ||
|
||||
if (((request->u.ata.lba + request->u.ata.count) >= ATA_MAX_28BIT_LBA ||
|
||||
request->u.ata.count > 256) &&
|
||||
atadev->param.support.command2 & ATA_SUPPORT_ADDRESS48) {
|
||||
|
||||
|
@ -5096,6 +5096,7 @@ ata_via_ident(device_t dev)
|
||||
{ ATA_VIA8235, 0x00, VIA133, 0x00, ATA_UDMA6, "8235" },
|
||||
{ ATA_VIA8237, 0x00, VIA133, 0x00, ATA_UDMA6, "8237" },
|
||||
{ ATA_VIA8237A, 0x00, VIA133, 0x00, ATA_UDMA6, "8237A" },
|
||||
{ ATA_VIA8237S, 0x00, VIA133, 0x00, ATA_UDMA6, "8237S" },
|
||||
{ ATA_VIA8251, 0x00, VIA133, 0x00, ATA_UDMA6, "8251" },
|
||||
{ 0, 0, 0, 0, 0, 0 }};
|
||||
static struct ata_chip_id new_ids[] =
|
||||
@ -5103,6 +5104,7 @@ ata_via_ident(device_t dev)
|
||||
{ ATA_VIA6420, 0x00, 7, 0x00, ATA_SA150, "6420" },
|
||||
{ ATA_VIA6421, 0x00, 6, VIABAR, ATA_SA150, "6421" },
|
||||
{ ATA_VIA8237A, 0x00, 7, 0x00, ATA_SA150, "8237A" },
|
||||
{ ATA_VIA8237S, 0x00, 7, 0x00, ATA_SA150, "8237S" },
|
||||
{ ATA_VIA8251, 0x00, 0, VIAAHCI, ATA_SA300, "8251" },
|
||||
{ 0, 0, 0, 0, 0, 0 }};
|
||||
char buffer[64];
|
||||
|
@ -358,6 +358,7 @@ struct ata_connect_task {
|
||||
#define ATA_VIA8235 0x31771106
|
||||
#define ATA_VIA8237 0x32271106
|
||||
#define ATA_VIA8237A 0x05911106
|
||||
#define ATA_VIA8237S 0x53371106
|
||||
#define ATA_VIA8251 0x33491106
|
||||
#define ATA_VIA8361 0x31121106
|
||||
#define ATA_VIA8363 0x03051106
|
||||
|
Loading…
x
Reference in New Issue
Block a user