** Description changed:

  Impact:
  
- The RaspberryPi 3 B Plus is the latest addition in the family of
+ The RaspberryPi 3 B Plus[1] is the latest addition in the family of
  RaspberryPi boards, and this patchset includes all the necessary bits
- (dts, lan driver and wifi fixes) to enable this board in our 4.4 Xenial
+ (dts, lan driver and wifi driver) to enable this board in our 4.4 Xenial
  raspi2 kernel.
  
  How to test:
  
  Build this kernel and boot a rpi3bplus with it: the board should boot
- fine, ethernet lan and wifi should work too.
+ fine, and ethernet lan and wifi should work.
  
  Regression potential:
  
  To ease the regression analysis, we can logically split the patchset in
- 3 different set of patches:
+ 3 different set of patches.
  
  1) the dts files (patches 0001 to 0006)
  
  Patch 0001 contains the pi3bplus board dts files + the lan dts fragment - 
these are new files, and don't modify any other dts in the tree.
  Patches 0002 to 0005 are the fixup modifcation to make the above dts file 
work in our 4.4 kernel.
- Patch 006 is a fix for the bcm2708_common dts file - it's a small fix, and 
the same modification is present in the 4.9+ Raspberry respository too (see 
https://github.com/raspberrypi/linux/blob/rpi-4.9.y/arch/arm/boot/dts/bcm283x.dtsi
 aroud lines 353-354) - unfortunately they squashed that fix, so i couldn't 
pick the specific commit.
+ Patch 006 is a fix for the bcm2708_common, a device tree used in every rpi 
board dtb - it's a small fix, and the same modification is present in the 4.9+ 
Raspberry respository too (see 
https://github.com/raspberrypi/linux/blob/rpi-4.9.y/arch/arm/boot/dts/bcm283x.dtsi
 aroud lines 353-354) - unfortunately they squashed that fix, so i couldn't 
pick the specific commit.
  
  The only regression potential here is patch 0006, but since it's a small
  fix, and it's even carried upstream, i mark it as low.
  
  2) the lan driver (patches 0008 to 0018)
  
  The rpi3bplus comes with a brand new gigabit capable ethernet adapter,
  driven by the lan 7515 chip, a chip mainly used in usb to ethernet
- adapter. Unfortunately, the lan7515 driver shipped in our Xenial tree
- was not working: the driver would attach, the interface shows up,
- packets could be sent, but the host os never received anything -
- sniffing the cable confirmed that traffic was generated, but we the NIC
- was 'deaf'.
+ dongle. Unfortunately, the lan7515 driver shipped in our Xenial tree was
+ not working: the driver would attach, the interface shows up, packets
+ could be sent, but the host os never received any input packets -
+ sniffing the cable confirmed that the chip was generating traffic and
+ receiving reply packets too.
  
  After some debugging i found that no interrupt was generated once packet
- arrived and that was due to upstream
+ arrived, and that was due to upstream
  23374573a899528a4b10d76276646f69b7ae1572 "lan78xx: Correctly indicate
  invalid OTP", reverting this would bring my ethernet back to life (patch
- 0008.
+ 0008).
  
  "lan78xx: Correctly indicate invalid OTP" originated around 4.17, way
  after a complete overhaul of the phy code wad done for all the usbnet
  driver - after more debugging i found that the 4.4 driver ships a
  workaround to enable phy interrupts (see lan78xx_open()), so i'm
  thinking there's some correlation between the phy overhaul and this
- commit, for now i just reverted it locally and made the driver work
- again.
+ commit, but without the datasheet i can't tell what those bits in that
+ register are actually doing - for now i just reverted this patch locally
+ and made the driver work again.
  
  All the other patches (0009 to 0018) are backports of features added to
- the driver by the Raspberry Foundation, to make the driver better
+ the driver by the Raspberry Foundation to make the driver better
  integrate in a dts environment.
  
  There's literally no regression potential here, since the driver was not
- working in the first place, and i actually had to fix it.
+ working in the first place, (and i actually made it work again).
  
  3) the wifi driver (patches 0019 to 0026)
  
- The wifi chip used in the rpi3bplus is slightly different from the one
- used in the original rpi3 board, but uses the same driver: i backported
- several fixes from upstream to make it work: all the commits fix an
- isolated bugs, and can be easily reviewed.
+ The wifi chip used in the rpi3bplus is very different from the one used
+ in the original rpi3 board (Broadcom BCM43438 vs Cypress CYW43455), but
+ it uses the same driver and i had to backport several fixes from
+ upstream to make it work: all the commits fix isolated bugs, and can be
+ easily reviewed.
  
- There's some regression potential here, but all the code comes from
- fixes upstream, so i make it as low.
+ There's some regression potential here, but all code comes from upstream
+ fixes, so i mark it as low.
  
