History log of /netbsd-current/sys/arch/sandpoint/stand/altboot/brdsetup.c
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 1.42 20-Dec-2023 thorpej

Remove unnecessary <sys/malloc.h>.


Revision tags: thorpej-ifq-base thorpej-altq-separation-base netbsd-10-0-RC1 netbsd-10-base bouyer-sunxi-drm-base
# 1.41 16-Feb-2022 riastradh

powerpc: Sprinkle "memory" clobbers on eieio and nearby asm blocks.

Otherwise the compiler may reorder these around loads and stores,
which mostly defeats the purpose. `asm volatile' just ensures the
instruction isn't _deleted_; it may still move around.


# 1.40 09-Aug-2021 andvar

fix various typos in compatibility, mainly in comments.


Revision tags: netbsd-9-3-RELEASE thorpej-i2c-spi-conf2-base thorpej-futex2-base thorpej-cfargs2-base cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 netbsd-9-2-RELEASE cjep_staticlib_x-base thorpej-i2c-spi-conf-base thorpej-cfargs-base thorpej-futex-base netbsd-9-1-RELEASE bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1 phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3 netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 isaki-audio2-base pgoyette-compat-merge-20190127 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base tls-maxphys-base-20171202 nick-nhusb-base-20170825
# 1.39 03-Aug-2017 phx

Some Synology network devices show vendor 0x1148 (Schneider & Koch) instead
of 0x11ab (Marvell). Detect both.
Improve spinning up of both disk drives on Synology DS20x by adding some
more delays (directly at the start and after powering up the second drive).


# 1.38 03-Aug-2017 phx

Fixed overflow in delay() for delays greater than 2 seconds.
Replaced u_long by uint32_t and u_quad by uint64_t whenever the exact
32- or 64-bit word is needed.


Revision tags: netbsd-8-2-RELEASE netbsd-8-1-RELEASE netbsd-8-1-RC1 netbsd-8-0-RELEASE netbsd-8-0-RC2 netbsd-8-0-RC1 matt-nb8-mediatek-base perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226
# 1.37 15-Oct-2015 nisimura

fix a board type check logic error that affected Linkstation and Kurobox (HG).
They were mistakenly recognized kurot4 type and ended up with kernel boot
failure.


# 1.36 30-Sep-2015 phx

Pass a name and flags precisely describing the current model and its
features via a new bootinfo node (currently Synology only). This allows
for example the configuration of model-specific temperature I2C sensors
and fan control.
Support for the Synology DS207 and DS209 drive LEDs and wait until the
2nd drive is completely powered up.


Revision tags: netbsd-7-0-2-RELEASE netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE nick-nhusb-base-20150921 netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base netbsd-7-base tls-earlyentropy-base tls-maxphys-base
# 1.35 08-Aug-2014 joerg

branches: 1.35.2; 1.35.4;
Use __unreachable().


# 1.34 05-Aug-2014 joerg

Don't use non-literal strings as format strings.
XXX Switch to strlcpy.


Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 rmind-smpnet-nbase rmind-smpnet-base
# 1.33 07-Nov-2013 nisimura

branches: 1.33.2;

shut off gcc 4.8 unused variable warnings.


Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8
# 1.32 25-Dec-2012 phx

branches: 1.32.2;
QNAP V200 boards have no EEPROM for the MAC address, so all devices default
to the same address (00:e0:4c:69:20:01).
Now we read the real MAC address from the flash ROM. It is stored at the
beginning of a 512-byte block in ASCII format. Some QNAP's have a broken
ext2 file system, so we cannot look for the file ETH0.MAC_ADDR therein,
but have to search the whole flash in 512-byte steps for candidates...


Revision tags: yamt-pagecache-base7 yamt-pagecache-base6 jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9
# 1.31 16-Apr-2012 phx

branches: 1.31.2;
Improved Synology CS/RS support: watch power-state of all SATA drives before
initializing them, configure drive LEDs to reflect SATA activity.
Configure drives on all ATA PCI devices, not only on the first one.


Revision tags: yamt-pagecache-base4
# 1.30 09-Apr-2012 nisimura

The processor ExtClk value of Kurobox/T4 is comfirmed as 32768000.


# 1.29 09-Apr-2012 nisimura

Change to use "kurot4" product name for Terastation TGL and
KuroBox/T4.


# 1.28 08-Apr-2012 nisimura

Add an entry for Terastation TGL miconv2 satellite processor which
features a more complex protocol than Linkstation/Kurobox.


Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base8 jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-base2 netbsd-6-base
# 1.27 14-Jan-2012 phx

branches: 1.27.2;
Netronics is spelled Netronix.


# 1.26 14-Jan-2012 phx

Add 0x70000000 BAT-mapping for NH230/231.
NH23x: Initialize LEDs on startup (status off, to indicate the bootloader
is running). Hardware reset routine.


# 1.25 08-Jan-2012 phx

Set the extclk for NH230 to 33000000Hz.
Prepare a synosetup() function which should set a different extclk for
the 400MHz models, as soon as we find a method to check for them.


# 1.24 07-Jan-2012 phx

NH230 PPCBoot configures the memory boundary registers for 128MB, although
the board has only 64MB. Fix that.


Revision tags: jmcneill-usbmp-pre-base2 jmcneill-usbmp-base jmcneill-audiomp3-base
# 1.23 12-Nov-2011 phx

branches: 1.23.4;
Improved Iomega microcontroller support. Bumped version to 1.8.


Revision tags: yamt-pagecache-base3 yamt-pagecache-base2
# 1.22 07-Nov-2011 phx

Fixed Iomega microcontroller support. Implemented Iomega reboot function.


# 1.21 06-Nov-2011 phx

Added a test terminal for communicating with the satellite microcontroller.
When compiled with DEBUG option it can be entered by typing 'C'.


Revision tags: yamt-pagecache-base
# 1.20 01-Nov-2011 phx

branches: 1.20.2;
The Apollo family of IDE interface chips has both channels disabled by
default, so we have to enable them in a new chipfix function. Also move
the channel enable code for the 82C686B from encpcifix() to pciide.c.


# 1.19 30-Oct-2011 phx

Added in8() and out8() to access a byte with reorder-protection.
Use it in all drivers instead of (volatile uint8_t *).


Revision tags: rmind-uvmplock-nbase cherry-xenmp-base rmind-uvmplock-base
# 1.18 29-May-2011 phx

branches: 1.18.4;
When PPCBoot supports the SKnet interface it will configure it to automatically
byte-reverse all descriptors by setting a vendor-specific bit in PCI config
space. We have to clear that bit to make sure our driver can send and
receive.


Revision tags: jym-xensuspend-nbase jym-xensuspend-base
# 1.17 26-Apr-2011 phx

Priority of QNAP board detection was still too high. It should be lowest,
because a Realtek chip at pci device 15 is used on several boards. Now
NH230/All6250 detection should work again.


# 1.16 25-Apr-2011 phx

Detect StorCenter before QNAP, otherwise the Realtek NIC will mis-detect as
StorCenter boards as QNAP.


# 1.15 17-Apr-2011 phx

DSM-G600 has a 33.000 MHz oscillator on board.


# 1.14 13-Apr-2011 phx

ExtClk for QNAP should be the same as for Synology's 266MHz systems.
This seems logical, as both boards are very similar, and the clock precision
is ok now.


# 1.13 09-Apr-2011 phx

Set D-Link DSM-G600 power LED to solid green on start.


# 1.12 26-Mar-2011 phx

QNAP support. Detect wm(4) based V1.02 and re(4) based V200 boards.
That should include all TS-101 and TS-201 models.
Add reset-code and LED-illumination code for the QNAP PIC, which listens
on the second UART with 19200 bps.


# 1.11 13-Mar-2011 phx

Enter interactive mode, when a key is pressed within two seconds.


# 1.10 12-Mar-2011 phx

Introduced an optional shutdown function for all network interfaces.
This is needed to stop a NIF and make it return to a known state. A running
NIF may cause all sorts of bad effects, like for example making it impossible
to reboot a board without a hardware-reset function.


# 1.9 11-Mar-2011 phx

Some code cleanup, suggested by nisimura@.


# 1.8 10-Mar-2011 phx

Make sure the device class is IDE (class 0, subclass 1), before checking
the PCI interface for native/legacy mode. Different subclasses are always
assumed being in native mode. That makes the Acard IDE controller work.

New macros for PCI interface, revision and class.


# 1.7 06-Mar-2011 phx

Suport for loading a kernel from memory (RAM, ROM or Flash).
The boot file path should look like "mem:<address>", where <address> is
the start address, in hex notation, of the file in memory.


# 1.6 06-Mar-2011 phx

branches: 1.6.2;
New experimental driver for SundanceIT ST1023 / IP1000+ NICs.
PHY initialization, media select and MAC address are working, but I found no
way to make the chip transmit any frame yet (although it clears the DONE flag).

Moved DSK_DECL to globals.h, where NIF_DECL already was.


Revision tags: uebayasi-xip-base7 bouyer-quota2-base bouyer-quota2-nbase
# 1.5 14-Feb-2011 nisimura

branches: 1.5.2;
- add preliminary Netronics NH230 and NH231 supports.
- assign PCI configuration register 0x3c with IDSEL value by PCI framework,
eliminating most of pcifixup() logic in simple NASes.


# 1.4 10-Feb-2011 nisimura

- some rework for PCI device enumeration.
- allow dual IDE/SATA devices.
- fix a typo of D-Link #define.


# 1.3 08-Feb-2011 nisimura

- add preliminary code to support D-Link DSM-G600 rev.B NAS.
- it features 9600bps console, Moto MCU on the 2nd DUART channel,
ACARD ATP865 PCIIDE and IP Plus IP1000A GbE. It has MiniPCI
slot.


# 1.2 07-Feb-2011 nisimura

add IOMEGA StorCenter fixup codes. Need more change as the satellite
microcontroller protocol is defined in 8-byte fixed length sequence.


# 1.1 23-Jan-2011 nisimura

change bootloader name to "altboot". bump version and add README.


# 1.41 16-Feb-2022 riastradh

powerpc: Sprinkle "memory" clobbers on eieio and nearby asm blocks.

Otherwise the compiler may reorder these around loads and stores,
which mostly defeats the purpose. `asm volatile' just ensures the
instruction isn't _deleted_; it may still move around.


