New:
- Added new "715" machine (Snake machine, no PCI bus)
- Added driver for NCR710 SCSI on LASI (Soumyajyotii Ssarkar)
Fixes & cleanups:
- Fix memory size detection on NetBSD
- Snake machines do not support the PDC_SYSTEM_MAP call
- Always return the HPA in pdc_mem_map() PDC call
- Add LMMIO range for internal artist graphic card
- various coding style cleanups
Signed-off-by: Helge Deller <deller@gmx.de>
- we need different CPU HPA offsets on 715, and can only support up to 8
CPUs
- on a 64-bit machine, never always fall back to B160L and not to 715
when asking for model from 32-bit PDC call from OS
- old machines like 715 do not support the PDC_SYSTEM_MAP call, so fall
back to Snake detection on those.
Signed-off-by: Helge Deller <deller@gmx.de>
NetBSD showed the memory size of the first memory module wrong.
It turns out that our PDC_IODC_NINIT call did not returned the
expected value in the second result word.
Signed-off-by: Helge Deller <deller@gmx.de>
Exit early if the LASI HPA (lasi_hpa) hasn't been set yet.
This prevents that the PS/2 driver to waits endless for a non-existant
port.
Signed-off-by: Helge Deller <deller@gmx.de>
A driver for the NCR 53C710 SCSI chip, as used in PA-RISC and other
machines.
This driver has been developed during the Google Summer of Code 2025
program.
Signed-of-by: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
Signed-off-by: Helge Deller <deller@gmx.de>
On the HP 715 machine the base address of the LASI controller is
at 0xf0100000, so introduce a constant for this address.
The firmware end address needs to be reduced to not overlap with
the LASI addresses.
Introduce LASI_XXX constants which reflects the offsets of the
various devices of the LASI base HPA.
Adjust the serial port addressess accordingly. We can not use hard
coded HPAs, because on 715 the LASI serial ports are at different
addresses than on B160L.
Signed-off-by: Helge Deller <deller@gmx.de>
Register a LMMIO range for the internal graphic card.
That allow to boot with STI graphic card (artist) when booting
on a 64-bit machine.
Signed-off-by: Helge Deller <deller@gmx.de>
Fixes:
- Fix PDC_CACHE/PDC_CACHE_RET_SPID return value for space
register hashing on 64-bit HP-UX
- Fix IRT table entries to use slot number
- Increase PCI alignment for memory bars to 64k
New PDC functions & general enhancements:
- Allow up to 256 GB RAM on 64-bit machines
Signed-off-by: Helge Deller <deller@gmx.de>
Unknown what it does, but seems similiar to PDC_NVOLATILE.
Called by HP-UX 11 64-bit on C3700 machine, which returns PDC_BAD_PROC.
Signed-off-by: Helge Deller <deller@gmx.de>
Do not simply enumerate the slots when walking the PCI
cards, but use the slot number (out of the bdf) to calculate
the irq_devno entry.
Signed-off-by: Helge Deller <deller@gmx.de>
In case space register hashing is enabled, return 0xfe00000 instead of 0xfe0.
Fixes: 8d6b0df62d ("parisc: Fix return value of PDC_CACHE/PDC_CACHE_RET_SPID for space id hashing")
Signed-off-by: Helge Deller <deller@gmx.de>
New PDC functions & general enhancements:
- Add PDC_MODEL_GET_INSTALL_KERNEL firmware call
- Add PDC_PAT_EVENT firmware call
- Support ENTRY_IO_BOOTOUT
- Prefer memory-access over io-access of GSP serial port
- Disable LMMIO_DIRECT0 range during modification
- Small optimizations in IODC call
Fixes:
- esp-scsi: indicate acceptance of MESSAGE IN phase data
- Avoid crash when booting without SCSI controller
- Remove exec flag from hppa-firmware.img
- Fix LMMIO detection for PCI cards on Astro/Elroy
- Avoid trashing MPE IPL bootloader stack
- HP-UX 11 64-bit saves number of RAM pages in PAGE0 at 0x33c
- Fix return value of PDC_CACHE/PDC_CACHE_RET_SPID for space id hashing
- Allow PDC functions to act when called in narrow mode
- pcidevice: Use portaddr_t for io port addresses
Cleanups:
- Change default make target to "parisc"
- Clean the "out-64" directory on "make clean"
Signed-off-by: Helge Deller <deller@gmx.de>
When the target has sent its MESSAGE IN phase data to the initiator, it waits
for the initiator to release the ACK signal before disconnecting from the bus.
Send a MSG_ACC command to the ESP so that the initiator releases the ACK signal
to allow the target to disconnect, and also return the ASC back to the
disconnected state.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Message-ID: <20240829115846.954993-1-mark.cave-ayland@ilande.co.uk>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
HP-UX 11 64-bit uses space ID hashing.
If qemu implements the diagnose registers and mfdiag/mtdiag instructions
(qemu > v9.0 required), allow PDC to ask the CPU and return the correct
value of space id hashing bits.
Signed-off-by: Helge Deller <deller@gmx.de>
Suggested-by: Sven Schnelle <svens@stackframe.org>
Remove the executable-flag on the generated firmware file.
This is necessary otherwise Fedora rpm builder will check for a
build-id in the executable.
Reported-by: Cole Robinson <crobinso@redhat.com>
"parisc" is the default target when using this SeaBIOS-hppa git
repository. Change it accordingly, which then allows us to just run
"make" instead of "make parisc".
Requested-by: Sven Schnelle <svens@stackframe.org>
Signed-off-by: Helge Deller <deller@gmx.de>
When modifying the LMMIO directed ranges, disable the range
to prevent that hardware (or qemu) reacts to every small
modification before all values have been set.
Signed-off-by: Helge Deller <deller@gmx.de>
The hpux bios/firmware flash tool wants to write the ISL
AUTO file to hard disc. This prevents starting the flash
tool again, and instead boots into hpux at next reboot.
Signed-off-by: Sven Schnelle <svens@stackframe.org>
Signed-off-by: Helge Deller <deller@gmx.de>
The MPE IPL boot loader calls PDC_MODEL when running in narrow mode.
The return buffer pointed to by arg2 holds space for eigth 32-bit integers
directly followed by the stack used by MPE.
So, when pdc_model() writes 32 64-bit integers to arg2, it unintentionally
overwrites MPE's call stack.
Fix it by limiting returned bytes depending if PDC_MODEL was called
in WIDE or NARROW mode.
Signed-off-by: Helge Deller <deller@gmx.de>
Some PDC functions need to know at runtime if they were called in
narrow mode. Add infrastructure to hand over this information to
parisc_pdc_entry().
The background is, that the MPE IPL boot loader calls PDC_MODEL
and provides a very small return buffer, followed in memory by the
stack. So, when pdc_model writes 32 x 8 bytes in 64-bit mode,
the stack of IPL boot will be trashed.
Signed-off-by: Helge Deller <deller@gmx.de>
This parameter was intended to make sure that the compiler saves
registers on the stack and prevents possible register corruption.
But this isn't needed and doesn't help, so just remove it.
Signed-off-by: Helge Deller <deller@gmx.de>
HP-UX 11.x (64-bit) seems to require memory-mapped serial ports when accessing
GSP cards, so change the firmware to pre-map serial ports for memory-accesses.
As an example, the rp5470 has this GSP card (Linux output):
pci 0000:00:04.0: [103c:128d] type 00 class 0x088000
pci 0000:00:04.1: [103c:1048] type 00 class 0x070002
pci 0000:00:04.1: reg 0x10: [mem 0xffffffff80000000-0xffffffff80000fff]
pci 0000:00:04.1: reg 0x14: [io 0x0000-0x003f]
Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
serial 0000:00:04.1: enabling device (0142 -> 0143)
printk: console [ttyS0] disabled
0000:00:04.1: ttyS0 at MMIO 0xffffffff80000000 (irq = 70, base_baud = 115200) is a 16550A
printk: console [ttyS0] enabled
printk: bootconsole [ttyB0] disabled
0000:00:04.1: ttyS1 at MMIO 0xffffffff80000008 (irq = 70, base_baud = 115200) is a 16450
0000:00:04.1: ttyS2 at MMIO 0xffffffff80000010 (irq = 70, base_baud = 115200) is a 16550A
0000:00:04.1: ttyS3 at MMIO 0xffffffff80000030 (irq = 70, base_baud = 115200) is a 16550A
serial 0000:00:04.1: Couldn t register serial port 0, irq 70, type 2, error -28
Signed-off-by: Helge Deller <deller@gmx.de>
Not sure yet, why HP-UX 11 (64-bit) stores the value here, but it's
needed to allow HP-UX 11 to boot up.
Signed-off-by: Helge Deller <deller@gmx.de>
Noticed-by: Sven Schnelle <svens@stackframe.org>
The IPL loader on the HP-UX install CD asks firmware which "kernel/program" it
should start. By default HP-UX will load the "INSTALL" program, but on 64-bit
machines firmware can instead ask to boot the "WINSTALL" program.
Signed-off-by: Helge Deller <deller@gmx.de>
Allow the firmware boot messages and boot menu to show up
on an emulated STI/artist card.
The current fixes are functional for booting, but to support
STI on 64-bit with Linux later on, additional patches are needed.
Signed-off-by: Helge Deller <deller@gmx.de>