aboutsummaryrefslogtreecommitdiff
path: root/slof
AgeCommit message (Collapse)AuthorFilesLines
2023-03-28Fix remaining typos in various foldersThomas Huth1-1/+1
Found with the "codespell" utility Signed-off-by: Thomas Huth <thuth@redhat.com> Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
2023-02-28Remove ?PICKAlexey Kardashevskiy2-9/+0
The word is not used and the name does not reflect well what it does. Suggested-by: Segher Boessenkool <segher@kernel.crashing.org> Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
2023-02-28Fix typos in the slof folderThomas Huth17-23/+23
Found with the "codespell" utility. I kept "busses" which codespell also complains about since it seems to be an old but still valid plural of the word "bus". Signed-off-by: Thomas Huth <thuth@redhat.com> Reviewed-by: Segher Boessenkool <segher@kernel.crashing.org> Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
2022-07-19OF: Add a separate direct kernel loading wordJordan Niethe1-0/+6
Currently, go-64 is used for booting a kernel from qemu (i.e. -kernel). However, there is an expectation from users that this should be able to boot not just vmlinux kernels but things like Zimages too. The bootwrapper of a BE zImage is a 32-bit ELF. Attempting to load that with go-64 means that it will be ran with MSR_SF set (64-bit mode). This crashes early in boot (usually due to what should be 32-bit operations being done with 64-bit registers eventually leading to an incorrect address being generated and branched to). Note that our 64-bit payloads are prepared to enter with MSR_SF cleared and set it themselves very early. Add a new word named go-direct that will execute any simple payload in-place and will enter with MSR_SF cleared. This allows booting a BE zImage from qemu with -machine kernel-addr=0. Signed-off-by: Jordan Niethe <jniethe5@gmail.com> Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
2021-10-01slof/fs/accept: Replace TABs with spacesThomas Huth1-12/+12
SLOF coding style is to use spaces in Forth code, not TABs, and the TAB in the (accept) function breaks the right indentation in my editor, so let's replace the TABs in this file with spaces now. Signed-off-by: Thomas Huth <thuth@redhat.com> Reviewed-by: Greg Kurz <groug@kaod.org> Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
2021-02-12slof/prim: Compile with -WextraAlexey Kardashevskiy1-0/+3
-Wextra enables a bunch of rather useful checks which this fixes. Reviewed-by: Thomas Huth <thuth@redhat.com> Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
2021-02-12libnet: Compile with -WextraAlexey Kardashevskiy1-3/+9
-Wextra enables a bunch of rather useful checks which this fixes. This also fixes unused parameters warning by passing meaningful value and doing sanity checks. Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru> --- Changes: v2: * updated commit log about using AF_INET/etc * replaced cast to int with size_t in pxelinux_load_cfg * added (alen == 0) in ping()
2020-05-13tcgbios: Measure the bootloader file read from diskStefan Berger1-1/+18
Measure the bootloader file read from disk into PCR 4 and log it with the description 'BOOTLOADER' and the event type EV_COMPACT_HASH (code 0xc). Since the loaded file should be an ELF file, have its size determined and only the bytes from the ELF image measured rather than the whole buffer that it was read into and is much bigger (0x700000 bytes). Signed-off-by: Stefan Berger <stefanb@linux.ibm.com> Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
2020-03-27slof: Only close stdout for virtio-serial devicesGreg Kurz1-5/+0
Recent commit cf28264196e5 fixed an issue where a virtio-serial device wouldn't shutdown properly during quiesce. The fix is to close stdout just before quiesce. As expected this causes some messages to not appear anymore, like the well known ones from prom_init(): Quiescing Open Firmware ... Booting Linux via __start() @ 0x0000000002000000 ... Actually all messages are discarded until the OS driver finally takes control of the device, which may represent a fair amount of logging. This is suboptimal but this still better than hanging in SLOF. The hammer is a bit too big though because the change also affects spapr-vty based consoles, which have no reason to stop working after quiesce. Move the hack from the common code to the virtio-serial code so that it doesn't affect other device types anymore. Register a quiesce hook that closes stdout in virtio-serial.fs. While here, as suggested by Segher, bring back some robustness in the shutdown method. Reported-by: Fabiano Rosas <farosas@linux.ibm.com> Fixes: cf28264196e5 "virtio-serial: Rework shutdown sequence" Signed-off-by: Greg Kurz <groug@kaod.org> Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
2020-03-11virtio-serial: Rework shutdown sequenceGreg Kurz1-0/+5
The "io" word of term-io.fs opens two separate instances of the device for stdin and stdout. The prom_init() function in Linux closes stdin at some point, which internally calls quiesce and shuts the device down through a quiesce hook. When the "open-count" variable in virtio-serial.fs reaches 0, ie. when closing the last instance, we call "close" two times, which is clearly wrong. This never hits however because the stdout instance is never closed which prevents "open-count" to reach 0. It would make more sense to shutdown the device when closing the last instance, for symmetry with the first open that initializes the device. Change the shutdown sequence to do that rather than relying on a quiesce hook. Have quiesce to explicitly close stdout, which is supposedly the last instance, and shutdown the device. Signed-off-by: Greg Kurz <groug@kaod.org> Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
2020-02-21tcgbios: Measure the GPT tableStefan Berger1-0/+22
Measure and log the GPT table including LBA1 and all GPT table entries with a non-zero Type GUID. We follow the specification "TCG PC Client Platform Firmware Profile Specification" for the format of what needs to be logged and measured. See section "Event Logging" subsection "Measuring UEFI Variables" for the UEFI_GPT_DATA structure. Signed-off-by: Stefan Berger <stefanb@linux.ibm.com> Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
2020-02-21tcgbios: Implement menu to clear TPM 2 and activate its PCR banksStefan Berger1-0/+7
Implement a TPM 2 menu and enable the user to clear the TPM and its activate PCR banks. The main TPM menu is activated by pressing the 't' key during firmware startup. Signed-off-by: Stefan Berger <stefanb@linux.ibm.com> Signed-off-by: Kevin O'Connor <kevin@koconnor.net> Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
2020-02-21tcgbios: Add TPM 2.0 support and firmware APIStefan Berger2-0/+14
This patch adds TPM 2.0 support along with the firmware API that Linux uses to transfer the firmware log. The firmware API follows the "PFW Virtual TPM Driver" specification. The API has callers in existing Linux code (prom_init.c) from TPM 1.2 times but the API also works for TPM 2.0 without modifications. The TPM 2.0 support logs PCR extensions of measurements of code and data. For this part we follow the TCG specification "TCG PC Client Platform Firmware Profile Specification" (section "Event Logging"). Other relevant specs for the construction of TPM commands are: - Trusted Platform Module Library; Part 2 Structures - Trusted Platform Module Library; Part 3 Commands Signed-off-by: Stefan Berger <stefanb@linux.ibm.com> Signed-off-by: Kevin O'Connor <kevin@koconnor.net> [aik: removed new blank lines at EOF] Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
2020-02-21tpm: Add TPM CRQ driver implementationStefan Berger1-0/+6
This patch adds a TPM driver for the CRQ interface as used by the QEMU PAPR implementation. Also add a Readme that explains the benefits and installation procedure for the vTPM. Signed-off-by: Stefan Berger <stefanb@linux.ibm.com> Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
2020-02-21slof: Make linker script variables accessibleStefan Berger1-0/+20
Make linker script variables related to 'text' addresses available to the code so we can measure the static core root of trust contents. When hashing the 'data' part of SLOF we do not end up with the same measurements for the same firmware when booting with different configurations, so we don't make those available. Signed-off-by: Stefan Berger <stefanb@linux.ibm.com> Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
2020-02-21slof: Implement SLOF_get_keystroke() and SLOF_reset()Stefan Berger1-0/+11
Implement SLOF_get_keystroke() and SLOF_reset() helper functions. Signed-off-by: Stefan Berger <stefanb@linux.ibm.com> Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
2020-02-21ext2/4: Add basic extent tree supportAlexey Kardashevskiy1-0/+56
This allows booting from ext4 filesystems when EXT4_EXTENTS_FL is set in inode. Based on: https://ext4.wiki.kernel.org/index.php/Ext4_Disk_Layout Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
2020-02-21ext2: Read all 64bit of inode numberAlexey Kardashevskiy1-1/+10
Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
2020-02-21ext2: Read size of group descriptorsAlexey Kardashevskiy1-1/+14
When incompat flags has INCOMPAT_64BIT set ("Enable a filesystem size over 2^32 blocks"), the group descriptor size is stored at 0xFE and these days it is 0x40 so use that rather than the default value of 0x20. Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
2020-02-21ext2: Rename group-desc-sizeAlexey Kardashevskiy1-4/+4
A le32 value at 0x20 offset in supernode is: 0x20 __le32 s_blocks_per_group Blocks per group Size of group descriptors is a le16 value at 0xfe. Rename group-desc-size according to the ext2/4 spec. This should cause no behavioral change. Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
2020-02-21ext2: Prepare for extendingAlexey Kardashevskiy1-14/+29
Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
2019-12-30disk-label: Support Linux GPT partition typeAlexey Kardashevskiy1-1/+7
This adds support for: "Linux filesystem data" 0FC63DAF-8483-4772-8E79-3D69D8477DE4 Previously, Linux used the same GUID for the data partitions as Windows (Basic data partition: EBD0A0A2-B9E5-4433-87C0-68B6B72699C7). The new GUID (Linux filesystem data: 0FC63DAF-8483-4772-8E79-3D69D8477DE4) was defined jointly by GPT fdisk and GNU. Source: https://en.wikipedia.org/wiki/GUID_Partition_Table#cite_note-linwin-40 Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
2019-12-30disk-label: Prepare for extentingAlexey Kardashevskiy1-33/+24
We are going to add limited support for ext4 and Linux GPT partitions. This moves try-ext2-files and (interpose-filesystem) earlier to be called from try-gpt-dos-partition. This simplifies UUID defining and handling. This should cause no behavioral change. Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
2019-12-05dma: Define default dma methods for using by client/package instancesMichael Roth1-0/+28
They call parent node (which is a device) methods. Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com> Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
2019-11-11client: Load initramdisk locationAlexey Kardashevskiy1-0/+8
For ages both vmlinux and zImage accepted the initramdisk location in r3/r4 [1] [2]. If r3==r4==0, vmlinux looks at the device tree for /chosen/linux,initrd-{start|end} but zImage does not so the QEMU user can only pass vmlinux via -kernel if -initrd is passed as well. This initializes r3/r4 to point to the initramdisk location when present. [1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/powerpc/kernel/prom_init.c?h=v5.3#n3230 [2] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/powerpc/boot/of.c?h=v5.3#n89 Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru> --- Changes: v2: * improved readability
2019-11-11allocator: Fix format strings for DEBUGAlexey Kardashevskiy1-6/+6
This silences multiple gcc warnings; no functional change otherwise. Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
2019-10-22pci: Align PCI node names with QEMUAlexey Kardashevskiy1-41/+12
During the ibm,client-architecture-support client call, we rely on QEMU providing a full device tree which SLOF then merged into its internal tree so we rely on both SLOF and QEMU using the same node names for devices of the same type. This changes device tree node names to what QEMU uses. The change was triggered by "(unknown-)legacy-device" which is used by virtio-balloon; other changes either fix typos or remove devices which are very unlikely to be implemented by QEMU for pseries, or even if they are, we are ok with using generic class names anyway. Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
2019-09-11usb-host: Do not override USB node nameAlexey Kardashevskiy1-1/+1
QEMU creates nodes for PCI devices and preserves the node names with one exception for USB hosts; this fixes it. Fixes: be9b2fa44c73 ("pci: Use QEMU created PCI device nodes") Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru> Reviewed-by: Thomas Huth <thuth@redhat.com>
2018-12-18usb/storage: Implement block write supportLaurent Vivier1-5/+22
The only missing parts were to manage the transfer direction in do-bulk-command and to copy the data to the buffer before the write operation. This is needed as GRUB2 wants to write the grubenv file at start and hangs because the data are not provided to the disk controller. I've checked the file is correctly modified by modifying an environment variable in GRUB2 with "set saved_entry=2" then "save_env saved_entry" and checking the result in linux with "grub2-editenv list". Fixes: Fixes: a0b96fe66fcd991b407c1d67ca842921e477a6fd (Provide "write" function in the disk-label package) Signed-off-by: Laurent Vivier <lvivier@redhat.com> Reviewed-by: Thomas Huth <thuth@redhat.com> Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
2018-12-18usb/storage: Invert the logic of the IF-statementsLaurent Vivier1-20/+19
to prepare write implementation Signed-off-by: Laurent Vivier <lvivier@redhat.com> Reviewed-by: Thomas Huth <thuth@redhat.com> Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
2018-09-07pci: use appropriate base class idsGreg Kurz1-5/+5
This will allow SLOF to print the appropriate name instead of "unknown" for PCI classes 0xd to 0x11. Signed-off-by: Greg Kurz <groug@kaod.org> Reviewed-by: Thomas Huth <thuth@redhat.com> Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
2018-05-29slof: Add a helper function to get the contents of a property in C codeThomas Huth1-0/+15
We will need to retrieve the UUID of the VM in the libnet code, so we need a function to get the contents from a device tree property. Signed-off-by: Thomas Huth <thuth@redhat.com> Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
2018-05-29libnet: Wire up pxelinux.cfg network bootingThomas Huth1-3/+12
In case the normal network loading failed, try to load a pxelinux.cfg config file. If that succeeds, load the kernel and initrd with the information that could be found in this file. Signed-off-by: Thomas Huth <thuth@redhat.com> Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
2018-05-29resolve ihandle and xt handle in the input command (like for the output)Laurent Vivier1-16/+24
Signed-off-by: Laurent Vivier <lvivier@redhat.com> Reviewed-by: Thomas Huth <thuth@redhat.com> Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
2018-05-29Fix output wordLaurent Vivier1-5/+31
We can select the console output, but it does not really work Implement term-io-emit, as we have term-io-key to really send characters to the output selected by stdout. Resolve xt and ihandle in the output command. Use them in the new term-io-emit function. Signed-off-by: Laurent Vivier <lvivier@redhat.com> Reviewed-by: Thomas Huth <thuth@redhat.com> [aik: fixed commit log] Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
2018-05-25obp-tftp: Make sure to not overwrite paflof in memoryThomas Huth1-1/+7
The obp-tftp package is currently using an arbitrary large value as maximal load size. If the downloaded file is big enough, we can easily erase Paflof in memory this way. Let's make sure that this can not happen by limiting the size to the amount of memory below the Paflof binary (which is close to the end of the RAM) in case of board-qemu, or the amount of memory between the minimum RAM size and the load-base on board-js2x. Signed-off-by: Thomas Huth <thuth@redhat.com> Reviewed-by: Greg Kurz <groug@kaod.org> Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
2018-05-25libnet: Get rid of unused huge_load and block_size parametersThomas Huth1-3/+0
The blocksize is hard-coded to 1428 bytes in obp-tftp.fs, so instead of hardcoding this in the Forth code, we could also move this into tftp.c directly instead. A similar condition exists with the huge-tftp-load parameter. While this non-standard variable could still be changed in the obp-tftp package, it does not make much sense to set it to zero since you only lose the possibility to do huge TFTP loads with index wrap-around in that case. Signed-off-by: Thomas Huth <thuth@redhat.com> Reviewed-by: Greg Kurz <groug@kaod.org> Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
2017-12-13boot: use a temporary bootdev-bufNikunj A Dadhania1-3/+38
The catpad size is 1K size, which can overflow easily with around 20 devices having bootindex. Replace usage of $cat with a dynamically allocated buffer(16K) here. Introduce new words to work on the buffer (allocate, free and concatenate) Reported here: https://github.com/qemu/SLOF/issues/3 Signed-off-by: Nikunj A Dadhania <nikunj@linux.vnet.ibm.com> Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
2017-12-13boot: do not concatenate bootdevNikunj A Dadhania1-2/+10
We were concatenating the word " parse-load" and $bootdev list that was input to evaluate. Open code EVALUATE work such that concatenation is not required. "load" and "load-next" does not use $cat anymore. Reported here: https://github.com/qemu/SLOF/issues/3 Signed-off-by: Nikunj A Dadhania <nikunj@linux.vnet.ibm.com> Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
2017-11-06fdt: Implement "fdt-fetch" method for client interfaceAlexey Kardashevskiy1-0/+16
The guest kernel fetches the device tree via the client interface, calling it for every node and property, and traversing the entire tree twice - first to build strings blob, second - to build struct blob. On top of that there is also not so efficient implementation of the "getprop" method - it calls slow "get-property" which does full search for a property. As the result, on a 256 CPU + 256 Intel E1000 virtual devices, the guest's flatten_device_tree() takes roughly 8.5sec. However now we have a FDT rendering helper in SLOF which takes about 350ms to render the FDT. This implements a client interface call to allow the guest to read it during early boot and save time. The produced DTB is almost the same as the guest kernel would have produced itself - the differences are: 1. SLOF creates an empty reserved map; the guest can easily fix it up later; 2. SLOF only reuses 40 most popular strings; the guest reuses everything it can - on a 256CPU + 256 PCI devices guest, the difference is about 20KB for 350KB FDT blob. Note, that the guest also ditches the "name" property just like SLOF does: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/powerpc/kernel/prom_init.c?h=v4.13#n2302 Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru> --- If the guest tries "fdt-fetch" and SLOF does not have it, than SLOF prints an error: === copying OF device tree... fdt-fetch NOT FOUNDBuilding dt strings... Building dt structure... === and the guest continues with the old method. We could suppress SLOF error for such unlikely situation though.
2017-11-06board-qemu: Fix slof-build-id lengthAlexey Kardashevskiy1-0/+5
The existing code hardcodes the length of /openprom/model to 10 characters even though it is less than that - len("aik")==3. All 10 chars go to the device tree blob and DTC complains on such a property as there are characters after terminating null: aik@fstn1-p1:~$ dtc -f -I dtb -O dts -o dbg.dts dbg.dtb Warning (model_is_string): "model" property in /openprom is not a string This uses the real length and limits it by 10 to avoid breaking something. Since the same code parses the build id field, this moves from-cstring to a common place for both js2x and qemu boards. Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
2017-11-03tree: Rework set-chosen-cpu and store /chosen ihandle and phandleAlexey Kardashevskiy1-0/+11
This replaces current set-chosen-cpu with a cleaner and faster implementation which does not clobber the current node and stores the chosen CPU phandle/ihandle. This adds a helper to get the chosen CPU unit address. This moves chosen cpu words to root.fs as otherwise it is quite hard to maintain dependencies. Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru> Reviewed-by: Segher Boessenkool <segher@kernel.crashing.org>
2017-10-24node: Add some documentationAlexey Kardashevskiy2-1/+17
This adds some internal structure commented definitions so they won't break things now and grep can find them. Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
2017-09-26netboot: Create bootp-response when bootp is usedNikunj A Dadhania2-12/+21
According to TFTP Booting extension, after the success of BOOTP, BOOTREPLY packet should be copied to bootp-response property under "/chosen" While in current case, even when DHCP was used, bootp-response was being set. So set bootp-response when BOOTP is used and dhcp-response for DHCP Signed-off-by: Nikunj A Dadhania <nikunj@linux.vnet.ibm.com> Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
2017-07-24pci-scan: Fix pci-bridge-set-mem-base and pci-bridge-set-mem-limitThomas Huth1-37/+46
The functions used a bogus mixture between programming the registers with pci-next-mem64 and pci-next-mem - the upper register bits were filled with the value from the 64-bit memory space while the lower bits were filled with the bits from the 32-bit memory space variable. This separates handling of pci-{next|max}-mem64 from pci-{next|max}-mem. This zeroes bottom 4 bits of the prefetchable memory limit and prefetchable memory base registers for 32bit windows to enforce that the resources are marked as 32bit. This simplifies updating of the prefetchable memory limit in ci-bridge-set-mem-limit. Signed-off-by: Thomas Huth <thuth@redhat.com> [aik: extended commit log with 32bit window changes] Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru> Reviewed-by: Nikunj A Dadhania <nikunj@linux.vnet.ibm.com>
2017-07-21pci: Avoid 32-bit prefetchable memory area if possibleThomas Huth1-1/+6
PCI bridges can only have one prefetchable memory area. If we are already using 64-bit prefetchable memory regions, we can not use a dedicated 32-bit prefetchable memory region anymore. In that case the 32-bit BARs should all be located in the 32-bit non- prefetchable memory space instead. Signed-off-by: Thomas Huth <thuth@redhat.com> Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
2017-07-21Remove unused functions ishexdigit and $cat-commaThomas Huth1-10/+2
They are completely unused, and ishexdigit seems even to be implemented in a wrong way, thus let's simply remove them. Signed-off-by: Thomas Huth <thuth@redhat.com> Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
2017-07-20pci: Translate PCI addresses to host addresses at the end of map-inThomas Huth1-1/+1
Currently, it is not possible to use VGA devices attached to a PCI bridge on board-qemu, e.g. by starting QEMU like this: qemu-system-ppc64 -nodefaults -device pci-bridge,id=br1,chassis_nr=1 \ -serial mon:stdio -device VGA,id=video,bus=br1,addr=1 One of the problems is the missing translate-address at the end of the map-in function of the bridge - which was already marked as a TODO, but apparently has never been enabled. So let's do that now! Signed-off-by: Thomas Huth <thuth@redhat.com> Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
2017-07-20Define 'open' and 'close' words of the /aliases nodes right from the startThomas Huth1-0/+2
It's much easier to do this when we create the node instead of looking up the device node again later in each of the boards. Signed-off-by: Thomas Huth <thuth@redhat.com> Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
2017-07-19paflof: Silence gcc's -Warray-bounds warning for stack pointersAlexey Kardashevskiy1-2/+2
The SLOF stack pointers - dp/rp - point to the top used element which means for an empty stack they point to an element below the stack. This means that for pushing to the stack we can use a store-with-update instruction (stdu). This generates good code for most primitives, better than the other stack pointer offsets. However, with -Warray-bounds enabled, this produces warnings like below: At the moment SLOF is gcc produces a warning: /home/aik/p/slof/slof/paflof.c: In function ‘engine’: /home/aik/p/slof/slof/paflof.c:84:23: warning: array subscript is below array bounds [-Warray-bounds] dp = the_data_stack - 1; ~~~~~~~~~~~~~~~^~~ This silences gcc by doing c-cast. Suggested-by: Segher Boessenkool <segher@kernel.crashing.org> Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru> Reviewed-by: Thomas Huth <thuth@redhat.com> --- uintptr_t is not used anywhere in SLOF, hence type_u.