# 1.40 09-Aug-2021 andvar

fix various typos in compatibility, mainly in comments.


Revision tags: thorpej-i2c-spi-conf2-base thorpej-futex2-base thorpej-cfargs2-base cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 netbsd-9-2-RELEASE cjep_staticlib_x-base thorpej-i2c-spi-conf-base thorpej-cfargs-base thorpej-futex-base netbsd-9-1-RELEASE bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1 phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3 netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 isaki-audio2-base pgoyette-compat-merge-20190127 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base tls-maxphys-base-20171202 nick-nhusb-base-20170825
# 1.39 03-Aug-2017 phx

Some Synology network devices show vendor 0x1148 (Schneider & Koch) instead
of 0x11ab (Marvell). Detect both.
Improve spinning up of both disk drives on Synology DS20x by adding some
more delays (directly at the start and after powering up the second drive).


# 1.38 03-Aug-2017 phx

Fixed overflow in delay() for delays greater than 2 seconds.
Replaced u_long by uint32_t and u_quad by uint64_t whenever the exact
32- or 64-bit word is needed.


Revision tags: netbsd-8-2-RELEASE netbsd-8-1-RELEASE netbsd-8-1-RC1 netbsd-8-0-RELEASE netbsd-8-0-RC2 netbsd-8-0-RC1 matt-nb8-mediatek-base perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226
# 1.37 15-Oct-2015 nisimura

fix a board type check logic error that affected Linkstation and Kurobox (HG).
They were mistakenly recognized kurot4 type and ended up with kernel boot
failure.


# 1.36 30-Sep-2015 phx

Pass a name and flags precisely describing the current model and its
features via a new bootinfo node (currently Synology only). This allows
for example the configuration of model-specific temperature I2C sensors
and fan control.
Support for the Synology DS207 and DS209 drive LEDs and wait until the
2nd drive is completely powered up.


Revision tags: netbsd-7-0-2-RELEASE netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE nick-nhusb-base-20150921 netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base netbsd-7-base tls-earlyentropy-base tls-maxphys-base
# 1.35 08-Aug-2014 joerg

branches: 1.35.2; 1.35.4;
Use __unreachable().


# 1.34 05-Aug-2014 joerg

Don't use non-literal strings as format strings.
XXX Switch to strlcpy.


Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 rmind-smpnet-nbase rmind-smpnet-base
# 1.33 07-Nov-2013 nisimura

branches: 1.33.2;

shut off gcc 4.8 unused variable warnings.


Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8
# 1.32 25-Dec-2012 phx

branches: 1.32.2;
QNAP V200 boards have no EEPROM for the MAC address, so all devices default
to the same address (00:e0:4c:69:20:01).
Now we read the real MAC address from the flash ROM. It is stored at the
beginning of a 512-byte block in ASCII format. Some QNAP's have a broken
ext2 file system, so we cannot look for the file ETH0.MAC_ADDR therein,
but have to search the whole flash in 512-byte steps for candidates...


Revision tags: yamt-pagecache-base7 yamt-pagecache-base6 jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9
# 1.31 16-Apr-2012 phx