- In conclusion, when possible, i picked up the upstream version of
- patches (instead of the one carried in the RaspberryPi branch -
- https://github.com/raspberrypi/linux rpi-4.9.y), and except for 6
+ When possible i picked up the upstream version of the same patch
+ (instead of the one carried in the RaspberryPi branch -
+ https://github.com/raspberrypi/linux rpi-4.9.y), and except for these 6
  commits:
  
  "BCM270X_DT: Add Pi 3+ dts files"
  "lan78xx: Enable LEDs if no valid EEPROM or OTP"
  "lan78xx: Read initial EEE status from DT"
  "lan78xx: Change LEDs to include 10Mb activity"
  "lan78xx: Ignore DT MAC address if already valid"
  "lan78xx: Move enabling of EEE into PHY init code"
  
- all the the remaining (20 patches out of 26) came from upstream, with
- varying degrees of adjustment.
+ all the remaining patches (20 out of 26) came from upstream.
  
  I'm proposing this for inclusion in the Xenial raspi2 kernel.
+ 
+ 1: https://www.raspberrypi.org/blog/raspberry-pi-3-model-bplus-sale-
+ now-35/

** Description changed:

  Impact:
  
  The RaspberryPi 3 B Plus[1] is the latest addition in the family of
  RaspberryPi boards, and this patchset includes all the necessary bits
  (dts, lan driver and wifi driver) to enable this board in our 4.4 Xenial
  raspi2 kernel.
  
  How to test:
  
  Build this kernel and boot a rpi3bplus with it: the board should boot
  fine, and ethernet lan and wifi should work.
  
  Regression potential:
  
  To ease the regression analysis, we can logically split the patchset in
  3 different set of patches.
  
  1) the dts files (patches 0001 to 0006)
  
  Patch 0001 contains the pi3bplus board dts files + the lan dts fragment - 
these are new files, and don't modify any other dts in the tree.
  Patches 0002 to 0005 are the fixup modifcation to make the above dts file 
work in our 4.4 kernel.
  Patch 006 is a fix for the bcm2708_common, a device tree used in every rpi 
board dtb - it's a small fix, and the same modification is present in the 4.9+ 
Raspberry respository too (see 
https://github.com/raspberrypi/linux/blob/rpi-4.9.y/arch/arm/boot/dts/bcm283x.dtsi
 aroud lines 353-354) - unfortunately they squashed that fix, so i couldn't 
pick the specific commit.
  
  The only regression potential here is patch 0006, but since it's a small
  fix, and it's even carried upstream, i mark it as low.
  
  2) the lan driver (patches 0008 to 0018)
  
  The rpi3bplus comes with a brand new gigabit capable ethernet adapter,
  driven by the lan 7515 chip, a chip mainly used in usb to ethernet
  dongle. Unfortunately, the lan7515 driver shipped in our Xenial tree was
  not working: the driver would attach, the interface shows up, packets
  could be sent, but the host os never received any input packets -
  sniffing the cable confirmed that the chip was generating traffic and
  receiving reply packets too.
  
  After some debugging i found that no interrupt was generated once packet
  arrived, and that was due to upstream
  23374573a899528a4b10d76276646f69b7ae1572 "lan78xx: Correctly indicate
  invalid OTP", reverting this would bring my ethernet back to life (patch
  0008).
  
  "lan78xx: Correctly indicate invalid OTP" originated around 4.17, way
  after a complete overhaul of the phy code wad done for all the usbnet
  driver - after more debugging i found that the 4.4 driver ships a
  workaround to enable phy interrupts (see lan78xx_open()), so i'm
  thinking there's some correlation between the phy overhaul and this
  commit, but without the datasheet i can't tell what those bits in that
  register are actually doing - for now i just reverted this patch locally
  and made the driver work again.
  
  All the other patches (0009 to 0018) are backports of features added to
  the driver by the Raspberry Foundation to make the driver better
  integrate in a dts environment.
  
  There's literally no regression potential here, since the driver was not
  working in the first place, (and i actually made it work again).
  
  3) the wifi driver (patches 0019 to 0026)
  
  The wifi chip used in the rpi3bplus is very different from the one used
  in the original rpi3 board (Broadcom BCM43438 vs Cypress CYW43455), but
  it uses the same driver and i had to backport several fixes from
  upstream to make it work: all the commits fix isolated bugs, and can be
  easily reviewed.
  
  There's some regression potential here, but all code comes from upstream
  fixes, so i mark it as low.
  
  When possible i picked up the upstream version of the same patch
  (instead of the one carried in the RaspberryPi branch -
  https://github.com/raspberrypi/linux rpi-4.9.y), and except for these 6
  commits:
  
  "BCM270X_DT: Add Pi 3+ dts files"
  "lan78xx: Enable LEDs if no valid EEPROM or OTP"
  "lan78xx: Read initial EEE status from DT"
  "lan78xx: Change LEDs to include 10Mb activity"
  "lan78xx: Ignore DT MAC address if already valid"
  "lan78xx: Move enabling of EEE into PHY init code"
  
- all the remaining patches (20 out of 26) came from upstream.
+ all the remaining patches (20 out of 26) came from upstream - patches marked 
with 'cherry-picked...' are clean cherry picks, while the one with
+ 'backported...' required a varying degree of rework to make it apply (and 
work).
  
  I'm proposing this for inclusion in the Xenial raspi2 kernel.
  
  1: https://www.raspberrypi.org/blog/raspberry-pi-3-model-bplus-sale-
  now-35/

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1784025

Title:
  Support for the RaspberryPi 3 B Plus board

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux-raspi2/+bug/1784025/+subscriptions

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to