coreboot/src/device
Kyösti Mälkki d2cdfff63b device/pci: Rewrite PCI MMCONF with symbol reference
The effect of pointer aliasing on writes is that any data on CPU
registers that has been resolved from (non-const and non-volatile)
memory objects has to be discarded and resolved. In other words, the
compiler assumes that a pointer that does not have an absolute value
at build-time, and is of type 'void *' or 'char *', may write over
any memory object.

Using a unique datatype for MMIO writes makes the pointer to _not_
qualify for pointer aliasing with any other objects in memory. This
avoid constantly resolving the PCI MMCONF address, which is a derived
value from a 'struct device *'.

Change-Id: Id112aa5e729ffd8015bb806786bdee38783b7ea9
Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/31752
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2019-04-07 02:31:36 +00:00
..
dram device/ddr3: Prevent overflow when adding SMBUS Table 17 entries 2018-09-14 20:16:45 +00:00
oprom coreboot: Replace all IS_ENABLED(CONFIG_XXX) with CONFIG(XXX) 2019-03-08 08:33:24 +00:00
azalia_device.c device/mmio.h: Add include file for MMIO ops 2019-03-04 15:57:39 +00:00
cardbus_device.c device/pci: Fix PCI accessor headers 2019-03-01 20:32:15 +00:00
cpu_device.c src/device: Get rid of device_t 2018-05-22 07:24:23 +00:00
device.c Fix up remaining boolean uses of CONFIG_XXX to CONFIG(XXX) 2019-03-25 11:03:49 +00:00
device_const.c coreboot: Replace all IS_ENABLED(CONFIG_XXX) with CONFIG(XXX) 2019-03-08 08:33:24 +00:00
device_util.c resources: introduce io_resource() 2019-03-17 03:45:50 +00:00
hypertransport.c device/pci: Fix PCI accessor headers 2019-03-01 20:32:15 +00:00
i2c.c Reinvent I2C ops 2017-08-18 15:33:45 +00:00
i2c_bus.c device/i2c_bus: allow i2c_bus and i2c_simple to coexist 2018-01-24 05:02:50 +00:00
Kconfig drivers/intel/gma: Make libgfxinit available w/o gfxinit 2019-03-27 08:30:40 +00:00
Makefile.inc device/pci: Rewrite PCI MMCONF with symbol reference 2019-04-07 02:31:36 +00:00
pci_class.c src: Drop unused 'include <device/pciexp.h>' 2019-03-16 11:46:38 +00:00
pci_device.c vboot: Change oprom checks to CONFIG_VBOOT, assert OPROM_MATTERS 2019-04-02 13:08:43 +00:00
pci_early.c device/pci_ops: Apply some symmetry in headers 2019-02-11 20:44:37 +00:00
pci_ops.c device/pci: Rewrite PCI MMCONF with symbol reference 2019-04-07 02:31:36 +00:00
pci_rom.c coreboot: Replace all IS_ENABLED(CONFIG_XXX) with CONFIG(XXX) 2019-03-08 08:33:24 +00:00
pciexp_device.c coreboot: Replace all IS_ENABLED(CONFIG_XXX) with CONFIG(XXX) 2019-03-08 08:33:24 +00:00
pcix_device.c device/pci: Fix PCI accessor headers 2019-03-01 20:32:15 +00:00
pnp_device.c src: Use 'include <string.h>' when appropriate 2019-03-20 20:27:51 +00:00
root_device.c coreboot: Replace all IS_ENABLED(CONFIG_XXX) with CONFIG(XXX) 2019-03-08 08:33:24 +00:00
smbus_ops.c device/smbus_ops.c: Get rid of device_t 2018-05-04 10:17:08 +00:00
software_i2c.c software_i2c: Improve error behavior 2018-05-02 00:23:30 +00:00