branches: 1.31.2;
Improved Synology CS/RS support: watch power-state of all SATA drives before
initializing them, configure drive LEDs to reflect SATA activity.
Configure drives on all ATA PCI devices, not only on the first one.


Revision tags: yamt-pagecache-base4
# 1.30 09-Apr-2012 nisimura

The processor ExtClk value of Kurobox/T4 is comfirmed as 32768000.


# 1.29 09-Apr-2012 nisimura

Change to use "kurot4" product name for Terastation TGL and
KuroBox/T4.


# 1.28 08-Apr-2012 nisimura

Add an entry for Terastation TGL miconv2 satellite processor which
features a more complex protocol than Linkstation/Kurobox.


Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base8 jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-base2 netbsd-6-base
# 1.27 14-Jan-2012 phx

branches: 1.27.2;
Netronics is spelled Netronix.


# 1.26 14-Jan-2012 phx

Add 0x70000000 BAT-mapping for NH230/231.
NH23x: Initialize LEDs on startup (status off, to indicate the bootloader
is running). Hardware reset routine.


# 1.25 08-Jan-2012 phx

Set the extclk for NH230 to 33000000Hz.
Prepare a synosetup() function which should set a different extclk for
the 400MHz models, as soon as we find a method to check for them.


# 1.24 07-Jan-2012 phx

NH230 PPCBoot configures the memory boundary registers for 128MB, although
the board has only 64MB. Fix that.


Revision tags: jmcneill-usbmp-pre-base2 jmcneill-usbmp-base jmcneill-audiomp3-base
# 1.23 12-Nov-2011 phx

branches: 1.23.4;
Improved Iomega microcontroller support. Bumped version to 1.8.


Revision tags: yamt-pagecache-base3 yamt-pagecache-base2
# 1.22 07-Nov-2011 phx

Fixed Iomega microcontroller support. Implemented Iomega reboot function.


# 1.21 06-Nov-2011 phx

Added a test terminal for communicating with the satellite microcontroller.
When compiled with DEBUG option it can be entered by typing 'C'.


Revision tags: yamt-pagecache-base
# 1.20 01-Nov-2011 phx

branches: 1.20.2;
The Apollo family of IDE interface chips has both channels disabled by
default, so we have to enable them in a new chipfix function. Also move
the channel enable code for the 82C686B from encpcifix() to pciide.c.


# 1.19 30-Oct-2011 phx

Added in8() and out8() to access a byte with reorder-protection.
Use it in all drivers instead of (volatile uint8_t *).


Revision tags: rmind-uvmplock-nbase cherry-xenmp-base rmind-uvmplock-base
# 1.18 29-May-2011 phx

branches: 1.18.4;
When PPCBoot supports the SKnet interface it will configure it to automatically
byte-reverse all descriptors by setting a vendor-specific bit in PCI config
space. We have to clear that bit to make sure our driver can send and
receive.


Revision tags: jym-xensuspend-nbase jym-xensuspend-base
# 1.17 26-Apr-2011 phx

Priority of QNAP board detection was still too high. It should be lowest,
because a Realtek chip at pci device 15 is used on several boards. Now
NH230/All6250 detection should work again.


# 1.16 25-Apr-2011 phx

Detect StorCenter before QNAP, otherwise the Realtek NIC will mis-detect as
StorCenter boards as QNAP.


# 1.15 17-Apr-2011 phx

DSM-G600 has a 33.000 MHz oscillator on board.


# 1.14 13-Apr-2011 phx

ExtClk for QNAP should be the same as for Synology's 266MHz systems.
This seems logical, as both boards are very similar, and the clock precision
is ok now.


# 1.13 09-Apr-2011 phx

Set D-Link DSM-G600 power LED to solid green on start.


# 1.12 26-Mar-2011 phx

QNAP support. Detect wm(4) based V1.02 and re(4) based V200 boards.
That should include all TS-101 and TS-201 models.
Add reset-code and LED-illumination code for the QNAP PIC, which listens
on the second UART with 19200 bps.


# 1.11 13-Mar-2011 phx

Enter interactive mode, when a key is pressed within two seconds.


# 1.10 12-Mar-2011 phx

Introduced an optional shutdown function for all network interfaces.
This is needed to stop a NIF and make it return to a known state. A running
NIF may cause all sorts of bad effects, like for example making it impossible
to reboot a board without a hardware-reset function.


# 1.9 11-Mar-2011 phx

Some code cleanup, suggested by nisimura@.


# 1.8 10-Mar-2011 phx

Make sure the device class is IDE (class 0, subclass 1), before checking
the PCI interface for native/legacy mode. Different subclasses are always
assumed being in native mode. That makes the Acard IDE controller work.

New macros for PCI interface, revision and class.


# 1.7 06-Mar-2011 phx

Suport for loading a kernel from memory (RAM, ROM or Flash).
The boot file path should look like "mem:<address>", where <address> is
the start address, in hex notation, of the file in memory.


# 1.6 06-Mar-2011 phx

branches: 1.6.2;
New experimental driver for SundanceIT ST1023 / IP1000+ NICs.
PHY initialization, media select and MAC address are working, but I found no
way to make the chip transmit any frame yet (although it clears the DONE flag).

Moved DSK_DECL to globals.h, where NIF_DECL already was.


Revision tags: uebayasi-xip-base7 bouyer-quota2-base bouyer-quota2-nbase
# 1.5 14-Feb-2011 nisimura

branches: 1.5.2;
- add preliminary Netronics NH230 and NH231 supports.
- assign PCI configuration register 0x3c with IDSEL value by PCI framework,
eliminating most of pcifixup() logic in simple NASes.


# 1.4 10-Feb-2011 nisimura

- some rework for PCI device enumeration.
- allow dual IDE/SATA devices.
- fix a typo of D-Link #define.


# 1.3 08-Feb-2011 nisimura

- add preliminary code to support D-Link DSM-G600 rev.B NAS.
- it features 9600bps console, Moto MCU on the 2nd DUART channel,
ACARD ATP865 PCIIDE and IP Plus IP1000A GbE. It has MiniPCI
slot.


# 1.2 07-Feb-2011 nisimura

add IOMEGA StorCenter fixup codes. Need more change as the satellite
microcontroller protocol is defined in 8-byte fixed length sequence.


# 1.1 23-Jan-2011 nisimura

change bootloader name to "altboot". bump version and add README.


# 1.40 09-Aug-2021 andvar

fix various typos in compatibility, mainly in comments.


Revision tags: thorpej-i2c-spi-conf2-base thorpej-futex2-base thorpej-cfargs2-base cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 netbsd-9-2-RELEASE cjep_staticlib_x-base thorpej-i2c-spi-conf-base thorpej-cfargs-base thorpej-futex-base netbsd-9-1-RELEASE bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1 phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3 netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 isaki-audio2-base pgoyette-compat-merge-20190127 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base tls-maxphys-base-20171202 nick-nhusb-base-20170825
# 1.39 03-Aug-2017 phx

