Create new platform for arm system

Brad Bishop bradleyb at fuzziesquirrel.com
Fri Dec 1 00:32:54 AEDT 2017


On Thu, 2017-11-09 at 05:53 +0000, Chen.KenYY 陳永營 TAO wrote:
> Hi all,
>  
> I have a platform which is arm system.
> My customer want to update the platform code to openBMC.
> For now, the code structure as below.
> meta-arm/
> ├── common
> │   └── recipes-phosphor
> │       ├── dbus
> │       │   ├── openpower-dbus-interfaces.bb
> │       │   ├── openpower-dbus-interfaces-mapper-config-native.bb
> │       │   └── phosphor-mapper-config-native%.bbappend
> │       ├── debug
> │       │   ├── openpower-debug-collector
> │       │   │   ├── openpower-debug-collector-checkstop at .service
> │       │   │   └── openpower-debug-collector-watchdog at .service
> │       │   ├── openpower-debug-collector.bb
> │       │   ├── openpower-debug-collector-error-native.bb
> │       │   ├── openpower-debug-collector.inc
> │       │   └── phosphor-logging-error-logs-native.bbappend
> │       ├── ipmi
> │       │   ├── hostboot-inventory-config
> │       │   │   └── config.yaml
> │       │   ├── hostboot-inventory-config-native.bb
> │       │   ├── openpower-ipmi-oem.bb
> │       │   ├── openpower-ipmi-oem-whitelist
> │       │   │   └── openpower-ipmi-oem-whitelist-native.conf
> │       │   └── openpower-ipmi-oem-whitelist-native.bb
> │       └── packagegroups
> │           ├── packagegroup-obmc-apps.bbappend
> │           ├── packagegroup-obmc-ipmid-providers.bbappend
> │           ├── packagegroup-obmc-phosphor-debugtools.bbappend
> │           └── packagegroup-op-apps.bb
> ├── conf
> │   ├── layer.conf
> │   └── machine
> │       └── include
> │           └── arm.inc
> ├── COPYING.apache-2.0
> ├── COPYING.MIT
> ├── LICENSE
> └── meta-qualcomm
>     ├── conf
>     │   ├── layer.conf
>     │   └── machine
>     │       └── include
>     │           └── qualcomm.inc
>     ├── meta-2400-rep
>     │   ├── conf
>     │   │   ├── bblayers.conf.sample
>     │   │   ├── conf-notes.txt
>     │   │   ├── layer.conf
>     │   │   ├── local.conf.sample
>     │   │   └── machine
>     │   │       └── 2400-rep.conf
>     │   ├── recipes-bsp
>     │   │   └── u-boot
>     │   │       ├── u-boot
>     │   │       │   └── 0001-Centriq2400-REP-platform-board-initial-
> Ethernet-Phy-reset.patch
>     │   │       └── u-boot_%.bbappend
>     │   ├── recipes-kernel
>     │   │   └── linux
>     │   │       ├── linux-obmc
>     │   │       │   ├── 0001-2400REP-Add-GPIOC7-config-for-host-spi-
> rom-init.patch
>     │   │       │   ├── 0001-Add-driver-for-PCA9641-Arbitration.patch
>     │   │       │   ├── 0001-Driver-Add-DS1100-driver-for-PMBUS.patch
>    │   │       │   ├── 0001-driver-add-IR38613-driver.patch
>     │   │       │   ├── 0001-Driver-Modify-fan-driver.patch
>     │   │       │   ├── 0001-Enabling-temp-monitoring-by-default-on-
> adm1278.patch
>     │   │       │   ├── 0001-Migrate-the-JTAG-driver-from-the-BSP-
> from-Aspeed.patch
>     │   │       │   ├── 0001-PMBUS-modify-pmbus.patch
>     │   │       │   ├── 0001-spi-add-aspeed-spi-generic-driver.patch
>     │   │       │   ├── 0001-spi-Add-centriq-2400-spi-hwmon-
> driver.patch
>     │   │       │   ├── 0002-driver-add-PXM1310-driver.patch
>     │   │       │   ├── 0002-PMBUS-modify-pmbus.patch
>     │   │       │   ├── 0003-thermal-sensor-NVT210.patch
>     │   │       │   ├── 2400rep.cfg
>     │   │       │   ├── aspeed-bmc-arm-2400-rep.dts
>     │   │       │   └── v3-0001-Add-SSIF-driver-for-I2C-slave-
> device.patch
>     │   │       └── linux-obmc_%.bbappend
>     │   ├── recipes-phosphor
>     │   │   ├── bootmodeutil
>     │   │   │   ├── bootmodeutil.bb
>     │   │   │   └── files
>     │   │   │       ├── BOOTMODEFILE
>     │   │   │       └── bootmodeutil.c
>     │   │   ├── chassis
>     │   │   │   ├── ir38163-workaround
>     │   │   │   │   ├── ir38163_workaround.sh
>     │   │   │   │   ├── ir-add at .service
>     │   │   │   │   └── ir-remove at .service
>     │   │   │   └── ir38163-workaround.bb
>     │   │   ├── console
>     │   │   │   ├── obmc-console
>     │   │   │   │   └── obmc-console.conf
>     │   │   │   └── obmc-console.bbappend
>     │   │   ├── cpld
>     │   │   │   ├── cpld-fwupdate
>     │   │   │   │   ├── ast-jtag.c
>     │   │   │   │   ├── ast-jtag.h
>     │   │   │   │   ├── lattice.c
>     │   │   │   │   ├── lattice.h
>     │   │   │   │   └── main.c
>     │   │   │   ├── cpld-fwupdate.bb
>     │   │   │   ├── cpld-version
>     │   │   │   │   ├── cpld-version.service
>     │   │   │   │   └── cpld_version.sh
>     │   │   │   └── cpld-version.bb
>     │   │   ├── gpioinit
>     │   │   │   ├── files
>     │   │   │   │   ├── gpioinit.c
>     │   │   │   │   └── gpioinit.service
>     │   │   │   └── gpioinit.bb
>     │   │   ├── ipmi
>     │   │   │   ├── 2400-rep-ipmi-inventory-map
>     │   │   │   │   └── config.yaml
>     │   │   │   ├── 2400-rep-ipmi-inventory-map-native.bb
>     │   │   │   ├── openpower-ipmi-oem
>     │   │   │   │   ├── 0001-Add-detection-of-broad-and-node-
> command.patch
>     │   │   │   │   ├── 0001-Add-Get-BMC-Vendor-ID-command.patch
>     │   │   │   │   ├── 0001-Add-Get-pcie-slot-status-command.patch
>     │   │   │   │   └── 0001-Add-Send-Soc-MAC-from-host.patch
>     │   │   │   ├── openpower-ipmi-oem.bbappend
>     │   │   │   ├── phosphor-ipmi-bt
>     │   │   │   │   ├── 0001-btbrigde-to-ssif-slave.patch
>     │   │   │   │   └── 0001-Modify-btbridged-device-link.patch
>     │   │   │   ├── phosphor-ipmi-bt.bbappend
>     │   │   │   ├── phosphor-ipmi-fru-properties%
>     │   │   │   │   └── extra-properties.yaml
>     │   │   │   ├── phosphor-ipmi-fru-properties%.bbappend
>     │   │   │   ├── phosphor-ipmi-sensor-inventory%
>     │   │   │   │   └── config.yaml
>     │   │   │   └── phosphor-ipmi-sensor-inventory%.bbappend
>     │   │   ├── leds
>     │   │   │   ├── 2400-rep-led-manager-config
>     │   │   │   │   └── led.yaml
>     │   │   │   └── 2400-rep-led-manager-config-native.bb
>     │   │   ├── macsetup
>     │   │   │   ├── files
>     │   │   │   │   ├── macsetup.c
>     │   │   │   │   └── macsetup.service
>     │   │   │   └── macsetup.bb
>     │   │   ├── qspitest
>     │   │   │   ├── files
>     │   │   │   │   ├── qspi_test.c
>     │   │   │   │   └── qspi_test.h
>     │   │   │   └── qspitest.bb
>     │   │   ├── sensors
>     │   │   │   ├── phosphor-hwmon%
>     │   │   │   │   ├── 0001-phosphor-hwmon-fixed-open-system-file-
> timeout.patch
>     │   │   │   │   └── obmc
>     │   │   │   │       └── hwmon
>     │   │   │   │           └── ahb
>     │   │   │   │               ├── 1e631000.flash-controller
>     │   │   │   │               │   └── spi2 at 0
>     │   │   │   │               │       └── centriq2400-spi-hwmon at 0.c
> onf
>     │   │   │   │               └── apb
>     │   │   │   │                   └── i2c at 1e78a000
>     │   │   │   │                       ├── i2c-bus at 180
>     │   │   │   │                       │   ├── ir38163 at 12.conf
>     │   │   │   │                       │   ├── ir38163 at 42.conf
>     │   │   │   │                       │   ├── ir38163 at 44.conf
>     │   │   │   │                       │   ├── ir38163 at 46.conf
>     │   │   │   │                       │   ├── ir38163 at 48.conf
>     │   │   │   │                       │   ├── pxm1310 at 02.conf
>     │   │   │   │                       │   └── pxm1310 at 04.conf
>     │   │   │   │                       ├── i2c-bus at 1c0
>     │   │   │   │                       │   ├── nvt210 at 4c.conf
>     │   │   │   │                       │   ├── tmp421 at 1d.conf
>     │   │   │   │                       │   ├── tmp421 at 1f.conf
>     │   │   │   │                       │   ├── tmp421 at 4d.conf
>     │   │   │   │                       │   └── tmp421 at 4f.conf
>     │   │   │   │                       ├── i2c-bus at 300
>     │   │   │   │                       │   ├── adm1278 at 10.conf
>     │   │   │   │                       │   └── adm1278 at 11.conf
>     │   │   │   │                       ├── i2c-bus at 340
>     │   │   │   │                       │   └── pca9641 at 70
>     │   │   │   │                       │       └── i2c-arb
>     │   │   │   │                       │           ├── adm1278 at 12.co
> nf
>     │   │   │   │                       │           ├── ds1100 at 58.con
> f
>     │   │   │   │                       │           ├── max31790 at 20.c
> onf
>     │   │   │   │                       │           ├── max31790 at 23.c
> onf
>     │   │   │   │                       │           └── tmp421 at 1d.con
> f
>     │   │   │   │                       └── i2c-bus at 80
>     │   │   │   │                           ├── tmp421 at 1c.conf
>     │   │   │   │                           ├── tmp421 at 1e.conf
>     │   │   │   │                           ├── tmp421 at 2a.conf
>     │   │   │   │                           └── tmp421 at 4e.conf
>     │   │   │   └── phosphor-hwmon%.bbappend
>     │   │   ├── settings
>     │   │   │   ├── phosphor-settings
>     │   │   │   │   ├── powerpolicy-default-
> ALWAYS_POWER_ON.override.yml
>     │   │   │   │   └── timeowner-default-BOTH.override.yml
>     │   │   │   └── phosphor-settings.bbappend
>     │   │   ├── spitest
>     │   │   │   ├── files
>     │   │   │   │   └── spitest.c
>     │   │   │   └── spitest.bb
>     │   │   ├── thermalutil
>     │   │   │   ├── files
>     │   │   │   │   ├── thermal_control.sh
>     │   │   │   │   ├── thermal-start at .service
>     │   │   │   │   ├── thermal-stop at .service
>     │   │   │   │   └── thermalutil.c
>     │   │   │   └── thermalutil.bb
>     │   │   └── workbook
>     │   │       ├── 2400-rep-config
>     │   │       │   └── 2400-rep.py
>     │   │       └── 2400-rep-config.bb
>     │   └── recipes.txt
>     └── skeleton
>         └── skeleton.tar.gz
>  
> Could anyone help to review this structure and tell me how to
> separate this code will be good to reviewer?
> As I know, the kernel patch should not in machine file.
>  
> If any other question, please feel free to me. Thanks.
>  
> Best Regards,
> Ken
>  
>  

Hi Ken

I was just curious if you had gotten enough feedback to get started.

Another data point could be the quanta-q711 or witherspoon machines. 
If you have a look at the commit history (git log -p) and search for
these machines (start the search from the beginning of time and search
forward) these machines were added in a review-friendly way for the
most part.

To begin with, I'd focus more on adding a board layer that allows you
to build an image and boot to a shell, and tackle the arm-host aspects
(i.e. the userspace) of this system after that.  That piece might be
more involved given that this is the first arm system.

thx - brad


More information about the openbmc mailing list