aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2025-02-04parisc: Add LMMIO range for internal artist graphic cardHEADmaster-nextmasterHelge Deller3-2/+10
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>
2025-01-30parisc: SEABIOS_HPPA_VERSION 18seabios-hppa-v18Helge Deller1-2/+2
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>
2025-01-29parisc: Add PDC call #73Helge Deller1-0/+7
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>
2025-01-29parisc: Use PDC_SCSI_PARMS constant instead of hardcoded numberHelge Deller1-1/+1
Signed-off-by: Helge Deller <deller@gmx.de>
2025-01-25parisc: Fix IRT table entries to use slot numberHelge Deller1-2/+4
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>
2025-01-25parisc: Increase PCI alignment for memory bars to 64kHelge Deller1-1/+1
Allows better alignment, targetted for serial ports on Dino GSC cards. Signed-off-by: Helge Deller <deller@gmx.de>
2025-01-25parisc: Fix PDC_CACHE/PDC_CACHE_RET_SPID return valueHelge Deller1-1/+1
In case space register hashing is enabled, return 0xfe00000 instead of 0xfe0. Fixes: 8d6b0df62d37 ("parisc: Fix return value of PDC_CACHE/PDC_CACHE_RET_SPID for space id hashing") Signed-off-by: Helge Deller <deller@gmx.de>
2025-01-22parisc: Allow up to 256 GB RAM on 64-bit machinesHelge Deller2-20/+65
Build the necessary tables for sprocket and PAT machines and return them to operating system on request. Signed-off-by: Helge Deller <deller@gmx.de>
2024-11-03parisc: SEABIOS_HPPA_VERSION 17master-prereleaseHelge Deller1-2/+2
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>
2024-11-03esp-scsi: indicate acceptance of MESSAGE IN phase dataMark Cave-Ayland1-1/+3
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>
2024-11-03parisc: sync hppa_hardware.h header with qemu codeHelge Deller1-2/+2
Signed-off-by: Helge Deller <deller@gmx.de>
2024-11-03parisc: Fix return value of PDC_CACHE/PDC_CACHE_RET_SPID for space id hashingHelge Deller3-3/+37
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>
2024-05-15parisc: Remove exec flag from hppa-firmware.imgHelge Deller1-0/+1
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>
2024-05-15Makefile: Change default make target to "parisc"Helge Deller1-1/+2
"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>
2024-05-15parisc/pci: Disable LMMIO_DIRECT0 range during modificationHelge Deller1-1/+4
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>
2024-05-15parisc: Fix LMMIO detection for PCI cards on Astro/ElroyHelge Deller1-4/+13
PCI graphic cards allocate LMMIO memory. Allow PDC_ADD_VALID to accept this memory. Signed-off-by: Helge Deller <deller@gmx.de>
2024-05-15parisc: Support ENTRY_IO_BOOTOUTSven Schnelle1-1/+2
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>
2024-05-15parisc: Avoid trashing MPE IPL bootloader stackHelge Deller1-6/+20
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>
2024-05-15parisc: Allow PDC functions to act when called in narrow modeHelge Deller2-1/+4
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>
2024-05-15parisc: Drop FUNC_MANY_ARGS parameterHelge Deller1-12/+7
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>
2024-05-15parisc: Prefer memory-access over io-access of GSP serial portHelge Deller1-5/+24
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>
2024-05-15pcidevice: Use portaddr_t for io port addressesHelge Deller2-3/+3
This is needed on parisc, since parisc uses 32-bit I/O port addressses while Intel uses just 16 bits. Signed-off-by: Helge Deller <deller@gmx.de>
2024-05-15parisc: HP-UX 11 64-bit saves number of RAM pages in PAGE0 at 0x33cHelge Deller1-0/+4
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>
2024-05-15parisc: Small optimization in IODC callHelge Deller1-11/+2
Signed-off-by: Helge Deller <deller@gmx.de>
2024-05-15parisc: Add PDC_PAT_EVENT firmware callHelge Deller1-5/+30
Add the PAT_EVENT PDC function. Disable PAT for now as the c3k machines do not seem to support PAT. Signed-off-by: Helge Deller <deller@gmx.de>
2024-05-15parisc: Implement PDC_MODEL_GET_INSTALL_KERNEL functionHelge Deller1-2/+10
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>
2024-05-15parisc: Clean the "out-64" directory on "make clean"Helge Deller1-1/+1
Signed-off-by: Helge Deller <deller@gmx.de>
2024-02-08parisc: Fix 64-bit PDC call to not trash %dpHelge Deller1-23/+4
Fixes 64-bit HP-UX IPL boot loader. Signed-off-by: Helge Deller <deller@gmx.de>
2024-02-08parisc: Fix hpa_name() to resolve & print PCI deviceHelge Deller1-12/+6
Signed-off-by: Helge Deller <deller@gmx.de>
2024-02-08output: Fix %pP (PCI device) format string output on 64-bit firmwareHelge Deller1-0/+4
Signed-off-by: Helge Deller <deller@gmx.de>
2024-02-08parisc: pdc_add_valid() should allow HPA of graphics cardHelge Deller1-0/+2
Signed-off-by: Helge Deller <deller@gmx.de>
2024-02-08parisc: Fix Debug output on 64-bit PDCHelge Deller1-0/+1
Need to F-extend the CPU_HPA to get to I/O port for Debug info. Signed-off-by: Helge Deller <deller@gmx.de>
2024-02-08parisc/sti: Fix STI on 64-bit boot console handlerHelge Deller2-6/+8
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>
2024-02-08parisc: USB keyboard not yet functional in boot menuHelge Deller1-1/+3
The USB keyboard will be detected, but USB driver in firmware isn't yet fully fixed to work correctly on parisc's big-endian hardware.... Signed-off-by: Helge Deller <deller@gmx.de>
2024-02-07parisc: SEABIOS_HPPA_VERSION 16Helge Deller1-2/+2
New & enhancements: - Initial 64-bit firmware release - Added fault handler to catch and report firmware bugs - Use Qemu's builtin_console_out() via diag 0x101 - parisc-qemu-install Makefile target to install firmware in qemu - Added -fw_cfg opt/OS64,string=3 option - Machine definition files for 715/64, C8000, J6700 & rp3410 Fixes: - Avoid crash when booting without SCSI controller - Avoid possible crashes while detecting LASI LAN & graphics - Don't check layers in PDC_MEM_MAP_HPA, fixes NetBSD - Ensure cache definition does not trigger endless loops - Mark B160L as 32-bit machine in inventory Signed-off-by: Helge Deller <deller@gmx.de>
2024-02-07parisc: Improve -fw_cfg opt/OS64 optionHelge Deller1-7/+17
Enhance the option to allow user to specify if 32-bit OS, 64-bit OS or both can be installed. The value reflects the PDC_MODEL_OS32(=2) and PDC_MODEL_OS64(=1) PDC values. Enhance the boot menu to show currently configured value. Signed-off-by: Helge Deller <deller@gmx.de>
2024-02-06parisc: Add some missing NO_COMPAT_RETURN_VALUE()Helge Deller1-0/+6
Annotate a few more PDC calls with NO_COMPAT_RETURN_VALUE() to avoid trashing their ARG2 value on return to caller in compat case. Signed-off-by: Helge Deller <deller@gmx.de>
2024-02-06parisc: Fix crash in PDC_TOD_WRITE in compat modeHelge Deller1-0/+1
Fix crash when setting the PDC clock and running a 64-bit PDC in 32-bit compat mode: When writing the clock, no return values are returned to the caller as there is no return buffer in ARG2. So this function needs to be marked with NO_COMPAT_RETURN_VALUE(ARG2). Signed-off-by: Helge Deller <deller@gmx.de>
2024-02-06parisc: Skip HPMC during bootupHelge Deller1-5/+31
We may trigger HPMCs (= trap #1) while probing various I/O addresses for devices. If suc a HPMC is reported by qemu, simply ignore it and return to the next address behind the caller. Signed-off-by: Helge Deller <deller@gmx.de>
2024-02-06pciinit: Do not access Dino Flex register on 64-bit firmwareHelge Deller1-0/+3
Signed-off-by: Helge Deller <deller@gmx.de>
2024-02-06parisc: Prevent unneeded accesses to not-available devicesHelge Deller1-3/+6
Prevent some HPMCs when trying to check for devices like LASI LAN & graphics. Signed-off-by: Helge Deller <deller@gmx.de>
2024-02-06serial: Disable serial port detection on 64-bit machinesHelge Deller1-0/+3
The serial ports on 64-bit machines are PCI devices only. Skip searching on typical serial port addresses to avoid HPMCs. Signed-off-by: Helge Deller <deller@gmx.de>
2024-02-06parisc: Fix initialization of bss on 64-bit firmwareHelge Deller1-2/+2
Make sure to load the 64-bit (f-extended) address of BSS when clearing BSS. Signed-off-by: Helge Deller <deller@gmx.de>
2024-02-06parisc: Disable debug infoHelge Deller1-1/+1
Signed-off-by: Helge Deller <deller@gmx.de>
2024-02-06parisc: Resolve device name with hpa_name() on 64-bit devicesHelge Deller1-1/+1
Signed-off-by: Helge Deller <deller@gmx.de>
2024-02-02parisc: Use new qemu debug output function for early bootupHelge Deller1-1/+1
Use the qemu diag(0x101) call to output at early bootup. This allows to show HPMCs at bootup. Signed-off-by: Helge Deller <deller@gmx.de>
2024-02-02boot: Clean up output of list of boot devicesHelge Deller1-1/+5
Show the header for available boot devices only if one is found. Signed-off-by: Helge Deller <deller@gmx.de>
2024-02-02parisc: Allow booting without SCSI controllerHelge Deller1-3/+6
When booting qemu with --nodefaults, no SCSI controller will be available. In this case make preparation of mem_boot in PAGE0 non-fatal, as we still can boot kernel and ramdisc as provided on the command line. Reported-by: Guenter Roeck <linux@roeck-us.net> Signed-off-by: Helge Deller <deller@gmx.de>
2024-02-02parisc: Add -fw_cfg opt/OS64,string=1 optionHelge Deller1-2/+8
This option is only relevant when booting a 64-bit machine and the value defaults to enabled (1). When OS64 is set to 0, the firmware will tell the OS that 64-bit firmware calls are not supported. Effectively, this prevents the OS to install a 64-bit OS (on the 64-bit machine). Signed-off-by: Helge Deller <deller@gmx.de>
2024-01-24parisc: Add initial definition file for HP rp3410 serverHelge Deller1-0/+442
Signed-off-by: Helge Deller <deller@gmx.de>