Some Synology network devices show vendor 0x1148 (Schneider & Koch) instead
of 0x11ab (Marvell). Detect both.
Improve spinning up of both disk drives on Synology DS20x by adding some
more delays (directly at the start and after powering up the second drive).


# 1.38 03-Aug-2017 phx

Fixed overflow in delay() for delays greater than 2 seconds.
Replaced u_long by uint32_t and u_quad by uint64_t whenever the exact
32- or 64-bit word is needed.


Revision tags: netbsd-8-2-RELEASE netbsd-8-1-RELEASE netbsd-8-1-RC1 netbsd-8-0-RELEASE netbsd-8-0-RC2 netbsd-8-0-RC1 matt-nb8-mediatek-base perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226
# 1.37 15-Oct-2015 nisimura

fix a board type check logic error that affected Linkstation and Kurobox (HG).
They were mistakenly recognized kurot4 type and ended up with kernel boot
failure.


# 1.36 30-Sep-2015 phx

Pass a name and flags precisely describing the current model and its
features via a new bootinfo node (currently Synology only). This allows
for example the configuration of model-specific temperature I2C sensors
and fan control.
Support for the Synology DS207 and DS209 drive LEDs and wait until the
2nd drive is completely powered up.


Revision tags: netbsd-7-0-2-RELEASE netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE nick-nhusb-base-20150921 netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base netbsd-7-base tls-earlyentropy-base tls-maxphys-base
# 1.35 08-Aug-2014 joerg

branches: 1.35.2; 1.35.4;
Use __unreachable().


# 1.34 05-Aug-2014 joerg

Don't use non-literal strings as format strings.
XXX Switch to strlcpy.


Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 rmind-smpnet-nbase rmind-smpnet-base
# 1.33 07-Nov-2013 nisimura

branches: 1.33.2;

shut off gcc 4.8 unused variable warnings.


Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8
# 1.32 25-Dec-2012 phx

branches: 1.32.2;
QNAP V200 boards have no EEPROM for the MAC address, so all devices default
to the same address (00:e0:4c:69:20:01).
Now we read the real MAC address from the flash ROM. It is stored at the
beginning of a 512-byte block in ASCII format. Some QNAP's have a broken
ext2 file system, so we cannot look for the file ETH0.MAC_ADDR therein,
but have to search the whole flash in 512-byte steps for candidates...


Revision tags: yamt-pagecache-base7 yamt-pagecache-base6 jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9
# 1.31 16-Apr-2012 phx

branches: 1.31.2;
Improved Synology CS/RS support: watch power-state of all SATA drives before
initializing them, configure drive LEDs to reflect SATA activity.
Configure drives on all ATA PCI devices, not only on the first one.


Revision tags: yamt-pagecache-base4
# 1.30 09-Apr-2012 nisimura

The processor ExtClk value of Kurobox/T4 is comfirmed as 32768000.


# 1.29 09-Apr-2012 nisimura

Change to use "kurot4" product name for Terastation TGL and
KuroBox/T4.


# 1.28 08-Apr-2012 nisimura

Add an entry for Terastation TGL miconv2 satellite processor which
features a more complex protocol than Linkstation/Kurobox.


Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base8 jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-base2 netbsd-6-base
# 1.27 14-Jan-2012 phx

branches: 1.27.2;
Netronics is spelled Netronix.


# 1.26 14-Jan-2012 phx

Add 0x70000000 BAT-mapping for NH230/231.
NH23x: Initialize LEDs on startup (status off, to indicate the bootloader
is running). Hardware reset routine.


# 1.25 08-Jan-2012 phx

Set the extclk for NH230 to 33000000Hz.
Prepare a synosetup() function which should set a different extclk for
the 400MHz models, as soon as we find a method to check for them.


# 1.24 07-Jan-2012 phx

NH230 PPCBoot configures the memory boundary registers for 128MB, although
the board has only 64MB. Fix that.


Revision tags: jmcneill-usbmp-pre-base2 jmcneill-usbmp-base jmcneill-audiomp3-base
# 1.23 12-Nov-2011 phx

branches: 1.23.4;
Improved Iomega microcontroller support. Bumped version to 1.8.


Revision tags: yamt-pagecache-base3 yamt-pagecache-base2
# 1.22 07-Nov-2011 phx

Fixed Iomega microcontroller support. Implemented Iomega reboot function.


# 1.21 06-Nov-2011 phx

Added a test terminal for communicating with the satellite microcontroller.
When compiled with DEBUG option it can be entered by typing 'C'.


Revision tags: yamt-pagecache-base
# 1.20 01-Nov-2011 phx

branches: 1.20.2;
The Apollo family of IDE interface chips has both channels disabled by
default, so we have to enable them in a new chipfix function. Also move
the channel enable code for the 82C686B from encpcifix() to pciide.c.


# 1.19 30-Oct-2011 phx

Added in8() and out8() to access a byte with reorder-protection.
Use it in all drivers instead of (volatile uint8_t *).


Revision tags: rmind-uvmplock-nbase cherry-xenmp-base rmind-uvmplock-base
# 1.18 29-May-2011 phx

branches: 1.18.4;
When PPCBoot supports the SKnet interface it will configure it to automatically
byte-reverse all descriptors by setting a vendor-specific bit in PCI config
space. We have to clear that bit to make sure our driver can send and
receive.


Revision tags: jym-xensuspend-nbase jym-xensuspend-base
# 1.17 26-Apr-2011 phx

Priority of QNAP board detection was still too high. It should be lowest,
because a Realtek chip at pci device 15 is used on several boards. Now
NH230/All6250 detection should work again.


# 1.16 25-Apr-2011 phx

Detect StorCenter before QNAP, otherwise the Realtek NIC will mis-detect as
StorCenter boards as QNAP.


# 1.15 17-Apr-2011 phx

DSM-G600 has a 33.000 MHz oscillator on board.


# 1.14 13-Apr-2011 phx

ExtClk for QNAP should be the same as for Synology's 266MHz systems.
This seems logical, as both boards are very similar, and the clock precision
is ok now.


# 1.13 09-Apr-2011 phx

Set D-Link DSM-G600 power LED to solid green on start.


# 1.12 26-Mar-2011 phx

QNAP support. Detect wm(4) based V1.02 and re(4) based V200 boards.
That should include all TS-101 and TS-201 models.
Add reset-code and LED-illumination code for the QNAP PIC, which listens
on the second UART with 19200 bps.


# 1.11 13-Mar-2011 phx

Enter interactive mode, when a key is pressed within two seconds.


# 1.10 12-Mar-2011 phx

Introduced an optional shutdown function for all network interfaces.
This is needed to stop a NIF and make it return to a known state. A running
NIF may cause all sorts of bad effects, like for example making it impossible
to reboot a board without a hardware-reset function.


