]> CyberLeo.Net >> Repos - FreeBSD/stable/10.git/commit
MFC: r266470, r273546, r276017, r277932, r279153, r279778, r279780, r278797,
authormarius <marius@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Sun, 20 Aug 2017 16:52:27 +0000 (16:52 +0000)
committermarius <marius@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Sun, 20 Aug 2017 16:52:27 +0000 (16:52 +0000)
commit3dd988ab1f9e281f50c0fffe1f6775b4a35e1cc2
tree3233b1cccdaf2b450dae12ce15a403aca5fd2e97
parent00fb0133c83cce88118d98dedae89ee90f1c569b
MFC: r266470, r273546, r276017, r277932, r279153, r279778, r279780, r278797,
     r278861, r280283, r280284, r280294, r280452, r280558, r280571, r281863,
     r282049, r282357, r282440, r282441, r282358, r282359, r283550, r283918,
     r290171, r290667, r290381, r290533, r290666, r292483, r295659, r297545,
     r298305, r298383, r298428, r306489, r306557, r307067, r307068, r307087,
     r307088, r307089, r307091, r307092, r307093, r307098, r307115, r307154,
     r307240, r307241, r315967, r316476

Unbreak BCM2835/RPI-B support by bringing it in line with stable/11 and
head:

- Optimise reading of pending interrupt registers.

- Fix a bug where some DTS layouts could cause the premature ending of the
  search (i.e. without returning any result) and you would end up with a
  random MAC address.

- Reduce the diff between head and arm_intrng with the bcm2835 interrupt
  controller.

- Allow the retrieving of the reserved pins state.

- Add support to the bcm2835 mailbox driver to work before interrupts are
  enabled. This will be needed to enable the power on devices early on in the
  boot process.

- Add support for enabling the USB on the Raspberry Pi boards when it hasn't
  been done by U-Boot. This allows the USB to work when we load the kernel
  directly.

- Call config_intrhook_disestablish on failure of the bcm2835 fb and fbd intr
  hooks. With this we can get through the boot even if these functions fail.

- Add the structures needed to get/set the power state. These can be used
  when, for example, we boot without U-Boot and wish to enable USB, or to
  suspend an unneeded device.

- Add a mask to match only the relative base address of BSC controllers.

- Move the code to set the device power to the bcm2835 mailbox driver so it
  can be reused by other drivers.

- Add the SOC_BCM2835 and SOC_BCM2836 options for the arm kernel and add the
  former to std.bcm2835.

- Add a helper function to read clock frequencies from videocore and use this
  to get the default frequency of the sdhci device.

- Add partial support for the Raspberry Pi 2.

- Remove a debug #error from the bcm2835 sdhci driver.

- Fetch the SDHCI frequency from videocore (our prefered source) and only if
  it fails, fetch the clock-frequency from DTB. If both methods fail, use the
  hardcoded default.

- Pass the supplied buffer length instead of a fixed size.

- Add the routines to query and setup the framebuffer state using the
  BCM2835_MBOX_CHAN_PROP channel.  The old channel (BCM2835_MBOX_CHAN_FB)
  seems deprecated on recent firmware versions and is causing a freeze on
  RPi 2.

- Fix DMA on RPi 2. BCM2836 has a different base address for peripherals.

- Enable DMA for sdhci on RPi 2 (BCM2836).

- Add a missing wakeup when releasing ownership of the SPI hardware.

- Fix framebuffer compatibility with new RPi firmware.

- Refactor bcm2835_cpufreq to use bcm2835_mbox_property API.

- Fix the sc(4) framebuffer driver on RPi 2.

- Fix the vt(4) framebuffer driver on RPi 2.

- Remove unused mutex and softc variables.

- Refactor mailbox property API to make it usable for /dev/vcio driver.

- Replace semaphore-base locking with sleep/wait synchronization.

- Fix infinite loop if response from VideoCore never received.

- Set have_message in interrupt to handle "response before READ" case.

- Serialize access to property channel when using bcm2835_mbox_property.

- Force framebuffer virtual viewport to be the same as physical.

- Use proper type of tag in bcm2835_mbox_fb_init.

- bcm2835_cpufreq: Only attach driver if we correcly match on the machine
  compatible string.

- Add dev.fb.X.resync sysctl to resync ARM framebuffer with VideoCore.

- Do not use DMA channels used by GPU.

- Define local-intc for BCM2836 platform (RPI2) and make BCM2835 intc
  a child of it.

- Fix build for Pi kernels with syscons enabled.

- Use VM_MEMATTR_WRITE_COMBINING memattr for mmap(2) on framebuffer.

- Make intc driver compatible with upstream DTS.

- Make Rapsberry Pi watchdog driver compatible with upstream DTS.

- Make sure intc is attached before interrupt consumers.

- Make framebuffer driver compatible with upstream DT.

- Add one more heuristic to determine MAC address of the SMSC device.

- Add compatibility strings from upstream DT.

- Fix spelling mistake, BCM2835_PASWORD -> BCM2835_PASSWORD.

Approved by: re (kib)

git-svn-id: svn://svn.freebsd.org/base/stable/10@322724 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
28 files changed:
sys/arm/broadcom/bcm2835/bcm2835_bsc.c
sys/arm/broadcom/bcm2835/bcm2835_bscvar.h
sys/arm/broadcom/bcm2835/bcm2835_common.c
sys/arm/broadcom/bcm2835/bcm2835_cpufreq.c
sys/arm/broadcom/bcm2835/bcm2835_dma.c
sys/arm/broadcom/bcm2835/bcm2835_dma.h
sys/arm/broadcom/bcm2835/bcm2835_fb.c
sys/arm/broadcom/bcm2835/bcm2835_fbd.c
sys/arm/broadcom/bcm2835/bcm2835_gpio.c
sys/arm/broadcom/bcm2835/bcm2835_intr.c
sys/arm/broadcom/bcm2835/bcm2835_machdep.c
sys/arm/broadcom/bcm2835/bcm2835_mbox.c
sys/arm/broadcom/bcm2835/bcm2835_mbox_prop.h
sys/arm/broadcom/bcm2835/bcm2835_sdhci.c
sys/arm/broadcom/bcm2835/bcm2835_spi.c
sys/arm/broadcom/bcm2835/bcm2835_vcbus.h
sys/arm/broadcom/bcm2835/bcm2835_wdog.c
sys/arm/broadcom/bcm2835/bcm2836.c [new file with mode: 0644]
sys/arm/broadcom/bcm2835/bcm2836.h [new file with mode: 0644]
sys/arm/broadcom/bcm2835/bcm283x_dwc_fdt.c [new file with mode: 0644]
sys/arm/broadcom/bcm2835/files.bcm2835
sys/arm/broadcom/bcm2835/files.bcm2836 [new file with mode: 0644]
sys/arm/broadcom/bcm2835/std.bcm2835
sys/arm/broadcom/bcm2835/std.bcm2836 [new file with mode: 0644]
sys/conf/options.arm
sys/dev/usb/controller/dwc_otg_fdt.c
sys/dev/usb/controller/dwc_otg_fdt.h [new file with mode: 0644]
sys/dev/usb/net/if_smsc.c