Hi, I recently bought a SSD disk to pimp ye ol X40 notebook. The device is a "Mach Xtreme Technology Nano 44Pin Series 1,8 Zoll PATA SSD - 60G" (see dmesg below). Currently, it looks as if my expectations towards gain in snappiness, power consumption and quietness are met.
After roaming a number of lists however, I learned that SSD disks are best aligned along 128k boundaries due to the erase block size. That's what I intended to do when installing the system again yesterday (current snapshot): As the BIOS of the X40 does not support setting (and showing) drive parameters, I have no idea what the BIOS thinks is the disk geometry. The only way to guess that is looking at the fdisk C/H/S values, however this might potentially also be set by the disk driver. fdisk reports the geometry as 7732 cylinders / 240 heads / 63 sectors, which is ok, since it at least divisable by 8 and aligned to 4k. I want to change that to 9320 cylinders with 224 heads (32*7) and 56 sectors (8*7) in fdisk interactive mode (disk). However, I cannot set the right cylinder size, since fdisk says that the "BIOS Cylinders" must be between 1-1024. The reason is that src/sbin/fdisk/cmd.c has "BIOS Cylinders" hardcoded (maxcyl = 1024, roughly 8G then). Is there any necessity for limiting this value? If not, could we raise it to something more contemporary, like 2^16 or more (I'd prepare a diff if I had a suitable machine at hand right now)? If I would save the MBR in interactive mode, the values given with the disk command would actually persist and I'd be done. I mention this, because the C/H/S values do not persist, if I issue an "fdisk -c 9320 -h 224 -s 56 wd0". The next call of fdisk gives me again the old geometry (even when I use -u before). I'd be happy if anyone could give me a hint on how to arrive at a point where I can set the disk geometry persistently (and correct). Thanks in advance, /Markus # atactl wd0 identify Model: MXSSD1MNANO-60G, Rev: VATE1532, Serial #: 101206112 Device type: ATA, fixed Cylinders: 16383, heads: 16, sec/track: 63, total sectors: 116916224 Device capabilities: ATA standby timer values IORDY operation Device supports the following standards: ATA-1 ATA-2 ATA-3 ATA-4 ATA-5 ATA-6 ATA-7 ATA-8 Master password revision code 0xfffe Device supports the following command sets: NOP command READ BUFFER command WRITE BUFFER command Host Protected Area feature set Read look-ahead Write cache Power Management feature set Security Mode feature set SMART feature set Flush Cache Ext command Flush Cache command 48bit address feature set Set Max security extension commands DOWNLOAD MICROCODE command Device has enabled the following command sets/features: NOP command READ BUFFER command WRITE BUFFER command Host Protected Area feature set Read look-ahead Write cache Power Management feature set SMART feature set Flush Cache Ext command Flush Cache command 48bit address feature set DOWNLOAD MICROCODE command # atactl wd0 secsetpass user high User password: <test> Retype user password: <test> atactl: ATA device returned Aborted Command -> There is no way to issue a "atactl secerase user" without having a password # dmesg OpenBSD 4.9 (GENERIC) #671: Wed Mar 2 07:09:00 MST 2011 dera...@i386.openbsd.org:/usr/src/sys/arch/i386/compile/GENERIC cpu0: Intel(R) Pentium(R) M processor 1.40GHz ("GenuineIntel" 686-class) 1.40 GHz cpu0: FPU,V86,DE,PSE,TSC,MSR,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,TM,SBF,EST,TM2 real mem = 1063743488 (1014MB) avail mem = 1036210176 (988MB) mainbus0 at root bios0 at mainbus0: AT/286+ BIOS, date 08/31/06, BIOS32 rev. 0 @ 0xfd740, SMBIOS rev. 2.33 @ 0xe0010 (56 entries) bios0: vendor IBM version "1UETD2WW (2.07 )" date 08/31/2006 bios0: IBM 2371H9G apm0 at bios0: Power Management spec V1.2 apm0: battery life expectancy 100% apm0: AC on, battery charge high acpi at bios0 function 0x0 not configured pcibios0 at bios0: rev 2.1 @ 0xfd6d0/0x930 pcibios0: PCI IRQ Routing Table rev 1.0 @ 0xfdeb0/256 (14 entries) pcibios0: PCI Interrupt Router at 000:31:0 ("Intel 82371FB ISA" rev 0x00) pcibios0: PCI bus #3 is the last bus bios0: ROM list: 0xc0000/0xc800! 0xcc800/0x1000 0xcd800/0x1000 0xdc000/0x4000! 0xe0000/0x10000 cpu0 at mainbus0: (uniprocessor) cpu0: Enhanced SpeedStep 1396 MHz: speeds: 1400, 1300, 1200, 1100, 1000, 900, 800, 600 MHz pci0 at mainbus0 bus 0: configuration mode 1 (bios) io address conflict 0x5800/0x8 io address conflict 0x5808/0x4 io address conflict 0x5810/0x8 io address conflict 0x580c/0x4 mem address conflict 0x3f700000/0x400 pchb0 at pci0 dev 0 function 0 "Intel 82855GM Host" rev 0x02 "Intel 82855GM Memory" rev 0x02 at pci0 dev 0 function 1 not configured "Intel 82855GM Config" rev 0x02 at pci0 dev 0 function 3 not configured vga1 at pci0 dev 2 function 0 "Intel 82855GM Video" rev 0x02 wsdisplay0 at vga1 mux 1: console (80x25, vt100 emulation) wsdisplay0: screen 1-5 added (80x25, vt100 emulation) intagp0 at vga1 agp0 at intagp0: aperture at 0xe0000000, size 0x8000000 inteldrm0 at vga1: irq 11 drm0 at inteldrm0 "Intel 82855GM Video" rev 0x02 at pci0 dev 2 function 1 not configured uhci0 at pci0 dev 29 function 0 "Intel 82801DB USB" rev 0x01: irq 11 uhci1 at pci0 dev 29 function 1 "Intel 82801DB USB" rev 0x01: irq 11 uhci2 at pci0 dev 29 function 2 "Intel 82801DB USB" rev 0x01: irq 11 ehci0 at pci0 dev 29 function 7 "Intel 82801DB USB" rev 0x01: irq 11 usb0 at ehci0: USB revision 2.0 uhub0 at usb0 "Intel EHCI root hub" rev 2.00/1.00 addr 1 ppb0 at pci0 dev 30 function 0 "Intel 82801BAM Hub-to-PCI" rev 0x81 pci1 at ppb0 bus 2 mem address conflict 0xb0000000/0x1000 cbb0 at pci1 dev 0 function 0 "Ricoh 5C476 CardBus" rev 0x8d: irq 11 sdhc0 at pci1 dev 0 function 1 "Ricoh 5C822 SD/MMC" rev 0x13: irq 11 sdmmc0 at sdhc0 em0 at pci1 dev 1 function 0 "Intel PRO/1000MT Mobile (82541GI)" rev 0x00: irq 11, address 00:0a:e4:39:9f:27 ath0 at pci1 dev 2 function 0 "Atheros AR5212 (IBM MiniPCI)" rev 0x01: irq 11 ath0: AR5213A 5.9 phy 4.3 rf5112a 3.6, WOR2W, address 00:0e:9b:ae:d0:72 cardslot0 at cbb0 slot 0 flags 0 cardbus0 at cardslot0: bus 3 device 0 cacheline 0x0, lattimer 0xb0 pcmcia0 at cardslot0 ichpcib0 at pci0 dev 31 function 0 "Intel 82801DBM LPC" rev 0x01: 24-bit timer at 3579545Hz pciide0 at pci0 dev 31 function 1 "Intel 82801DBM IDE" rev 0x01: DMA, channel 0 configured to compatibility, channe l 1 configured to compatibility wd0 at pciide0 channel 0 drive 0: <MXSSD1MNANO-60G> wd0: 16-sector PIO, LBA48, 57088MB, 116916224 sectors wd0(pciide0:0:0): using PIO mode 4, Ultra-DMA mode 5 pciide0: channel 1 disabled (no drives) ichiic0 at pci0 dev 31 function 3 "Intel 82801DB SMBus" rev 0x01: irq 11 iic0 at ichiic0 spdmem0 at iic0 addr 0x51: 512MB DDR SDRAM non-parity PC2700CL2.5 auich0 at pci0 dev 31 function 5 "Intel 82801DB AC97" rev 0x01: irq 11, ICH4 AC97 ac97: codec id 0x41445374 (Analog Devices AD1981B) ac97: codec features headphone, 20 bit DAC, No 3D Stereo audio0 at auich0 "Intel 82801DB Modem" rev 0x01 at pci0 dev 31 function 6 not configured usb1 at uhci0: USB revision 1.0 uhub1 at usb1 "Intel UHCI root hub" rev 1.00/1.00 addr 1 usb2 at uhci1: USB revision 1.0 uhub2 at usb2 "Intel UHCI root hub" rev 1.00/1.00 addr 1 usb3 at uhci2: USB revision 1.0 uhub3 at usb3 "Intel UHCI root hub" rev 1.00/1.00 addr 1 isa0 at ichpcib0 isadma0 at isa0 pckbc0 at isa0 port 0x60/5 pckbd0 at pckbc0 (kbd slot) pckbc0: using irq 1 for kbd slot wskbd0 at pckbd0: console keyboard, using wsdisplay0 pms0 at pckbc0 (aux slot) pckbc0: using irq 12 for aux slot wsmouse0 at pms0 mux 0 pcppi0 at isa0 port 0x61 spkr0 at pcppi0 aps0 at isa0 port 0x1600/31 npx0 at isa0 port 0xf0/16: reported by CPUID; using exception 16 biomask effd netmask effd ttymask ffff mtrr: Pentium Pro MTRR support vscsi0 at root scsibus0 at vscsi0: 256 targets softraid0 at root root on wd0a swap on wd0b dump on wd0b scsibus1 at sdmmc0: 2 targets, initiator 0 sd0 at scsibus1 targ 1 lun 0: <SD/MMC, Drive #01, > SCSI2 0/direct fixed sd0: 976MB, 512 bytes/sec, 1999872 sec total