Home | History | Annotate | Download | only in altboot
History log of /src/sys/arch/sandpoint/stand/altboot/brdsetup.c
RevisionDateAuthorComments
 1.42  20-Dec-2023  thorpej Remove unnecessary <sys/malloc.h>.
 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.
 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.
 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.
 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.
 1.33  07-Nov-2013  nisimura branches: 1.33.2;

shut off gcc 4.8 unused variable warnings.
 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...
 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.
 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.
 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.
 1.23  12-Nov-2011  phx branches: 1.23.4;
Improved Iomega microcontroller support. Bumped version to 1.8.
 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'.
 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 *).
 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.
 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.
 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.5.2.4  31-May-2011  rmind sync with head
 1.5.2.3  21-Apr-2011  rmind sync with head
 1.5.2.2  05-Mar-2011  rmind sync with head
 1.5.2.1  14-Feb-2011  rmind file brdsetup.c was added on branch rmind-uvmplock on 2011-03-05 20:51:47 +0000
 1.6.2.2  06-Mar-2011  bouyer Sync with HEAD
 1.6.2.1  06-Mar-2011  bouyer file brdsetup.c was added on branch bouyer-quota2 on 2011-03-06 15:07:55 +0000
 1.18.4.2  06-Jun-2011  jruoho Sync with HEAD.
 1.18.4.1  29-May-2011  jruoho file brdsetup.c was added on branch jruoho-x86intr on 2011-06-06 09:06:35 +0000
 1.20.2.5  22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.20.2.4  23-Jan-2013  yamt sync with head
 1.20.2.3  23-May-2012  yamt sync with head.
 1.20.2.2  17-Apr-2012  yamt sync with head
 1.20.2.1  10-Nov-2011  yamt sync with head
 1.23.4.2  29-Apr-2012  mrg sync to latest -current.
 1.23.4.1  18-Feb-2012  mrg merge to -current.
 1.27.2.1  18-Sep-2013  bouyer Pull up following revision(s) (requested by phx in ticket #946):
sys/arch/sandpoint/stand/altboot/rge.c: revision 1.7
sys/arch/sandpoint/stand/altboot/brdsetup.c: revision 1.32
sys/dev/ic/rtl8169.c: revision 1.138
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...
Make re(4) driver always use IDR register values for its MAC address.
Some sandpoint NAS firmwares set MAC address per their
firmware settings and don't use re(4)'s EEPROM values.
Per rtl8169 manuals re(4) chip reads EEPROM automatically after
hardware reset and Linux driver also uses IDR registers,
so this change should not affect existing other boards
which actually have vaild EEPROM.
Per discussion in old tech-kern@ thread:
http://mail-index.netbsd.org/tech-kern/2012/12/01/msg014573.html
Note rtl81x9.c is still shared among rtk(4) only for a multicast function
(to avoid boring refactoring work).
 1.31.2.3  03-Dec-2017  jdolecek update from HEAD
 1.31.2.2  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.31.2.1  25-Feb-2013  tls resync with head
 1.32.2.1  18-May-2014  rmind sync with head
 1.33.2.1  10-Aug-2014  tls Rebase.
 1.35.4.2  28-Aug-2017  skrll Sync with HEAD
 1.35.4.1  27-Dec-2015  skrll Sync with HEAD (as of 26th Dec)
 1.35.2.1  16-Jan-2016  snj Pull up following revision(s) (requested by phx in ticket #1059):
sys/arch/sandpoint/include/bootinfo.h: revision 1.9
sys/arch/sandpoint/stand/altboot/brdsetup.c: revisions 1.36, 1.37
sys/arch/sandpoint/stand/altboot/dsk.c: revision 1.18
sys/arch/sandpoint/stand/altboot/globals.h: revisions 1.20, 1.21
sys/arch/sandpoint/stand/altboot/main.c: revision 1.27
sys/arch/sandpoint/stand/altboot/siisata.c: revision 1.6
sys/arch/sandpoint/stand/altboot/version: revision 1.8
The disk's unittag is not equal to the channel, so we need an additional
unitchan entry to make lba_read() work in all cases.
The libsa-printf() does not seem to support 64-bit output, so cast the
block number to unsigned when printing an error message.
--
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.
--
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.

RSS XML Feed