Combining BSP Components

From DDCIDeos
Jump to navigationJump to search

Bugzilla Changes

  1. create new component in bugzilla following instructions at https://deos.ddci.com/scm/Deos/docs/howto/problem-reporting-howto/problem-reporting-howto.htm
  2. obsolete the old component (these instructions should get added to the problem-reporting-how-to but aren't currently)
    1. Log in as administrator
    2. Click administrator
    3. Click products
    4. Select classification
    5. Select product
    6. Add -obsolete to end of product name
    7. Change description to either new location or that its no longer supported. (i.e. This component has moved to Classification: Deos, Product: BSP, Component: nai68ppc2)
    8. Deselect "Open for PCR entry"
  3. Move any open PCRs from the old component to the new component
  4. Create a PCR to combine the components (clone PCR 12423).

Rearrange folder structure

Use SVN Move to Rearrange folder structure as follows:

  • mainline
    • code
      • boot
      • pal
      • config
      • shared
        • constants.py
  • common
    • Structure here will be a combined structure from elements contained in the common folder of the separate components
  • docs
    • references (contains all the reference manuals/items that are traditionally stored at this level)
    • all user guide content stored here
  • configure.ac
  • README.txt
  • release-notes.xml

Combine externals

Create the common externals file in a text file by doing the following:

  1. Run svn propget svn:externals common (on each common directory to dump each externals definition)
  2. Combine the outputs into one text file
  3. Determine overlap of each external and decide on final directory structure
  4. Save text file
  5. In mainline directory run svn propset --file [name of combined external txt] svn:externals common
  6. Run svn update on common file and it should pull in all the externals

Create combined configure.ac

  1. Move configure.ac from boot to mainline
  2. In AC_INIT remove reference to boot and update version number so Major version is current highest + 1
  3. In xReleaseDirectory get rid of the trailing /boot

Create combined release notes

  1. Combine 3 release notes paying special attention to combining dependencies.
  2. Each old component will get a Prior [Component] release section with all its old release notes in that section
  3. Build and review to ensure the prior release details are present and links work correctly.

Dev-Kit

update dev-kit to new style if needed

  1. create a dev-kit-release-notes.xml (use existing as an example)
  2. create a project-dist.mk
  3. remove any build steps for dev-kit that were previously in UG
  4. unpin any common files for the time being.
  5. any .dtb file needs to move from boot to config so it gets copied into the dev-kit build properly.

Update Makefiles

  1. Compare boot and pal makefiles
    • Rename variables where they overlap. For example:
programBasename
 to
bootBasename and palBasename
APPLICATION
 to
bootApplication and palApplication

Update Cygwin packages

  1. Checkout https://deos.ddci.com/scm/Deos/maintainer-tools/cygwin/deos2cygwin
  2. The old packages should have four (or more) bsp related folders:
    • <bsp>
    • <bsp>-boot
    • <bsp>-pal
    • <bsp>-config

The <bsp> package was previously a dummy package that pointed to the other three and contained the dependency list.

  1. Obsolete the boot, pal and config cygwin packages following instructions at The Cygwin Readme. Make sure you search the directory to ensure the obsoleted component is not being pulled into any other package.
  2. Replace the <bps> dummy package with a real one. Use the imx8qm as an example. Make sure the required list includes your device driver. It should look similar to the following(replacing "<bsp>" with your bsp name and replacing <driver> with your platform's driver name):
deos_project_path="deos-products/bsp/<bsp>"
zip_file_name="<bsp>-(?P<version>[0-9.]+).zip$"

package_hint = """
sdesc: "<bsp> BSP: Contains boot, pal, and config component files."
category: Deos-BSP Deos
requires: <driver> pal-ext-stub bsp-examples
"""

def generate(deos2cygwin):
  deos2cygwin.generate(deos_project_path, zip_file_name, "desk", package_hint)

If your component depends on any other component to build, that should be added to the requires list as well.

  1. Create a 0.0.0 zip file that contains the previous stable boot pal and config files. Load it on the ftp server at pub/deos-products/bsp/<bsp>/0.0.0 following the instructions in The Hard Way
  2. Add a test-report to the 0.0.0 folder stating the version it was cloned from and path to the previous stable test report(s).
  3. Create a stable link (see The Hard Way) pointing to 0.0.0.
  4. Unrelease the new version of the component.
  5. Log into the ftp server and perform the following steps:
    1. Shut off the periodic package builder, using your email address.

      $ cd ~/

      $ ./disableBuild.sh aroffelsen@ddci.com'

    2. Pull in cygwin script changes made in previous steps:

      $ cd ~/deos2cygwin/

      $ svn up

    3. Run the package builder to make sure it all worked:

      $ ./deos2cygwin.py

    4. If all is good, turn the package builder back on:

      $ rm ~/deos2cygwin_build_failed

      $ exit