# 1.9 11-Mar-2011 phx

Some code cleanup, suggested by nisimura@.


# 1.8 10-Mar-2011 phx

Make sure the device class is IDE (class 0, subclass 1), before checking
the PCI interface for native/legacy mode. Different subclasses are always
assumed being in native mode. That makes the Acard IDE controller work.

New macros for PCI interface, revision and class.


# 1.7 06-Mar-2011 phx

Suport for loading a kernel from memory (RAM, ROM or Flash).
The boot file path should look like "mem:<address>", where <address> is
the start address, in hex notation, of the file in memory.


# 1.6 06-Mar-2011 phx

branches: 1.6.2;
New experimental driver for SundanceIT ST1023 / IP1000+ NICs.
PHY initialization, media select and MAC address are working, but I found no
way to make the chip transmit any frame yet (although it clears the DONE flag).

Moved DSK_DECL to globals.h, where NIF_DECL already was.


Revision tags: uebayasi-xip-base7 bouyer-quota2-base bouyer-quota2-nbase
# 1.5 14-Feb-2011 nisimura

branches: 1.5.2;
- add preliminary Netronics NH230 and NH231 supports.
- assign PCI configuration register 0x3c with IDSEL value by PCI framework,
eliminating most of pcifixup() logic in simple NASes.


# 1.4 10-Feb-2011 nisimura

- some rework for PCI device enumeration.
- allow dual IDE/SATA devices.
- fix a typo of D-Link #define.


# 1.3 08-Feb-2011 nisimura

- add preliminary code to support D-Link DSM-G600 rev.B NAS.
- it features 9600bps console, Moto MCU on the 2nd DUART channel,
ACARD ATP865 PCIIDE and IP Plus IP1000A GbE. It has MiniPCI
slot.


# 1.2 07-Feb-2011 nisimura

add IOMEGA StorCenter fixup codes. Need more change as the satellite
microcontroller protocol is defined in 8-byte fixed length sequence.


# 1.1 23-Jan-2011 nisimura

change bootloader name to "altboot". bump version and add README.


# 1.39 03-Aug-2017 phx

Some Synology network devices show vendor 0x1148 (Schneider & Koch) instead
of 0x11ab (Marvell). Detect both.
Improve spinning up of both disk drives on Synology DS20x by adding some
more delays (directly at the start and after powering up the second drive).


# 1.38 03-Aug-2017 phx

Fixed overflow in delay() for delays greater than 2 seconds.
Replaced u_long by uint32_t and u_quad by uint64_t whenever the exact
32- or 64-bit word is needed.


Revision tags: perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226
# 1.37 15-Oct-2015 nisimura

fix a board type check logic error that affected Linkstation and Kurobox (HG).
They were mistakenly recognized kurot4 type and ended up with kernel boot
failure.


# 1.36 30-Sep-2015 phx

Pass a name and flags precisely describing the current model and its
features via a new bootinfo node (currently Synology only). This allows
for example the configuration of model-specific temperature I2C sensors
and fan control.
Support for the Synology DS207 and DS209 drive LEDs and wait until the
2nd drive is completely powered up.


Revision tags: netbsd-7-0-2-RELEASE netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE nick-nhusb-base-20150921 netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base netbsd-7-base tls-earlyentropy-base tls-maxphys-base
# 1.35 08-Aug-2014 joerg

branches: 1.35.2; 1.35.4;
Use __unreachable().


# 1.34 05-Aug-2014 joerg

Don't use non-literal strings as format strings.
XXX Switch to strlcpy.


Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 rmind-smpnet-nbase rmind-smpnet-base
# 1.33 07-Nov-2013 nisimura

branches: 1.33.2;

shut off gcc 4.8 unused variable warnings.


Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8
# 1.32 25-Dec-2012 phx

branches: 1.32.2;
QNAP V200 boards have no EEPROM for the MAC address, so all devices default
to the same address (00:e0:4c:69:20:01).
Now we read the real MAC address from the flash ROM. It is stored at the
beginning of a 512-byte block in ASCII format. Some QNAP's have a broken
ext2 file system, so we cannot look for the file ETH0.MAC_ADDR therein,
but have to search the whole flash in 512-byte steps for candidates...


Revision tags: yamt-pagecache-base7 yamt-pagecache-base6 jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9
# 1.31 16-Apr-2012 phx

branches: 1.31.2;
Improved Synology CS/RS support: watch power-state of all SATA drives before
initializing them, configure drive LEDs to reflect SATA activity.
Configure drives on all ATA PCI devices, not only on the first one.


Revision tags: yamt-pagecache-base4
# 1.30 09-Apr-2012 nisimura

The processor ExtClk value of Kurobox/T4 is comfirmed as 32768000.


# 1.29 09-Apr-2012 nisimura

Change to use "kurot4" product name for Terastation TGL and
KuroBox/T4.


# 1.28 08-Apr-2012 nisimura

Add an entry for Terastation TGL miconv2 satellite processor which
features a more complex protocol than Linkstation/Kurobox.


Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base8 jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-base2 netbsd-6-base
# 1.27 14-Jan-2012 phx

branches: 1.27.2;
Netronics is spelled Netronix.


# 1.26 14-Jan-2012 phx

Add 0x70000000 BAT-mapping for NH230/231.
NH23x: Initialize LEDs on startup (status off, to indicate the bootloader
is running). Hardware reset routine.


# 1.25 08-Jan-2012 phx

Set the extclk for NH230 to 33000000Hz.
Prepare a synosetup() function which should set a different extclk for
the 400MHz models, as soon as we find a method to check for them.


# 1.24 07-Jan-2012 phx

NH230 PPCBoot configures the memory boundary registers for 128MB, although
the board has only 64MB. Fix that.


Revision tags: jmcneill-usbmp-pre-base2 jmcneill-usbmp-base jmcneill-audiomp3-base
# 1.23 12-Nov-2011 phx

branches: 1.23.4;
Improved Iomega microcontroller support. Bumped version to 1.8.


Revision tags: yamt-pagecache-base3 yamt-pagecache-base2
# 1.22 07-Nov-2011 phx

Fixed Iomega microcontroller support. Implemented Iomega reboot function.


# 1.21 06-Nov-2011 phx

Added a test terminal for communicating with the satellite microcontroller.
When compiled with DEBUG option it can be entered by typing 'C'.


Revision tags: yamt-pagecache-base
# 1.20 01-Nov-2011 phx

branches: 1.20.2;
The Apollo family of IDE interface chips has both channels disabled by
default, so we have to enable them in a new chipfix function. Also move
the channel enable code for the 82C686B from encpcifix() to pciide.c.


# 1.19 30-Oct-2011 phx

Added in8() and out8() to access a byte with reorder-protection.
Use it in all drivers instead of (volatile uint8_t *).


