It's been a while. This fixes compile warning, typos and
a bug with virtio-serial being used after it was shutdown
at "quiesce".
The full changelog is here:
Alexey Kardashevskiy (2):
Remove ?PICK
version: update to 20230918
Jordan Niethe (1):
virtio-serial: Do not close stdout on quiesce
Kautuk Consul (1):
virtio-serial: Make read and write methods report failure
Thomas Huth (10):
lib/libnet/ipv6: Silence compiler warning from Clang
Fix typos in the board-qemu folder
Fix typos in the lib/libnet folder
Fix typos in the remaining lib folders
Fix typos in the slof folder
Fix typos in the board-js2x folder
Fix typos in the llfw folder
Fix typos in the board-js2x folder
Fix typos in the clients folder
Fix remaining typos in various folders
Compiled with gcc-12.1.0-nolibc
Tested with (sorry, no KVM):
/home/aik/b/q-slof/qemu-system-ppc64 \
-nodefaults \
-chardev stdio,id=STDIO0,signal=off,mux=on \
-device spapr-vty,id=svty0,reg=0x71000110,chardev=STDIO0 \
-mon id=MON0,chardev=STDIO0,mode=readline \
-nographic \
-vga none \
-m 2G \
-kernel /home/aik/t/vml4150le \
-initrd /home/aik/t/le.cpio \
-machine pseries,cap-cfpc=broken,cap-sbbc=broken,cap-ibs=broken,cap-ccf-assist=off \
-bios pc-bios/slof.bin \
-trace events=/home/aik/qemu_trace_events \
-d guest_errors \
-chardev socket,id=SOCKET0,server=on,wait=off,path=qemu.mon.604650 \
-mon chardev=SOCKET0,mode=control \
-name 604650,debug-threads=on
[ npiggin: Also tested with KVM, including with virtio-console. ]
Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
The only change is that now SLOF can also boot big endian zImage
but kernel-addr=0 is still required.
Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
This has really just one fix from Stefan, the rest is housekeeping.
The full changelog is:
Alexey Kardashevskiy (3):
Revert "make: Define default rule for .c when V=1 or V=2"
js2x: Fix compile and cleanup
version: update to 20211112
Stefan Berger (1):
tcgbios: Disable platform hierarchy in case of failure
Thomas Huth (8):
Mention the CR vs. LF problem in the documentation
slof/fs/accept: Replace TABs with spaces
Fix the URL to the Linux kernel coding style
lib/libc/README.txt: Fix "cannel" typo
travis.yml: Fix keywords
travis.yml: Update to Focal Fossa
travis.yml: Compile-test the qemu build
Silence some trivial compiler warning in the js2x code
Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
This is all about TPM fixes and improvements.
The change log is:
Alexey Kardashevskiy (2):
tcgbios: Fix warnings
version: update to 20210711
Stefan Berger (9):
tcgbios: Fix details in log entries
tcgbios: Fix a typo in the sha256 algo description
tcgbios: Add implementations for sha1, sha384, and sha512
tpm: Add firmware API call 2HASH-EXT-LOG
tcgbios: Change format of S_CRTM_VERSION string to ucs-2
tcgbios: Use assembly for 32 bit rotr in sha256
tcgbios: Use The proper sha function for each PCR bank
tcgbios: Add test cases and test script to run them
Travis: Add script for running tests on Travis
Thomas Huth (1):
Fix bad header guard in version.h
Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This is mostly compiler warnings fixed but while doing this,
a bug in MIN() in tcgbios was found.
Alexey Kardashevskiy (14):
helpers: Define MIN()
libc: Compile with -Wextra
elf: Compile with -Wextra
usb: Compile with -Wextra
veth: Compile with -Wextra
virtio: Compile with -Wextra
e1000: Compile with -Wextra
libnet: Compile with -Wextra
libhv: Compile with -Wextra
libnvram: Compile with -Wextra
libtpm: Compile with -Wextra
slof/prim: Compile with -Wextra
Makefile: Actually compile with -Wextra
version: update to 20210217
Thomas Huth (1):
virtio-serial: Remove superfluous serial-* words
Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This adds tcgbios (this was posted earlier [1] but got lost)
and fixes FDT update at ibm,client-architecture-support
for huge guests.
The full list of changes:
Alexey Kardashevskiy (4):
make: Define default rule for .c when V=1 or V=2
version: update to 20200513
fdt: Avoid recursion when traversing tree
version: update to 20200717
Gustavo Romero (1):
board-qemu: Fix comment about SLOF start address
Stefan Berger (6):
tcgbios: Only write logs for PCRs that are allocated
tcgbios: Fix the vendorInfoSize to be of type uint8_t
tcgbios: Add support for SHA3 type of algorithms
elf: Implement elf_get_file_size to determine size of an ELF image
tcgbios: Implement tpm_hash_log_extend_event_buffer
tcgbios: Measure the bootloader file read from disk
[1] https://patchwork.ozlabs.org/project/qemu-devel/patch/20200513024355.121476-1-aik@ozlabs.ru/
Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This is a single regression fix for for 5.0:
Greg Kurz (1):
slof: Only close stdout for virtio-serial devices
Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
The only change here is moving the decision about rtas-size
to QEMU.
Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This mainly fixes virtio-serial with and without
enabled iommu-platform.
The full list of changes is:
Alexey Kardashevskiy (3):
llfw: Fix debug printf warnings
virtio-serial: Close device completely
version: update to 20200312
Cédric Le Goater (1):
virtio: Fix typo in virtio_serial_init()
Greg Kurz (2):
virtio-serial: Don't override some words
virtio-serial: Rework shutdown sequence
Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This adds vTPM support, full-FDT-rebuild-on-CAS fixes and
basic ext4 support.
The full changelog is:
Alexey Kardashevskiy (10):
disk-label: Prepare for extenting
disk-label: Support Linux GPT partition type
ext2: Prepare for extending
ext2: Rename group-desc-size
ext2: Read size of group descriptors
ext2: Read all 64bit of inode number
ext2/4: Add basic extent tree support
elf64: Add LE64 ABIv1/2 support for loading images to given address
fdt: Fix creating new nodes at H_CAS
version: update to 20200221
Greg Kurz (2):
fdt: Fix update of "interrupt-controller" node at CAS
fdt: Delete nodes of devices removed between boot and CAS
Stefan Berger (8):
slof: Implement SLOF_get_keystroke() and SLOF_reset()
slof: Make linker script variables accessible
qemu: Make print_version variable accessible
tpm: Add TPM CRQ driver implementation
tpm: Add sha256 implementation
tcgbios: Add TPM 2.0 support and firmware API
tcgbios: Implement menu to clear TPM 2 and activate its PCR banks
tcgbios: Measure the GPT table
Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This fixes PCI bridges support regression.
This enables IOMMU support in virtio drivers.
The full list of changes is:
Alexey Kardashevskiy (12):
allocator: Fix format strings for DEBUG
virtio: Make virtio_set_qaddr static
client: Load initramdisk location
sloffs: Fix -Wunused-result gcc warnings in read/write
pci-phb: Reimplement dma-map-in/out
virtio: Store queue descriptors in virtio_device
virtio-net: Init queues after features negotiation
virtio: Enable IOMMU
ibm,client-architecture-support: Fix stack handling
fdt: Fix updating the tree at H_CAS
version: update to 20191206
version: update to 20191217
Michael Roth (1):
dma: Define default dma methods for using by client/package instances
Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This aims v4.2 and fixes:
1. full FDT rendering;
2. gcc9 -Waddress-of-packed-member.
Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This fixes USB host bus adapter name in the device tree to match QEMU's
one.
Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This allocates space for FWNMI log in RTAS and fixes phandles at
the ibm,client-architecture-support stage.
The full list is:
* libnet: Fix the check of the argument lengths of the "ping" command
* fdt: Update phandles after H_CAS
* rtas: Reserve space for FWNMI log
Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
The only change that SLOF does not rely on QEMU providing an RTAS blob
and provides one itself:
https://git.qemu.org/?p=SLOF.git;a=commitdiff;h=5e4ed1fd0f39e
Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This only has a fix for ipv4-after-ipv6 booting problem.
Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This includes spapr-vio and usb-storage fixes, phandles fix for NVLink2
pass through support and other compile improvements.
The full list of changes is:
* vio-vscsi: Support multiple channels / buses
* board-qemu/slof/vio-vscsi: Scan up to 64 SCSI IDs
* usb/storage: Implement block write support
* usb/storage: Invert the logic of the IF-statements
* fdt: Fix phandles for NVLink/NVLink2
* fdt: Factor out code to replace a phandle in place
* pci: use appropriate base class ids
* Makefile: Set a proper DRIVER_NAME when building from a git tree
* romfs/tools: Silence more compiler warnings with GCC 8.1
* romfs/tools: Silence GCC 8.1 compiler warning with FLASHFS_MAGIC
* romfs/tools: Remove superfluous union around the rom header struct
* make.rules: Compile SLOF with -fno-asynchronous-unwind-tables
Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This includes gcc8.1 fixes and the image is compiled using gcc 8.1 as well.
The full list of changes is:
> Fix bad assembler statements for compiling with gcc 8.1 / as 2.30
> libelf: Add REL32 to the list of ignored relocations
Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
The changes are:
1. fixed broken_sc1;
2. added switching between boot consoles;
3. added PXE boot.
The full list is:
> lib/libnet/pxelinux: Fix two off-by-one bugs in the pxelinux.cfg parser
> lib/libnet/pxelinux: Make the size handling for pxelinux_load_cfg more logical
> libc: Add a simple implementation of an assert() function
> libnet: Support UUID-based pxelinux.cfg file names
> slof: Add a helper function to get the contents of a property in C code
> libnet: Add support for DHCPv4 options 209 and 210
> libnet: Wire up pxelinux.cfg network booting
> libnet: Add functions for downloading and parsing pxelinux.cfg files
> libnet: Put code for determing TFTP error strings into a separate function
> libc: Add the snprintf() function
> libnet: Pass ip_version via struct filename_ip
> resolve ihandle and xt handle in the input command (like for the output)
> Fix output word
> obp-tftp: Make sure to not overwrite paflof in memory
> libnet: Get rid of unused huge_load and block_size parameters
> libc: Check for NULL pointers in free()
> libc: Implement strrchr()
> libnet: Get rid of unnecessary (char *) casts
> broken_sc1: check for H_PRIVILEGE
> OF: Use new property "stdout-path" for boot console
Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
The main changes are:
- able to handle more devices with specified bootindex;
- implements flatten device tree rendering, for both QEMU and guest kernel.
The full list is:
> boot: use a temporary bootdev-buf
> boot: do not concatenate bootdev
> libvirtio: Mark struct virtio_scsi_req_cmd as packed
> fdt: Implement "fdt-fetch" method for client interface
> rtas: Store RTAS address and entry in the device tree
> board-qemu: Fix slof-build-id length
> fdt: Pass the resulting device tree to QEMU
> fdt: Fix version and add a word for FDT header size
> tree: Rework set-chosen-cpu and store /chosen ihandle and phandle
> node: Add some documentation
> Revert various SLOF-to-QEMU private hypercalls
> Use input-device and output-device
> netboot: Create bootp-response when bootp is used
> libnet/ipv6: assign times_asked value directly
> usb-xhci: Reset ERSTSZ together with ERSTBA
> virtio-net: rework the driver to support multiple open
> board-qemu: add private hcall to inform host on "phandle" update
Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
The main changes are:
- fixes in PCI bridges code;
- LUN>255 are allowed not in virtio-scsi.
The full list is:
> pci-scan: Fix pci-bridge-set-mem-base and pci-bridge-set-mem-limit
> pci: Avoid 32-bit prefetchable memory area if possible
> Remove unused functions ishexdigit and $cat-comma
> pci: Translate PCI addresses to host addresses at the end of map-in
> Define 'open' and 'close' words of the /aliases nodes right from the start
> virtio-scsi: Allow LUNs bigger than 255
> paflof: Silence gcc's -Warray-bounds warning for stack pointers
> board_qemu: move code out of fdt-fix-node-phandle
> board_qemu: drop unused values early in fdt-fix-node-phandle
> pci: Improve the pci-var-out debug function
> libhvcall: drop unused KVMPPC_H_REPORT_MC_ERR and KVMPPC_H_NMI_MCE defines
Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Various fixes in this update, the full list is:
> qemu-bootlist: Take the "-boot strict=off" setting properly into account
> virtio-scsi: initialize vring avail queue buffers
> virtio: Remove global variables in block and 9p driver
> Remove superfluous checkpoints in tree.fs
> Provide "write" function in the disk-label package
> virtio: Implement block write support
> scsi: Add SCSI block write support
> deblocker: Add a 'write' function
> virtio-scsi: Fix descriptor order for SCSI WRITE commands
> board-qemu: Add a possibility to use hvterm input instead of USB keyboard
> Do not try to use virtio-gpu in VGA mode
> virtio: Fix stack comment of virtio-blk-read
> envvar: Do not read default values for /options from the NVRAM anymore
> envvar: Set properties in /options during "(set-defaults)"
Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
The main changes are:
* virtio-serial
* booting speed imrovement
* better PCI bridge support
The complete changelog is:
> virtio-serial: Fix compile error
> scsi: Remove debug functions from scsi-loader.fs
> scsi: Remove unused read-6 command
> obp-tftp: Remove the ciregs-buffer
> libnet: Simplify the net-load arguments passing
> libnet: Simplify the Forth-to-C wrapper of ping()
> Do not link libnet to net-snk anymore, and remove net-snk from board-qemu
> Add a Forth-to-C wrapper for the ping command, too
> Link libnet code to Paflof and add a wrapper for netboot()
> Remember execution tokens of "write" and "read" for socket operations
> Add virtio-serial device support
> Generalize output banner write routine
> Improve indentation in OF.fs
> scsi: implement READ (16) command
> rtas: Improve rtas-do-config-@ and rtas-do-config-! a little bit
> libnet: Make netapps.h includable from .code files
> libnet: Remove unused prototypes from netapps.h
> libnet: Fix the printout of the ping command
> libnet: Make sure to close sockets when we're done
> scsi: implement read-capacity-16
> pci: Fix secondary and subordinate PCI bus enumeration with board-qemu
> pci-phb: Fix stack underflow in phb-pci-walk-bridge
> paflof: Add a read() function to read keyboard input
> paflof: Add socket(), send() and recv() functions to paflof
> paflof: Provide get_timer() and set_timer() helper functions
> paflof: Add a write_mm_log helper function
> paflof: Copy sbrk code from net-snk
> paflof: Use CFLAGS from make.rules instead of completely redefining them
> Do not include the FCode evaluator by default anymore
> Source code beautification of board-qemu/slof/pci-interrupts.fs
> Allow PCI devices in PCI bridge slots greater than 4
> Fix bad interrupt pin numbering in interrupt-map property of PCI bridges
> Improve SLOF_alloc_mem_aligned()
> instance: Fix set-my-args for empty arguments
> Fix remaining compiler warnings in sloffs.c
> Remove misleading padding fields from ROM header definition
> Improve indentation in calculatecrc.h
> Do not include calculatecrc.h from assembler files
> Remove unused defines in calculatecrc.h
> libnet: Re-initialize global variables at the beginning of tftp()
> Remove dependency on cpu/@0 for booting
> usb: Set XHCI slot speed according to port status
> usb: Build correct route string for USB3 devices behind a hub
> usb: Initialize USB3 devices on a hub and keep track of hub topology
> usb: Increase amount of maximum slot IDs and add a sanity check
> usb: Move XHCI port state arrays from header to .c file
> tools: add copy functionality
> tools: added support to sloffs to read from /dev/slof_flash
> tools: added file append functionality
> tools: use crc checking code from romfs/tools
> tools: added initial version of sloffs
> romfs: factored out crc code, to make it usable from other locations
> tools: remove unused parts from the Makefile
> usb-hid: Fix non-working comma key
> fat-files: Fix access to FAT32 dir/files when cluster > 16-bits
> virtio-net: fix ring handling in receive
> net: Remove remainders of the MTFTP code
> net: Move also files from clients/net-snk/app/netapps/ to lib/libnet/
> net: Move files from clients/net-snk/app/netlib/ to lib/libnet/
> net-snk: Get rid of netlib and netapps prefixes in include statements
> usb-xhci: assign field4 before conditional
> Improve F12 key handling in boot menu
> Fix stack underflow that occurs with duplicated ESC in input
> rtas-nvram: optimize erase
> ipv6: Replace magic number 1500 with ETH_MTU_SIZE (i.e. 1518)
> ipv6: Fix NULL pointer dereference in ip6addr_add()
> ipv6: Fix memory leak in set_ipv6_address() / ip6_create_ll_address()
> ipv6: Clear memory after malloc if necessary
> ipv6: Fix possible NULL-pointer dereference in send_ipv6()
> ping: use gateway address for routing
> ping: add netmask in the ping argument
> xhci: fix missing keys from keyboard
> xhci: add memory barrier after filling the trb
> loaders: Remove netflash command
> boot: Remove legacy Forth words for network loading
> base: Move cnt-bits and bcd-to-bin to board-js2x folder
> base: Move huge-tftp-load variable to obp-tftp package
> base: Remove unused IP address conversion functions
> virtio: White space cleanup in virtio-9p.c
> virtio: Add modern version 1.0 support to 9p driver
> virtio: Set a proper name for virtio-9p device tree nodes
> pci: Fix mistype in "unkown-bridge"
> ipv6: Indent code with tabs, not with spaces
> ipv6: send_ipv6() has to return after doing NDP
> ipv6: Do not use unitialized MAC address array
> ipv6: Add support for sending packets through a router
> Remove unused sms code.
> virtio-net: initialize to populate mac address
> libbootmsg: Do not use '\b' characters when printing checkpoints
> dev-null: The "read" function has to return 0 if nothing has been read
Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
The main change is virtio 1.0 support.
The complete changelog is:
> dhcp: fix warning messages when calling strtoip()
> virtio-scsi: enable virtio 1.0
> virtio-scsi: use virtio_fill desc api
> virtio-scsi: use idx during initialization
> virtio-net: enable virtio 1.0
> virtio-blk: enable virtio 1.0
> virtio: 1.0 helper to read 16/32/64 bit value
> virtio: add and enable 1.0 device setup
> virtio: 1.0 guest features negotiation
> virtio: update features set/get register accessor
> virtio: make all virtio apis 1.0 aware
> virtio: add 64-bit virtio helpers for 1.0
> virtio: add virtio 1.0 related struct and defines
> virtio: get rid of type variable in virtio_device
> virtio-net: move setup-mac to the open routine
> virtio-net: make net_hdr_size a variable
> virtio-net: replace vq array with vq_{tx,rx}
> virtio-net: use virtio_fill_desc
> virtio-{net,blk,scsi,9p}: use status variable
> virtio-blk: add helpers for filling descriptors
> virtio-{blk,9p}: enable resetting the device
> virtio: introduce helper for initializing virt queue
> virtio: fix code style/design issues.
> fix code style in byteorder.h
> pci: add byte read/write helper routines
> virtio-net: fix gcc warnings (-Wextra)
> virtio-blk: fix gcc warnings (-Wextra)
> readme: Add a note about coding style
> dhcp: Remove duplicated strtoip()
> ethernet: Fix gcc warnings
> net-snk: Fix gcc warnings
> net-snk: Fix coding style
> net-snk: Fix memory leak in dhcp6_process_options()
> net-snk: Fix memory leak in ip6_to_multicast_mac() / send_ipv6()
> net-snk: Remove bad NEIGHBOUR_SOLICITATION code in send_ipv6()
> Fix dma-alloc and dma-map-in functions on board-js2x
> net-snk: Allow stateless autoconfig IPv6 addresses with IP_INIT_IPV6_MANUAL
> net-snk: Simplify the ip6_is_multicast() function
> net-snk: Move global variable definition out of the header file
> net-snk: Prefer non-link-local unicast IPv6 addresses if possible
> net-snk: Fix the check for link-local addresses when receiving RAs
> net-snk: Remove junk at the end of IPv6 TFTP ACK and error packets
> Fix format strings in usb-ohci.c
> net-snk: Get rid of junk at the end of sent DHCPv6 packets
> net-snk: Use transaction IDs in DHCPv4, too
> net-snk: Make use of DHCPv6 transaction IDs
> net-snk: Seed the pseudo-random number generator
> libc: Add srand() call
> libc: Fix the rand() function to return non-zero values
> net-snk: Improve printed text when booting via network
> Increase temporary buffer size of ibm,client-architecture-support call
> Move archsupport.fs into board-qemu directory
> boot: stop booting when we encounter HALT
> fat-files: Fix bug with root-entries = 0 on certain FAT32 file systems
> usb: print unhandled descriptor in debug mode
> Improve stack usage with libnvram get_partition function
> Improve stack usage in libnvram environment variable code
> libc: Port vsnprintf back from skiboot
> Move the code for rfill into a separate function
> Rework wrapper for new_nvram_partition() and fix possible bug in there
> Stack optimization in libusb: split up setup_new_device()
> Check for stack overflow in paflof engine
> Clean up pending packet variable in ipv4 code
> Fix tracking of pending outgoing packets when handling ARP replies
Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
The changes are:
1. supports recent binutils;
2. 64bit BARs behind PCI bridges supported;
3. Many fixes for USB keyboard support - keys, XHCI;
4. virtio-vga support.
This image was built with:
gcc version 4.8.3 20140911 (Red Hat 4.8.3-7) (GCC)
GNU ld version 2.23.2
The full changelog is:
> version: update to 20151103
> documentation: Add a clause about signing off
> qemu/js2x/client: Support binutils >= 2.25.1
> Fix special keys on USB
> Fix function keys on USB
> pci-scan: program 64-bit mem bar range in pci-bridge bar
> Allow to build SLOF on Little Endian host
> usb-xhci: add keyboard support
> usb-xhci: ready the link trb early
> usb-xhci: scan usb high speed ports
> usb-xhci: bulk improve event handling loop
> usb-xhci: return on allocation failure
> usb-xhci: add delay in shutdown path
> usb-xhci: event trbs does not need link trb
> usb-hid: refactor usb key reading
> takeover: Fix header includes
> board-js2x: Add missing file dma-function.fs
> vga: Add support for virtio-vga
> qemu-vga: Use MMIO BAR instead of legacy IO ports
> slof: Change call_c() function to a proper assembler function
Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
The changes are:
1. GPT support;
2. Much faster VGA support.
The full changelog is:
> Add missing half word access case to _FASTRMOVE and _FASTMOVE
> Remove unused RMOVE64 stub
> fbuffer: Implement RFILL as an accelerated primitive
> fbuffer: Implement MRMOVE as an accelerated primitive
> fbuffer: Precalculate line length in bytes
> terminal: Disable the terminal-write trace by default
> boot: remove trailing ":" in the bootpath
> ci: implement boot client interface
> boot: bootpath should be complete device path
> fbuffer: Use a smaller cursor
> fbuffer: Improve invert-region helper
> usb-hid: Caps is not always shift
> cas: Increase FDT buffer size to accomodate larger ibm, cas node properties
> README: Update with patch submittion note
> disk-label: add support for booting from GPT FAT partition
> disk-label: introduce helper to check fat filesystem
> introduce 8-byte LE helpers
> disk-label: simplify gpt-prep-partition? routine
> fbuffer: introduce the invert-region-x helper
> fbuffer: introduce the invert-region helper
> fbuffer: simplify address computations in fb8-toggle-cursor
Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
The changelog is:
> version: update to 20150429
> pci: Use QEMU created PCI device nodes
> usb: support 64-bit pci bars
> pci: Support 64-bit address translation
> pci: program correct bridge limit registers during probe
> scsi: handle report-luns failure
> Fix "key?" Forth word when using USB keyboards
> Remove bulk.fs package
> Include make.rules in the library Makefiles
Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Signed-off-by: Alexander Graf <agraf@suse.de>
The changelog is:
> virtio: Fix vring allocation
> helpers: Fix SLOF_alloc_mem_aligned to meet callers expectation
> Set default palette according to "16-color Text Extension" document
> Fix rectangle drawing functions to work also with higher bit depths
> Fix the x86emu patch file
> Silence compiler warning when building the biosemu
> Use device-type Forth word to set up the corresponding property
> Improve /openprom node
> pci-properties: Remove redundant call to device-type
> cas: reconfigure memory nodes
> pci: use 64bit bar ranges
Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Signed-off-by: Alexander Graf <agraf@suse.de>
The changelog is:
> version: update to 20141202
> ipv4: Fix send packet across a subnet
> pci: scan only type 0 and type 1
> usb-xhci: support xhci extended capabilities
> Fix term-io-key to also work when stdin has not been set yet
> net-snk: llfw startup is using the wrong offset to handler
> net-snk: Make call_client_interface() a bit more ABI compliant
> net-snk: Remove custom printf version
> net-snk: Sanitize our .lds file
> net-snk: Avoid type clash for stdin & stdout
> net-snk: use socket descriptor in the network stack
> net-snk: Remove printk() in favor of printf()
> net-snk: Remove redundant prototypes
> net-snk: Remove unused timer functions
> net-snk: Remove some unused PCI functions
> net-snk: Remove module system
> net-snk: Remove insmod/rmmod
> net-snk: Remove snk_kernel_interface and related definitions
> net-snk: Remove pci/vio_config gunk
> js2x: Fix build
> net-snk: Remoe some now unused "kernel" functions
> rtas: Improve error handling in instantiate-rtas
> version: update to 20140827
> Add private HCALL to inform updated RTAS base and entry
> xhci: fix port assignment
Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Signed-off-by: Alexander Graf <agraf@suse.de>
The changelog is:
> Quieten the grub warning
> Add boot menu support
> boot from disk having chrp-boot file
> fat16: fix read and remove debug messages
> dhcparch define missing in compilation
> pci-scan: reserve memory for pci-bridge without devices
> pci-bridge: Fix ranges when no device beyond the bridge
> Set dhcp arch in board-qemu config file
> xhci: fix controller stop
> dhcp: support client architecture code 93
> virtio-blk: support variable block size
> usb: use common pci dma alloc/mapping routines
> Remove unused SLOF code
> pci-bridge: generic bridge needs to support pci dma functions
> pci: extract dma functions as separate file
> e1000: fix usage of multiple nics
Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Signed-off-by: Alexander Graf <agraf@suse.de>
The change log is:
> Isolate sc 1 detection logic
> build: auto-detect ppc64 architecture
> cas: increase hcall buffer size to accomodate 256 cpus
> usb: change device tree naming
> usb-core: adjust port numbers in set_address
> virtio-scsi: correct srplun comment
> Fix kernel loading
> Workaround to make grub2 assign server ip from dhcp ack packet only
> ELF: Enter LE binary in LE mode
> ELF loading should fail for virt != phys
Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Signed-off-by: Alexander Graf <agraf@suse.de>
The changelog is:
> version: update to 20140304
> Introduce dummy console device
> vio-vscsi: Fix CRQ allocation alignment
> version: update to 20140204
> virtio-9p: disable unused structure
> Make "boot net:dhcp" boot from IPv4 only
> Fix virtio device shutdown
> Change shutdown method name for virtio-scsi
> Add support for 64bit LE ABI v1 and v2 support
> Change representation of string environment variable
> cas: return error when unknown node found
> version: update
> Reset obp-tftp arguments before parsing
> Enable seamless netboot on IPv6 network
> Fix shutdown for virtio devices
> Fix zero checksum in UDP header
> Handle router advertisement message properly
> [oex]hci_exit: Check before freeing/unmapping memory
> Work around missing sc 1 traps on pHyp
> fix print_version() to return where it came from
> usb-xhci: memory freeing and using returns as bool uniformly
> Output banner and initial display output in VNC window
> use VERSION file to generate FW version
> cas: remove warning
> Add support for loading little endian ELF binaries.
> Add bswap_{16,32,64}p
> dhcpv6 and other minor net-snk fixes
> Fix missing drop in virtio-fs setup-alias
> Find next available alias name
> SLOF does not exit if given 1KB disk
> boot: enable support for bootindex
> pci-properties: add properties to enable hotplug for spapr
> e1000: remember node handle
> Increase quiesce tokens array size
> virtio: timeout after 5sec
> Enable IPv6 support in dns
> usb-ohci: fix warnings
> Add ipv6 support in net-snk
> ipv4: fix frame overwriting following arp_send_request
> e1000: fix SLOF_dma_map_out arguments
> Maintain single global packet buffer for tftp
> Increase virtio-net receive queue size
> Increase veth receive queue size
> Fix dprintf macros at various points
> usb-ohci: rewrite done_head processing code
> boot: add net in default boot order
> block 0 address in the allocator
> scsi: make-media-alias fix
> usb-xhci: add xhci host controller support
> usb-xhci: add xhci support
> Avoid veth read/write calls with zero length buffer
> boot: include other aliases
> usb-core: disable xhci
Cc: Andreas Färber <afaerber@suse.de>
Cc: Nikunj A Dadhania <nikunj@linux.vnet.ibm.com>
Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
SLOF git commit is e2e8ac901e617573ea383f9cffd136146d0675a4
The main changes are:
* fixed bug with not passing arguments from -append
* client-architecture-support hypercall
* netboot
* USB stack fixes
The full list of changes:
> client-architecture-support: fix wrong version read
> client-architecture-support: fix redundant stack drop
> Update device tree returned by CAS hypercall
> fdt: introduce fdt-init
> Add ibm,client-architecture-support method
> Kernel parameter passed from qemu commandline ignored
> Allow more than one client to open net devices simultaneously
> ci: add missing close in else condition
> Add GPT support
> pci: fix interrupt-map for bridges
> usb-ohci: preserve the toggleCarry bit in ED
> usb-ohci: done_head processing fixes
> usb-ohci: update init and rationalize timings
> usb-msc: handle stall and other fixes
> scsi: make probe more error resilient
> usb-core: Add CLEAR FEATURE api
> Implement range allocator
> Remove bcm57xx network driver as module
> Remove e1000 network driver as module
> Remove virtio-net network driver as module
> Remove veth network driver as module
> Add missing close-dev in ping
> Remove lodable network driver modules and related functions
> Add bcm57xx network driver in libbcm
> Add e1000 network driver in libe1k
> Add virtio-net driver in libvirtio
> Add veth driver in libveth
> Get MAC address for client interface module
> Add SLOF usleep wrapper
> Add SLOF pci wrapper functions
> Fix 'canon' client interface
Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Signed-off-by: Alexander Graf <agraf@suse.de>
This has reworked USB OHCI and adds support of USB EHCI,
VIRTIO-SCSI and various fixes (IBM VSCSI, VGA and more).
The full list of fixes is:
* usb-ohci: Convert td-phys every time to td-virt
* usb-storage: Fix cbwflags field
* Add -fno-strict-aliasing in global CFLAGS
* usb: fix various issues found with js2x
* Move hex64-{decode,encode}-unit to node.fs
* usb: Use separate in-memory endian swap
* usb-ohci: collect TDs from done list
* js2x: more fixes
* js2x: Fix build of takeover image
* js2x: use new usb stack
* usb-ohci: Use proper memory barriers always
* usb: Fix a couple of warnings
* Fix $cat-instance-unit
* Cache phandle of /chosen
* Use root.fs on qemu as well
* usb-ehci: Add ehci handshake
* usb: add mb for write accessors
* usb-ohci: add missing memory barriers
* usb-ohci: suspend the controller in exit code path
* usb-ohci: Add a reset when closing the OHCI
* usb: Use proper accessors for MMIO and separate in-memory endian swap
* Use a global definition of sync() and mb()
* net-snk: Remove exception handling
* usb: unmap buffers
* slof: call quiesce on closing of stdin
* usb-kbd: accept "s" to drop to OF prompt
* USB storage driver
* usb-ohci: add Bulk transfer support
* usb-ehci: Add bulk support
* usb-core: add usb bulk support
* USB generic hub device driver
* usb-ehci: setup new device
* usb-ehci: Check ehci ports
* usb-ehci: initialize controller
* USB keyboard driver
* usb-core: setup new device
* usb-core: create dev pool allocation
* usb-ohci: implement ohci send control
* usb-core: usb send control
* usb-core: implement usb_{get,put}_pipe routines
* usb-ohci: allocate pipe pool
* usb-ohci: reset, init and check-ports
* Add standard header stdbool.h
* usb-slof: forth support routines for C
* usb-ehci: Add USB EHCI skeleton
* usb-core: Add register accessor functions
* Use __builtin_bswap routines for endianness swapping
* usb-core: hcd registration and query routines
* usb-core: adding generic dev-hci.fs
* usb-core: registration and makefiles
* Add new USB code
* Remove old usb code
* vga: fix hcall-invert-screen and hcall-blink-screen
* Enumerate disk/cdrom aliases for multiple disks or cdroms
* scsi: unify scsi probing code
* vscsi: generalizing probe code
* virtio-scsi: iterate through targets
* scsi: unify and use make-disk-alias
* nvram: remove unnecessary prints
* Add hack to client interface finddevice of "/memory"
* scsi: Fix cdrom boot crash when no medium present
* Look for /memory@0, not just /memory
* Fix instance>qname crashing when displaying instance arguments
* Fix js2x build
* scsi-disk: Bound check read-blocks
* Fix off by one error in scsi-disk get-capacity
* scsi: fix report-luns handling
* SLOF: virtio-scsi block driver code
* scsi: Move bits of vio-vscsi.fs to a common helpers file
* scsi: Move scsi-disk.fs to a generic place
* SLOF: virtio-scsi helper routines
* SLOF: virtio-scsi - add pci device file
* iso9660: Don't constantly reallocate the read buffer
* vscsi: Sanitize interface between scsi-disk.fs and vio-vscsi.fs
* vio-vscsi: Rework vio-vscsi support
* virtio: Add a virtio-set-qaddr helper
* disk-label: Allocate 4096 bytes for 4k block devices
* disk-label: Increase the max size of the PReP boot partition
* Make load-base a real environment variable
* vio-vscsi: Switch to using a wildcard "disk" node and make scsi-disk generic
* Fix disk-label package to use proper instance path
* Increase size of catpad
* Fix instance>path to contain unit address for wildcard nodes
* Fix handling of wildcard nodes in open-dev
* vio-vscsi: Get CRQ on open and release on close
Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Signed-off-by: Alexander Graf <agraf@suse.de>
Minor SLOF fixes which are required for libvirtd to function properly:
* vio-vscsi: vscsi-report-luns can return 0
* vio-vscsi: added a proper lun parser
* SLOF: vio-vscsi: fixed bug with reported luns
Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Signed-off-by: Alexander Graf <agraf@suse.de>
Now that we have implemented PAPR compatible NVRAM interfaces in qemu, this
updates the SLOF firmware to actually initialize and use the NVRAM as a
PAPR guest firmware is expected to do.
This SLOF update also includes an ugly but useful workaround for a bug in
the SLES11 installer which caused it to fail under KVM.
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Alexander Graf <agraf@suse.de>
This updates SLOF to handle the necessary device tree properties for MSI
and MSI-X.
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Alexander Graf <agraf@suse.de>
This patch updates the SLOF version, introducing a number of fixes:
* add proper graphics support
* fix bugs with graphical terminal under grub2
* fix bugs in handling of 64-bit unit addresses
* fix VSCSI representation to be closer to PowerVM
* fix bugs which caused grub2 to crash
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Alexander Graf <agraf@suse.de>
This patch updates the SLOF firmware image used on the pseries
machine. The new version adds support for Cirrus VGA and virtfs, as
well as including a number of bugfixes.
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Alexander Graf <agraf@suse.de>
Currently on the pseries machine the SLOF firmware is used normally,
but we bypass it when -kernel is specified. Having these two
different boot paths can cause some confusion.
In particular at present we need to "probe" the (emulated) PCI bus and
produce device tree nodes for the PCI devices in qemu, for the -kernel
case. In the SLOF case, it takes the device tree from qemu adds some
stuff to it then passes it on to the kernel.
It's been decided that a better approach is to always boot through
SLOF, even when using -kernel. WIth this approach we can leave PCI
probing and device node creation to SLOF in all cases which removes a
bunch of code in qemu, and avoids iterating the PCI devices from the
machine specific init code which we're not supposed to do.
This patch changes qemu to always boot through SLOF, and not to create
PCI nodes. Simultaneously it updates the included version of SLOF
(submodule and binary image) to one which supports (and requires) the
new approach.
The new SLOF version also includes a number of unrelated enhancements:
support for booting from virtio-pci devices and e1000, greatly
improved FCode support and many bugfixes. It also makes SLOF ready to
be used even when specifying a kernel on the qemu command line.
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Alexander Graf <agraf@suse.de>
This patch is a general update to the SLOF firmware image used on the
pseries machine. This doesn't contain updates for specific features but
contains a number of bugfixes and enhancements in the main SLOF tree from
Thomas Huth.
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Alexander Graf <agraf@suse.de>
This patch updates the SLOF submodule and precompiled image. The new
SLOF versions contains two changes of note:
* The previous SLOF has a bug in SCSI condition handling that was
exposed by recent updates to qemu's SCSI emulation. This update
fixes the bug.
* The previous SLOF has a bug in its addressing of SCSI devices,
which can be exposed under certain conditions. The new SLOF also
fixes this.
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Alexander Graf <agraf@suse.de>
Currently, the emulated pSeries machine requires the use of the
-kernel parameter in order to explicitly load a guest kernel. This
means booting from the virtual disk, cdrom or network is not possible.
This patch addresses this limitation by inserting a within-partition
firmware image (derived from the "SLOF" free Open Firmware project).
If -kernel is not specified, qemu will now load the SLOF image, which
has access to the qemu boot device list through the device tree, and
can boot from any of the usual virtual devices.
In order to support the new firmware, an extension to the emulated
machine/hypervisor is necessary. Unlike Linux, which expects
multi-CPU entry to be handled kexec() style, the SLOF firmware expects
only one CPU to be active at entry, and to use a hypervisor RTAS
method to enable the other CPUs one by one.
This patch also implements this 'start-cpu' method, so that SLOF can
start the secondary CPUs and marshal them into the kexec() holding
pattern ready for entry into the guest OS. Linux should, and in the
future might directly use the start-cpu method to enable initially
disabled CPUs, but for now it does require kexec() entry.
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
Signed-off-by: David Gibson <dwg@au1.ibm.com>
Signed-off-by: Alexander Graf <agraf@suse.de>