Revision tags: rmind-uvmplock-nbase cherry-xenmp-base rmind-uvmplock-base
# 1.18 29-May-2011 phx

branches: 1.18.4;
When PPCBoot supports the SKnet interface it will configure it to automatically
byte-reverse all descriptors by setting a vendor-specific bit in PCI config
space. We have to clear that bit to make sure our driver can send and
receive.


Revision tags: jym-xensuspend-nbase jym-xensuspend-base
# 1.17 26-Apr-2011 phx

Priority of QNAP board detection was still too high. It should be lowest,
because a Realtek chip at pci device 15 is used on several boards. Now
NH230/All6250 detection should work again.


# 1.16 25-Apr-2011 phx

Detect StorCenter before QNAP, otherwise the Realtek NIC will mis-detect as
StorCenter boards as QNAP.


# 1.15 17-Apr-2011 phx

DSM-G600 has a 33.000 MHz oscillator on board.


# 1.14 13-Apr-2011 phx

ExtClk for QNAP should be the same as for Synology's 266MHz systems.
This seems logical, as both boards are very similar, and the clock precision
is ok now.


# 1.13 09-Apr-2011 phx

Set D-Link DSM-G600 power LED to solid green on start.


# 1.12 26-Mar-2011 phx

QNAP support. Detect wm(4) based V1.02 and re(4) based V200 boards.
That should include all TS-101 and TS-201 models.
Add reset-code and LED-illumination code for the QNAP PIC, which listens
on the second UART with 19200 bps.


# 1.11 13-Mar-2011 phx

Enter interactive mode, when a key is pressed within two seconds.


# 1.10 12-Mar-2011 phx

Introduced an optional shutdown function for all network interfaces.
This is needed to stop a NIF and make it return to a known state. A running
NIF may cause all sorts of bad effects, like for example making it impossible
to reboot a board without a hardware-reset function.


# 1.9 11-Mar-2011 phx

Some code cleanup, suggested by nisimura@.


# 1.8 10-Mar-2011 phx

Make sure the device class is IDE (class 0, subclass 1), before checking
the PCI interface for native/legacy mode. Different subclasses are always
assumed being in native mode. That makes the Acard IDE controller work.

New macros for PCI interface, revision and class.


# 1.7 06-Mar-2011 phx

Suport for loading a kernel from memory (RAM, ROM or Flash).
The boot file path should look like "mem:<address>", where <address> is
the start address, in hex notation, of the file in memory.


# 1.6 06-Mar-2011 phx

branches: 1.6.2;
New experimental driver for SundanceIT ST1023 / IP1000+ NICs.
PHY initialization, media select and MAC address are working, but I found no
way to make the chip transmit any frame yet (although it clears the DONE flag).

Moved DSK_DECL to globals.h, where NIF_DECL already was.


Revision tags: uebayasi-xip-base7 bouyer-quota2-base bouyer-quota2-nbase
# 1.5 14-Feb-2011 nisimura

branches: 1.5.2;
- add preliminary Netronics NH230 and NH231 supports.
- assign PCI configuration register 0x3c with IDSEL value by PCI framework,
eliminating most of pcifixup() logic in simple NASes.


# 1.4 10-Feb-2011 nisimura

- some rework for PCI device enumeration.
- allow dual IDE/SATA devices.
- fix a typo of D-Link #define.


# 1.3 08-Feb-2011 nisimura

- add preliminary code to support D-Link DSM-G600 rev.B NAS.
- it features 9600bps console, Moto MCU on the 2nd DUART channel,
ACARD ATP865 PCIIDE and IP Plus IP1000A GbE. It has MiniPCI
slot.


# 1.2 07-Feb-2011 nisimura

add IOMEGA StorCenter fixup codes. Need more change as the satellite
microcontroller protocol is defined in 8-byte fixed length sequence.


# 1.1 23-Jan-2011 nisimura

change bootloader name to "altboot". bump version and add README.


# 1.38 03-Aug-2017 phx

Fixed overflow in delay() for delays greater than 2 seconds.
Replaced u_long by uint32_t and u_quad by uint64_t whenever the exact
32- or 64-bit word is needed.


Revision tags: perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226
# 1.37 15-Oct-2015 nisimura

fix a board type check logic error that affected Linkstation and Kurobox (HG).
They were mistakenly recognized kurot4 type and ended up with kernel boot
failure.


# 1.36 30-Sep-2015 phx

Pass a name and flags precisely describing the current model and its
features via a new bootinfo node (currently Synology only). This allows
for example the configuration of model-specific temperature I2C sensors
and fan control.
Support for the Synology DS207 and DS209 drive LEDs and wait until the
2nd drive is completely powered up.


Revision tags: netbsd-7-0-2-RELEASE netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE nick-nhusb-base-20150921 netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base netbsd-7-base tls-earlyentropy-base tls-maxphys-base
# 1.35 08-Aug-2014 joerg

branches: 1.35.2; 1.35.4;
Use __unreachable().


# 1.34 05-Aug-2014 joerg

Don't use non-literal strings as format strings.
XXX Switch to strlcpy.


Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 rmind-smpnet-nbase rmind-smpnet-base
# 1.33 07-Nov-2013 nisimura

branches: 1.33.2;

shut off gcc 4.8 unused variable warnings.


Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8
# 1.32 25-Dec-2012 phx

branches: 1.32.2;
QNAP V200 boards have no EEPROM for the MAC address, so all devices default
to the same address (00:e0:4c:69:20:01).
Now we read the real MAC address from the flash ROM. It is stored at the
beginning of a 512-byte block in ASCII format. Some QNAP's have a broken
ext2 file system, so we cannot look for the file ETH0.MAC_ADDR therein,
but have to search the whole flash in 512-byte steps for candidates...


Revision tags: yamt-pagecache-base7 yamt-pagecache-base6 jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9
# 1.31 16-Apr-2012 phx

branches: 1.31.2;
Improved Synology CS/RS support: watch power-state of all SATA drives before
initializing them, configure drive LEDs to reflect SATA activity.
Configure drives on all ATA PCI devices, not only on the first one.


Revision tags: yamt-pagecache-base4
# 1.30 09-Apr-2012 nisimura

The processor ExtClk value of Kurobox/T4 is comfirmed as 32768000.


# 1.29 09-Apr-2012 nisimura

Change to use "kurot4" product name for Terastation TGL and
KuroBox/T4.


# 1.28 08-Apr-2012 nisimura

Add an entry for Terastation TGL miconv2 satellite processor which
features a more complex protocol than Linkstation/Kurobox.


Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base8 jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-base2 netbsd-6-base
# 1.27 14-Jan-2012 phx

branches: 1.27.2;
Netronics is spelled Netronix.


# 1.26 14-Jan-2012 phx

Add 0x70000000 BAT-mapping for NH230/231.
NH23x: Initialize LEDs on startup (status off, to indicate the bootloader
is running). Hardware reset routine.


# 1.25 08-Jan-2012 phx

Set the extclk for NH230 to 33000000Hz.
Prepare a synosetup() function which should set a different extclk for
the 400MHz models, as soon as we find a method to check for them.


# 1.24 07-Jan-2012 phx

NH230 PPCBoot configures the memory boundary registers for 128MB, although
the board has only 64MB. Fix that.


Revision tags: jmcneill-usbmp-pre-base2 jmcneill-usbmp-base jmcneill-audiomp3-base
# 1.23 12-Nov-2011 phx

branches: 1.23.4;
Improved Iomega microcontroller support. Bumped version to 1.8.


Revision tags: yamt-pagecache-base3 yamt-pagecache-base2
# 1.22 07-Nov-2011 phx

Fixed Iomega microcontroller support. Implemented Iomega reboot function.


# 1.21 06-Nov-2011 phx

Added a test terminal for communicating with the satellite microcontroller.
When compiled with DEBUG option it can be entered by typing 'C'.


Revision tags: yamt-pagecache-base
# 1.20 01-Nov-2011 phx

branches: 1.20.2;
The Apollo family of IDE interface chips has both channels disabled by
default, so we have to enable them in a new chipfix function. Also move
the channel enable code for the 82C686B from encpcifix() to pciide.c.


# 1.19 30-Oct-2011 phx

Added in8() and out8() to access a byte with reorder-protection.
Use it in all drivers instead of (volatile uint8_t *).


Revision tags: rmind-uvmplock-nbase cherry-xenmp-base rmind-uvmplock-base
# 1.18 29-May-2011 phx

branches: 1.18.4;
When PPCBoot supports the SKnet interface it will configure it to automatically
byte-reverse all descriptors by setting a vendor-specific bit in PCI config
space. We have to clear that bit to make sure our driver can send and
receive.


Revision tags: jym-xensuspend-nbase jym-xensuspend-base
# 1.17 26-Apr-2011 phx

Priority of QNAP board detection was still too high. It should be lowest,
because a Realtek chip at pci device 15 is used on several boards. Now
NH230/All6250 detection should work again.


# 1.16 25-Apr-2011 phx

Detect StorCenter before QNAP, otherwise the Realtek NIC will mis-detect as
StorCenter boards as QNAP.


# 1.15 17-Apr-2011 phx

DSM-G600 has a 33.000 MHz oscillator on board.


# 1.14 13-Apr-2011 phx

ExtClk for QNAP should be the same as for Synology's 266MHz systems.
This seems logical, as both boards are very similar, and the clock precision
is ok now.


# 1.13 09-Apr-2011 phx

Set D-Link DSM-G600 power LED to solid green on start.


# 1.12 26-Mar-2011 phx

QNAP support. Detect wm(4) based V1.02 and re(4) based V200 boards.
That should include all TS-101 and TS-201 models.
Add reset-code and LED-illumination code for the QNAP PIC, which listens
on the second UART with 19200 bps.


# 1.11 13-Mar-2011 phx

Enter interactive mode, when a key is pressed within two seconds.


# 1.10 12-Mar-2011 phx

Introduced an optional shutdown function for all network interfaces.
This is needed to stop a NIF and make it return to a known state. A running
NIF may cause all sorts of bad effects, like for example making it impossible
to reboot a board without a hardware-reset function.


# 1.9 11-Mar-2011 phx

Some code cleanup, suggested by nisimura@.


# 1.8 10-Mar-2011 phx

Make sure the device class is IDE (class 0, subclass 1), before checking
the PCI interface for native/legacy mode. Different subclasses are always
assumed being in native mode. That makes the Acard IDE controller work.

New macros for PCI interface, revision and class.


# 1.7 06-Mar-2011 phx

Suport for loading a kernel from memory (RAM, ROM or Flash).
The boot file path should look like "mem:<address>", where <address> is
the start address, in hex notation, of the file in memory.


# 1.6 06-Mar-2011 phx

branches: 1.6.2;
New experimental driver for SundanceIT ST1023 / IP1000+ NICs.
PHY initialization, media select and MAC address are working, but I found no
way to make the chip transmit any frame yet (although it clears the DONE flag).

Moved DSK_DECL to globals.h, where NIF_DECL already was.


Revision tags: uebayasi-xip-base7 bouyer-quota2-base bouyer-quota2-nbase
# 1.5 14-Feb-2011 nisimura

branches: 1.5.2;
- add preliminary Netronics NH230 and NH231 supports.
- assign PCI configuration register 0x3c with IDSEL value by PCI framework,
eliminating most of pcifixup() logic in simple NASes.


# 1.4 10-Feb-2011 nisimura

- some rework for PCI device enumeration.
- allow dual IDE/SATA devices.
- fix a typo of D-Link #define.


# 1.3 08-Feb-2011 nisimura

- add preliminary code to support D-Link DSM-G600 rev.B NAS.
- it features 9600bps console, Moto MCU on the 2nd DUART channel,
ACARD ATP865 PCIIDE and IP Plus IP1000A GbE. It has MiniPCI
slot.


# 1.2 07-Feb-2011 nisimura

add IOMEGA StorCenter fixup codes. Need more change as the satellite
microcontroller protocol is defined in 8-byte fixed length sequence.


# 1.1 23-Jan-2011 nisimura

change bootloader name to "altboot". bump version and add README.


Revision tags: nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226
# 1.37 15-Oct-2015 nisimura

fix a board type check logic error that affected Linkstation and Kurobox (HG).
They were mistakenly recognized kurot4 type and ended up with kernel boot
failure.


# 1.36 30-Sep-2015 phx

Pass a name and flags precisely describing the current model and its
features via a new bootinfo node (currently Synology only). This allows
for example the configuration of model-specific temperature I2C sensors
and fan control.
Support for the Synology DS207 and DS209 drive LEDs and wait until the
2nd drive is completely powered up.


Revision tags: netbsd-7-0-2-RELEASE netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE nick-nhusb-base-20150921 netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base netbsd-7-base tls-earlyentropy-base tls-maxphys-base
# 1.35 08-Aug-2014 joerg

branches: 1.35.2; 1.35.4;
Use __unreachable().


# 1.34 05-Aug-2014 joerg

Don't use non-literal strings as format strings.
XXX Switch to strlcpy.


Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 rmind-smpnet-nbase rmind-smpnet-base
# 1.33 07-Nov-2013 nisimura

branches: 1.33.2;

shut off gcc 4.8 unused variable warnings.


Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8
# 1.32 25-Dec-2012 phx

branches: 1.32.2;
QNAP V200 boards have no EEPROM for the MAC address, so all devices default
to the same address (00:e0:4c:69:20:01).
Now we read the real MAC address from the flash ROM. It is stored at the
beginning of a 512-byte block in ASCII format. Some QNAP's have a broken
ext2 file system, so we cannot look for the file ETH0.MAC_ADDR therein,
but have to search the whole flash in 512-byte steps for candidates...


Revision tags: yamt-pagecache-base7 yamt-pagecache-base6 jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9
# 1.31 16-Apr-2012 phx

branches: 1.31.2;
Improved Synology CS/RS support: watch power-state of all SATA drives before
initializing them, configure drive LEDs to reflect SATA activity.
Configure drives on all ATA PCI devices, not only on the first one.


Revision tags: yamt-pagecache-base4
# 1.30 09-Apr-2012 nisimura

The processor ExtClk value of Kurobox/T4 is comfirmed as 32768000.


# 1.29 09-Apr-2012 nisimura

Change to use "kurot4" product name for Terastation TGL and
KuroBox/T4.


# 1.28 08-Apr-2012 nisimura

Add an entry for Terastation TGL miconv2 satellite processor which
features a more complex protocol than Linkstation/Kurobox.


Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base8 jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-base2 netbsd-6-base
# 1.27 14-Jan-2012 phx

branches: 1.27.2;
Netronics is spelled Netronix.


# 1.26 14-Jan-2012 phx

Add 0x70000000 BAT-mapping for NH230/231.
NH23x: Initialize LEDs on startup (status off, to indicate the bootloader
is running). Hardware reset routine.


# 1.25 08-Jan-2012 phx

Set the extclk for NH230 to 33000000Hz.
Prepare a synosetup() function which should set a different extclk for
the 400MHz models, as soon as we find a method to check for them.


# 1.24 07-Jan-2012 phx

NH230 PPCBoot configures the memory boundary registers for 128MB, although
the board has only 64MB. Fix that.


Revision tags: jmcneill-usbmp-pre-base2 jmcneill-usbmp-base jmcneill-audiomp3-base
# 1.23 12-Nov-2011 phx

branches: 1.23.4;
Improved Iomega microcontroller support. Bumped version to 1.8.


Revision tags: yamt-pagecache-base3 yamt-pagecache-base2
# 1.22 07-Nov-2011 phx

Fixed Iomega microcontroller support. Implemented Iomega reboot function.


# 1.21 06-Nov-2011 phx

Added a test terminal for communicating with the satellite microcontroller.
When compiled with DEBUG option it can be entered by typing 'C'.


Revision tags: yamt-pagecache-base
# 1.20 01-Nov-2011 phx

branches: 1.20.2;
The Apollo family of IDE interface chips has both channels disabled by
default, so we have to enable them in a new chipfix function. Also move
the channel enable code for the 82C686B from encpcifix() to pciide.c.


# 1.19 30-Oct-2011 phx

Added in8() and out8() to access a byte with reorder-protection.
Use it in all drivers instead of (volatile uint8_t *).


Revision tags: rmind-uvmplock-nbase cherry-xenmp-base rmind-uvmplock-base
# 1.18 29-May-2011 phx

branches: 1.18.4;
When PPCBoot supports the SKnet interface it will configure it to automatically
byte-reverse all descriptors by setting a vendor-specific bit in PCI config
space. We have to clear that bit to make sure our driver can send and
receive.


Revision tags: jym-xensuspend-nbase jym-xensuspend-base
# 1.17 26-Apr-2011 phx

Priority of QNAP board detection was still too high. It should be lowest,
because a Realtek chip at pci device 15 is used on several boards. Now
NH230/All6250 detection should work again.


# 1.16 25-Apr-2011 phx

Detect StorCenter before QNAP, otherwise the Realtek NIC will mis-detect as
StorCenter boards as QNAP.


# 1.15 17-Apr-2011 phx

DSM-G600 has a 33.000 MHz oscillator on board.


# 1.14 13-Apr-2011 phx

ExtClk for QNAP should be the same as for Synology's 266MHz systems.
This seems logical, as both boards are very similar, and the clock precision
is ok now.


# 1.13 09-Apr-2011 phx

Set D-Link DSM-G600 power LED to solid green on start.


# 1.12 26-Mar-2011 phx

QNAP support. Detect wm(4) based V1.02 and re(4) based V200 boards.
That should include all TS-101 and TS-201 models.
Add reset-code and LED-illumination code for the QNAP PIC, which listens
on the second UART with 19200 bps.


# 1.11 13-Mar-2011 phx

Enter interactive mode, when a key is pressed within two seconds.


# 1.10 12-Mar-2011 phx

Introduced an optional shutdown function for all network interfaces.
This is needed to stop a NIF and make it return to a known state. A running
NIF may cause all sorts of bad effects, like for example making it impossible
to reboot a board without a hardware-reset function.


# 1.9 11-Mar-2011 phx

Some code cleanup, suggested by nisimura@.


# 1.8 10-Mar-2011 phx

Make sure the device class is IDE (class 0, subclass 1), before checking
the PCI interface for native/legacy mode. Different subclasses are always
assumed being in native mode. That makes the Acard IDE controller work.

New macros for PCI interface, revision and class.


# 1.7 06-Mar-2011 phx

Suport for loading a kernel from memory (RAM, ROM or Flash).
The boot file path should look like "mem:<address>", where <address> is
the start address, in hex notation, of the file in memory.


# 1.6 06-Mar-2011 phx

branches: 1.6.2;
New experimental driver for SundanceIT ST1023 / IP1000+ NICs.
PHY initialization, media select and MAC address are working, but I found no
way to make the chip transmit any frame yet (although it clears the DONE flag).

Moved DSK_DECL to globals.h, where NIF_DECL already was.


Revision tags: uebayasi-xip-base7 bouyer-quota2-base bouyer-quota2-nbase
# 1.5 14-Feb-2011 nisimura

branches: 1.5.2;
- add preliminary Netronics NH230 and NH231 supports.
- assign PCI configuration register 0x3c with IDSEL value by PCI framework,
eliminating most of pcifixup() logic in simple NASes.


# 1.4 10-Feb-2011 nisimura

- some rework for PCI device enumeration.
- allow dual IDE/SATA devices.
- fix a typo of D-Link #define.


# 1.3 08-Feb-2011 nisimura

- add preliminary code to support D-Link DSM-G600 rev.B NAS.
- it features 9600bps console, Moto MCU on the 2nd DUART channel,
ACARD ATP865 PCIIDE and IP Plus IP1000A GbE. It has MiniPCI
slot.


# 1.2 07-Feb-2011 nisimura

add IOMEGA StorCenter fixup codes. Need more change as the satellite
microcontroller protocol is defined in 8-byte fixed length sequence.


# 1.1 23-Jan-2011 nisimura

change bootloader name to "altboot". bump version and add README.